Frameworks for Component Based Client/Server
Download
Report
Transcript Frameworks for Component Based Client/Server
Frameworks for Component Based
Client/Server Computing
-Scott M. Lewandowski
Presented by:
Manish Mehta
Tulika Rathi
Sucharita Simhadri
Anupama Vasanth
What is in this paper?
Introduction to Client/Server computing
Introduction to component technologies
-- CORBA and DCOM
(JavaBeans is not discussed)
Frameworks for Client/Server computing
using distributed objects.
What is Client/Server computing?
Two logical parts
-Server: that provides service(s).
-Client : that requests services of the
server.
Both client and server together form a
complete computing system with a distinct
division of responsibilities.
Server
Traditional servers were passive.
Recent research shows some systems
fulfilling the theoretical organization of
Client/Server in which servers can be
active.
Can divide the task in subtasks and
delegate each subtask to other servers.
Why is Client/Server so popular?
Client/Server computing has gained
popularity in recent years due to
proliferation of low-cost hardware.
Monolithic applications fail when the
number of users accessing a system grows
too high or when too many features are
integrated into a single system.
Client
Most of the clients have a modern
Graphical User Interface(GUI)
GUI is usually provided with the help of
operating system to maintain consistency
across multiple applications.
(“Swing” is different)
Fat v/s Thin -- client/server
A part of the system with disproportionate(more)
amount of functionality is “FAT”.
A portion of a system with less responsibilities
delegated to it is “THIN”.
FAT Servers
for example: Web Servers
FAT Clients
for example: Most Database Systems
N-tier Systems
The canonical C/S model assumes exactly two discrete
participants i.e “Two-tier” system.
It is also possible to have the application logic reside
separately from the user interface and data, turning the
system into “N-tier” system.
N-tier system provides more flexibility than traditional
2-tier system because of the separation of the
application logic.
Decoupling the application logic from the data allows
data from multiple sources to be used in a single
transaction.
Middleware
To provide transparent access to non-local
services and resources distributed across the
network.
Database Middleware: ODBC, SQL, Oracle Glue
Groupware Middleware: Microsoft Exchange, Lotus notes
Internet Middleware: HTTP, SSL
Object-Oriented Middleware: CORBA, DCOM
Functions & benefits of c/s system
Functions
Regulate access to shared resources when multiple clients
attempt to access the same resource via server.
Provide a standardized system through which network
services can be utilized to provide location transparent
access to all services.
Benefits
Natural mapping of applications into a c/s framework.
(Phone Number)
Resource intensive applications can be designed to run on
multiple low-cost systems.
Distributed Objects and Components
Classical object v/s Distributed object
Classical objects are entities that encapsulate data and a
set of operations(methods) that act on that data.
Classical objects do not exist as separate entities once
the program is complied.
Distributed objects can reside any where in the network
and continue to exist as physical standalone entities
while remaining accessible by other objects.
Benefits of Distributed objects
Self-managing distributed objects take responsibility for
their own resources, work across network, and interact
with other objects.
They allow applications to be split up into lightweight
pieces that can be executed on separate machines.
Distributed objects can generate events to notify other
objects that an action should take place. This
synchronization is very useful.
With middleware, we can ensure interoperation
between/among objects.
Components
Components are the smallest self-managing,
independent, and useful parts of a system that work in
multiple environments.
Components are most often distributed objects
incorporating advanced self-management features.
Components may contain multiple distributed or local
objects, and they are often used to centralize and secure
an operation.
New models for c/s computation
We discuss three models
Client/server using distributed objects like
CORBA and DCOM
Client/server applications using Java
Client/server applications using Java and
CORBA.
Client/Server with CORBA
CORBA (Common Object Request Broker Architecture)
Most important part is ORB
ORB defines the object model and provides bi-directional
location-transparent object access.
Internet Inter-ORB Protocol(IIOP) provides inter-vendor
ORB compatibility by adding several CORBA-specific
messages to the TCP/IP schema.
ORB intercepts method invocations form client objects
and routes them to an appropriate server.
CORBA (contd.)
Interface Definition Language (IDL) is used to specify
the services that an object can provide.
IDL is defined independent of the factors affecting
interoperability such as Implementation language, tool,
Operating System.
The flexibility is achieved at the expense of equipping
each client component with an IDL stub for each server
used.
CORBA supports Dynamic Method Invocation, handled
through Dynamic Invocation Interface (DII) .
DII allows a component to learn about the methods of
other components at run time.
CORBA (contd.)
To accommodate components without IDL-based stubs,
CORBA provides a Dynamic Skeleton Interface (DSI)
that binds incoming method calls for such objects at runtime.
Server demands are met via an Object Adapter, which
provides the core run-time functionality required by
servers.
Two ways to locate another object
Naming Service – like while pages in a phone book
Trade Service – like yellow pages (choose from pool)
Client/Server with DCOM
Primarily uses ActiveX components
Integration of Java with DCOM is possible
through Visual J++.
Binding provided with Visual J++ are strong
enough so that ActiveXs written in other
languages can be made to look like remote Java
objects.
Uses IDL based on Distributed Computing
Environment (DCE)
-- Not compliant with CORBA.
Client/Server with DCOM
(contd.)
A request for a reference to a DCOM objects
results in arbitrary handle.
DCOM supports a registry of available interfaces.
For a DCOM client to access the methods of an
object, it must use a virtual lookup table to obtain
a pointer to that function.
Since DCOM objects have no unique object
identification, there are no naming or trading
services.
CORBA v/s DCOM
DCOM “objects” do not have a state; rather they
are collections of interfaces.
The object can be located using Naming or
Trading services in CORBA. But, in DCOM, a
client object can not request to be connected to a
given server.
It can only ask to be connected to arbitrary server
supporting the services needed.
Benchmarks incorporating network
communication and simple method invocation
show DCOM to be almost 20% slower than
CORBA.
CORBA as the Dominant Model
More portable (Not only Microsoft)
Open System in the third generation.
CORBA uses universal security mechanism which
is independent of platform and OS-level security.
DCOM uses Windows NT security Model.
CORBA provides seamless integration for the most
popular OO languages.
DCOM language support is limited to Java, C, C++
and VB.
CORBA hides the IDL from programmer.
All industry giants are rallying behind CORBA.
Java for Client/Server Applications
Mobile code system provided through bytecodes,
which solves portability and security problems.
VM translates the bytecodes into actual machine
instructions on-the-fly.
Packages allow dynamic class linking with
methods that can be overridden at runtime.
Native support for multi-platform multi-threading
and thread synchronization.
Java provides some core frameworks relevant to
Client/Server computing.
(Java Applet, Java Beans, Java Security)
C/S using Java & CORBA
Integration of Java and CORBA can provide a
platform for universal network computing.
Advantages of Integration : ( by CORBA )
1. Superior performance and flexibility.
- for example HHTP/CGI
2. Scalability
- load balancing
3. Component infrastructure
- feature of CORBA
4. Split Components
- split components in Client and Server side
components.
C/S using Java & CORBA
(contd.)
Advantages of Integration (by Java)
1.
2.
3.
4.
Simplified code distribution
Mobile code
Agenting
Superior language feature
- Multi-threading
Frameworks
Frameworks are tools to help programmers
construct software systems structures in the same
way as the analogous real-world system.
Frameworks provide a way to manage a system
of interacting objects and to develop objects that
will integrate seamlessly into the framework.
The framework is ideally suited for capturing the
elements common to a family of related systems.
Frameworks are a valuable tool for ensuring the
availability of object services.
Conclusion
Distributed objects promise to
revolutionize the stagnant C/S market.
CORBA, with many advantages over
DCOM is becoming the Distributed Object
standard.
Leveraging CORBA and Java provides the
most notable advantages of component
technology.
Thank you !