Distributed Object Computing Weilie Yi Dec 4, 2001
Why Distributed Computing Inherently distributed: Multi-user games, chat applications Multi-user games, chat applications Other applications having at least 2 parts: C/S, for scalability and ease of deployment 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. 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
Component Categorization PackagingServiceIntegrity files,documents,directories, source code files, class libraries, templates,tables,executables,dll’s database services, operating system services, function libraries, system utilities, individual API functions, COM classes databases, operating systems, frameworks, ActiveX controls, some COM classes, Java Applets, applications, complete APIs
Client Component In the same process Fast, direct function calls Client Component COM Client Process Server Process On the same machine Fast, secure IPC Across machines Secure, reliable and flexible DCE-RPC based DCOM protocol COM DCE RPC Client Server Machine Client Machine COM Component DCOM Architecture
Interface and Component COM allows clients to invoke services provided by COM-compliant components (COM objects) Interface Pointer Client Application Object
An Example of Interface A COM object can support any number of interfaces. An interface provides a grouped collection of related methods Clock Object IClock ITimer IAlarm ComponentInterfaces Methords set_current_time get_current_time
Three Methods for Accessing COM Objects
Cross-process Communication 1. COM creates the "stub" in the object's server process 2. COM creates the "proxy" in the client's process, and connects it to the stub 3. The proxy supplies the interface pointer to the client
Where Is the Server? 1. “Create Object” 2. Locate Implementation 3. Get object interface pointer, return to client 4. Call interface members Server Object Client Application (1) (2) (3) (4) 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
DCOM: Design Issues (4) Protocol Neutrality TCP, UDP IPX, SPX HTTP Server Machine Client Machine COMCOM … Clients COMCOM COMObject
DCOM: Design Issues (5) Platform Neutrality COM Client Linux 2.0 (Intel) BETA COM HP/UX COM Digital Open VMS COM Siemens Nixdorf SINIX COM SCO UnixWare COM Digital Unix 4.0 (Alpha) RC COM IBM MVS (OS390) COM IBM OS/400 COM IBM AIX COM DCOM Sun Solaris (Sparc) 2.5 RC COM Q3’97 Q1’98 H1’98 Q4’97 H1’98 Q4’97
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 Vs. RPC DCOM Reusability Maintainability Adaptability RPC Portability Flexibility Complexity
Summery Brief RPC Review Why use DCOM DCOM Architecture DCOM Design Issues DCOM vs. RPC