Kap 3.4 - 1 OHO-Workshop: MTS - COM‘s OTM T. Grabs Kap. 3.4 Microsoft Transaction Server als Beispiel eines OTM Was ist COM/DCOM? Microsoft Transaction Server: COM‘s OTM Entwickeln von MTS-Applikationen Vergleich TUXEDO vs. MTS Was ist COM+? Thanks to Mary Kirtland that contributed some of the slides
24
Embed
Kap. 3.4 Microsoft Transaction Server als Beispiel eines OTM
Kap. 3.4 Microsoft Transaction Server als Beispiel eines OTM. Was ist COM/DCOM? Microsoft Transaction Server: COM‘s OTM Entwickeln von MTS-Applikationen Vergleich TUXEDO vs. MTS Was ist COM+?. Thanks to Mary Kirtland that contributed some of the slides. Was ist COM/DCOM ?. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Kap 3.4 - 1OHO-Workshop: MTS - COM‘s OTM T. Grabs
Kap. 3.4 Microsoft Transaction Server als Beispiel eines OTM
Was ist COM/DCOM?
Microsoft Transaction Server: COM‘s OTM
Entwickeln von MTS-Applikationen
Vergleich TUXEDO vs. MTS
Was ist COM+?Thanks to Mary Kirtland that contributed some of the slides
Kap 3.4 - 2OHO-Workshop: MTS - COM‘s OTM T. Grabs
Was ist COM/DCOM ?
COM - Component Object Model -- DCOM - Distributed COM Komponente: Binärcode, der eine wohldefinierte Funktionalität
erbringt COM: Binärer Standard für solche Komponenten
unabhängig von einer Programmiersprache unabhängig vom gewählten Compiler Schnittstellenvererbung i. Ggs. zu Quellcode-Vererbung konkret: vptr/vtbl-Layout abstrakter C++-Klassen als
Schnittstelle der Komponenten festgelegt Roadmap der COM-Konzepte
COM ist schnittstellen-orientiert Schnittstellenvererbung vs. Quellcodevererbung Schnittstellendefinitions-Sprache Microsoft IDL IDL: Interface Definition Language MS-IDL basiert auf OSF DCE RPC IDL also: RPC-Formulierung mit automatischer Netzwerktransparenz
Automatische Generierung von Proxy- und Stub-Code Beispiel einer IDL-Deklaration
interface IAccount : IDispatch {
[id(1), helpstring("method Debit")] HRESULT Debit([in] int account, [in] double amount);
[id(2), helpstring("method Credit")] HRESULT Credit([in] int account, [in] double amount);
};
Remote ProxyAccount
IAccount
Kap 3.4 - 4OHO-Workshop: MTS - COM‘s OTM T. Grabs
IDL-Compiler
Account.idlTypen und Schnittstellen
MIDL.EXE
Account.hC/C++-Typ-Definitionen
Account_I.cGUID-
Definitionen
Account.tblTyp-Bib. für VB und Java
Account_P.cSchnittstellen-Definitionen
dlldata.cSchnittstellen-
Marshaler
Kap 3.4 - 5OHO-Workshop: MTS - COM‘s OTM T. Grabs
IUnknown-Interface
COM-Standard-Interface: Jedes COM-Objekt muss es unterstützen, sonst ist es kein COM-
Objekt Schnittstellen-Navigation ermöglichen Referenzzählung auf Schnittstellen
IDL für IUnknown
interface IUnknown
{
HRESULT QueryInterface(
[in] REFIID riid, // the interface asked for
[out, iid_is(riid)] void **ppvObject);
ULONG AddRef();
ULONG Release();
}
Kap 3.4 - 6OHO-Workshop: MTS - COM‘s OTM T. Grabs
Interface-Anfrage
Anfrage an ein gegebenes Objekt, ob es ein Interface Account unterstützt
Kap 3.4 - 11OHO-Workshop: MTS - COM‘s OTM T. Grabs
Methoden-Aufruf
Client ProcessClient Process
COMCOM
ClientClientAppApp
In-ProcessIn-ProcessServerServer
In-ProcessIn-ProcessObjectObject
RPCRPC
Local Server ProcessLocal Server Process
LocalLocalObjectObjectProxyProxy
Local ServerLocal Server
LocalLocalObjectObject
COMCOM
StubStub
Remote Server MachineRemote Server MachineRemoteRemoteObjectObjectProxyProxy
RPCRPC
Remote Server ProcessRemote Server Process
Remote ServerRemote Server
RemoteRemoteObjectObject
COMCOM
StubStub
Kap 3.4 - 12OHO-Workshop: MTS - COM‘s OTM T. Grabs
COM mit MTS
Man kann COM Komponenten transaktionelle Eigenschaften zuordnen, wenn man sie über MTS administriert
(Fast) jede COM-Komponente eigent sich für MTS Was bietet MTS zusätzlich zu COM:
Transaktionsprimitive Objektkontexte (mehr dazu unten) Anbindung an Resource-Manager via XA 2PC-Koordination für verteilte Transaktionen
Objektkontext speichert Transaktionszustand eines Objektes Subtransaktionen erben den Kontext der Vatertransaktion Objekte innerhalb einer Transaktion entscheiden über
Commit: SetComplete()-Methode des Kontext-Interfaces Abort: SetAbort()-Methode des Kontext-Interfaces
Kap 3.4 - 13OHO-Workshop: MTS - COM‘s OTM T. Grabs
Objekterzeugungmit MTS
MTS SurrogateMTS Surrogate
33
MTS ExecutiveMTS Executive
44ClientClient
77
ComponentComponent
55
Context Context wrapperwrapper
Object Object contextcontext
88
99
COM RuntimeCOM Runtime
11
SCMSCM22RegistryRegistry
{CLSID}{CLSID} MTX MTX {package}{package}
Class Class factory factory
wrapperwrapper
66 Class Class objectobject
Kap 3.4 - 14OHO-Workshop: MTS - COM‘s OTM T. Grabs
Objekt-Kontexte
MTS SurrogateMTS Surrogate
MTS ExecutiveMTS Executive ComponentComponent
Class Class objectobject
Context Context wrapperwrapper
Class Class factory factory
wrapperwrapper
Object Object contextcontext
Object contextObject context
MTS CatalogMTS Catalog
Creator IDCreator ID
ActivityActivity
TransactionTransaction
Security PropertiesSecurity Properties
Kap 3.4 - 15OHO-Workshop: MTS - COM‘s OTM T. Grabs
Sub-Objekt bzw.Subtransaktion
MTS Surrogate ProcessMTS Surrogate Process
MTS ExecutiveMTS Executive Sub ComponentSub Component
Class Class objectobjectClass factory Class factory
wrapperwrapper
ComponentComponent
ObjectObject
Object ContextObject Context
11
MTS CatalogMTS Catalog
22
Context Context wrapperwrapper
Object Object contextcontext
33
44
Kap 3.4 - 16OHO-Workshop: MTS - COM‘s OTM T. Grabs
Methoden-Aufruf
MTS Surrogate ProcessMTS Surrogate Process
MTS ExecutiveMTS Executive ComponentComponent
Class Class objectobject
Context Context wrapperwrapper
Object Object contextcontext
ClientClient11
22
ObjectObject33
Kap 3.4 - 17OHO-Workshop: MTS - COM‘s OTM T. Grabs