Vous êtes sur la page 1sur 34

29/04/2003 1

Prsentation de larchitecture COM


Compinent Object Model
DCOM/ACTIVEX
Yves LALOUM
Conseil Audit de Systmes d information CISA
ylaloum@advisehr.com
29/04/2003 2
1.Introduction
Les services de composant COM+ constituent un cadre gnral
logiciel de COM conues pour grer des composants logiciels
Ces services sont intgres partir de Windows 2000 ( NT5)
COM+ est le rsultat dune lente volution qui dbuta en 1990
1990 OLE/OLE 2 (Object Linking & embedding): Architecture
de base de Windows. Permet la coopration Multi-Utilisateurs
(documents composites)
1992COM(Component Object Model) est livr avec
Windows98 et Windows NT 4.0. Cur de OLE2. Base de
l'Internet aussi.
1996 DCOMest la version pour les objets Distribus. IL Permet
un composant de se "dplacer" et de s'excuter sur une autre
machine.
29/04/2003 3
Introduction
1996: ActiveX version Internet d'accs aux objets
COM/DCOM. Les contrles ActiveX permettent de
faciliter la distribution des composants travers l'Internet,
et d'intgrer DCOM sur le navigateur Web.
1997 MTS (Microsoft Transaction Server):
C'est le modle de serveurs d'objets COM ddi aux applications
transactionnelles.
C'est en fait un environnement o tournent les composants
(Runtime environment)
Il regarde les requtes arriver aux composants et participe leur
excution.
Il fournit : la scurit, la gestion des transactions et celle de la
rpartition des charges.
1998 Dbut de COM+
29/04/2003 4
2. Modle COM
Le Component Object Model est un standard
publi est conu par Microsoft pour Microsoft
Il implmente des connexions entre les
diffrents composant logiciels : cest un bus
logiciel
Il est indpendant du langage de
programmation, du systme dexploitation et de
la plate-forme
29/04/2003 5
Caractristiques des objets COM
Pour utiliser COM dans un programme, il faut
implmenter des objets COMQui ont les
caractristiques suivantes :
Encapsulation :
un objet COM est un paramtrage de donnes et /ou de
fonctions enveloppes dans une entit identifiable
unique.
Tout ce qui se trouve dans un objet COM est cach de
lextrieur de lobjet a lexception des interfaces (a
travers un pointeur vers un pointeur pointant sur une
table de pointeur de fonction ) !
29/04/2003 6
Caractristiques des objets COM
Les interfaces :
IID (Interface Identifier) : IID est un type de GUID
(Globally Unique Identifier) entier de 16 octets qui permet
didentifi
!Le nombre de fonctions dans la table
!leur ordre
!leurs signatures
Les trois premires mthodes dune interface sont
prdfinies, en signature comme en signification
!QueryInterface(): Negotiation dinterface pour la
dcouverte dynamique
!Addref() et Release(): Comptage de rfrence pour la
gestion de la dure de vie de lobjet
29/04/2003 7
Support de COM par le systme dexploitation
COM implique l'existence de code au niveau de l'OS de
la machine.
Ce code forme le middleware , structur sous la
forme d'une bibliothque (ralise par des DLLs ou
EXE).
Cette bibliothque comporte entre autres :
L'API de COM, form par un petit nombre de
fonctions accessibles par le client et le serveur.
Le Service Control Manager (ou SCM) : qui localise
les serveurs des classes a l'aide des CLaSsID de la
base registre.
L'appel de procdure distante par RPC: lorsque
l'objet et le client ne sont pas au mme endroit
29/04/2003 8
Support de COM par le systme dexploitation
Ces bibliothques fournissent un support
pour :
Identification : identifier les programmes qui
veulent implmenter un type dobjet (CLSID
dans la base de registre)
Instanciations : Instanci lobjet voulu dans un
module diffrent de celui du client
Marshalling : accder indirectement aux
interfaces dun objet COM
Les fonctions et les objets COM qui communiquent avec le
systme dexploitation utilise des chanes UNICODE
29/04/2003 9
Hirarchie de COM
Remarque : le rle des Apartments (Appartement) est
dimplmenter la scurit des threads
29/04/2003 10
Caractristiques des objets COM
La mre de toutes les interfaces unknown contient
seulement ces trois mthodes et son IID est
0x000000000000000C000000000000046
Polymorphisme : Cest la possibilit pour un objet de
rpondre correctement aux mmes demandes en entre que
dautre objets diffrents
Rutilisation ou hritage : Uniquement au niveau de
leurs interfaces
Mode inclusion : un objet COM peut en rutiliser un autre
uniquement en tant que client travers ses interfaces. Lobjet
rutilis effectue une partie du travail
Mode agrgation : Un objet COM peut interroger un autre objet
COM afin quil devienne une partie de lui-mme. Lobjet rutilis
doit savoir quil fait partie dune quipe en dlguant ses mthodes
Iunknown)
29/04/2003 11
Quelques dfinitons
Un client est n'importe quelle squence de code,
faisant appel au service d'un objet.
Un serveur est un code associ une classe
d'objets identifie par son CLSID unique.
Il doit implmenter un objet de class COM qui
permet de crer des objets dynamiquement
(Class Factory)
MARSHALLING : Extensibilit de COM
Dfinition : Assemblage (Marshalling) : Procd
consistant prendre une collection de paramtres,
les arranger et les coder en format externe pour
constituer un message mettre
29/04/2003 12
Schmas de principe
29/04/2003 13
Schmas de principe : commentaires
Un objet peut tre dans un process diffrent (en local ou
sur une machine distante) .
Dans ce cas :
le marshalling utilise un interface-spcifique
proxy/stub (sous forme dune DLL gnrer a
partir dun fichier IDL) et un mcanisme RPC.
le Microsoft Interface Definition Language (MIDL) est
un compilateur qui peut tre utilis a partir dun fichier
IDL pour gnrer automatiquement le code ncessaire aux
transfre distant.
La DLL doit tre implmente ct serveur et
ct client.
29/04/2003 14
Stub et Proxy
Proxy :
Il reprsente lobjet ct client
Il expose les interfaces que lobjet expose
Il sait comment communiquer avec le Stub
Stub:
Il reprsente le client ct objet
Il expose les interfaces que le client utilise
Il sait comment communiquer avec le proxy
RPC: Remote Procedure Call (appel de procdure distance) ou
LRPC :Lightweight RPC (principe de RPC mais entre processus
locaux )
29/04/2003 15
DCOM
Distributed Component Object Model
Cest COM avec un support par le systme
dexploitation pour :
Identification distante
Chargement distant des composants
Marshaling ou extensibilit distante
Il est support par Windows NT4.0 et a partir de
Windows 95 patch
Il introduit une cl AppID pour les serveurs
DCOM permettant didentifier un module dans la
base de registres de Windows.
29/04/2003 16
La Scurit DCOM
La Scurit :
Authentification
Autorisation
Protection contre lusurpation didentit
La scurit dactivation :
Dclarer ct serveur elle spcifie :
les utilisateurs ou groupes qui peuvent lancer le serveur
Le compte sous lequel tourneras le serveur
La scurit dappel : Automatique ou
Personnalisable pour chaque interface
29/04/2003 17
Communications COM : ORPC
Object Remote Procedure Call
bas sur Open Software Foundation (OSF)
Distributed Computing Environement (DCE)
/RPC
il rajoute aux paquets standard RPC une
identification de lobjet appel OBJREF
OBREF est constitu de :
Interface Pointer Identifier (IPID): Utilis cot serveur
pour identifier une interface spcifique dun objet.
Un Object Exporter Indentifier OXID :utilis pour
trouver une connexion au serveur qui abrite lobjet
appel .
29/04/2003 18
ORPC : Architecture
29/04/2003 19
Les contrles ACTIVEX
Les contrles ACTIVEX :
cest lapplication la plus sophistique de
COM
Dveloppe dans une optique Internet
cest lquivalent Microsoft aux
applets Java et aux Java beans
dans le monde du Web.
29/04/2003 20
Evolutions COM+
Com+ est constitu de 3 parties :
COM Runtime
COM Services
DCOM
29/04/2003 21
Architecture dimplmentation COM+
29/04/2003 22
COM+ Runtime :
COM+ implmente automatiquement la grande
majorit des tches ncessaire pour construire des
objets COM au travers des Meta data codes
par le programmeur rduisant de 30% leffort de
programmation
Cest le concept de programmation bas
attribut
Principal innovation : Les Interceptors (les
Intercepteurs) permettent de rerouter les accs des
clients aux objets via les bibliothques COM
affectant ainsi la manire dont les objets
interagissent entre eux.
29/04/2003 23
Comparaison effort de
programmation COM et COM+
29/04/2003 24
COM+ Services : Services de
composants
Les services de composants sont en fait des
intercepteurs particuliers permettant
dintercepter et de rerouter les accs aux
objets. Parmi les principaux :
MTS : Microsoft Transaction Server (moniteur
transactionnel)
Scurit tendue
Load balancing : Repartition de charges sur
plusieurs serveurs
29/04/2003 25
COM+ Services : Services de
composants
DTC (Distributed Transaction Coordinator)
ou MTS : Microsoft Transaction Server
Client
Transaction
Serveur
DTC
MTS gre la Concurrence et la
Scurit des transactions sur bases de
donnes:
29/04/2003 26
COM+ Services : Services de composants
Support d'environnements transactionnels htrognes
: Les composants COM peuvent participer des
transactions gres par un environnement transactionnel
(TP) autre que celui de COM+ par le support du protocole
TIP (Transaction Internet Protocol).
Scurit tendue : La prise en charge de la scurit est
base sur la notion de rle ainsi que les permissions d'accs
des processus. Dans le modle de scurit bas sur le rle,
l'accs aux diffrentes parties d'une application est accord
ou refus en fonction du groupe logique auquel l'utilisateur
appartient ou du rle qui lui a t attribu (par exemple,
administrateur, employ temps complet, employ temps
partiel). COM+ implmente en plus de la scurit base sur
le rle, la scurit au niveau des mthodes des interfaces.
29/04/2003 27
COM+ Services : Services de composants
Administration centralise :L'Explorateur des
services de composants, prsente un modle
d'administration unifie, qui facilite :
le dploiement,
la maintenance,
la surveillance d'applications n niveaux, en
liminant le besoin d'utiliser de nombreux
outils d'administration distincts.
29/04/2003 28
COM+ Services : Services de composants
IMDB - In-Memory DataBase (base de donnes
en mmoire) :
Permet de grer des informations permanentes et des
informations temporaires de faon cohrente. In-
Memory DataBase est un systme de base de donnes
entirement transactionnel gr en mmoire et conu
pour fournir un accs extrmement rapides aux
donnes.
Object pooling : Regroupement dobjets
Fournit aux applications des mthodes rapides et
efficaces pour pouvoir r-utiliser des objets COM dans
le but damliorer les performances.
29/04/2003 29
COM+ Services : Services de composants
Load balancing : Rpartition de charges
Permet aux applications bases sur le
composant de rpartir leur charge de travail sur
un cluster d'applications et en toute
transparence vis--vis du client.
Client
Aiguilleur
(Router)
Response time
Tracker
Serveur
Serveur
Serveur
29/04/2003 30
COM+ Services : Services de composants
Asynchronous(Appels de Mthodes asynchrone) et
Queued Components (composants en file d'attente) : bas
sur MSMQ Microsoft Message Queuing Services
Assurent une excution diffre en mode asynchrone
lorsque les composants travaillant en coopration sont
dconnects. Cette fonctionnalit vient s'ajouter au
modle de programmation client-serveur synchrone
bas sur la session.
Client
Recorder
Serveur
Player
MSMQ
29/04/2003 31
COM+ Services : Services de composants
COM+ Events :
Notification d' vnements : A utiliser lorsqu'un
mcanisme de notification d'vnements est souhait.
Le systme d'vnements de COM+ est un mcanisme
de publication/abonnement qui permet des clients
de " s'abonner " des vnements " publis " par
plusieurs serveurs.
Publisher
Event Service
Suscriber
Suscriber
Suscriber
Event
Data base
Administration
29/04/2003 32
Produits supportant COM
Sun Solaris (sparc)2.5
Digital Unix 4.0 (Alpha)
IBM MVS 5.2.2 (OS390)
IBM OS/400
IBM AIX
HP/UX
Digital Open VMS (sur Alpha)
Siemens Nixdorf SINIX
Linux 2.0 (Intel)
SCO UnixWare
29/04/2003 33
Ce quil faut retenir
Comme pour Corba, les couches COM+ se
situeny au niveau 5,6,7 du modle OSI au
dessus donc de la couche 4 (TCP/UDP)
Association COM+/ACTIVEX (comme
CORBA/JAVA)
Des passerelles permettant de faire
cohabiter les deux modles (existe dj sur
le march)
29/04/2003 34
Ce quil faut retenir
Point de convergence XML Exemple :
SOAP : Simple Object Access Protocol
Protocole permettant l'invocation distance de composants (objets
et mthodes) l'instar des protocoles DCOM (Microsoft) ou Corba
(IIOP).
Soap utilise XML pour reprsenter ces invocations ce qui devrait
permettre de faire interoprer des environnements Windows DNA,
Corba ou Java. Soap vhicule sur le web (au format XML, via
HTTP) les appels de fonctions (mthodes).
Soap est utilisable entre postes clients et serveurs, ce qui devrait
permettre de l'utiliser depuis un poste client Internet (chez un
particulier lambda) pour accder des services disponibles sur des
serveurs web sans passer par des pages HTML.
Conu l'origine par Microsoft, DevelopMentor et Userland, Soap
est soutenu galement par IBM et Lotus. Depuis le ralliement de
Sun, c'est devenu une note du W3C (World Wilde Web Consortium).

Vous aimerez peut-être aussi