A Comparison of CORBA and Ada’s Distributed Systems Annex

Preview:

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

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

CORBA Background

• 1991 by the Object Management Group (OMG)

• Object-oriented approach to distributed systems

• Features:– Object-oriented techniques– Language interoperability– Transparent communication layer

CORBA: The Heart

• Object Request Broker (ORB)

– Handles interactions between objects

– Provides extra services (naming, etc.)

– Vendors create different ORBs

CORBA: Object Definition

• Interface Definition Language (IDL)– Defines the interface of distributed objects– Definition only, no implementation– Uses a subset of common language features

Sample IDL Fileinterface 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( );};

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

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

CORBA: All Together

Client Client

IDL Stub IDL Stub

ORB

Portable Object Adapter

IDL Skeleton

Implementation(Servant)

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

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

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

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

DSA: Assembling the Pieces

• After program creation, assembly is done with a configuration tool– Decides packages in partitions, and nodes

Sample DSA Configuration Fileconfiguration 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;

DSA: All TogetherPhysical Node 1

Partition 1

Shared_Passive

Network

Physical Node 2

Partition 2

Remote_Call_Interface

Partition 3

Remote_Call_Interface

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

Findings: Qualitative

• Easy to Learn: DSA– No need to worry about IDL– Easy to understand program paradigm

Findings: Qualitative

• Program Creation: DSA– Much less “overhead”– Static partitions, however

Findings: Qualitative

• Language Interoperability: CORBA– Built for language interoperability

Findings: Qualitative

• Documentation: CORBA– Quite popular in many languages– A large number of vendor implementations

available

Findings: Qualitative

• Design and Development: DSA– Allows programs to run distributed or non-

distributed transparently– Compiling allowed on any compiler

Findings: QuantitativeSingle-Node Performance

0

10

20

30

40

50

60

70

80

90

100

1 2 3 4 5 6 7 8 9

Processes

Tim

e CORBADSA

Findings: QuantitativeMultiple-Node Performance

0

10

20

30

40

50

60

70

80

1 2 3 4 5 6 7 8

Nodes

Tim

e CORBADSA

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

Questions

Recommended