introduction to com and dcom organizational communications and technologies prithvi n. rao h. john...
Post on 30-Dec-2015
215 Views
Preview:
TRANSCRIPT
Introduction to COM and DCOM
Organizational Communications and Technologies
Prithvi N. RaoH. John Heinz III School of Public
Policy and ManagementCarnegie Mellon University
Readings
Posting on the Class Web Site
Objectives Present the basic features of COM and DCOM
What is COM? Binary protocol by which software components
can connect and communicate Language independent Platform independent Philosophy for architecting software components Programming discipline for component development
Microsoft’s object technology Originally referred to as OLE
What is COM? COM is a specification COM is a set of services COM supports modular programming COM is object-oriented (?) COM enables easy customization and
upgrades to your application (?) COM supports distributed applications COM components can be written in a variety of
languages
Activex, OLE and COM
COM
OLE ActiveX
Automation
Uniform data transferPersistent storagemonikers
EmbeddingLinkingDrag-and-dropCompound documents
DocumentsControlsScripting
Role of COM in the Model COM services provide foundations
UDT is language and program independent data transfer
Persistence provides for machine-independent standardized object persistence
Monikers facilitate file namespace object identification across machines
Automation facilitates COM object access from scripting clients
The Role of COM in the Model
Automation
Uniform Data Transfer
Persistent Storage
Monikers
Component Object Model
COM
Object-Linking-and-Embedding OLE services allow off-the-shelf app data
interoperability Host (client/container) can edit/store foreign
application (server) data via pre-defined set of COM interfaces
Can be user initiated End-user-drag-drop of data between applications
Object-Linking-and-Embedding
In Place Activation(visual editing)
Linking
Embedding
Drag and Drop
ActiveX Services Binary packaging of in-proc components
Deployed in windows/dialogs or in web pages Dynamically downloaded with page
Web-based distribution pf documents
IIS-aware Automation-aware pages (ASP)
Component Object Model
Client (Container)
Client (Container) Object
Server
Interface Pointer
Interface
Distributed COM
Client(DLL or
EXE)
ProcessBoundary
Network Boundary
RemoteObject(EXE)
LocalObject(EXE)
In-ProcObject(DLL)
COM and DCOM DCOM is now a standard part of 32-bit Windows
NT 4.0+, Win98, Win95 with IE4 DCOM being propagated to other platforms as
well Solaris HPUX Digital’s VMS (in beta)
Provides transparency for remote interfaces, parameters and return values
COM and DCOM Reusable code is difficult to create even in C+
+
Traditional static link libraries have dependency deficiencies
Windows dlls have their own set of limitations
Need for a vendor independent strata for building reusable components
Lack of Reusability Static Libraries
Duplicated code on disk Duplicated code in memory No way to replace library without relinking and/or
recompiling
Dynamic Link Libraries (a better solution) Code resides only on one system Code only needs to be loaded once in memory Field replacement of implementation is possible
COM Benefits Component based suggests more code re-use
Smaller distributable components Replaceable components
Binary compatibility and encapsulation
Thin layers of abstraction Decoupling interface from implementation Decoupling object identity from implementation
Dependency reduction in large projects
COM Fundamentals COM defines
What constitutes a COM object How com objects expose features for other
components to use How this works across processes and across networks When objects are destroyed
No specification about implementation Only describes behavior/characteristics pertinent to
connecting/communicating with other objects Allows flexibility Permits implementation stay lightweight and
language-independent
COM Principles Object services are accessed via interfaces
Interfaces have identity
Objects consist of interface implementation
Objects have identity
Objects must be registered
COM Principles Objects have location independence
Objects have implementation transparency
Object services can be published via a type library
Key COM Concepts Interfaces
Objects
Identity
Registration
Type Libraries
What’s an Interface? An abstract data type containing pointers to a
group of related function Contract between client and object
Features/functionality only available via interfaces Object’s features expressed by the interface it
implements Once published never changes
Existing interfaces may be extended Contract between COM and object author
Object implements all methods in interface
What’s an Interface? A pointer to a table of pointers to methods
No limit to the number of methods in an interface
Strongly typed
Transparency for DCOM implementation
COM Identity COM components are associated with a unique ID
Interface (IID) Objects (CLSID) Type libraries (TLID) Features/service groups of categories (CATID)
Components defined by COM have pre-assigned Ids
Each ID distinguishes a component from another Prevents collisions Supports versioning Accessed via ID
Component IDs Generated by component author via
development tools Guaranteed to be unique Uses machine ID, NIC date and time information
to create 128 bit long integer id Referred to as GUID
Guaranteed to be unique on all systems on the planet
Can be created in multiple ways ::CoCreateGuid from COM API function GUIDGEN command line tool Development tools do this automatically
Registration System registry
Database of information about available objects in system
May contain configuration information Updated when object is installed Entries organized by IDs
Each COM object registry entry must specify Object’s CLSID Path to object’s server
Object registry entries may also specify Human readable name
Type Libraries Binary language-independent file
Describes COM objects, interfaces, methods, data types and Ids of components in a server
Created by component author during development
Used by client authors during client development Compiled form a script written in DCE Interface
Definition Language (IDL) TLB provide all essential details required for
clients to invoke objects described
COM Principles Objects accessed via Interfaces
Interfaces have identity
Objects composed of interface implementations
Objects have identity
Objects have location independence
COM Principles Objects have implementation transparency
Object services can be published via a type library
COM Interface Rules Interface methods are abstract
Interfaces never expose data
All methods in an interface must be implemented
Interface methods must return HRESULT
Instantiating a COM Object Client calls a COM API function with object
CLSID CoCreateInstance CoGetClassObject
COM looks up object’s CLSID in registry COM finds the server pathname in the registry COM invokes the object’s server Server requests an object instance from the
object’s class factory Server instantiates object
Instantiating a COM Object Server returns pointer to object’s default
interface to COM
COM returns interface pointer to client
Interoperability Issues CORBA/RMI?
CORBA/DCOM?
RMI/DCOM?
Multiple Inheritance (CORBA) maps to Multiple Interfaces in DCOM
Summary Examined relationship between COM, OLE and
ActiveX
Examined the features of COM
Examined the principles of COM
Presented the activation of COM objects
Presented issues in interoperability
top related