Distributed Systems
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
© City University London, Dept. of Computing
Distributed Systems / 6 - 10
1.1 Polylingual Applications
♦ Distributed computing frameworks, such as CORBA are not only used for the construction and a-priori integration of new components. They are probably more often used for the a-posteriori integration of applications from existing components. ♦ Polylingual applications have components in different programming languages. ♦ To achieve interoperability between these components, language bindings are needed that map different language concepts onto each other. ♦ Problem: with n different languages, n(n-1) different language bindings needed. ♦ Solution: One language (such as IDL) as a mediator. Requires only n bindings.
© City University London, Dept. of Computing
Distributed Systems / 6 - 9
1 IDL Programming Language Bindings
1 Polylingual applications 2 Standardisation of bindings 3 Available bindings 4 What bindings need to address 5 An example: IDL/Java
♦ Some Self Assessment questions up on CitySpace
© City University London, Dept. of Computing
Distributed Systems / 6 - 2
Taking Stock: Module Outline
1 Motivation 2 Distributed Software Engineering 3 Communication 4 RMI 5 CORBA vs RMI 6 Building Distributed Systems with CORBA Common Problems in Distributed Systems 7 Naming and Trading 8 Concurrent Processes and Threads 9 Transactions 10 Security
© City University London, Dept. of Computing
Distributed Systems / 6 - 13
1.3 Available Bindings
♦C ♦ C++ ♦ Smalltalk ♦ Ada-95 ♦ OO Cobol ♦ Java
Transactions Security Lifecycle
CORBA facilities
Naming
trading concurrency
CORBA services
Distributed Systems / y London, Dept. of Computing
Distributed Systems / 6 - 3
© City University London, Dept. of Computing
0.0 CORBA IDL
♦ CORBA IDL is very expressive and widely available on many platforms for different programming languages. This has motivated the use of CORBA as a mechanism to explain, study and experiment with principles of distributed systems
© City University London, Dept. of Computing
Distributed Systems / 6 - 11
1.1 Polylingual Applications with IDL
Client side
•Multiple polylingual clients accessing same object Object Implementation Side C++ Obj. Impl.
•IDL/C++ Binding used to implement exported operations
Distributed Systems / 6 - 12
1.2 Standardisation of Bindings
♦ Facilitate portability: » If different ORB vendors used different programming language bindings, neither object implementations nor clients of these implementations would be portable. As this is very undesirable, the OMG has standardised a number of language bindings. » ORB vendors must respect these language bindings to be able to claim that they are CORBA compliant. ♦ Decrease learning curve of developers: » Developers who studied one language binding do not have to learn the binding again if they switch to an ORB from another vendor.
Distributed Systems
Session 6: Implementing Distributed Systems with OMG/CORBA
Christos Kloukinas
Dept. of Computing City University London
© City University London, Dept. of Computing
0.2 Last session: CORBA Architecture
© City University London, Dept. of Computing
Distributed Systems / 6 - 6
0.3 Last session Summary
♦ Revisited CORBA/IDL ♦ Static Vs Dynamic Invocation ♦ Interface Repository ♦ Dynamic Invocation Interface (DII) ♦ Dynamic Skeleton Interface (DSI). ♦ Basic Object Adapter ♦ CORBA Communication and the IIOP Protocol ♦ Hello World Example ♦ Compare and Contrast, CORBA and JAVA RMI
Distributed Systems / 6 - 1
Announcements
♦ Milestone 2 Due today
» Server Implementation » A least version 1 » 1 submission per pair » Identify your partner in the submission
© City University London, Dept. of Computing
Distributed Systems / 6 - 4
0.1 Last session: Object Management Architecture
Application Objects Object Request Broker
© City University London, Dept. of Computing
Distributed Systems / 6 - 8
Outline
♦ To actually develop distributed systems an IDL is not sufficient. The operations declared at the interface need to be implemented in order to be used. ♦ For both implementation and use of distributed operations, bindings to existing programming languages need to be defined. The standardisation of these programming language bindings will then facilitate the interoperability between distributed objects that are implemented in different programming languages to form so called polylingual applications. ♦ A further prerequisite for distributed object-oriented applications is the ability to create distributed objects in a location transparent way. Moreover, objects may have to be copied or relocated and during that may have to be migrated to different platforms. Also objects may have to be removed.
Java Client
IDL
Infrastructure
IDL
•IDL/JAVA binding enables client to invoke exported operations on server object
© City University London, Dept. of Computing
© City University London, Dept. of Computing
Distributed Systems / 6 - 7
Outline of Session 6
♦ IDL programming language bindings. ♦ Difference between centralised and distributed object lifecycle. ♦ CORBA Lifecycle Service.
Distributed Systems / 6 - 10
1.1 Polylingual Applications
♦ Distributed computing frameworks, such as CORBA are not only used for the construction and a-priori integration of new components. They are probably more often used for the a-posteriori integration of applications from existing components. ♦ Polylingual applications have components in different programming languages. ♦ To achieve interoperability between these components, language bindings are needed that map different language concepts onto each other. ♦ Problem: with n different languages, n(n-1) different language bindings needed. ♦ Solution: One language (such as IDL) as a mediator. Requires only n bindings.
© City University London, Dept. of Computing
Distributed Systems / 6 - 9
1 IDL Programming Language Bindings
1 Polylingual applications 2 Standardisation of bindings 3 Available bindings 4 What bindings need to address 5 An example: IDL/Java
♦ Some Self Assessment questions up on CitySpace
© City University London, Dept. of Computing
Distributed Systems / 6 - 2
Taking Stock: Module Outline
1 Motivation 2 Distributed Software Engineering 3 Communication 4 RMI 5 CORBA vs RMI 6 Building Distributed Systems with CORBA Common Problems in Distributed Systems 7 Naming and Trading 8 Concurrent Processes and Threads 9 Transactions 10 Security
© City University London, Dept. of Computing
Distributed Systems / 6 - 13
1.3 Available Bindings
♦C ♦ C++ ♦ Smalltalk ♦ Ada-95 ♦ OO Cobol ♦ Java
Transactions Security Lifecycle
CORBA facilities
Naming
trading concurrency
CORBA services
Distributed Systems / y London, Dept. of Computing
Distributed Systems / 6 - 3
© City University London, Dept. of Computing
0.0 CORBA IDL
♦ CORBA IDL is very expressive and widely available on many platforms for different programming languages. This has motivated the use of CORBA as a mechanism to explain, study and experiment with principles of distributed systems
© City University London, Dept. of Computing
Distributed Systems / 6 - 11
1.1 Polylingual Applications with IDL
Client side
•Multiple polylingual clients accessing same object Object Implementation Side C++ Obj. Impl.
•IDL/C++ Binding used to implement exported operations
Distributed Systems / 6 - 12
1.2 Standardisation of Bindings
♦ Facilitate portability: » If different ORB vendors used different programming language bindings, neither object implementations nor clients of these implementations would be portable. As this is very undesirable, the OMG has standardised a number of language bindings. » ORB vendors must respect these language bindings to be able to claim that they are CORBA compliant. ♦ Decrease learning curve of developers: » Developers who studied one language binding do not have to learn the binding again if they switch to an ORB from another vendor.
Distributed Systems
Session 6: Implementing Distributed Systems with OMG/CORBA
Christos Kloukinas
Dept. of Computing City University London
© City University London, Dept. of Computing
0.2 Last session: CORBA Architecture
© City University London, Dept. of Computing
Distributed Systems / 6 - 6
0.3 Last session Summary
♦ Revisited CORBA/IDL ♦ Static Vs Dynamic Invocation ♦ Interface Repository ♦ Dynamic Invocation Interface (DII) ♦ Dynamic Skeleton Interface (DSI). ♦ Basic Object Adapter ♦ CORBA Communication and the IIOP Protocol ♦ Hello World Example ♦ Compare and Contrast, CORBA and JAVA RMI
Distributed Systems / 6 - 1
Announcements
♦ Milestone 2 Due today
» Server Implementation » A least version 1 » 1 submission per pair » Identify your partner in the submission
© City University London, Dept. of Computing
Distributed Systems / 6 - 4
0.1 Last session: Object Management Architecture
Application Objects Object Request Broker
© City University London, Dept. of Computing
Distributed Systems / 6 - 8
Outline
♦ To actually develop distributed systems an IDL is not sufficient. The operations declared at the interface need to be implemented in order to be used. ♦ For both implementation and use of distributed operations, bindings to existing programming languages need to be defined. The standardisation of these programming language bindings will then facilitate the interoperability between distributed objects that are implemented in different programming languages to form so called polylingual applications. ♦ A further prerequisite for distributed object-oriented applications is the ability to create distributed objects in a location transparent way. Moreover, objects may have to be copied or relocated and during that may have to be migrated to different platforms. Also objects may have to be removed.
Java Client
IDL
Infrastructure
IDL
•IDL/JAVA binding enables client to invoke exported operations on server object
© City University London, Dept. of Computing
© City University London, Dept. of Computing
Distributed Systems / 6 - 7
Outline of Session 6
♦ IDL programming language bindings. ♦ Difference between centralised and distributed object lifecycle. ♦ CORBA Lifecycle Service.