Introduction to Distributed ComputingCORBA, COM , SOAP etc' - PowerPoint PPT Presentation

1 / 36
About This Presentation
Title:

Introduction to Distributed ComputingCORBA, COM , SOAP etc'

Description:

The Common Object Request Broker Architecture (CORBA) is a ... Idoox WASP for C . Microsoft SOAP Toolkit (part of the .net framework) SOAP::Lite for Perl ... – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 37
Provided by: ecobweb
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Distributed ComputingCORBA, COM , SOAP etc'


1
Introduction to Distributed Computing---CORBA,
COM, SOAP etc.
2
Tools for DC
  • CORBA
  • DCE/COM/DCOM/COM
  • SOAP
  • JAVA BEAN, JINI, RMI, IDL, and other classes
  • Mobile Agent
  • Many others

3
Question
  • Why and How programs or components written in
    different languages can cooperate and be
    integrated?

4
CORBA
  • The Common Object Request Broker Architecture
    (CORBA) is a standard architecture for a
    distributed objects system.
  • CORBA is designed to allow distributed objects to
    interoperate in a heterogenous environment, where
    objects can be implemented in different
    programming language and/or deployed on different
    platforms

5
CORBA vs. Java RMI
  • CORBA differs from the architecture of Java RMI
    in one significant aspect
  • RMI is a proprietary facility developed by Sun
    MicroSystems, Inc., and supports objects written
    in the Java programming langugage only.
  • CORBA is an architecture that was developed by
    the Object Management Group (OMG), an industrial
    consortium.

6
CORBA
  • CORBA is not in inself a distributed objects
    facility instead, it is a set of protocols.
  • A distributed object facility which adhere to
    these protocols is said to be CORBA-compliant,
    and the distributed objects that the facility
    support can interoperate with objects supported
    by other CORBA-compliant facilities.
  • CORBA is a very rich set of protocols. We will
    instead focus on the key concepts of CORBA
    related to the distributed objects paradigm.

7
The Basic Architecture
8
CORBA Object Interface
  • A distributed object is defined using a software
    file similar to the remote interface file in Java
    RMI.
  • Since CORBA is language independent, the
    interface is defined using a universal language
    with a distinct syntax, known as the CORBA
    Interface Definition Language (IDL).
  • The syntax of CORBA IDL is similar to Java and
    C. However, object defined in a CORBA IDL file
    can be implemented in a large number of diverse
    programming languages, including C, C, Java,
    COBOL, Smalltalk, Ada, Lisp, Python, and
    IDLScript.
  • For each of these languages, OMG has a
    standardized mapping from CORBA IDL to the
    programming language, so that a compiler can be
    used to process a CORBA interface to generate the
    proxy files needed to interface with an object
    implementation or an object client written in any
    of the CORBA-compatible languages.

9
Interface Example
  • interface CustomerAccount
  • string get_name()
  • long get_name_no()
  • boolean deposit_money( in float amount)
  • boolean transfer_money(
  • in float amount,
  • in long destination_account_no,
  • out long confirmation_no

10
Cross-language CORBA application
11
Inter-ORB Protocols
  • To allow ORBs to be interoperable, the OMG
    specified a protocol known as the General
    Inter-ORB Protocol (GIOP), a specification which
    provides a general framework for protocols to be
    built on top of specific transport layers.
  • A special case of the protocol is the Internet
    Inter-ORB Protocol (IIOP), which is the GIOP
    applied to the TCP/IP transport layer.

12
Inter-ORB Protocols
  • The IIOP specification includes the following
    elements
  • 1. Transport management requirements specifies
    the connection and disconnection requirements,
    and the roles for the object client and object
    server in making and unmaking connections.
  • 2. Definition of common data representation a
    coding scheme for marshalling and unmarshalling
    data of each IDL data type.
  • 3.  Message formats different types of message
    format are defined. The messages allow clients to
    send requests to object servers and receive
    replies. A client uses a Request message to
    invoke a method declared in a CORBA interface for
    an object and receives a reply message from the
    server.

13
Object Bus
  • An ORB which adheres to the specifications of
    the IIOP may interoperate with any other
    IIOP-compliant ORBs over the Internet. This
    gives rise to the term object bus, where the
    Internet is seen as a bus that interconnects
    CORBA objects

14
ORB products
  • There are a large number of proprietary as well
    as experimental ORBs available
  • (See CORBA Product Profiles, http//www.puder.org
    /corba/matrix/)
  • Orbix IONA
  • Borland Visibroker
  • PrismTechs OpenFusion
  • Web Logic Enterprise from BEA
  • Ada Broker from ENST
  • Free ORBs

15
Object Servers and Object Clients
  • As in Java RMI, a CORBA distributed object is
    exported by an object server, similar to the
    object server in RMI.
  • An object client retrieves a reference to a
    distributed object from a naming or directory
    service, to be described, and invokes the methods
    of the distributed object.

16
CORBA Object References
  • As in Java RMI, a CORBA distributed object is
    located using an object reference. Since CORBA
    is language-independent, a CORBA object reference
    is an abstract entity mapped to a
    language-specific object reference by an ORB, in
    a representation chosen by the developer of the
    ORB.
  • For interoperability, OMG specifies a protocol
    for the abstract CORBA object reference object,
    known as the Interoperable Object Reference (IOR)
    protocol.

17
Interoperable Object Reference (IOR)
  • For interoperability, OMG specifies a protocol
    for the abstract CORBA object reference, known as
    the Interoperable Object Reference (IOR)
    protocol.
  • An ORB compatible with the IOR protocol will
    allow an object reference to be registered with
    and retrieved from any IOR-compliant directory
    service. CORBA object references represented in
    this protocol are called Interoperable Object
    References (IORs).

18
Interoperable Object Reference (IOR)
  • An IOR is a string that contains encoding for
    the following information
  • The type of the object.
  • The host where the object can be found.
  • The port number of the server for that object.
  • An object key, a string of bytes identifying the
    object.
  • The object key is used by an object server to
    locate the object.
  •  

19
Interoperable Object Reference (IOR)
  • The following is an example of the string
    representation of an IOR 5
  • IOR000000000000000d49444c3a677269643a312e3000000
  • 00000000001000000000000004c0001000000000015756c74
  • 72612e6475626c696e2e696f6e612e6965000009630000002
  • 83a5c756c7472612e6475626c696e2e696f6e612e69653a67
  • 7269643a303a3a49523a67726964003a
  • The representation consists of the character
    prefix IOR followed by a series of hexadecimal
    numeric characters, each character representing 4
    bits of binary data in the IOR.

20
Socket API
21
Introduction
  • The socket API is an Interprocessing
    Communication (IPC) programming interface
    originally provided as part of the Berkeley UNIX
    operating system.
  • It has been ported to all modern operating
    systems, including Sun Solaris and Windows
    systems.
  • It is a de facto standard for programming IPC,
    and is the basis of more sophisticated IPC
    interface such as remote procedure call and
    remote method invocation.

22
The conceptual model of the socket API
23
The socket API
  • A socket API provides a programming construct
    termed a socket. A process wishing to
    communicate with another process must create an
    instance, or instantiate, such a construct
  • The two processes then issues operations provided
    by the API to send and receive data.

24
Connection-oriented connectionless datagram
socket
  • A socket programming construct can make use of
    either the UDP or TCP protocol.
  • Sockets that use UDP for transport are known as
    datagram sockets
  • Sockets that use TCP are termed stream sockets.

25
Connection-oriented connectionless datagram
socket
  • Datagram sockets can support both connectionless
    and connection-oriented communication at the
    application layer. This is so because the runtime
    support of the socket API can create and maintain
    logical connections for datagrams exchanged
    between two processes
  • (The runtime support of an API is a set of
    software that is bound to the program during
    execution in support of the API.)

26
Connection-oriented connectionless datagram
socket
27
SOAP
28
Web service protocol stack
29
Web service protocols
30
SOAP
  • SOAP is a protocol which applies XML for message
    exchange in support of remote method calls over
    the Internet.
  • Compared to remote method invocation or
    CORBA-based facilities
  • SOAP is web-based and hence is not subject to
    firewall restrictions
  • Language-independent
  • Can provide just-in-time service integration

31
Remote Procedure Call using HTTP
32
SOAP Messages
33
An XML-encoded SOAP RPC
34
Example of a SOAP message
35
A SOAP Message that contains a remote procedure
callsource (http//www.soaprpc.com/tutorials/)
A Busy Developers Guide To Soap1.1
  • ltSOAP-ENVEnvelope
  • SOAP-ENVencodingStyle
  • "http//schemas.xmlsoap.org/soap/enco
    ding/"
  • xmlnsSOAP-ENC"http//schemas.xmlsoap.org/so
    ap/encoding/" xmlnsSOAP-ENV"http//schemas.xmlso
    ap.org/soap/envelope/" xmlnsxsd"http//www.w3.or
    g/1999/XMLSchema" xmlnsxsi"http//www.w3.org/199
    9/XMLSchema-instance"gt
  • ltSOAP-ENVBodygt       ltmgetStateName
    xmlnsm"http//www.soapware.org/"gt         ltstat
    enum xsitype"xsdint"gt41lt/statenumgt         lt/m
    getStateNamegt lt/SOAP-ENVBodygt
  • lt/SOAP-ENVEnvelopegt

36
SOAP Packagessource http//www.soapuser.com
  • Apache SOAP for Java
  • Apache Axis for Java
  • Idoox WASP for C
  • Microsoft SOAP Toolkit (part of the .net
    framework)
  • SOAPLite for Perl
Write a Comment
User Comments (0)
About PowerShow.com