Frameworks for Component Based Client/Server Computing

Download Report

Transcript Frameworks for Component Based Client/Server Computing

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 !