250 likes | 575 Views
Distributed Object Computing. Weilie Yi Dec 4, 2001. Why Distributed Computing. Inherently distributed: Multi-user games, chat applications Other applications having at least 2 parts: C/S, for scalability and ease of deployment. Remote Procedure Call.
E N D
Distributed Object Computing Weilie Yi Dec 4, 2001
Why Distributed Computing • Inherently distributed: Multi-user games, chat applications • Other applications having at least 2 parts: C/S, for scalability and ease of deployment
Remote Procedure Call • allowing a program to make a subroutine call on a remote machine.
Key Features of RPC • Request-reply • most programs block awaiting a reply • UDP or TCP transport • RPC/UDP vs. RPC/TCP • Standardized data representation • XDR protocol • Authentication
Object Oriented Solutions • DCOM Object Management Group, Inc. • CORBA Microsoft Corporation • Sun Microsystems, Inc. Java 2 Enterprise Edition (J2EE)
DCOM • Distributed Component Object Model • An extension to COM (component object model) • Object Oriented • Location transparency
What Is a Component • Packaging Perspective a set of elements which can be reused as a unit. • Service Perspective a software entity which offers services through interfaces • Integrity Perspective a data integrity or encapsulation boundary
DCOM Architecture In the same process Fast, direct function calls Component Client Client Process Server Process On the same machine Fast, secure IPC Component COM Client Across machines Secure, reliable and flexible DCE-RPC based DCOM protocol Server Machine Client Machine Component DCE RPC COM COM Client
Interface and Component • COM allows clients to invoke services provided by COM-compliant components (COM objects) Client Application Object Interface Pointer
An Example of Interface • A COM object can support any number of interfaces. • An interface provides a grouped collection of related methods set_current_time IClock Clock Object ITimer get_current_time IAlarm Interfaces Component Methords
Cross-process Communication • COM creates the "stub" in the object's server process • COM creates the "proxy" in the client's process, and connects it to the stub • The proxy supplies the interface pointer to the client
Where Is the Server? • “Create Object” • Locate Implementation • Get object interface pointer, return to client • Call interface members (4) Object Client Application Server (3) (1) (2) COM
DCOM: Design Issues (1) • Components and Reuse Build software from parts, not from scratch • Location Independence Services used in a standard way, regardless of location • Language Neutrality Virtually any language can be used to create DCOM components, which can be used from even more languages
DCOM: Design Issues (2) • Connection Management • Manages connections to components, by maintaining a reference count on each component. • symmetric network protocol and programming model.
DCOM: Design Issues (3) • Scalability • Symmetric Multiprocessing (SMP) Single processor -> multiprocessor • Flexible Deployment This computer -> other computers • Evolving Functionality: Versioning Present -> Past, present, and future
Scalability Examples (1) • Parallel Deployment
Scalability Examples (2) • Pipelining
Scalability Examples (3) • Robust Versioning Functionality is grouped into interfaces in the DCOM programming model • Old interface: • old c old s • new c old s • New interface • old c new s • new c new s
TCP, UDP IPX, SPX HTTP … DCOM: Design Issues (4) • Protocol Neutrality C O M C O M COM Object Clients Server Machine Client Machine
COM COM COM COM COM COM COM COM DCOM: Design Issues (5) • Platform Neutrality Sun Solaris (Sparc) 2.5 RC HP/UX Q3’97 Q4’97 Digital Unix 4.0 (Alpha) RC Digital Open VMS COM Client Q3’97 H1’98 DCOM IBM MVS 5.2.2 (OS390) Siemens Nixdorf SINIX Q1’98 H1’98 IBM OS/400 Linux 2.0 (Intel) BETA COM H1’98 Q4’97 IBM AIX SCO UnixWare COM H1’98 H1’98
DCOM: Design Issues (6) • Performance • Bandwidth and Latency • Security • Load Balancing • Fault Tolerance • Ease of Deployment • Platform Neutrality • Seamless Integration with Other Internet Protocols
DCOM Reusability Maintainability Adaptability RPC Portability Flexibility Complexity DCOM Vs. RPC
Summery • Brief RPC Review • Why use DCOM • DCOM Architecture • DCOM Design Issues • DCOM vs. RPC