【正文】
facilities such as user interface facilities 169。Ian Sommerville 2021 Software Engineering, 6th edition. Chapter 11 Slide 36 CORBA application structure C O R B A s e r v i c e sO b j e c t r e q u e s t b r o k e rD o m a i nf a c i l i t i e sH o r i z o n t a lC O R B A f a c i l i t i e sA p p l i c a t i o no b j e c t s169。Ian Sommerville 2021 Software Engineering, 6th edition. Chapter 11 Slide 37 CORBA standards ? An object model for application objects ? A CORBA object is an encapsulation of state with a welldefined, languageneutral interface defined in an IDL (interface definition language) ? An object request broker that manages requests for object services ? A set of general object services of use to many distributed applications ? A set of mon ponents built on top of these services 169。Ian Sommerville 2021 Software Engineering, 6th edition. Chapter 11 Slide 38 CORBA objects ? CORBA objects are parable, in principle, to objects in C++ and Java ? They MUST have a separate interface definition that is expressed using a mon language (IDL) similar to C++ ? There is a mapping from this IDL to programming languages (C++, Java, etc.) ? Therefore, objects written in different languages can municate with each other 169。Ian Sommerville 2021 Software Engineering, 6th edition. Chapter 11 Slide 39 Object request broker (ORB) ? The ORB handles object munications. It knows of all objects in the system and their interfaces ? Using an ORB, the calling object binds an IDL stub that defines the interface of the called object ? Calling this stub results in calls to the ORB which then calls the required object through a published IDL skeleton that links the interface to the service implementation 169。Ian Sommerville 2021 Software Engineering, 6th edition. Chapter 11 Slide 40 ORBbased object munications o 1 o 2S ( o 1 ) S ( o 2 )I D Ls t u bI D Ls k e l e t o nO b j e c t R e q u e s t B r o k e r169。Ian Sommerville 2021 Software Engineering, 6th edition. Chapter 11 Slide 41 InterORB munications ? ORBs are not usually separate programs but are a set of objects in a library that are linked with an application when it is developed ? ORBs handle munications between objects executing on the sane machine ? Several ORBS may be available and each puter in a distributed system will have its own ORB ? InterORB munications are used for distributed object calls 169。Ian Sommerville 2021 Software Engineering, 6th edition. Chapter 11 Slide 42 InterORB munications o 1 o 2S ( o 1 ) S ( o 2 )I D LI D LO b j e c t R e q u e s t B r o k e ro 3 o 4S ( o 3 ) S ( o 4 )I D LI D LO b j e c t R e q u e s t B r o k e rN e t w o r k169。Ian Sommerville 2021 Software Engineering, 6th edition. Chapter 11 Slide 43 CORBA services ? Naming and trading services ? These allow objects to discover and refer to other objects on the work ? Notification services ? These allow objects to notify other objects that an event has occurred ? Transaction services ? These support atomic transactions and rollback on failure 169。Ian Sommerville 2021 Software Engineering, 6th edition. Chapter 11 Slide 44 ? Almost all new large systems are distributed systems ? Distributed systems support resource sharing, openness, concurrency, scalability, fault tolerance and transparency ? Clientserver architectures involve services being delivered by servers to programs operating on clients ? User interface software always runs on the client and data management on the server Key points 169。Ian Sommerville 2021 Software Engineering, 6th edition. Chapter 11 Slide 45 Key points ? In a distributed object architecture, there is no distinction between clients and servers ? Distributed object systems require middleware to handle object munications ? The CORBA standards are a set of middleware standards that support distributed object architectures