RMI CORBA Matt
2 RMI VS CORBA
3
4 J2EE
5 Sample Application
6
7 RMI-IIOP
8 Tools New rmic compiler Converts Java Interfaces to IDL Generates IIOP Stubs and tie classes New idlj compiler Maps IDL to Java Generates IIOP Stubs and tie classes
9 RMI to RMI-IIOP IIOP RMI Java Client RMI Java Server tie class rmic -iiop Complier stub class RMI Implementation
10 RMI to RMI-IIOP 1.Converting Server Extend your implementation class from PortableRemoteObject rather than UnicastRemoteObject: Use JNDI naming service rather than rmiregistry. 2.Converting Client Use JNDI naming service to locate object Use PortableRemoteObject.narrow() method rather than Java type cast.
11 IDL to RMI-IIOP Write Java IDL Use idlj compiler Generates Java Mappings Generates stubs and skeletons Implement Server Run Server and register with JNDI service Develop Client and test
12 RMI-IIOP With RMI and CORBA, programmers face a cruel choice: they must decide between RMI, with its easy programming features, and CORBA, with its broad interoperability. With RMI-IIOP, programmers can create applications in RMI that include CORBA connections RMI over IIOP (RMI-IIOP hereafter), developed jointly by IBM and Sun, is a new version of RMI (Remote Method Invocation) for IIOP (Internet Inter-ORB Protocol) that combines RMI's easy programming features with CORBA's interoperability. RMI and CORBA have developed independently as distributed-objects programming models. RMI, a foundation of the EJB and Jini technologies, was introduced as a Java-based, easy-to-use programming model for distributed objects. CORBA (the Common Object Request Broker Architecture), defined by the OMG (Object Management Group), is a well-known distributed-object programming model that supports a number of languages. The IIOP protocol connects CORBA products from different vendors, ensuring interoperability among them. RMI-IIOP is, in a sense, a marriage of RMI and CORBA.
13 RMI-IIOP 與 J2EE 1.3 相容的 server 都有 RMI-IIOP 實作功能, 可以協助處理各種網路問題
14 Before RMI-IIOP
15 It used to be difficult to choose between RMI (JRMP) and CORBA when starting a new project. If you selected RMI (JRMP), you got easy programming, but lost interoperability across multiple languages. If you selected CORBA, you got interoperability, but faced a more daunting programming task. Please connect the two
16 Java RMI clients can access RMI/IIOP objects through ordinary RMI interfaces. CORBA clients need equivalent interfaces in IDL.
17 Java RMI clients can access RMI/IIOP objects implemented as CORBA objects through ordinary RMI interfaces. CORBA clients and RMI/IIOP object implementations need equivalent interfaces in IDL.
18 Example of interoperability scenario between different vendors of EJB containers.
19 RMI/IIOP architecture.
20 RMI
21 RMI Architecture
22
23 Java IDL
24
25 CORBA
26 CORBA CORBA (Common Object Request Broker Architecture) 是在 1992 年由 OMG(Open Management Group) 組織提出的。那時的分佈式應用環境都採用 Client/Server 架構, CORBA 的應用很大程度的提高了分佈式應用軟體的開發效率。 CORBA 的 IDL 採用類 C++ 的定義,是公開的規範 IIOP 是 Internet CORBA 互換性的通訊協定 Object Request Broker (ORB) 是 CORBA 之間網路傳遞的基礎, ORB 負責找到 服務方法的物件,負責處理參數傳遞與傳回結果
27 CORBA IDL 用來發展與整合 CORBA 物件的服務, IDL 是一個可攜型的 規格語言。使用 IDL 編譯器可以產生前面所提到的 Stub 和 Skeleton 程式碼,並且可以對應許多高階程式語言(如: Java 、 Smalltalk 、 C++ 等等) 有了 IDL , CORBA 應用程式可以是由不同程式語言撰寫的 IDL 與 Java 結合