.NET as a Platform for Implementing Concurrent Objects

.NET as a Platform for Implementing Concurrent ObjectsJACO is a Java-based runtime system designed to study techniques for implementing concurrent objects in distributed systems. The use of Java has allowed us to build a system that permits to combine heterogeneous networks of workstations and multiprocessors as a unique metacomputing system. An alternative to Java is Microsoft’’s .NET platform, that offers a software layer to execute programs written in different languages, including Java and C#, a new language specifically designed to exploit the full advantages of .NET. In this paper, we present our experiences in porting JACO to .NET. Our goal is to analyze how Java parallel code can be re-used in .NET. We study two alternatives. The first one is to use J#, the implementation of Java offered by .NET. The second one is to rewrite the Java code in C#, using the native .NET services. We conclude that porting JACO from Java to C# is not difficult, and that our sequential programs run faster in .NET than in Java, while internode communications have a higher cost in .NET.

Concurrent object-oriented languages are characterized by combining concurrent programming and object-oriented programming. However, there is not a unique way to combine these two paradigms [1]. An alternative is to consider programs as collections of concurrent objects that communicate and synchronize by invoking the operations they define in their interfaces.
In the past, we have investigated implementing concurrent objects in parallel and distributed systems [2][3] in an efficient way. As a result, we have developed JACO, a runtime implemented in Java. With JACO (JAva based Concurrent Object System), we can use Java to write programs according to a concurrent object model. JACO offers services to concurrent object creation, object communication, and object replication plus migration.
The choice of Java to implement JACO is justified by the suitability of some Java features, such as object-orientation, multithreading support, socket based communication, heterogeneity, reflexion, and XML support. These features can be also found in the new language C# [4], which is implemented on top of Microsoft’’s .NET platform [5]. The resulting runtime system allows to combine heterogeneous networks of workstations and multiprocessors as a unique metacomputing system. Both together, .NET and C#, appear as an alternative to Java. One of the most interesting features of .NET is that it is a multi-language platform. Whereas the Java Virtual Machine is bounded to only one language, the .NET runtime allows to execute programs written in C++, Visual Basic, C#, and even Java. The Java implementation on .NET is called J#, although it only provides the functionality of certain JDK classes, while some features, such as applets or RMI, are not supported. A drawback of .NET is that it is bound only to the Windows family of operating systems, although there are currently some initiatives to port .NET to other platforms [6]. Given that C# is similar to Java in many aspects, it is interesting to study whether parallels programs written in Java can be ported easily to this new environment. Furthermore, the availability of J# should allow us to execute Java programs directly on .NET.

Website: www.lcc.uma.es | Filesize: 113kb
No of Page(s): 5
Click here to download .NET as a Platform for Implementing Concurrent Objects.

Related Copyrighted Books

Related Tutorial

Tags: ,

Comments

Leave a Reply