You are previewing Application Interoperability: Microsoft® .NET and J2EE.
O'Reilly logo
Application Interoperability: Microsoft® .NET and J2EE

Book Description

Learn best practices and real-world techniques for enabling application interoperability between the Microsoft .NET and Java 2 Enterprise Edition (J2EE) development platforms for enterprise-level business solutions.

Table of Contents

  1. Application Interoperability: Microsoft® .NET and J2EE
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. 1. Introduction
      1. Welcome
      2. Who Should Read This Book
      3. Prerequisites
      4. Document Conventions
      5. How to Use This Book
        1. Chapter 2: "Understanding Enterprise Platforms"
        2. Chapter 3: "Interoperability Fundamentals"
        3. Chapter 4: "Interoperability Technologies: Point to Point"
        4. Chapter 5: "Interoperability Technologies: Data Tier"
        5. Chapter 6: "Implementing Interoperability Design Elements"
        6. Chapter 7: "Integrating .NET in the Presentation Tier"
        7. Chapter 8: "Integrating .NET in the Business Tier"
        8. Chapter 9: "Implementing Asynchronous Interoperability"
      6. What Is Microsoft .NET?
      7. What Is Java 2 Enterprise Edition?
      8. Identifying the Business Need for Interoperability
        1. Achieving Reuse of Existing Systems
        2. Implementing Proof of Concept Studies
        3. Migrating to Microsoft .NET
        4. Achieving Lower Project Costs
      9. Defining Interoperability
        1. Understanding Interoperability Scenarios
          1. Integrating .NET Components in the Presentation Tier
          2. Integrating .NET Components in the Business Tier
          3. Implementing Asynchronous Interoperability
        2. Listing Interoperability Technologies
        3. Linking Interoperability Technologies to Business Scenarios
      10. Introducing the Sample Application
      11. Summary
      12. References
    3. 2. Understanding Enterprise Platforms
      1. Introduction
      2. Microsoft .NET Fundamentals for J2EE Developers
        1. Comparing .NET to J2EE
        2. Investigating the .NET Framework
          1. Common Language Runtime
          2. JIT Compilation to Native Code
          3. Cross Language Integration
          4. Memory Management and Garbage Collection
          5. Managed Code Operation
          6. Just-In-Time Debugging
          7. Exception Handling
          8. Security
          9. Runtime Type Safety Checks
          10. Thread Management
          11. Common Type System
          12. The Global Assembly Cache
          13. Strong Names
          14. .NET Remoting
        3. Building a .NET-based Application
          1. Using Visual Studio .NET 2003
          2. Using Command Line Compilers
          3. Locating Assemblies with the Global Assembly Cache
        4. Understanding Attributes
        5. Creating Web Applications
        6. Hosting Components
          1. Running as a Windows Service
          2. Hosting through IIS
          3. Using Component Services
        7. Supporting Web Services
        8. Connecting to Databases
        9. Implementing Collections
        10. Accessing Directory Services
        11. Reflection
      3. J2EE Fundamentals for .NET Developers
        1. Understanding the Java Platform
        2. Implementing the Java SDK
        3. Building a Java Application
        4. Locating and Sharing Classes
        5. Implementing Other Environment Variables
        6. Using Java Integrated Design Environments
        7. Creating Web Applications
        8. Hosting Components
        9. Building Enterprise JavaBeans
        10. Deploying Applications
      4. Comparing .NET and J2EE Features
      5. Summary
      6. References
    4. 3. Interoperability Fundamentals
      1. Introduction
      2. Facing Interoperability Challenges
      3. Using Serialization
        1. Understanding Binary Serialization
        2. Understanding XML Serialization
          1. Parsing XML Documents
          2. Limitations of Parsing XML
          3. Implementing XML Serialization on the .NET Platform
          4. Serializing .NET Objects into XML
          5. Deserializing Objects from XML to .NET
          6. Implementing XML Serialization for the Java Platform
          7. Serializing Java Objects into XML
          8. Deserializing Objects from XML to Java
      4. Using XML Schemas to Ensure Type Compatibility
        1. Understanding XML Schema Documents
          1. Using XSDs to Ensure Class Compatibility
          2. Mapping XSDs and Classes in .NET
          3. Mapping XSDs and Classes in Java
        2. Mapping XSD Types
      5. Data Exchange Recommendations
        1. Linking New Applications
        2. Linking a New Application to an Existing Application
        3. Linking Existing Applications
      6. Summary
      7. References
    5. 4. Interoperability Technologies: Point to Point
      1. Using .NET Remoting for Connectivity
        1. Understanding .NET Remoting
        2. Implementing .NET Remoting
          1. Determining the Host Application or Environment
          2. Creating the Server Component
          3. Creating the Client Component
          4. Editing the Configuration Files
          5. Server Component Configuration
          6. Client Component Configuration
      2. Implementing Runtime Bridges
        1. Evaluating Ja.NET
          1. Accessing a .NET Framework Server from Java
          2. Accessing IIS Components from Java
          3. Accessing an EJB from .NET Framework
          4. Ja.NET Toolset
          5. Linking Types between .NET Framework and Java
          6. Understanding Ja.NET Events and Exceptions
          7. Implementing Ja.NET Best Practices
          8. Upgrade to Version 1.5
          9. Use Binary Protocol for .NET Remoting
          10. Deploy WAR Packages on the Application Server to Access EJBs and JMS
          11. Understand .NET Remoting to Facilitate Good Design Practice
          12. Comprehend the Differences between PBR and PBV
        2. Evaluating JNBridgePro
          1. Integrating JNBridgePro with .NET Remoting
          2. Understanding JNBridgePro Features
          3. Selecting JNBridgePro
          4. Implementing JNBridgePro Best Practices
          5. Upgrade to Version 1.3
          6. Use the Binary Communications Protocol
          7. Place the Java-side Component inside the J2EE Application Server
          8. Place Java-side and .NET Framework-side Components on the Same Computer
          9. Reduce Round Trips
          10. Implement Return Arrays
          11. Use Value Objects
          12. Use Directly Mapped Collections
          13. Generate All Supporting Proxies
      3. Connecting with Web Services
        1. Understanding Web Services
          1. Transport (HTTP)
          2. Encoding (XML)
          3. Standard Structure (SOAP)
          4. Description (WSDL)
          5. Discovery (UDDI)
        2. Web Services Interoperability Organization
          1. Implementing the Web Services Basic Profile
        3. Implementing Web Services
          1. Creating Web Services in .NET Framework
          2. Exposing an Existing Class as a Web Service
          3. Creating the Web Services Client
          4. Implementing a .NET Framework Web Service Client
          5. Locating an XML Web Service and Adding a Web Reference
          6. Generating a Proxy Class
          7. Using the Proxy Class
          8. Referencing with Dynamic and Static URLs
          9. Calling Web Service Methods
        4. Creating Web Services in J2EE
          1. Java Web Services Stacks
          2. Creating a Web Service in Java
          3. Consuming a Web Service in Java
        5. Securing Web Services
        6. Using Universal Description, Discovery, and Integration
          1. Interoperability Benefits Using UDDI
          2. UDDI Registries
        7. Implementing Web Services Interoperability Best Practices
        8. Comparing .NET Remoting to Web Services
      4. Summary
      5. References
    6. 5. Interoperability Technologies: Data Tier
      1. Introduction
      2. Linking through a Shared Database
        1. Connecting with JDBC
          1. Connecting to SQL Server 2000 with JDBC
        2. Connecting with ADO.NET
          1. Connecting to Microsoft SQL Server 2000 with ADO.NET
        3. Sharing Data Between ADO.NET and JDBC
          1. Implementing Data Access Logic Components
          2. Benefits of Implementing Data Access Logic Components
      3. Implementing Asynchronous Interoperability
        1. Connecting with Web Services Using Asynchronous Calls
          1. Using Callbacks in Client Applications
        2. Using Message Queues for Asynchronous Interoperability
          1. Using Microsoft Message Queuing
          2. Administering MSMQ
          3. Choosing Between Private and Public Queues
          4. Connecting to MSMQ from .NET Framework Applications
          5. MessageQueue Class
          6. Message Class
          7. MessageEnumerator Class
          8. Working with MSMQ Queues
          9. Sending Queue Messages
          10. Retrieving Queue Messages
          11. Connecting to MSMQ from J2EE
          12. Using a Java-to-COM Bridge
          13. Using a JMS Provider for MSMQ
          14. Creating a Web Service Interface
          15. Reliable Messaging
          16. Transactional Support
          17. True Callback
          18. Using IBM WebSphere MQ
          19. Administering WebSphere MQ
          20. Accessing WebSphere MQ from a Remote Computer
          21. Understanding the Role of JMS
          22. Connecting to WebSphere MQ from J2EE Applications
          23. Using the WebSphere MQ Classes for Java
          24. Using the WebSphere MQ Classes for JMS for Point-to-Point Messaging
          25. Using WebSphere MQ Classes for JMS for Publish/Subscribe Messaging
          26. Connecting to WebSphere MQ from .NET Framework Applications
          27. Using the WebSphere MQ Classes for Microsoft .NET
          28. Using JMS and Third-Party Bridging Products
          29. Accessing JMS Messages from .NET Framework Clients
      4. Using Host Integration Server 2000
        1. Bridging MSMQ and WebSphere MQ with HIS 2000
          1. Formatting Messages
          2. Sending Messages from .NET Framework to Java Applications
          3. Sending Messages from Java to .NET Framework Applications
        2. Implementing the MSMQ-MQSeries Bridge
      5. Summary
      6. References
    7. 6. Implementing Interoperability Design Elements
      1. Introduction
      2. Understanding the XBikes Sample Application
      3. Reviewing .NET Framework and J2EE Application Architecture
        1. Implementing Presentation Tier Elements
        2. Implementing Business Tier Elements
          1. Business Components
          2. Business Workflows
          3. Business Entities
          4. Business Entities in XBikes
          5. Service Interfaces
          6. Using the Façade Design Pattern
          7. Business Façades in XBikes
        3. Implementing Data Access Logic Tier Components
          1. Data Access Logic Components
          2. Data Access Logic Service Façade
          3. Databases
        4. Implementing Message Queuing Services
        5. XBikes Application Architecture for .NET Framework and J2EE
        6. Linking to the Reference Design
      4. Implementing Interoperability
        1. Describing Interoperability Connection Points
        2. Interoperability Layers and Components
          1. Service Interfaces
          2. Interoperability Adapters
          3. Interoperability Adapter Factory
          4. Adding Interoperability Components to a Multi-Tiered application
      5. Implementing Interoperability in XBikes
        1. Adding J2EE Presentation to Business Tier Interoperability
          1. J2EE Service Interfaces
          2. J2EE Use Case Interoperability Adapters
          3. J2EE Use Case Interoperability Adapter Factory
          4. J2EE XML Configuration File
        2. Adding J2EE Business to Data Tier Interoperability
          1. J2EE Service Interfaces
          2. J2EE Resource Interoperability Adapters
          3. J2EE Resource Interoperability Factories
          4. J2EE XML Configuration File
        3. Adding .NET Framework Presentation to Business Tier Interoperability
          1. .NET Framework Service Interfaces
          2. .NET Framework Use Case Interoperability Adapters
          3. .NET Framework Use Case Interoperability Adapter Factory
          4. .NET Framework XML Configuration File
        4. Adding .NET Framework Business to Data Tier Interoperability
          1. .NET Framework Service Interfaces
          2. .NET Framework Resource Interoperability Adapters
          3. .NET Framework Resource Interoperability Factories
          4. .NET Framework XML Configuration File
      6. Summary
      7. References
    8. 7. Integrating .NET in the Presentation Tier
      1. Introduction
        1. Determining Data Exchange Formats and Types
        2. Designing and Building the Service Interface
        3. Designing and Building the Interoperability Adapters
      2. Using Web Services for Interoperability
        1. Deciding on a Data Format
        2. Building the Service Interface in J2EE
          1. Creating the Data Types and XML Mapping
          2. Creating the Java Helper Class
          3. Creating and Exposing a Java Class as a Web Service
        3. Creating the Interoperability Adapters in .NET
          1. Creating the XSD based Data Classes
          2. Creating the .NET Web Service Proxies
          3. Creating the .NET Interoperability Adapters
      3. Using JNBridgePro for Interoperability
        1. Deciding on a Data Format
        2. Building the Service Interface for JNBridgePro
        3. Building the Interoperability Adapters using JNBridgePro
          1. Creating the Java Proxy Classes
          2. Implementing the Interoperability Adapters
      4. Using Ja.NET for Interoperability
        1. Deciding on a Data Format
        2. Building the Service Interface for Ja.NET
        3. Building the Interoperability Adapters using Ja.NET
          1. Creating the Java Proxy Classes
          2. Implementing the Interoperability Adapters
      5. Summary
      6. References
    9. 8. Integrating .NET in the Business Tier
      1. Introduction
        1. Determining Data Exchange Formats and Types
        2. Designing and Building the Service Interface
        3. Designing and Building the Interoperability Adapters
      2. Using Web Services for Interoperability
        1. Deciding on a Data Format
        2. Building the Service Interface in .NET Framework
          1. Defining .NET Framework Data Types based on an XML Schema
          2. Creating the .NET Framework Web Service
        3. Creating the Interoperability Adapters in J2EE
          1. Creating Java Data Types and XML Mapping from the XML Schema
          2. Creating Java Web Service Proxies
          3. Creating the J2EE Interoperability Adapters
      3. Using Ja.NET for Interoperability
        1. Deciding on a Data Format
        2. Building the Service Interface for Ja.NET
        3. Creating the Interoperability Adapters using Ja.NET
      4. Summary
    10. 9. Implementing Asynchronous Interoperability
      1. Introduction
      2. Determine Data Exchange Formats and Data Types
      3. Designing and Building the Service Interface
      4. Designing and Building the Asynchronous Interoperability Adapters
      5. Using the MSMQ-MQSeries Bridge
        1. Configuring the Message Queues
        2. Selecting a Data Format
        3. Creating the Message Consumer
          1. Creating the .NET Framework Message Consumer
          2. Creating the J2EE Message Consumer
        4. Creating the Interoperability Adapter
          1. Creating the .NET Framework Asynchronous Interoperability Adapter
          2. Creating the J2EE Asynchronous Interoperability Adapter
      6. Using JNBridgePro
        1. Deciding on a Data Format for JNBridgePro
        2. Creating the Message Consumer for JNBridgePro
        3. Creating the Asynchronous Interoperability Adapter for JNBridgePro
      7. Using Ja.NET
        1. Configuring the Message Queues
        2. Deciding on a Data format for Ja.NET
        3. Creating the Message Consumer for Ja.NET
        4. Creating the Ja.NET Asynchronous Interoperability Adapter
      8. Summary
      9. References
    11. A. Installing XBikes on J2EE
      1. Introduction
      2. Deploying XBikes on WebSphere Application Developer Studio 5.0
        1. Configuring IBM WebSphere MQ 5.3
        2. Creating the XBikesQ Queue
        3. Installing the XBikes Sample Code
        4. Configuring the JMS Queues
        5. Running XBikes
        6. Using WebSphere Studio Application Developer 5.1 with XBikes
      3. Deploying XBikes on WebSphere Application Server 5.0 on a Single Computer
        1. Installing WebSphere Application Server 5.0
        2. Installing and Configuring IBM WebSphere MQ 5.3
        3. Creating the XBikesQ Queue
        4. Installing the XBikes Sample Code
        5. Running the XBikes Application
      4. Deploying XBikes on WebSphere Application Server 5.0 on Multiple Computers
        1. Data Tier Computer Setup
        2. Installing XBikes into the Data Tier
        3. Business Tier Computer Setup
        4. Presentation Tier Computer Setup
        5. Configuring the XBikes Application
        6. Running the XBikes Application
      5. Changing Interoperability Methods
        1. Using Web Services Adapters
        2. Using Web Service Adapters between the Web and Business Tiers
        3. Using Web Service Adapters between the Business and Data Tiers
        4. Using Ja.NET Adapters
        5. Using Ja.NET Adapters between the J2EE Web Tier and the .NET Framework Business Tier
        6. Using Ja.NET Adapters between the J2EE Business Tier and the .NET Framework Data Tier
        7. Using Message Queue Adapters
      6. Manual Installation Instructions
        1. Manually Configuring XBikes on IBM Application Server
        2. Restarting WebSphere Application Server
        3. Testing the XBikes Application
        4. Preparing XBikes for Multi-Tier Deployment
        5. Deploying XBikes on the Presentation Tier Computer
        6. Deploying the Business Tier Components
        7. Configuring the Data Tier Computer
        8. Testing the XBikes Application
    12. B. Installing XBikes on .NET
      1. Introduction
      2. Deploying XBikes on a Single Computer
        1. Installing the XBikes Application
        2. Configuring the XBikes Web Application
        3. Running XBikes on a Single Tier
      3. Deploying XBikes on Multiple Computers
        1. Identifying Requirements for Each Computer
          1. Presentation Tier Computer Setup
          2. Installing XBikes on the Presentation Tier
          3. Configuring XBikes on the Presentation Tier
          4. Business Tier Computer Setup
          5. Installing XBikes on the Business Tier
          6. Configuring XBikes on the Business Tier
          7. Data Tier Computer Setup
          8. Installing XBikes on the Data Tier
          9. Configuring XBikes on the Data Tier
        2. Running XBikes on Multiple Computers
      4. Changing Interoperability Methods
        1. Using Web Service Adapters
          1. Using Web Service Adapters between the Web and Business Tiers
          2. Using Web Service Adapters between the Business and Data Tiers
        2. Using Ja.NET Adapters
          1. Reconfiguring the J2EE Application for Ja.NET
          2. Using Ja.NET Adapters between the Web and Business Tiers
          3. Using Ja.NET Adapters between the Business and Data Tiers
        3. Using JNBridgePro Adapters
          1. Using JNBridgePro Adapters between the Web and Business Tiers
          2. Using JNBridgePro Adapters between the Business and Data Tiers
      5. Uninstalling XBikes
    13. C. Contributors
      1. Development
      2. Test
      3. Edit
      4. Review
    14. Index
    15. SPECIAL OFFER: Upgrade this ebook with O’Reilly