1 / 27

A Comparison of CORBA and Ada’s Distributed Systems Annex

A Comparison of CORBA and Ada’s Distributed Systems Annex. By Andrew Berns. CORBA vs DSA. Introduction/Background CORBA Overview DSA Overview Paper Findings Conclusion Questions. Background. Undergraduate research project Investigation into CORBA and DSA from a beginner’s point of view.

gamba
Download Presentation

A Comparison of CORBA and Ada’s Distributed Systems Annex

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Comparison of CORBA and Ada’s Distributed Systems Annex By Andrew Berns

  2. CORBA vs DSA • Introduction/Background • CORBA Overview • DSA Overview • Paper Findings • Conclusion • Questions

  3. Background • Undergraduate research project • Investigation into CORBA and DSA from a beginner’s point of view

  4. CORBA Background • 1991 by the Object Management Group (OMG) • Object-oriented approach to distributed systems • Features: • Object-oriented techniques • Language interoperability • Transparent communication layer

  5. CORBA: The Heart • Object Request Broker (ORB) • Handles interactions between objects • Provides extra services (naming, etc.) • Vendors create different ORBs

  6. CORBA: Object Definition • Interface Definition Language (IDL) • Defines the interface of distributed objects • Definition only, no implementation • Uses a subset of common language features

  7. Sample IDL File interface PrimeFinderServer { typedef long Integer_Array[200]; void Initialize( in long Limit ); Integer_Array Get_Array( ); boolean Finished( ); void Put_Prime( in Integer_Array primes, in long Count ); boolean Ready( );};

  8. CORBA: Communication • General Inter-ORB Protocol (GIOP) • Interface the ORB uses to communicate • May use any communication mechanism • Internet Inter-ORB Protocol (IIOP) – TCP/IP • UNIX Inter-ORB Protocol (UIOP) – UNIX Sockets • Allows the developer to select the right tool

  9. CORBA: Servants, Skeletons, Stubs • Stub: for the client • Generated by the compiler for clients to use the distributed object • Skeleton: for the object (with the Portable Object Adapter (POA)) • Generated by the compiler for implementation to connect with ORB • Servant: actual implementation of the object • Done in a specific programming language

  10. CORBA: All Together Client Client IDL Stub IDL Stub ORB Portable Object Adapter IDL Skeleton Implementation (Servant)

  11. DSA Background • Annex E of the Ada 95 Language Specification • Distributed systems created through extension of existing language features • Features: • Availability of many of Ada’s constructs • Compilation and execution with or without distributed features

  12. DSA: The Heart • Partitions • Each distributed “piece” of a program is represented by a partition • Distributed communication occurs between these partitions • A partition exists on a physical node, and a node may contain many partitions • Each partition has different packages with different capabilities, depending on how the developer has designated them

  13. DSA: Package Pragmas • Remote_Call_Interface • Receives remote procedure calls from other partitions • Shared_Passive • Shared storage throughout the system • Remote_Types • Defines types to be used across the system

  14. DSA: Communication • Partition Communication Subsystem (PCS) • How each partition communicates • Specification defined by Ada Language Specification • Implementation left up to developer • Allows freedom to choose appropriate protocol

  15. DSA: Assembling the Pieces • After program creation, assembly is done with a configuration tool • Decides packages in partitions, and nodes

  16. Sample DSA Configuration File configuration distprime is Starter : Partition := (PrimeFinderStarter, PrimeFinderServer); procedure PrimeFinderStarter is in Starter; Client_1 : Partition := (PrimeFinderClient); for Client_1'Host use "illinoiscentral"; for Client_1'Directory use "/usr/distributed/ada"; Client_2 : Partition := (PrimeFinderClient); for Client_2'Host use "pennsylvania"; for Client_2'Directory use "/usr/distributed/ada"; procedure PrimeFinderClient; for Client_1'Main use PrimeFinderClient; for Client_2'Main use PrimeFinderClient; end distprime;

  17. DSA: All Together Physical Node 1 Shared_Passive Partition 1 Network Physical Node 2 Remote_Call_Interface Remote_Call_Interface Partition 2 Partition 3

  18. Software Tools • CORBA: Wide Availability • Many ORB implementations exist – both for Ada and other languages, such as Java and C++ • Here, chose to use AdaCore’s PolyORB • DSA: Limited Availability • A very limited selection of DSA implementations • Here, chose to use AdaCore’s GLADE

  19. Findings: Qualitative • Easy to Learn: DSA • No need to worry about IDL • Easy to understand program paradigm

  20. Findings: Qualitative • Program Creation: DSA • Much less “overhead” • Static partitions, however

  21. Findings: Qualitative • Language Interoperability: CORBA • Built for language interoperability

  22. Findings: Qualitative • Documentation: CORBA • Quite popular in many languages • A large number of vendor implementations available

  23. Findings: Qualitative • Design and Development: DSA • Allows programs to run distributed or non-distributed transparently • Compiling allowed on any compiler

  24. Findings: Quantitative

  25. Findings: Quantitative

  26. Conclusion • DSA is not inadequate when compared with CORBA • Seems to be a lot of untapped potential • Ada’s strong real-time embedded systems appeal • Ease of distribution after program creation

  27. Questions

More Related