Title: Inventory of Distributed Computing Concepts
1Inventory of Distributed Computing Concepts
2Motivation
- Earlier attempts to replace existing systems
failed - Distributed computing environment (DCE) emphasis
-- distribution - Common object request broker architecture
(CORBA) emphasis -- interoperability - Uniqueness of SOA is that it leverages existing
middleware and distributed computing concepts - RPC, distributed objects, message-oriented
middleware (MOM), application coupling, etc.
3Issues in distributed systems
- Heterogeneity in various aspects of a distributed
systems - Communication modes
- Synchronous RPC, ORB
- Asynchronous P2P, Publish and subscribe
- Variations in products
- Many vendors IBM, IONA, TIBCO, Apache, Adobe
- Additional runtime features
- fault tolerance, load balancing, transaction
handling, usage metering, auditing, ..
4Technical Layers
Core
Assets
Participant A
Participant C
Participant B
Business Logic
Technology Independent Interface Description
Technology Independent Interface Description
Technology Independent Interface Description
XML
ORB
Middleware Mapping
Technology Adapters
Middleware Buses
Communication facilities
CORBA
XML Web services
5Technical Layer 2 Chapter 3
Core
Assets
Participant A
Participant C
Participant B
Business Logic
Technology Independent Interface Description
Technology Independent Interface Description
Technology Independent Interface Description
XML
ORB
Middleware Mapping
Technology Adapters
Middleware Buses
Communication facilities
CORBA
XML Web services
6Technical Layer 1 Ch. 4 -7
Core
Assets
Participant A
Participant C
Participant B
Business Logic
Technology Independent Interface Description
Technology Independent Interface Description
Technology Independent Interface Description
XML
ORB
Middleware Mapping
Technology Adapters
Middleware Buses
Communication facilities
CORBA
XML Web services
7Technical Layer 3 Chapter 9
Core
Assets
Participant A
Participant C
Participant B
Business Logic
Technology Independent Interface Description
Technology Independent Interface Description
Technology Independent Interface Description
XML
ORB
Middleware Mapping
Technology Adapters
Middleware Buses
Communication facilities
CORBA
XML Web services
8Communication Network
Application
Application
Network Protocol Stack
Network Protocol Stack
- A communication middleware framework isolates the
application developers from the details of the
network protocol.
9Communication Middleware
Application
Application
Middleware
Middleware
Network Protocol Stack
Network Protocol Stack
10Remote procedure call (RPC)
Client Application
Server Application
Procedure call
Execute call
RPC Stub code
RPC stub code
RPC library/runtime
RPC library/runtime
Network Protocol Stack
Network Protocol Stack
RPC stubs and runtime enable location
transparency, encapsulate RPC communication
infrastructure and provide a procedure call
interface.
11Distributed Objects
Client Application
Server Application
invoke method
Execute method
Client proxies
Server skeletons
ORB
ORB
Network Protocol Stack
Network Protocol Stack
ORBs enable client applications to remotely
instantiate, locate, invoke methods and Delete
server objects Java RMI, Microsofts DCOM CORBA
is meant to be platform independent.
12What is CORBA?
- Common Object Request Broker Architecture (CORBA)
specification (/standard) defines a framework for
object-oriented distributed applications. - It is defined by a consortium of vendors under
the direction of Object Management Group (OMG).
13What is CORBA? (contd.)
- Allows distributed programs in different
languages and different platforms to interact as
though they were in a single programming language
on one computer. - Brings advantages of OO to distributed systems.
- Allows you design a distributed application as a
set of cooperating objects and to reuse existing
objects.
14Object Request Broker (ORB)
- A software component that mediates transfer of
messages from a program to an object located on a
remote host. - Hides underlying network communications from a
programmer. - ORB allows you to create software objects whose
member functions can be invoked by client
programs located anywhere. - A server program contains instances of CORBA
objects.
15Clients, severs and objects
Server0
Client
CORBA Object
invocation
Server1
16CORBA Objects and IDL
- These are standard software objects implemented
in any supported language including Java, C and
Smalltalk. - Each CORBA object has a clearly defined interface
specified in CORBA interface definition language
(IDL). - The interface definition specifies the member
functions available to the client without any
assumption about the implementation of the object.
17Client and IDL
- To call a member function on a CORBA object the
client needs only the objects IDL. - Client need not know the objects implementation,
location or operating system on which the object
runs.
18IDL facilitates internetworking
Specify in IDL Use IDL-language compiler Client
sees only IDL interface
C
Java
target object
smalltalk
OLE (VB, PB,Delphi)
Ada, Cobol etc.
19Separation of Interface and Implementation
- Interface and implementation can be in two
different languages. - Interface abstracts and protects details (trade
secrets) from client - Interface offers a means of expressing design
without worrying about implementation.
20ORB Conceptual View
- When a client invokes a member function on a
CORBA object, the ORB intercepts the function
call. - ORB directs the function call across the network
to the target object. - The ORB then collects the results from the
function call returns these to the function call.
21Implementation Details
Access to the services provided by an Object
ORB (Object-oriented middleware) Object
Request Broker ORB mediates transfer between
client program and server object.
22Message-oriented Middleware (MOM)
- Made famous by IBMs MQseries and TIBCOs
Rendezvous products. - Based on messages and queues.
- A message contains a header and a payload.
- A queue can store and distribute messages.
- Publish/subscribe model of communication
- A topic offers another model of communication
between subscribers and publishers. - MOM allows for loose coupling between message
consumers and message producers enabling dynamic,
reliable, flexible, high-performance systems to
be built.
23Components and Application Servers
- An application server mediates between a web
server and backend systems. - Request from a web client is passed onto an
application server by the web server. - Programmer productivity, cost-effective
deployment, rapid time to market, seamless
integration, application portability,
scalability, security are some of the challenges
that component technology tries to address head
on. - Enterprise Java Beans is Suns server component
model that provides portability across
application servers, and supports complex systems
features such as transactions, security, etc. on
behalf of the application components. - EJB is a specification provided by Sun and many
third party vendors have products compliant with
this specification BEA systems, IONA, IBM,
Oracle, Sybase, Gemstone.
24J2EE Application Programming Model for Web-based
applications
Business Logic
Web Service
Web client
25J2EE Application Programming Model for Three-tier
Applications
Study Fig. 3-8 of your text for J2EE technology
suite.
26On to more fundamental concepts Synchrony
27Interface vs. payload semantics
28Tight vs. Loose Coupling
29Summary