27
Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski Presented by : Manish Mehta Tulika Rathi Sucharita Simhadri Anupama Vasanth

Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

  • Upload
    spencer

  • View
    30

  • Download
    1

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

Frameworks for Component Based Client/Server Computing-Scott M. Lewandowski

Presented by: Manish Mehta Tulika Rathi Sucharita Simhadri

Anupama Vasanth

Page 2: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

What is in this paper?

Introduction to Client/Server computingIntroduction to component technologies

-- CORBA and DCOM (JavaBeans is not discussed)

Frameworks for Client/Server computing using distributed objects.

Page 3: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 4: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 5: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 6: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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)

Page 7: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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 Serversfor example: Web Servers

FAT Clientsfor example: Most Database Systems

Page 8: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 9: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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

Page 10: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 11: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 12: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 13: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 14: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 15: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 16: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 17: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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 run-time.

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)

Page 18: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 19: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 20: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 21: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 22: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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)

Page 23: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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/CGI2. Scalability

- load balancing3. Component infrastructure

- feature of CORBA4. Split Components

- split components in Client and Server side components.

Page 24: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

C/S using Java & CORBA (contd.)

Advantages of Integration (by Java)

1. Simplified code distribution

2. Mobile code

3. Agenting

4. Superior language feature - Multi-threading

Page 25: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 26: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

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.

Page 27: Frameworks for Component Based Client/Server Computing -Scott M. Lewandowski

Thank you !