Windows NT/2000/XP Enjeux et contraintes techniques Cinquième partie COM et OLE C. Casteyde Document diffusé sous licence GNU FDL.

Slides:



Advertisements
Présentations similaires

Advertisements

.Net Remoting.
Com / DCom 1 Concept et historique 2 L’interface IUnknown
Travail réalisé par : LATRECHE Imed Eddine MENASRIA Med Lamine
Developpement Process « Coding party !! » Tony Carnal Altran.
UML EPITECH 2009 UML1 - Introduction UML – Définition – Historique – UML en entreprise – Couverture Concepts – Objet – Classe –
Windows NT/2000/XP Enjeux et contraintes techniques Troisième partie La GDI C. Casteyde Document diffusé sous licence GNU FDL.
Composants Matériels de l'Ordinateur Plan du cours : Ordinateurs et applications Types d'ordinateurs Représentation binaires des données Composants et.
Logiciel Assistant Gestion d’Événement Rémi Papillié (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Système de gestion d'entrées pour un cinéma Scanvion Michel – Etudiant 4.
Travailler à l'ensimag avec son matériel personnel (dans les locaux Ensimag ou depuis l'extérieur) 1.Introduction 2.La clé USB Ensilinux 3.Rappels : Accès.
Windows NT/2000/XP Enjeux et contraintes techniques Première partie Présentation générale C. Casteyde Document diffusé sous licence GNU FDL.
Créat. : 23/09/2016 Modif. : 23/09/2016 Bogdan Stefanescu > Connectivité CPS et Eclipse Solutions Linux 2006.
LES FONCTIONS D'UN SYSTEME D'EXPLOITATION ● Le système d'exploitation contrôle entièrement les ressources matérielles locales. ● Il est responsable de.
Windows NT/2000/XP Enjeux et contraintes techniques Douzième partie La sécurité C. Casteyde Document diffusé sous licence GNU FDL.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
CORBA. Agenda ë L ’OMG ë Object Management Architecture (OMA) ë Le langage IDL ë Architecture CORBA ë Intéropérabilité : CORBA 2 ë Les composants de l.
1 Observer le paramétrage d’un réseau. 2 Dans notre réseau téléphonique habituel, les postes, reliés à un auto-commutateur... …peuvent dialoguer, car.
Février 2006X. Belanger / Guilde Introduction à. Février 2006X. Belanger / Guilde Qu'est ce que Samba ? ● Implémentation libre du protocole CIFS/SMB (client.
1 Identifier les composants d’un réseau local. 2 Les composants d’un réseau Des ordinateurs, appelés stations... …munis d’une carte réseau leur permettant.
Adressage IP Page 1 L’adressage IP.
WIKITTY Base de données orientée documents et API de persistance pour Java.
Fadhel jied Oussama hédhili V - conclusion IV - Les avantages et les inconvénients III - exemples II - aspect informatique I - introduction.
ANNEE ACADEMIQUE Institut Supérieur Emmanuelle D’Alzon de Butembo COURS: THEORIE DE BASE DE DONNEES : 45H PROMOTION: G2 Gestion Informatique.
Windows NT/2000/XP Enjeux et contraintes techniques
Interfaçage entre Maple et du code externe
Les Bases de données Définition Architecture d’un SGBD
AMUE – SIFAC Intégration Fichier Mouvements BDF
Communication client-serveur
Qu’est-ce un serveur de messagerie?
Comprendre l’environnement Web
Environnement du développement de BD ORACLE REPORTS 10g
Les P G I Les Progiciels de Gestion Intégrés
Pas de variable globale
Les notions de classe et d'objet
Principes de programmation (suite)
Les bases de données et le modèle relationnel
Centralisation de logs
fonctionnalités iiS iis
Asynchronous Javascript And Xml
Les interfaces en PHP.
Présentation OCS-Inventory au LAPP
Programmation système
Août 2009.
Présentation des EJB Enterprise Java Beans.
HTTP DNS NTP FTP R231 RJ45 definition HTTP DNS NTP FTP R231 RJ45.
Structure D’une Base De Données Relationnelle
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Introduction à Internet
Service web Réalise par: Latifa Gamoun Mariem jridi Majdouline Hassni Service web Réalise par: Latifa Gamoun Mariem jridi Majdouline Hassni 1.
Message Oriented Middleware MOM - Beghdad abdelkrim -abass youcef.
1 IPSec : IP Security Protocole fournissant un mécanisme de sécurisation au niveau IP. RFC 2401 concernant IPSEC RFC 2402 concernant le mode AH (authentification)
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
Mise en place d'un Serveur Radius pour la sécurité d'un réseau Wireless sous Windows Serveur Présenter par le Stagiaire : Etienne Mamadou Guilavogui.
Auditeur: Léonardo AMODIO Cours: NFE107
Cours 10 : Les Web Services et WSDL Février Version 1.0 -
1 PROJET D’INFORMATIQUE les composants de l'ordinateur Gammoudi Rayéne 7 B 2.
IDL interface définition langage. Plan Introduction Principaux éléments IDL Types de données IDL Déclaration de module Déclaration d'interface Déclaration.
PRESENTATION ACCESS Editeur : Microsoft Environnement Windows (SE)
IFAPME X41 Administrateur serveur
Piles et files.
Projet CRImage UNIVERSITE STENDHAL GRENOBLE
Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine
Présentation PISTE pour les partenaires raccordés en API
Qu’est ce qu’une page web? Comment fonctionne un site web?
Dridi Lobna 1 Couche Réseau II Réseau : Gestion de l’accès.
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
Business Intelligence en ACube OLAP et Reporting avec ACubeOLAP et GRaM.
LES RESEAUX. Besoin de communication LES RESEAUX Pour communiquer via un réseau informatique Support de transmission Carte réseau Éléments de réseau.
Transcription de la présentation:

Windows NT/2000/XP Enjeux et contraintes techniques Cinquième partie COM et OLE C. Casteyde Document diffusé sous licence GNU FDL

Plan ● Les origines de COM ● Les principes de base – Composants et interfaces COM – IDL et marshalling – Création et enregistrement ● Services complémentaires – Notifications et distribution – Automation et OLE ● Conclusion

Component Object Model ● La technologie Microsoft porte plusieurs noms : – (D)COM(+) (Distributed Component Object Model), – OLE (Object Linking and Embedding), – ActiveX. ● Initialement prévue pour l'intégration et la liaison de documents ● Étendue pour constituer un véritable ORB – Visual Basic, – base de nombreuses technologies.

Plan ● Les origines de COM ● Les principes de base – Composants et interfaces COM – IDL et marshalling – Création et enregistrement ● Services complémentaires – Notifications et distribution – Automation et OLE ● Conclusion

Les composants ● Extension de la notion d'objet : – indépendance du langage (VB, C++, scripts), – réutilisation de code. ● Implémentation possible dans des serveurs : – in-process (DLL), – exécutables (EXE). ● Transparence réseau

Interfaces COM ● Les fonctionnalités sont basées sur les interfaces ● Les interfaces exposent les fonctionnalités des objets ● Les interfaces COM sont définies au niveau binaire ● Implémentation indépendante du langage ● Mais nécessite des langages compatibles ● Spécifique à la plate-forme

Interfaces COM ● Pointeur de tableau de pointeurs de fonctions ● Dérivent toutes de l'interface IUnknown ● Implémentées nativement en C++ par des classes abstraites (structure de V-table) ● Implémentées en Visual Basic en natif ● Passerelles pour les objets.Net (quasi natif)

Notion de Vtable &Méthode1 &Méthode2 &Méthode3... &Méthoden VTable &VTable Interface Code et données privés de l'objet/proxy Méthode 1 Méthode 2 Méthode n

L'interface IUnknown ● IUnknown est la base de toutes les interfaces ● Permet la gestion de la durée de vie : – utilisation d'un compte de références, – méthodes AddRef() et Release(). ● Point d'entrée pour les autres fonctionnalités : – méthode QueryInterface pour obtenir une autre interface, – détermination dynamique des fonctionnalités.

L'interface IUnknown AddRef Release QueryInterface IUnknown

Plan ● Les origines de COM ● Les principes de base – Composants et interfaces COM – IDL et marshalling – Création et enregistrement ● Services complémentaires – Notifications et distribution – Automation et OLE ● Conclusion

Langage IDL ● Le langage IDL de Microsoft permet : – de décrire les interfaces, – de décrire les classes de composants. ● Permet de générer : – les en-têtes C/C++, – une bibliothèque de types, – le code C du proxy et du stub.

Exemple IDL // Interface : interface ICalc : IDispatch{ [id(1), helpstring("method Add")] HRESULT Add([in] LONG Operand1, [in] LONG Operand2, [out,retval] LONG* Result); [propget, id(2), helpstring("property Operand1")] HRESULT Operand1([out, retval] LONG* pVal); [propput, id(2), helpstring("property Operand1")] HRESULT Operand1([in] LONG newVal); }; // Bibliothèque de types : coclass Calc { [default] interface ICalc; [default, source] dispinterface _ICalcEvents; };

Notion de bibliothèque de types ● Représentation binaire de l'IDL ● Décrit les classes et les interfaces ● Utilisée pour le marshalling ● Utilisée pour la description dynamique des objets : – langages de scripts, – conteneurs génériques.

Proxies et Stubs ● Implémentés sous forme de composants in-process ● Chargés par le système dans les processus serveurs et clients : – le proxy est polymorphique avec l'objet géré, – le client communique avec le proxy, – le stub est invisible dans le serveur. ● Le proxy et le stub effectuent le transport

Marshalling COM Processus 1 Client Proxy IServer DLL Proxy/Stub Processus 2 Serveur IServer Stub DLL Proxy/Stub IDL Type Library

Conventions d'appel ● Le marshalling implique : – un respect absolu des conventions d'appel, – un allocateur mémoire dédié, – des règles de passage de paramètres. ● Les paramètres de sortie doivent être : – alloués par l'appelé, – libérés par l'appelant. ● L'appelé ne doit pas modifier les paramètres d'entrée

Plan ● Les origines de COM ● Les principes de base – Composants et interfaces COM – IDL et marshalling – Création et enregistrement ● Services complémentaires – Notifications et distribution – Automation et OLE ● Conclusion

Création et identification ● Les objets sont créés avec CoCreateInstance ● Leurs classes sont identifiées par des CLSIDs ● Les interfaces sont identifiées par des IIDs ● CLSIDs et IIDs sont des GUIDs – « Globally Unique IDentifier », – nombres 128 bits globalement uniques, – générés avec uuidgen.exe (ou API).

Enregistrement des objets ● Les serveurs sont enregistrés en base de registres : – association (CLSID, binaire), – association (IID, Type Library), – associations (noms humains, GUID). ● Les serveurs in-process exportent des méthodes de création d'objets ● Les serveurs exécutables enregistrent leurs fabriques d'objets au démarrage

Création des objets CO M Base de registres CLSID Localisation CoCreateInstance Table des fabriques Client DLL Fabrique de classe Objet Serveur Fabrique de classe Objet

Distributed COM ● Les objets peuvent être utilisés à distance ● Le marshalling des interfaces est systématique ● Il faut enregistrer le proxy côté client et serveur ● Les serveurs exécutables sont déportables tels quels ● Les serveurs in-process nécessitent un processus hôte (DLLHost) ● Les droits sont définis par DcomCnfg

Distributed COM ● Les canaux de communication sont multiplexés ● Les protocoles UDP ou TCP sont utilisables ● Un mécanisme de ping permet de tracer les pertes de communication ● Il est quasi impossible de contrôler les timeouts réseau

Plan ● Les origines de COM ● Les principes de base – Composants et interfaces COM – IDL et marshalling – Création et enregistrement ● Services complémentaires – Notifications et distribution – Automation et OLE ● Conclusion

Notifications COM ● Notion de point de connexion : – abonnement du client sur le point de connexion, – notification par callback sur une interface spécifique. ● Énumération dynamique des points de connexion (IConnectionPointContainer) ● Le serveur maintient la liste des clients ● Pas de mécanisme de boîte aux lettres (non fiable)

Notifications COM Client Interface 2 Point de connexion IConnectionPoint Liste des clients Point de connexion IConnectionPoint Serveur 3. Notification Client Interface 1 Client Interface 1 1. Recherche 2. Abonnement IConnectionPointContainer

Plan ● Les origines de COM ● Les principes de base – Composants et interfaces COM – IDL et marshalling – Création et enregistrement ● Services complémentaires – Notifications et distribution – Automation et OLE ● Conclusion

Automation et late binding ● Fonctionnalité d'appel de méthodes dynamique : – la méthode est appelée via son nom, – les paramètres sont gérés de manière générique, – via l'interface IDispatch. ● Nécessite : – un jeu réduit de types de données, – des conventions d'appel plus contraignantes. ● Les valeurs sont passées via des VARIANTs : – union pouvant contenir tous les types Automation, – discriminant identifiant le type de la valeur.

L'interface IDispatch ● Méthode de précompilation « GetIDsOfNames » ● Méthode d'invocation « Invoke » ● Méthodes permettant de récupérer les informations de types ● Peut être « duale » : – dérive de IDispatch, – contient les méthodes natives pour optimisation.

L'interface IDispatch AddRef Release QueryInterface GetTypeInfoCount GetTypeInfo GetIDsOfNames Invoke IDispatch

OLE ● OLE définit un jeu d'interfaces dédiées à l'incrustation et à la liaison de documents ● Ces interfaces assurent : – les fonctionnalités de sauvegarde, visualisation, édition, – une intégration poussée et progressive entre les applications (selon les interfaces implémentées). ● Technologie complexe mais extensible : – documents OLE, – contrôles ActiveX...

Applications OLE Objet OLE IViewObject2 IPersistStorage IOleObject IDataObject IOleControl IOleInPlaceObject IOleInPlaceActive Object IDispatch IConnectionPoint Container Conteneur OLE IOleInPlaceFrame Document OLE Site IOleClientSite IOleInPlaceSite IOleControlSite IAdviseSink IDispatch IOleInPlace UIWindow

Plan ● Les origines de COM ● Les principes de base – Composants et interfaces COM – IDL et marshalling et IDL – Création et enregistrement ● Services complémentaires – Notifications et distribution – Automation et OLE ● Conclusion

Le choix stratégique DCOM ● C'est une technologie puissante : – réutilisation de composants, – déploiement réseau facile, – bus à objets répartis quasi-complet. ● Elle est omniprésente dans Windows : – documents OLE, – nouvelles fonctionnalités système (Shell, DirectX), – code Visual Basic omniprésent, – technologie Internet (ASP, fondement de.Net).

Conclusion ● COM est un véritable bus à objets ● C'est une technologie puissante et extensible ● Son implémentation est binaire et indépendante du langage ● COM est essentiel pour les documents OLE ● La suite : Une technologie complexe et difficile à maîtriser dans le détail