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

A Comparison of CORBA and Ada’s Distributed Systems Annex

  • Upload
    gamba

  • View
    46

  • Download
    1

Embed Size (px)

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

Page 1: A Comparison of CORBA and Ada’s Distributed Systems Annex

A Comparison of CORBA and Ada’s Distributed Systems

Annex

By Andrew Berns

Page 2: A Comparison of CORBA and Ada’s Distributed Systems Annex

CORBA vs DSA

• Introduction/Background

• CORBA Overview

• DSA Overview

• Paper Findings

• Conclusion

• Questions

Page 3: A Comparison of CORBA and Ada’s Distributed Systems Annex

Background

• Undergraduate research project

• Investigation into CORBA and DSA from a beginner’s point of view

Page 4: A Comparison of CORBA and Ada’s Distributed Systems Annex

CORBA Background

• 1991 by the Object Management Group (OMG)

• Object-oriented approach to distributed systems

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

Page 5: A Comparison of CORBA and Ada’s Distributed Systems Annex

CORBA: The Heart

• Object Request Broker (ORB)

– Handles interactions between objects

– Provides extra services (naming, etc.)

– Vendors create different ORBs

Page 6: A Comparison of CORBA and Ada’s Distributed Systems Annex

CORBA: Object Definition

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

Page 7: A Comparison of CORBA and Ada’s Distributed Systems Annex

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

Page 8: A Comparison of CORBA and Ada’s Distributed Systems Annex

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

Page 9: A Comparison of CORBA and Ada’s Distributed Systems Annex

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

Page 10: A Comparison of CORBA and Ada’s Distributed Systems Annex

CORBA: All Together

Client Client

IDL Stub IDL Stub

ORB

Portable Object Adapter

IDL Skeleton

Implementation(Servant)

Page 11: A Comparison of CORBA and Ada’s Distributed Systems Annex

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

Page 12: A Comparison of CORBA and Ada’s Distributed Systems Annex

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

Page 13: A Comparison of CORBA and Ada’s Distributed Systems Annex

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

Page 14: A Comparison of CORBA and Ada’s Distributed Systems Annex

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

Page 15: A Comparison of CORBA and Ada’s Distributed Systems Annex

DSA: Assembling the Pieces

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

Page 16: A Comparison of CORBA and Ada’s Distributed Systems Annex

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;

Page 17: A Comparison of CORBA and Ada’s Distributed Systems Annex

DSA: All TogetherPhysical Node 1

Partition 1

Shared_Passive

Network

Physical Node 2

Partition 2

Remote_Call_Interface

Partition 3

Remote_Call_Interface

Page 18: A Comparison of CORBA and Ada’s Distributed Systems Annex

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

Page 19: A Comparison of CORBA and Ada’s Distributed Systems Annex

Findings: Qualitative

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

Page 20: A Comparison of CORBA and Ada’s Distributed Systems Annex

Findings: Qualitative

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

Page 21: A Comparison of CORBA and Ada’s Distributed Systems Annex

Findings: Qualitative

• Language Interoperability: CORBA– Built for language interoperability

Page 22: A Comparison of CORBA and Ada’s Distributed Systems Annex

Findings: Qualitative

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

available

Page 23: A Comparison of CORBA and Ada’s Distributed Systems Annex

Findings: Qualitative

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

distributed transparently– Compiling allowed on any compiler

Page 24: A Comparison of CORBA and Ada’s Distributed Systems Annex

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

Page 25: A Comparison of CORBA and Ada’s Distributed Systems Annex

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

Page 26: A Comparison of CORBA and Ada’s Distributed Systems Annex

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

Page 27: A Comparison of CORBA and Ada’s Distributed Systems Annex

Questions