Upload
fay-tucker
View
222
Download
0
Tags:
Embed Size (px)
Citation preview
RMICORBA
Matt
2
RMI VS CORBA
3
4
J2EE
5
Sample Application
6
7
RMI-IIOP
8
Tools
• New rmic compilerConverts Java Interfaces to IDLGenerates IIOP Stubs and tie classes
• New idlj compilerMaps IDL to JavaGenerates IIOP Stubs and tie classes
9
RMI to RMI-IIOP
IIOP
RMI Java Client
RMI JavaServer
tie class
rmic -iiopComplier
stub class
RMIImplementation
10
RMI to RMI-IIOP
1. Converting Server Extend your implementation class from PortableRemot
eObject 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 tha
n Java type cast.
11
IDL to RMI-IIOP• Write Java IDL
• Use idlj compiler Generates Java MappingsGenerates 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 deci
de 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 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年由 OM
G(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結合