com, dcom heterogeneous dcom and microsoft dna richard j. bonneau, ph. d. systems application...

87
COM, DCOM COM, DCOM Heterogeneous DCOM Heterogeneous DCOM and and Microsoft DNA Microsoft DNA Richard J. Bonneau, Ph. D. Richard J. Bonneau, Ph. D. Systems Application Integration Systems Application Integration Engineering (SAIE) Engineering (SAIE) Industry Solutions Division (ISD) Industry Solutions Division (ISD) Compaq Computer Corp. Compaq Computer Corp.

Upload: lia-routledge

Post on 31-Mar-2015

223 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COM, DCOMCOM, DCOM Heterogeneous DCOM Heterogeneous DCOM

andandMicrosoft DNAMicrosoft DNA

Richard J. Bonneau, Ph. D.Richard J. Bonneau, Ph. D.

Systems Application Integration Engineering Systems Application Integration Engineering (SAIE)(SAIE)

Industry Solutions Division (ISD)Industry Solutions Division (ISD)

Compaq Computer Corp.Compaq Computer Corp.

Page 2: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

With Acknowledgements to:With Acknowledgements to:Developing With COM Developing With COM On UNIX And OpenVMSOn UNIX And OpenVMS

Mohan Rao CavaleMohan Rao Cavale Frank Hayes Frank Hayes Gaitan D’Antoni Gaitan D’AntoniDevelopment Lead Development Lead Engineering Manager Project Leader Engineering Manager Project Leader

COM/UNIX COM/UNIX COM For Digital UNIX COM For OpenVMS COM For Digital UNIX COM For OpenVMS Microsoft Corporation Microsoft Corporation Compaq Compaq Compaq Compaq

Page 3: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Goals of talkGoals of talk

High levelHigh level and and code-levelcode-level view of the view of the COM/DCOM conceptsCOM/DCOM concepts

See a COM/DCOM demo liveSee a COM/DCOM demo live Extensions of DCOM to Heterogeneous Extensions of DCOM to Heterogeneous

platformsplatforms DNA as industry-level solutions DNA as industry-level solutions

integration frameworkintegration framework– Infrastructure ComponentsInfrastructure Components– Industry Integration EffortsIndustry Integration Efforts

Page 4: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Presentation CaveatsPresentation Caveats

““Techy talk” - not marketing hypeTechy talk” - not marketing hype Not comprehensive - nor in-depthNot comprehensive - nor in-depth A broad brush of many conceptsA broad brush of many concepts Hands-on - tools (VC++, VB, Hands-on - tools (VC++, VB,

registry, ...), code segments in VB/VC, registry, ...), code segments in VB/VC, examples (VB and VC) …examples (VB and VC) …

Not an expert - just a knowledgeable Not an expert - just a knowledgeable user who likes to lecture !!!user who likes to lecture !!!

Page 5: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

OutlineOutline

COM - the basicsCOM - the basics A COM demo or two ...A COM demo or two ... Distributing COMDistributing COM Heterogeneous COM - OVMS and Heterogeneous COM - OVMS and

Tru64 UNIXTru64 UNIX Future of COM: DNA components and Future of COM: DNA components and

DNA for different industriesDNA for different industries SummarySummary

Page 6: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

An Important Equation!An Important Equation!

For all intents and purposes:For all intents and purposes:

OLE = COM = DCOM = ActiveX = COM+ OLE = COM = DCOM = ActiveX = COM+ !!!!!!

Simplifies the TLA world considerably!!Simplifies the TLA world considerably!!

Page 7: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

An Important InEquation!An Important InEquation!

COM Objects = C++ ObjectsCOM Objects = C++ Objects

Although they can be implemented Although they can be implemented using C++ objects or Java objects using C++ objects or Java objects or even VB objects or even VB objects

/

Page 8: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COM - the basicsCOM - the basics

CComponent omponent OObject bject MModel odel Components - critical to development of - critical to development of

distributed 3-tier enterprise applicationsdistributed 3-tier enterprise applications– provide services to requestors (clients)provide services to requestors (clients)– small units of software for dev and maintsmall units of software for dev and maint– easily deployed and accessibleeasily deployed and accessible

‘‘Everything’ in MS Windows 9x/NT is a Everything’ in MS Windows 9x/NT is a component!!component!!

Page 9: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COM - the evolutionCOM - the evolution

Ultimate goal - software reusability!!Ultimate goal - software reusability!! ““In the beginning” - Single program In the beginning” - Single program

source filesource file Procedures/functions and #includeProcedures/functions and #include Compile functions into a library and Compile functions into a library and

link into final imagelink into final image Have compiled routines in a separate Have compiled routines in a separate

sharable library or dynamic link librarysharable library or dynamic link library

Page 10: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COM - the evolution - part COM - the evolution - part IIII

On source level - Objects as organizing On source level - Objects as organizing principle - Within a given program or through principle - Within a given program or through include filesinclude files

Object libraries- reduce compilation overheadObject libraries- reduce compilation overhead What’s important? -What’s important? - the method calls the method calls InterfaceInterface as as

– collection of methods collection of methods – a connection point between client and object servera connection point between client and object server

Collect interfaces into separate containers - Collect interfaces into separate containers - called called COMPONENTSCOMPONENTS!!

Page 11: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

The basics - continuedThe basics - continued

Interface: A rigorously defined binary Interface: A rigorously defined binary structure allowing independent structure allowing independent development of clients and serversdevelopment of clients and servers

MS designed to be language, MS designed to be language, platform, hardware neutral!!platform, hardware neutral!!

Defines the programming Defines the programming contractcontract between client and serverbetween client and server

Page 12: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

The interface - continuedThe interface - continued

Derived from some known issues in doing Derived from some known issues in doing multi-platform C++ development - see multi-platform C++ development - see Don Box book (Essential COM)Don Box book (Essential COM)

Simple concept with sweeping Simple concept with sweeping implications when used universally - implications when used universally - sound like Microsoft??sound like Microsoft??

A component is then a software vehicle A component is then a software vehicle for providing access to one or more for providing access to one or more interfacesinterfaces

Page 13: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Universal Interface Universal Interface definitions - IDLdefinitions - IDL

interface IWarehouse : IDispatch interface IWarehouse : IDispatch

{{

HRESULT OrderFulfill(HRESULT OrderFulfill(

[in] long lPartNumber, [in] long lPartNumber,

[in] long lNumItems, [in] long lNumItems,

[out] unsigned char * ucpResult);[out] unsigned char * ucpResult);

HRESULT Reset ([in] long ReStockValue);HRESULT Reset ([in] long ReStockValue);

} ;} ;

Page 14: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

The COM pictureThe COM picture A Component ‘exposes’ one or A Component ‘exposes’ one or

more Interfacesmore Interfaces Clients ‘acquire’ a pointer to one or Clients ‘acquire’ a pointer to one or

more interfaces more interfaces Client uses them to Client uses them to

call the methodscall the methodsComponent

Interfaces

Client

Page 15: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

The Interface - more The Interface - more detailsdetails

Pointer to method 1

Pointer to method 2

Pointer to method 3

Pointer to method 4

Pointer to method 5

Pointer

ClientInterface Pointer

ObjectMethod 1(…)

Method 2(…)

Method 3(…)

Method 4(…)

Method 5(…)

“Vtable”

Page 16: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

So how DOES COM work?So how DOES COM work?

A client needs to get a hold of an A client needs to get a hold of an interface on a component - interface on a component - key task!key task!

Once that is done, it just calls the Once that is done, it just calls the methods associated with the interface methods associated with the interface through the interface pointer!through the interface pointer!

How easy to do that?How easy to do that? Sample code in VB - next slideSample code in VB - next slide

Page 17: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

CodeCodeVisual Basic clientVisual Basic client

Dim ICObj As ObjectDim ICObj As Object

……....

Private Sub Command1_Click()Private Sub Command1_Click()

Set ICObj = Set ICObj = CreateObject("DCOMDEMO.InventoryControllerServerCreateObject("DCOMDEMO.InventoryControllerServer")")

......

End SubEnd Sub

……..

Call ICObj.Call ICObj.ProcessOrderProcessOrder(lPartNumber, lNumItems, (lPartNumber, lNumItems, lNumOrders, ucpResult, lpNumOrdersFilled)lNumOrders, ucpResult, lpNumOrdersFilled)

Page 18: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

So how is this not just So how is this not just RPC?RPC?

Some rules about being “COM”Some rules about being “COM” Must implement the IUnknown Must implement the IUnknown

Interface with three methodsInterface with three methods– QueryInterfaceQueryInterface– AddRefAddRef– ReleaseRelease

Rules around maintaining counts of Rules around maintaining counts of COM instances… vestigial and COM instances… vestigial and cumbersomecumbersome

Page 19: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

How to get that interface How to get that interface pointer??pointer??

The Registry!The Registry! All servers/components/interfaces register All servers/components/interfaces register

themselves - using globally unique identifiers themselves - using globally unique identifiers (GUIDs and CLSIDs) (GUIDs and CLSIDs)

Clients (through COM library calls) access the Clients (through COM library calls) access the registry (by this unique identifier) to registry (by this unique identifier) to – find out where the server isfind out where the server is– get an interface pointerget an interface pointer– then just do a “function call” through the ptr!then just do a “function call” through the ptr!

Page 20: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

A quick peek at registry ...A quick peek at registry ...

HKEY_CLASSES_ROOTHKEY_CLASSES_ROOT CLSID key - organized by GUIDs - ugh!CLSID key - organized by GUIDs - ugh! APPID key - organized by names …APPID key - organized by names … TypeLib key - GUID’s again!TypeLib key - GUID’s again!

Messy - slow - CRITICAL!Messy - slow - CRITICAL! Other tools = e.g. OleView - more user Other tools = e.g. OleView - more user

friendly!friendly!

Page 21: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

What really happens?What really happens?

Client

COM library

Service Control Manager(SCM)

Registry

Based on GUID, SCM looks up the server, if necessary loads/starts it and obtains a pointer to the requested interface, returns it to the client.

Server

COM library

Page 22: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

A very COM simple demo - A very COM simple demo - VB!VB!

MS has made VB the environment of MS has made VB the environment of choice to quickly build COM choice to quickly build COM applicationsapplications

Let’s make both a server/component Let’s make both a server/component and a client and a client

And get them to talk to each other …And get them to talk to each other … It’s “too easy”, especially in relation to It’s “too easy”, especially in relation to

VC++!VC++!

Page 23: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

What a COM client needs What a COM client needs to do ...to do ...

Call Call CoInitCoInit - to init the COM - to init the COM environmentenvironment

Call Call CoCreateInstanceCoCreateInstance - to request - to request access to an interface on a access to an interface on a server/componentserver/component

Use the returned interface pointer to Use the returned interface pointer to call component’s interface methodscall component’s interface methods

Look at some sample C++ code??Look at some sample C++ code??– Warehouseclient.cxxWarehouseclient.cxx

Page 24: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

What a COM component or What a COM component or server needs to do ...server needs to do ...

Implement the methods of the Implement the methods of the interface(s) it supports, including the interface(s) it supports, including the inherited IUnknown methodsinherited IUnknown methods– May use C++ objects & methods for COM May use C++ objects & methods for COM

interface methodsinterface methods Register with the registry as a Register with the registry as a

component (self-registry recommended)component (self-registry recommended) Look at some sample C++ code??Look at some sample C++ code??

– Warehouse.cxxWarehouse.cxx

Page 25: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

A more complex demoA more complex demo

Developed by Digital/Compaq for MS PDC Developed by Digital/Compaq for MS PDC last Octoberlast October

To demonstrate heterogeneous DCOM on To demonstrate heterogeneous DCOM on all Compaq’s platforms (plus one)all Compaq’s platforms (plus one)

Simple 3-tier factory inventory modelSimple 3-tier factory inventory model Uses COM/DCOM throughout on all the Uses COM/DCOM throughout on all the

platformsplatforms Actually same code base used for all the Actually same code base used for all the

servers (not the GUI client!)servers (not the GUI client!)

Page 26: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COMCOM

COMCOM

COMCOM

COMCOM

WarehouseWarehouseInventoryInventorycontrollercontroller

WarehouseWarehouse

WarehouseWarehouse

Demo Architecture Demo Architecture

ClientClient

InventoryInventorycontrollercontroller

Page 27: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

The methods = the The methods = the interfacesinterfaces

Inventory Controller (IInventoryController) Inventory Controller (IInventoryController) MethodsMethods

Process OrderProcess Order - try to fill an order from - try to fill an order from one or more warehousesone or more warehousesGet StatisticsGet Statistics - tell how well you have - tell how well you have been able to service ordersbeen able to service ordersReset StatisticsReset Statistics - clean stats out for - clean stats out for another recording periodanother recording period

Warehouse Methods (IWarehouse)Warehouse Methods (IWarehouse)OrderFulFillOrderFulFill - can you fill a specific order - can you fill a specific order for a part and quantity?for a part and quantity?ResetReset - magically restock the factory - magically restock the factory

Page 28: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

CodeCodeInterface definitionsInterface definitions

// Interface IInventoryController// Interface IInventoryController

[[

object,object,

uuid(6fc9d540-4c46-11d2-9147-004005193783),uuid(6fc9d540-4c46-11d2-9147-004005193783),

helpstring("IInventoryController Interface"),helpstring("IInventoryController Interface"),

pointer_default(unique),pointer_default(unique),

dual,dual,

oleautomationoleautomation

]]

......

Page 29: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

CodeCodeInterface definitionsInterface definitions

interface IInventoryController : IDispatch interface IInventoryController : IDispatch {{

import "oaidl.idl" ;import "oaidl.idl" ;HRESULT ProcessOrder (HRESULT ProcessOrder (

[in] long lPartNumber,[in] long lPartNumber,[in] long lNumItems, [in] long lNumItems, [in] long lNumOrders, [in] long lNumOrders, [out] unsigned char * ucpResult,[out] unsigned char * ucpResult,[out] long * lpNumOrdersFilled);[out] long * lpNumOrdersFilled);

HRESULT ResetStatistics ();HRESULT ResetStatistics ();HRESULT GetStatistics ([out] long * lpTotalOrders,HRESULT GetStatistics ([out] long * lpTotalOrders,

[out] long * lpTotalOrdersFilled,[out] long * lpTotalOrdersFilled,[out] long * lpTotalBackorders);[out] long * lpTotalBackorders);

} ;} ;

Page 30: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

CodeCodeInterface definitionsInterface definitions

// Component and type library descriptions// Component and type library descriptions[[

uuid(70fe8120-4c46-11d2-9147-004005193783),uuid(70fe8120-4c46-11d2-9147-004005193783),version(1.0),version(1.0),helpstring("Compaq DCOM Demo - Inventory Controller helpstring("Compaq DCOM Demo - Inventory Controller Server 1.0 Type Library")Server 1.0 Type Library")

]]library InvctrLiblibrary InvctrLib{{ importlib("stdole2.tlb") ;importlib("stdole2.tlb") ;

// InventoryController server/class// InventoryController server/class[ uuid(717738f0-4c46-11d2-9147-004005193783),[ uuid(717738f0-4c46-11d2-9147-004005193783),

helpstring("Inventory Controller Class") helpstring("Inventory Controller Class") ]]coclass InventoryControllercoclass InventoryController{{ [default] interface IInventoryController ;[default] interface IInventoryController ; } ;} ;

} ;} ;

Page 31: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

CodeCodeInterface definitionsInterface definitions

interface IWarehouse : IDispatch interface IWarehouse : IDispatch

{{

HRESULT OrderFulfill(HRESULT OrderFulfill(

[in] long lPartNumber, [in] long lPartNumber,

[in] long lNumItems, [in] long lNumItems,

[out] unsigned char * ucpResult);[out] unsigned char * ucpResult);

HRESULT Reset ([in] long ReStockValue);HRESULT Reset ([in] long ReStockValue);

} ;} ;

Page 32: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Let’s run it now ...Let’s run it now ...

All processes running on single systemAll processes running on single system Bring up VC++-based GUI Front EndBring up VC++-based GUI Front End Creates executing component servers at both Creates executing component servers at both

back end tiersback end tiers Initializes all product stock to 1000Initializes all product stock to 1000 Awaits client commands toAwaits client commands to

– Select nodes to participateSelect nodes to participate– Request ordersRequest orders– Check/reset statisticsCheck/reset statistics

Page 33: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

A Visual Basic GUI ClientA Visual Basic GUI Client

Using Rapid Development ToolsUsing Rapid Development Tools Accesses same (interface) Accesses same (interface)

functionality as VC++ Clientfunctionality as VC++ Client Puts results onto an excel Puts results onto an excel

spreadsheet using a macro - displays spreadsheet using a macro - displays a bar chart for results - again using a bar chart for results - again using COM calls to Excel as a COM objectCOM calls to Excel as a COM object

Has an automatic order feature ...Has an automatic order feature ...

Page 34: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COMCOM

COMCOM

COMCOM

COMCOM

WarehouseWarehouseInventoryInventorycontrollercontroller

WarehouseWarehouse

ExcelExcel(stats.xls)(stats.xls)

Demo Architecture - Part II Demo Architecture - Part II

ClientClientVC++VC++

ClientClientVBVB

Page 35: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

DCOM - a DCOM - a slightslight enhancementenhancement

Now in the real world, we want to be able Now in the real world, we want to be able to get services from servers - wherever to get services from servers - wherever they may be!they may be!

So let’s extend COM to be able to call So let’s extend COM to be able to call interfaces on components located ON interfaces on components located ON OTHER SYSTEMS!OTHER SYSTEMS!

In windows world, distribute DLLs easilyIn windows world, distribute DLLs easily A natural application/extension of the A natural application/extension of the

RPC model between network nodesRPC model between network nodes

Page 36: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

What really happens now?What really happens now?

Client

COM library

Service Control Manager(SCM)

Registry

Server

COM library

Service Control Manager(SCM)

Registry

Node A Node B

Page 37: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

DCOM -how does it work?DCOM -how does it work? Cooperation at the OS level between Cooperation at the OS level between

platformsplatforms Requires platform OS implementations Requires platform OS implementations

of of – COM RunTime servicesCOM RunTime services– RegistryRegistry– SCM (Service Control Manager) , etc.SCM (Service Control Manager) , etc.

Several different models for distributionSeveral different models for distribution

Page 38: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Two Approaches to Two Approaches to Distributing ComponentsDistributing Components

Non-intrusive DistributionNon-intrusive Distribution– uses existing components and clientsuses existing components and clients

Explicit DistributionExplicit Distribution– requires client side changesrequires client side changes

Page 39: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Non-intrusive DistributionNon-intrusive Distribution

use clients and components use clients and components as as they existthey exist

clients locate component servers clients locate component servers through registry settingsthrough registry settings

registry can be set to point to registry can be set to point to remote serversremote servers

DCOMCNFG utility manages DCOMCNFG utility manages components - components - let’s see!let’s see!

Page 40: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Non-intrusive DistributionNon-intrusive Distribution

Client

Com Library

SCM - Service Control Manager

registry

Server

SCM - Service Control Manager

registry

RemoteServerInformation

Node A Node B

Page 41: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Explicit DistributionExplicit Distribution

clients use COM library calls to clients use COM library calls to create/locate server on create/locate server on specificspecific remote remote node - I.e. CoCreateInstancenode - I.e. CoCreateInstanceExEx

COM bypasses local registry and COM bypasses local registry and communicates directly to SCM on communicates directly to SCM on remote noderemote node

Note: remote node server registry entry Note: remote node server registry entry may itself point to another remote may itself point to another remote node!node!

Page 42: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Explicit DistributionExplicit Distribution

Client

Com Library

SCM - Service Control Manager

registry

Server

SCM - Service Control Manager

registryRemoteServerX

Node A Node B

Page 43: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Explicit DExplicit DCOM CodeCOM CodeVisual Basic clientVisual Basic client

Dim ICObj As ObjectDim ICObj As Object

……....

Private Sub Command1_Click()Private Sub Command1_Click()

Set ICObj = CreateObject("DCOMDEMO.InventoryControllerServer"Set ICObj = CreateObject("DCOMDEMO.InventoryControllerServer", , node1node1))

……..

Call ICObj.ProcessOrder(lPartNumber, lNumItems, lNumOrders, Call ICObj.ProcessOrder(lPartNumber, lNumItems, lNumOrders, ucpResult, lpNumOrdersFilled)ucpResult, lpNumOrdersFilled)

Page 44: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

DCOMDCOM

DCOMDCOM

DCOMDCOM

DCOMDCOM

Windows NT Windows NT ServerServer

OpenVMSOpenVMS

WarehouseWarehouse

InventoryInventorycontrollercontroller

WarehouseWarehouse

WarehouseWarehouse

Digital UNIXDigital UNIX

SolarisSolaris

Demo built from released COM SDKs on platforms aboveDemo built from released COM SDKs on platforms above

Heterogeneous DCOM Demo Heterogeneous DCOM Demo Architecture Architecture

WindowsWindows

ClientClient

Page 45: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Heterogeneous DCOMHeterogeneous DCOM Cross platform COMCross platform COM

– Demo using shipping COM SDKs on:Demo using shipping COM SDKs on: Digital UNIX, OpenVMS, SolarisDigital UNIX, OpenVMS, Solaris

– UNIX platform support from MicrosoftUNIX platform support from Microsoft Ship schedulesShip schedules

COM on Digital UNIX and OpenVMSCOM on Digital UNIX and OpenVMS– Developing COM enabled middlewareDeveloping COM enabled middleware

Architecture, core features, toolsArchitecture, core features, tools

– Deploying COM enabled middlewareDeploying COM enabled middleware Support, schedules, resourcesSupport, schedules, resources

Page 46: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COM Platform SupportCOM Platform Support COM/UNIX and COM/OpenVMS 1.xCOM/UNIX and COM/OpenVMS 1.x

– Solaris 2.5 - Microsoft (Shipping today)Solaris 2.5 - Microsoft (Shipping today)– Digital UNIX 4.0D - Compaq (In beta)Digital UNIX 4.0D - Compaq (In beta)– OpenVMS 7.2 - Compaq (In beta)OpenVMS 7.2 - Compaq (In beta)– IRIX 6.5 - SGI IRIX 6.5 - SGI

COM/UNIX and COM/OpenVMS futureCOM/UNIX and COM/OpenVMS future– Binary compat with COM 1.0Binary compat with COM 1.0– Improvements based on customer Improvements based on customer

feedback on COM 1.0feedback on COM 1.0– Additional platform supportAdditional platform support

Page 47: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COM Platform SupportCOM Platform Support

Microsoft COM for UNIX 2.0 (future)Microsoft COM for UNIX 2.0 (future)– Solaris 2.5 and upSolaris 2.5 and up– HP-UX 11.0HP-UX 11.0– AIX 4.3AIX 4.3

Will be available from MicrosoftWill be available from Microsoft Technical support from MicrosoftTechnical support from Microsoft

Page 48: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COM InteroperabilityCOM Interoperability

Partnerships with Leading ORB Partnerships with Leading ORB vendors for CORBA interopvendors for CORBA interop– Iona and Visual Edge Iona and Visual Edge – Source code license agreementsSource code license agreements– Enable well tested interop productsEnable well tested interop products

Native OLEDB provider supportNative OLEDB provider support– IntersolvIntersolv

Page 49: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Windows NTWindows NT

NTNTServer identityServer identity

Enterprise clusterEnterprise cluster

Server

SecuritySecurity

NTLM securityNTLM security

Events

COMCOM

SSPISSPI

DomainDomain

RPCRPC

COMCOM

SSPISSPI

InterfaceInterface

RPCRPCWindows NTWindows NT

identityidentity

COM APIsCOM APIs

RegistryRegistry

Software ArchitectureSoftware Architecture

Page 50: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COM ToolsCOM Tools

Digital UNIXDigital UNIX– Existing tools for Existing tools for

code creationcode creation– Enterprise Toolkit Enterprise Toolkit

available nowavailable now– ATL in COM V1.xATL in COM V1.x– Component Component

Monitor Q1 1999Monitor Q1 1999

OpenVMSOpenVMS– Existing tools for Existing tools for

code creationcode creation– ATL in COM V1.xATL in COM V1.x– Debugging/Debugging/

performance tool performance tool from AverStar from AverStar Spring 1999Spring 1999

– Enterprise Toolkit Enterprise Toolkit Spring 1999Spring 1999

Page 51: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Benefits of Heterogeneous Benefits of Heterogeneous DCOMDCOM

Preservation of platform-dependent Preservation of platform-dependent legacy applicationslegacy applications– through use of wrappers around appsthrough use of wrappers around apps

Cooperation between NT-based Cooperation between NT-based environments for operator interaction environments for operator interaction and mature backend systemsand mature backend systems

Careful design of new apps permit Careful design of new apps permit portability across platformsportability across platforms

Page 52: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COM/DCOM ResourcesCOM/DCOM Resources

BooksBooks– Inside COM - Rogeson - MS Press - excellentInside COM - Rogeson - MS Press - excellent– Essential COM - Box - language focussedEssential COM - Box - language focussed– WROX series on COMWROX series on COM

Microsoft COMMicrosoft COM– http://www.microsoft.com/comhttp://www.microsoft.com/com

Microsoft COM on UNIXMicrosoft COM on UNIX– Program Manager: Program Manager: [email protected]@microsoft.com

Public COM on UNIX mailing listPublic COM on UNIX mailing list– Information at: Information at: http://www.SoftworksLtd.com/http://www.SoftworksLtd.com/

dcomunix.htmldcomunix.html

Page 53: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Use of COM/DCOM: DNAUse of COM/DCOM: DNA

COM is just one piece of the DNA COM is just one piece of the DNA Architecture (Architecture (DDistributed interistributed interNNetworking etworking AApplications)pplications)

Also - MTS, MSMQ, COM+, three tier Also - MTS, MSMQ, COM+, three tier design methodology with business objects design methodology with business objects on middle tier, etc.on middle tier, etc.

Goal: Convergence and simplification of Goal: Convergence and simplification of technologies over timetechnologies over time

Then DNA for Manufacturing, Health, ...Then DNA for Manufacturing, Health, ...

Page 54: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Acronyms and Misc.Acronyms and Misc. DCOM = COM = OLE = ActiveXDCOM = COM = OLE = ActiveX ActiveXActiveX

– Originally focused solely on developing internet Originally focused solely on developing internet control componentscontrol components

– componentscomponents - act as servers to clients - act as servers to clients– controlscontrols - used to build visual COM components - used to build visual COM components– documentdocument - able to be placed on Web pages - able to be placed on Web pages

Web Technologies also highly integratedWeb Technologies also highly integrated– Active Server Pages (ASP)Active Server Pages (ASP)– Dynamic HTML (DHTML)Dynamic HTML (DHTML)

Page 55: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division
Page 56: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

DNA ModelDNA Model

Page 57: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Two Dimensions of DNATwo Dimensions of DNA

Cross Industry SupportCross Industry Support– Infrastructure Tools and ComponentsInfrastructure Tools and Components

Industry Specific IntegrationIndustry Specific Integration– DNA for xxxDNA for xxx

Page 58: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Primary DNA Tools and Primary DNA Tools and ComponentsComponents

COM - Component Object ModelCOM - Component Object Model DCOM - Distributed COMDCOM - Distributed COM MTS - Microsoft Transaction ServerMTS - Microsoft Transaction Server MSMQ - Microsoft Message Queue MSMQ - Microsoft Message Queue

SystemSystem COM+ - Next generation of DNA COM+ - Next generation of DNA

supportsupport IIS - Internet EnvironmentIIS - Internet Environment

Page 59: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

A Microsoft COM TimelineA Microsoft COM Timeline

o OLE - Object Linking and Embedding - of MS application objects within MS applications

o COM - Component Object Model - Generalized infrastructure to improve communications between application components

o DCOM - Distributed COM - between components on different systems and Operating Systems

o ATL - Active Template Library - Tool that simplifies the creation of DCOMcomponents improves calls to/from other DCOM objects

o MTS - Microsoft Transaction Server

o MSMQ - Microsoft Message Queue Management

o COM+ - Buries DCOM/COM, MTS, and MSMQ structures and methods within Windows NT environment

OLE

COM

DCOM COM+

ATL

MTS

MSMQ

Page 60: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

OLEOLE Object Linking and EmbeddingObject Linking and Embedding MS 1st attempt at using application MS 1st attempt at using application

components within other applications - components within other applications - especially in support of document especially in support of document integrationintegration

Biggest drawback initiallyBiggest drawback initially– Different object models for each MS application Different object models for each MS application

(Word vs Excel)(Word vs Excel)

OLE 2 - no longer Object … - just “OLE”OLE 2 - no longer Object … - just “OLE”

Page 61: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COMCOM Component Object Model = MS Application busComponent Object Model = MS Application bus Grand Unifying technology on Microsoft Platforms for application Grand Unifying technology on Microsoft Platforms for application

component communicationscomponent communications Big incremental improvement over OLEBig incremental improvement over OLE Programming infrastructure for components to talk with each otherProgramming infrastructure for components to talk with each other Provides for Interface interactions between componentsProvides for Interface interactions between components

– over IDL (Interface Definition Language) calls, over IDL (Interface Definition Language) calls, – using GUID (Globally Unique Identifiers) to identify components, andusing GUID (Globally Unique Identifiers) to identify components, and– uses LRPC to communicate between componentsuses LRPC to communicate between components

Synchronous by design*Synchronous by design*

Page 62: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COM = InterfacesCOM = Interfaces

Collections of Method Definitions to Collections of Method Definitions to access services from COM serversaccess services from COM servers

Servers may implement one or more Servers may implement one or more Interfaces - and may be DLLs or EXEsInterfaces - and may be DLLs or EXEs

All COM Servers MUST implement the All COM Servers MUST implement the IUnknown Interface - IUnknown Interface - – which allows you to discover/access all the which allows you to discover/access all the

other interfaces on the same server other interfaces on the same server (QueryInterface method)(QueryInterface method)

Page 63: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Types of InterfacesTypes of Interfaces Custom InterfacesCustom Interfaces

– Application responsible for defining unique callable Application responsible for defining unique callable methodsmethods

– Clients must know method signaturesClients must know method signatures– Unique call paths between client and serverUnique call paths between client and server

““Automation” or IDispatch InterfacesAutomation” or IDispatch Interfaces– Universal single interface to get at all server Universal single interface to get at all server

services/methodsservices/methods– Single client-side contact - sorta!Single client-side contact - sorta!– Limitation on types of arguments, thoughLimitation on types of arguments, though

Page 64: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Using COM Using COM Collection of Support Routines (Coxxxxx) Collection of Support Routines (Coxxxxx)

– Initialize/shut down the local COM environmentInitialize/shut down the local COM environment– Obtain Access to a COM server’s interfacesObtain Access to a COM server’s interfaces

Basic COM Model Basic COM Model – Simpler on Client Side Simpler on Client Side – Complicated for Creation/Mgmt of Objects on Complicated for Creation/Mgmt of Objects on

Server SideServer Side Class Factories - additional objects neededClass Factories - additional objects needed Implementing IUnknown Methods (object and class Implementing IUnknown Methods (object and class

factory objects!)factory objects!) Issues around shared server objects, multi-Issues around shared server objects, multi-

threaded, etc.threaded, etc.

Page 65: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

DCOMDCOM

Distributed COM or Distributed COM or COM across a wireCOM across a wire

Participating Components may now Participating Components may now reside on different systems and use RPC reside on different systems and use RPC for callsfor calls

Support provided for DCOM between Support provided for DCOM between non-heterogeneous platformsnon-heterogeneous platforms– Windows NTWindows NT– OVMSOVMS– Digital UNIXDigital UNIX– Sun Solaris Sun Solaris

Page 66: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

DCOM (cont.)DCOM (cont.) Clients can operate in ‘location-Clients can operate in ‘location-

independent’ manner with serversindependent’ manner with servers Registry can hold locations of servers and Registry can hold locations of servers and

other COM stuff!other COM stuff! Newer Model supports Client accessing Newer Model supports Client accessing

server on a specific nodeserver on a specific node DCOMCNFG and other utilities to help locate DCOMCNFG and other utilities to help locate

and manage the network of COM servers, and manage the network of COM servers, objects, interfaces, type libraries, etc.objects, interfaces, type libraries, etc.

Page 67: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

DCOM DemoDCOM Demo

SAIE Developed the DCOM Demo of SAIE Developed the DCOM Demo of heterogenous interoperability for UNIX heterogenous interoperability for UNIX and VMS groupsand VMS groups

Involved up to 9 systems on 3 different Involved up to 9 systems on 3 different platforms executing almost identical platforms executing almost identical server code server code

VC++ and VB front ends as clientsVC++ and VB front ends as clients Real learning experience - but it Real learning experience - but it

worked!worked!

Page 68: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COM/DCOM (Cont.)COM/DCOM (Cont.)

Primary Drawback with COM/DCOMPrimary Drawback with COM/DCOM

The current Visual C/C++ environment The current Visual C/C++ environment requires lots of cut-and-paste of requires lots of cut-and-paste of objects objects and methods to define the and methods to define the infrastructure needed to support each infrastructure needed to support each application componentapplication component

NOTE: VB and VJ++ bury most of the support infrastructure NOTE: VB and VJ++ bury most of the support infrastructure and are much more simplified environments in dealing with and are much more simplified environments in dealing with COMCOM

Page 69: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

ATLATL

Active Template LibraryActive Template Library Tool simplifies the creation of Tool simplifies the creation of

COM/DCOM components in VC++COM/DCOM components in VC++ Uses Application Wizards to simplify Uses Application Wizards to simplify

the creation processthe creation process– Choose interface modelChoose interface model– Choose Locking, Marshalling,... Choose Locking, Marshalling,... – ATL creates bulk of COM supportATL creates bulk of COM support

COM map and object map macrosCOM map and object map macros Unfortunately not supported on other Unfortunately not supported on other

platforms yetplatforms yet

Page 70: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

MTSMTS Microsoft Transaction ServerMicrosoft Transaction Server

– Runtime environment/infrastructure for Runtime environment/infrastructure for application assembly and execution application assembly and execution

– Simplified application model - single userSimplified application model - single user Delivers needed server servicesDelivers needed server services

– Distribution - Distribution - through packagesthrough packages– Easy drag and drop assembly of packages Easy drag and drop assembly of packages

and monitoring of executionand monitoring of execution– Transactionalization of componentsTransactionalization of components– Load balancing, thread pooling, database Load balancing, thread pooling, database

connection pooling, etc.connection pooling, etc.

Page 71: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Inside MTSInside MTS

All Current MTS Object/Servers must All Current MTS Object/Servers must be DLLSbe DLLS

MTX server is the universal proxy for MTX server is the universal proxy for all MTS components on a given node all MTS components on a given node

Intercepts calls for interface methods Intercepts calls for interface methods and can apply server services and and can apply server services and transactional techniques before/after transactional techniques before/after calling component methods calling component methods

Page 72: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

MTX and MTS ComponentsMTX and MTS Components

MTSinterceptor

YourMTS

componentMyComp

MTX - MTS controller

MyComp clientcallshere

IMyXfaceIMyXface

Page 73: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

MSMQMSMQ

Microsoft Message Queue SystemMicrosoft Message Queue System Provides asynchronous between Provides asynchronous between

COM/DCOM ComponentsCOM/DCOM Components Typical API for en-queuing and de-Typical API for en-queuing and de-

queuing messagesqueuing messages Reliability guaranteed - but still a Reliability guaranteed - but still a

very new product and needs very new product and needs maturation maturation

Page 74: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

COM+COM+

Next generation(s) of building Next generation(s) of building distributed applications using COM distributed applications using COM components components

Support from within Windows 2000 Support from within Windows 2000 (uncertain about other platforms)(uncertain about other platforms)

Makes building COM-compliant Makes building COM-compliant components much easiercomponents much easier

Submerges MTS, MSMQ, and COM Submerges MTS, MSMQ, and COM services deep within the OSservices deep within the OS

Page 75: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

DNA Development ToolsDNA Development Tools

DevStudio Tools apply across the DevStudio Tools apply across the boardboard– VC++VC++– VB6VB6– VJ++VJ++– VisualInterDevVisualInterDev– FrontpageFrontpage

Can produce clients, servers, middle Can produce clients, servers, middle tiers, in mixed language systemstiers, in mixed language systems

Page 76: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

More Info?More Info?

www.microsoft.com/dnawww.microsoft.com/dna www.microsoft.com/mtswww.microsoft.com/mts www.microsoft.com/comwww.microsoft.com/com MSDNMSDN MS Technical JournalMS Technical Journal Dr. Dobbs & C/C++ Journal and VB Dr. Dobbs & C/C++ Journal and VB

mags toomags too

Page 77: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

MS/Industry Initiatives MS/Industry Initiatives based on DNAbased on DNA

VCI/CIP - Value Chain InitiativeVCI/CIP - Value Chain Initiative DNA for MFG/AutomotiveDNA for MFG/Automotive OLE for Process Control (OPC)OLE for Process Control (OPC) DNA for Front Office (Trilogy)DNA for Front Office (Trilogy) DNA for Retail - E-office?DNA for Retail - E-office? Rumors of Rumors of

– DNA for PharmaceuticalDNA for Pharmaceutical– DNA for MedicalDNA for Medical– DNA for Financial DNA for Financial – ......

Page 78: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

VCI/CIPVCI/CIP

Value Chain Initiative - consortium of Value Chain Initiative - consortium of companies agreeing to use DNA for companies agreeing to use DNA for managing business operationsmanaging business operations

CIP (Commerce Interchange Protocol) - CIP (Commerce Interchange Protocol) - a DNA-based message composition and a DNA-based message composition and delivery/receipt system - no workflow delivery/receipt system - no workflow tool - yet!tool - yet!

Ongoing negotiations between Compaq Ongoing negotiations between Compaq and MS re VCI/Business Bus ‘integration’and MS re VCI/Business Bus ‘integration’

Page 79: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

DNA for MFG/AutomotiveDNA for MFG/Automotive

First instantiation of DNA for MfgFirst instantiation of DNA for Mfg Detroit-based Initiative (surprise!)Detroit-based Initiative (surprise!) Recent MS Event Recent MS Event Attempting to define groupings of Attempting to define groupings of

interfaces to represent information and interfaces to represent information and control data flow within automotive control data flow within automotive industryindustry

Embraces OPC as core ‘information Embraces OPC as core ‘information model’model’

Page 80: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

OPCOPC

OLE for Process ControlOLE for Process Control– set of standard OLE/COM interface set of standard OLE/COM interface

protocolsprotocols– based on MS COM technologybased on MS COM technology– foster interoperability in the process foster interoperability in the process

control industry betweencontrol industry between automation/control applicationsautomation/control applications field systems/devicesfield systems/devices business/office applicationsbusiness/office applications

Page 81: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Applications working with Applications working with OPC Servers/ComponentsOPC Servers/Components

Application X Application Y

OPC Interface OPC Interface

OPC ServerA

OPC ServerB

OPC ServerC

Page 82: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

The DNA Manufacturing The DNA Manufacturing ArchitectureArchitecture

ERP / MRP

MESDCS Batch

deviceCE

deviceSmartdevice

OAG BB CIP COM DCOM

OPC / OLE DB

HMI/SCADA

PC Control

OPC

OPC

CIP

process

DB

COM

COM

UI

Page 83: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

OPC OpportunityOPC Opportunity

Field management - advent of “smart” field Field management - advent of “smart” field devicesdevices– provides wealth of field device dataprovides wealth of field device data

device health, config params, materials of device health, config params, materials of construction,...construction,...

Process management Process management – Distributed Control Systems (DCS) and SCADA Distributed Control Systems (DCS) and SCADA

monitors and controls the manufacturing process monitors and controls the manufacturing process – makes process data available electronicallymakes process data available electronically

Business management - integrating process Business management - integrating process data and financial information related to processdata and financial information related to process

Page 84: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

SummarySummary DNA - a rich collection of DNA - a rich collection of

(interchangeable) tools, technologies (interchangeable) tools, technologies and methodologies for building three-and methodologies for building three-tiered, distributed applicationstiered, distributed applications

Underlying COM models supports Underlying COM models supports universal access to servers/servicesuniversal access to servers/services

Multi-platform support an issueMulti-platform support an issue Some industry initiatives favoring DNA-Some industry initiatives favoring DNA-

based solutionsbased solutions

Page 85: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

Questions?Questions?

Page 86: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

MSMQMSMQBusinessBusBusinessBus

wrapper

ERPwrapper

MESBasestar

wrapper

SiteServer

CIP

SiteServer

wrapper

DocumentManagement

Iexplore.exe

ShopFloor MES MES

DNA - based componentsBaseStar(?)

Page 87: COM, DCOM Heterogeneous DCOM and Microsoft DNA Richard J. Bonneau, Ph. D. Systems Application Integration Engineering (SAIE) Industry Solutions Division

BusinessBus Technology BusinessBus Technology LayeringLayering

BusinessBus API

MSMQ transport BmQ, MQSeries transports

NT UNIX, VMS, etc.

API Layer

Transport Layer

Platforms

IntegrationManager

Application Layer CIP

Wrappers

Applications