Component Architecture (CORBA/RMI): Shalini Pradhan
Download
Report
Transcript Component Architecture (CORBA/RMI): Shalini Pradhan
Component Architecture
(CORBA – RMI)
-Shalini Pradhan
Common Architectures
Data Flow Systems
Call and Return Systems
Communicating Processes & Event Systems
Data – Centered Systems (Repositories)
Main Programs & Subroutines
Object Oriented Systems
Independent Components
Batch Sequential & Control Loops
Pipes and Filters
Databases & Blackboards
Virtual Machines
Rule based systems
Object Oriented Architecture
Component Architecture
Component
Independent unit of Software
It satisfies a set of behavior rules
Component Architecture
Specifices set of interfaces and rules of
interaction
[http://www-unix.mcs.anl.gov/~curfman/cca/web/cca_paper.html]
How do Components Interact?
Components interact via clearly specified interfaces
iGetMoney()
iReceiveItem()
Interface
Customer
Supplier
iReceiveInventory()
iOrderInventory()
iReceiveOrder()
Wholesaler
Retailer
Focus on individual interfaces
- precise external behavior (provided + required)
- all implementation aspects completely hidden
Component Architecture
Standards
CORBA
Java Beans
JavaBeans and Enterprise JavaBeans (EJB) are component architectures
developed by Sun and its partners.
COM
CORBA is a distributed object specification supported by the OMG
(Object Management Group), a consortium of over eight hundred partners.
is Microsoft's component standard that forms the basis for interoperability
among all Window-based applications.
Java RMI (Remote Method Invocation)
The Java remote method invocation system described in this specification
has been specifically designed to operate in the Java environment.
CORBA
http://students.cec.wustl.edu/~dm9/DCA/CORBA.htm
Advantages
CORBA supports many existing languages. CORBA
also supports mixing these languages within a single
distributed application.
CORBA supports both distribution and Object
Orientation.
CORBA is an industry standard.
CORBA provides a high degree of interoperability.
This insures that distributed objects built on top of
different CORBA products can communicate.
Over 600 companies back CORBA, including
hardware companies, software companies, and cable
companies, phone companies, banks, etc.
Limitations
Not free
Harder to use
costs can be substantial
developer licenses ($800+ per developer)
runtime licenses (cost varies with vendor)
standardized extensions (“Object services” inOMG
speak) add more costs
no support for detecting software version mismatches
runtime, sometimes resulting in silent errors
Add-on to the language
[http://www.ociweb.com/javasig/knowledgebase/February1998/RMI_CORBA.pdf]
Application
Manage constant diversity - Heterogeneous
environment
Good for accessing legacy systems
especially if Java is not supported on the legacy
platform
Good for extending existing CORBA-based
systems with Java
Good for leveraging expertise in other languages
as long as there is a CORBA binding for that language
Java RMI
Java language's RMI system assumes the
homogeneous environment of the Java Virtual
Machine, and the system can therefore take
advantage of the Java object model whenever
possible.
Remote method invocation (RMI) is the action of
invoking a method of a remote interface on a
remote object. Most importantly, a method
invocation on a remote object has the same syntax
as a method invocation on a local object.
[http://java.sun.com/products/jdk/1.1/docs/guide/rmi/spec/rmi-objmodel.doc.html#213]
Java RMI
The interfaces and classes that are responsible for
specifying the remote behavior of the RMI system are
defined in the java.rmi and the java.rmi.server
java.rmi.registry packages.
RMI Registry
Client VM
stub
Server VM
skeleton
OBJ
Advantages
Simple to use - sending objects
Integrated into platform
implement “Serializable” interface
optionally specify codebase
automatic version mismatch detection
remote method calls are nearly identical to normal
method calls
distributed garbage collection preserves automatic
memory management
Can pass objects
Supports Distributed Processing
Limitations
Works in only Java Environment
Not a full featured Middleware
No mechanism for object description
Server agents