.NET and J2EE INTEROPERABILLITY By: PHANIDEEP NARRA
OVERVIEW • Definition • Motivation • .NET and J2EE Architectures • Interoperability Problems • Interoperability Technologies • Conclusion and future works • Questions
DEFINITION • What is interoperability? “ Ability of two or more systems to communicate, transfer data among various functional units and use the transferred data”
MOTIVATION • Achieving reuse of existing systems - usually highest on the list of considerations • Implementing Proof of concept studies - for a new interface with existing environment • Migration to microsoft.net - to migrate from J2EE to .NET • Achieving lower project costs - .NET has the potential to deliver lower project costs
Basics of .NET for J2EE Developers • Microsoft .NET is a designation that reflects Microsoft’s realignment towards Internet operation and distributed applications. • Microsoft .NET consists of three main components: • .NET Framework • Visual Studio.NET • Windows Server System
Basics of J2EE for .NET Developers • Sun Microsystems developed Java as both a platform and a programming language. • There are currently three editions of the Java platform: • J2SE • J2EE • J2ME
Major Differences • Three Major differences • Operating System Support - J2EE supports many OS, whereas .NET does not. • Language support – .NET supports many languages, whereas J2EE does not. • Execution Method - .NET produces MSIL, whereas JAVA produces BYTECODE.
INTEROPERABILITY PROBLEMS • When implementing a .NET and J2EE interoperability project, you confront three main data exchange challenges • The Three challenges are: • Primitive Data type Mappings - System.String in .NET and java.lang.string in JAVA are not the same. • Non-Existent Data types – data types which exist in one that do not exist in the other. • Complex Data types – Ex: nested primitive datatypes.
INTEROPERABILITY PROBLEMS • There are few solutions to type compatibility • Using Serialization: Two Types of serialization • Binary Serialization: Converts data type to binary stream • XML Serialization: Converts data type to XML stream which is then converted to XML document. • De-Serialization can be done at the other end to get a type compatible data type for that environment. • Using XML Schemas is a more reliable solution.
INTEROPERABILITY PROBLEMS • When you use XML serialization you generate an XML document. • Ensure that this document generated at one platform is compatible with the other platform. • The XML Schema Solution Provides the interoperability contract that specifies the format for XML documents • XML Schema provides the template for successfully linking .NET and JAVA
INTEROPERABILITY PROBLEMS • Data Exchange recommendations are provided for different interoperability scenarios. • There are three interoperability scenarios • Linking two or more new applications • Linking a new application to an existing application • Linking two existing applications
INTEROPERABILITY PROBLEMS Recommendations for linking new applications • Use XSD to define common or shared types and then generate platform-specific code from those shared types. • Create a central XSD repository for your development teams to provide for consistency in generating types across applications. • Avoid exposing elements that XSD does not define — always use types that are published in XSD. • Test data types with test utilities before writing your application.
INTEROPERABILITY PROBLEMS Recommendations for linking new with existing apps. • Generate XSDs from the data types that the existing application exposes. • Use these XSDs to generate corresponding data type classes in the new application’s platform. • Follow the recommendations from the first scenario.
INTEROPERABILITY PROBLEMS Recommendations for linking two existing apps. • Solution is to use a common format and a single adapter: 1. Select one application’s data type as a common format for exchanging data. 2. Implement an adapter layer on the other application to convert its data type to the common format.
INTEROPERABILITY TECHNOLOGIES • There are several technologies used for J2EE and .NET interoperability. • Two most common technologies used are: • .NET Remoting • XML Web Services
INTEROPERABILITY TECHNOLOGIES • .NET Remoting: • Has the advantage of greater performance and easy implementation in .NET framework • However, JAVA Applications cannot directly connect using .NET remoting. • They require runtime bridges: Ja.NET and JNBridgePro.
INTEROPERABILITY TECHNOLOGIES • A simple .NET remoting implementation consists of the following items: • A remotable application object or server component. • A host application that listens for client requests to the remotable application component. • A client application component that makes requests to the remotable application component.
INTEROPERABILITY TECHNOLOGIES Implementing .NET Remoting involves the following phases: ● Determining the host application or environment. ● Creating the server component. ● Creating the client. ● Editing the configuration files.
CONCLUSION & FUTURE WORK • There are many other technologies which can be used for J2EE and .NET interoperability. • CORBA and Web Services are major among them. • .NET is a product and J2EE is a standard • If you use web services, .NET is nice but JAVA is scalable.