Meta Object Facility. Plan



Documents pareils
Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Intergiciels pour la répartition CORBA : Common Object Request Broker. Patrice Torguet torguet@irit.fr Université Paul Sabatier

NFP111 Systèmes et Applications Réparties

CORBA. (Common Request Broker Architecture)

Composants Logiciels. Le modèle de composant de CORBA. Plan

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Chapitre VI- La validation de la composition.

2 Chapitre 1 Introduction

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

I4 : Bases de Données

OpenPaaS Le réseau social d'entreprise

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Remote Method Invocation (RMI)

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

BI2 : Un profil UML pour les Indicateurs Décisionnels

Patrons de Conception (Design Patterns)

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Générer du code à partir d une description de haut niveau

IFT2255 : Génie logiciel

Développement d un interpréteur OCL pour une machine virtuelle UML.

Architecture à base de composants pour le déploiement adaptatif des applications multicomposants

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Java c est quoi? Java pourquoi?

Traduction des Langages : Le Compilateur Micro Java

Introduction aux «Services Web»

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

TD sur JMS ) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS?

Programmation Orientée Objet

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Intergiciel - concepts de base

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

3. UML - Unified Modeling Language Diagrammes statiques

Objets et Programmation. origine des langages orientés-objet

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Génie Logiciel Orienté Objet UML

OCL - Object Constraint Language

Ingénierie des Modèles. Méta-modélisation

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

UML et les Bases de Données

Mise en œuvre des serveurs d application

Programmer en JAVA. par Tama

GPC Computer Science

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

MDA (Model Driven Architecture) principes et états de l art.

Projet de Veille Technologique

Chapitre 2. Classes et objets

Remote Method Invocation en Java (RMI)

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

CORBA haute performance

Object Management Group

Architecture d'entreprise : Guide Pratique de l'architecture Logique

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Mercredi 15 Janvier 2014

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

les techniques d'extraction, les formulaires et intégration dans un site WEB

Bases de Données relationnelles et leurs systèmes de Gestion

WEA Un Gérant d'objets Persistants pour des environnements distribués

RMI le langage Java XII-1 JMF

Génie Logiciel avec Ada. 4 février 2013

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

F. Barthélemy. 17 mai 2005

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

JMX : un standard pour la gestion Java

TP Bases de données réparties

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

GEI 465 : Systèmes répartis

CCNA Discovery Travailler dans une PME ou chez un fournisseur de services Internet

Modélisation et évaluation de performance des systèmes basés composants

Intégration de données hétérogènes et réparties. Anne Doucet

Description de la formation

Initiation à JAVA et à la programmation objet.

Refonte front-office / back-office - Architecture & Conception -

Projet de développement

Architectures d'intégration de données

Premiers Pas en Programmation Objet : les Classes et les Objets

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Groupe Eyrolles, 2004 ISBN :

M1 : Ingénierie du Logiciel

Java DataBaseConnectivity

Compte Rendu d intégration d application

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Auto-évaluation Aperçu de l architecture Java EE

Java - RMI Remote Method Invocation. Java - RMI

Module BD et sites WEB

Transcription:

Meta Object Facility Gestion de «meta objets» & meta meta modélisation Xavier Le Pallec Plan 1

Auteur : MOF : généralités L OMG en 1997-1998. Acteur principal DSTC : Centre Recherche sur les Systèmes distribués (workflow, gestion de connaissances, ) Qu est-ce que c est : un ensemble d éléments de (meta (2) ) modélisation permet de REPRESENTER des meta modèles (UML, Java, OMG-IDL, meta modèle workflow WfMF, ) But principal : - Gérer des meta modèles à partir d objets CORBA. Proposer environnement de développement distribué basé sur CORBA Etat d avancement : - Spécifications ± finies (prochaine soumission 30 Juin 1999) - pas de produit MOF (prototypes ou projets DSTC, UREP?) (rapide aperçu du) Fonctionnement de MOF Classes MOF Instances de classes MOF décrivant un meta modèle (UML, Java) Ces instances stockent des éléments (de type attribut, opération, contraintes, ) qui deviendront les caractéristiques des éléments du meta modèle Interface ClassUMLClass { Class create_class ( ); <liste attributs de classes> } <liste méthodes de classes> } Mapping en OMG-IDL Interface ClassUML { { } <liste attributs d instances> <liste méthodes d instances> 2

Tout d abord LE référentiel selon l OMG MOF et le meta modèle Java MOF::Class MOF::Attribute i i i JavaClass contains methods type Multiplicity =0..* JavaMethod contains i Java.awt.Frame JavaMethod[] getmethods( ) addmethod(javamethod jm) Attribut ReturnType ATTENTION ce n est pas la classe java.awt.frame mais une représentation 3

De manière pratique, cela va donner compiler et lancer Accès aux objets Corba par CorbaScript, pour tester : CorbaScript V1.2, 1999 >>> >>>x=objet de type JavaClassClass >>>a=x.create_javaclass ( Frame ) >>>a.setsuper( Window ) >>>a.addattributes( menubar ) Meta modèle Java en pratique PLAN Phase I Phase II Phase III Phase IV Phase V Meta modélisation mapping en IDL Implémentation Exécution Attention 4

Meta modèle Java en pratique phase I - meta modélisation outil de modélisation et son paquetage MOF un concepteur Mof::Class Mof::Operation Mof::Association JavaClass JavaMethod JavaAttribute Instances d entités MOF représentant le meta modèle Java Meta modèle Java en pratique phase I - meta modélisation outil de modélisation et son paquetage MOF un concepteur Mof::Class Mof::Operation Mof::Association JavaClass JavaMethod JavaAttribute Instances d entités MOF représentant le meta modèle Java 5

JavaMethod Supertypes : JavaClass or Mof::Class name : «JavaMethod» annotation : «sert à créer des méthodes Java» Contents (ref) : instances de Mof::Attribute, Mof::Operation, Mof::Constraints, ModelElement lookupelement ( name ) Boolean nameisvalid () ModelElement resolvequalifiedname (name) Constraints Meta modèle Java en pratique phase I bis - que contient le meta Java? exemple : JavaMethod Squelette pour définir les méthodes java. Informations propres à JavaMethod (MOF) : - attribut : name, annotation, issingleton - opérations : lookupelement, nameisvalid, Informations propres à JavaMethod (Java) : instances contenues dans le NameSpace instances de Mof::Attribute (ex : NbMethods), instances de Mof::Operation (ex : GetMethod), (au choix) Informations propres à une méthode (Java): instances contenues dans le NameSpace instances de Mof::Attribute (paramètres, type-retour, visibilité, ), (au choix) Meta modèle Java en pratique phase II - mapping en IDL JavaClass JavaMethod JavaAttribute Mapping automatique outil de modélisation Mapping «à la main» BON COURAGE! NB: On reste sur l exemple de JavaMethod Interface CORBA pour le type JavaMethod Interface CORBA pour les méthodes Java 6

Meta modèle Java en pratique phase II bis que contiennent les interfaces CORBA? Interface CORBA pour le type JavaMethod Interface CORBA pour les méthodes Java Interface JavaMethodClass { JavaMethod create_javamethod ( ); integer getnbmethods ( ); JavaMethod getmethod (integer n); } Interface JavaMethod { JavaType getreturntype ( ); void setreturntype ( JavaType ) ; JavaParameter getparameter ( integer n ); void setparameter (integer n, JavaParameter j); } Meta modèle Java en pratique phase II ter - on trouvera surement Interface CORBA pour les classes Java Interface JavaClass { String getname ( ); JavaClass getsuper ( ) ; JavaMethod[] getmethods ( ); void addmethod (JavaMethod m); } JavaAttribute[] getattributes ( ); 7

Meta modèle Java en pratique phase III - Implémentation Interfaces CORBA JavaAttributeClass JavaMethod JavaInterface JavaClass Precompilation Precompilation Souches clientes : classes permettant d invoquer les objets CORBA MofJava. Squelettes d implémentation : classes permettant d implémenter les objets CORBA MofJava et, de répondre aux invocations distantes. NB : Dans la Précompilation, on choisit un langage cible les classes générées le seront dans ce langage (Java, C++, SmallTalk, ) Implémentation : création de classes héritant de celles-ci mais avec les méthodes (comme getreturntype de JavaMethod) implémentées. Meta modèle Java en pratique phase IV - Exécution compiler et lancer Accès aux objets Corba par CorbaScript, pour tester : CorbaScript 1.1 Copyright >>>x=objet de type JavaClassClass >>>a=x.create_javaclass ( Frame ) >>>a.setsuper( Window ) >>>a.addattribute( menubar, JavaPrivate) ou >>>a.addattribute( JavaAttributeClass.create_JavaAttribute( menubar )) 8

Meta modèle Java en pratique phase V - Attention!! Ces opérations : - création de classe - fixer la classe mère - ajouter un attribut ne touche que les objets CORBA et pas les classes et objets Java représentés! CorbaScript 1.1 Copyright >>>x=objet de type JavaClassClass >>>a=x.create_javaclass ( Frame ) >>>a.setsuper( Window ) >>>a.addattribute( menubar, JavaPriv Ex : Monde CORBA Monde Java t >>>mc=instance de JavaMethodClass >>>m=mc.create_javamethod(«flash») >>>a.addmethod(m) a=new Frame(«FenetreEssai») a.flash(); Passe pas a.flash(); ou Passe toujours pas! c=a.getclass(«frame») m=c.getmethod(«flash») m.invoke(a,null) Non plus! Meta modèle Java en pratique phase V bis - En résumé On a créé des objets CORBA permettant de la modélisation en Java? pour mais générer des squelettes de classes Java avoir des représentations dynamiques en aucun cas des opérations de ces objets CORBA ne peuvent modifier des classes Java au moment de l exécution Java ne le permet pas (ne dispose pas de mécanisme d intercession) Par contre, en Smalltalk ce serait possible, car ces mécanismes dynamiques existent! MOF = MODELISATION à base de meta objets? 9

INTERET??? retour sur Les 4 scénarios Développement d un logiciel (AGL) Gestion de «typage» (Interface Repository) Gestion d information (WEB) Gestion d entrepôts de données (unification de plusieurs BDs) MOF et le développement d un logiciel (partie I) Développement d un logiciel Analyse des besoins Conception de la structure de l application Implémentation Note : Chaque phase a son meta modèle, dans l ordre : RM-ODP, UML, Java 10

MOF et le développement d un logiciel (partie II) Meta modèle de ODP écrit en MOF Meta modèle de UML écrit en MOF Meta modèle de Java écrit en MOF Meta modèle de mapping entre ODP & UML écrit en MOF Meta modèle de mapping entre UML & Java écrit en MOF Outil basé sur MOF qui permet l instanciation de meta modèle & le mapping entre meta modèle concepteur MOF et le développement d un logiciel (partie III) modèle en ODP outil MOF * modèle en UML modèle en Java Modifications du modèle en UML outil MOF * Modifs repercutées en Java 11

MOF et le développement d un logiciel (partie IV) - Gain de temps - Plus grande cohérence entre les modèles - Possibilité de modifier un des meta modèles en direct (répercussion sur les autres modèles) - Un peu lent (vu toutes les couches) - Complexe MOF et la gestion de types - partie I Exemple : l Interface Repository de CORBA [1] Demande ref sur interface i1 du module mod I.R [2] référence sur Lookup(«mod:i1») [1] Réf.[2] Objet CORBA de type container décrivant l interface i1 Contents()[3] «Client» CORBA [4] Liste d objets représentant attributs & opérations de i1 12

MOF et la gestion de types - partie II Remplacer l IR par ensemble d objets IDL/MOF Meta modèle IDL écrit en MOF mapping en IDL Objet CORBA qui gère toutes les instances IDL/MOF créées Interface IdlInterfaceClass { IdlInterface create_idlinterface (String ); }; Objet CORBA décrivant une interface IDL (MOF) MOF et la gestion de types - partie III Comparaison I.R renvoie Objets décrivant des interfaces IDL Objet CORBA qui gère toutes les instances IDL/MOF créées renvoie Objets décrivant et modifiant (si l implantation suit) des interfaces IDL I.R + souple 13

MOF et la gestion d informations Définition d un modèle d information en MOF pour une application Serveurs, basés CORBA, de meta objets qui gèrent l information Meta objets accessibles comme tout objet CORBA (donc de l application) Définition d un meta modèle en MOF pour des modèles d information d un domaine particulier Environnement de développement avec génération de serveurs de données et d applications, basés CORBA, à partir des modèles d informations. (ex du Web) Gestion d entrepôts de données (Data Warehouse Management) MOF n est pas limité aux meta-modèles, langages orientés objets Modélisation de Bases de Données Relationnelles (gérer le concept de table, de tuple, ) Data Data Warehouse Warehouse : : 1 requête sur un système composé de plusieurs BDs différentes cache de données, traduction de requêtes, MOF comme base pour la traduction de requêtes 14