Des objets aux services : un mariage réussi? Vers le meilleur des deux mondes Hervé Grall (avec Diana Allam et Jean-Claude Royer) Ascola (Mines de Nantes Inria Lina) 7 june 2013
Objets + Services Bugs? Tendance : frameworks à objets pour produire et consommer des services Web Problème : des limitations Les principes «objets» et «services» ne semblent pas se combiner harmonieusement. Origine : la traduction des objets vers les structures sérialisables Solution : une nouvelle spécification Formalisation utilisant la «théorie des catégories» Intuition simple : des diagrammes commutatifs Avantage : meilleure interopérabilité grâce à un couplage faible entre les clients et les serveurs Conclusion : quelles sont les qualités souhaitables d une spécification normalisée? Comment les obtenir? H. Grall (Ascola) Objets/Services 7/VI/2013 2 / 15
Plan Des objets aux services : une rencontre nécessaire 1 Des objets aux services : une rencontre nécessaire 2 Fonctionnement d un framework - Le problème et sa solution H. Grall (Ascola) Objets/Services 7/VI/2013 3 / 15
Des objets aux services : une rencontre nécessaire Les langages à objets : largement dominants Le classement Tiobe H. Grall (Ascola) Objets/Services 7/VI/2013 4 / 15
Des objets aux services : une rencontre nécessaire Les langages à objets : largement dominants Le classement PYPL H. Grall (Ascola) Objets/Services 7/VI/2013 4 / 15
Des objets aux services : une rencontre nécessaire Les langages à objets Le polymorphisme Encapsulation des données et des opérations sur ces données Envoi de messages pour appeler les opérations Création dynamique Objet nantes de type Ville Polymorphisme La règle de subsomption Si Ville sous-type de Lieu, Alors nantes de type Lieu. Raffinement : utiliser Ville à la place de Lieu H. Grall (Ascola) Objets/Services 7/VI/2013 5 / 15
Des objets aux services : une rencontre nécessaire Intégration & Internet Services ( c Chappell) H. Grall (Ascola) Objets/Services 7/VI/2013 6 / 15
Des objets aux services : une rencontre nécessaire Intégration & Internet Services H. Grall (Ascola) Objets/Services 7/VI/2013 6 / 15
Des objets aux services : une rencontre nécessaire Intégration & Internet Services Intégration d applications logicielles Boîtes noires et interfaces Modèle client-serveur Des processus plus transparents : l orchestration de services H. Grall (Ascola) Objets/Services 7/VI/2013 6 / 15
Des objets aux services : une rencontre nécessaire Intégration & Internet Services H. Grall (Ascola) Objets/Services 7/VI/2013 6 / 15
Des objets aux services : une rencontre nécessaire Intégration & Internet Services ( c Berners-Lee) H. Grall (Ascola) Objets/Services 7/VI/2013 6 / 15
Des objets aux services : une rencontre nécessaire Intégration & Internet Services Web = hyperliens + transport de messages + gestion des noms Internet : éther de communication Architecture REST Architecture client-serveur Ressources avec un identifiant universel et des représentations hypermédia Manipulation via une interface uniforme (e.g. put/delete et get/post) H. Grall (Ascola) Objets/Services 7/VI/2013 6 / 15
Des objets aux services : une rencontre nécessaire Deux modèles pour les services Web Google Trends «restful web services, soap web services» H. Grall (Ascola) Objets/Services 7/VI/2013 7 / 15
Des objets aux services : une rencontre nécessaire Deux modèles pour les services Web Modèle «intégration» : les «gros» services web (dits SOAP ou WS*) Rendez-vous ou appel de procédure distante Modèle «Web» (automatisation des interactions avec les serveurs) : services agiles (dits RESTful) Messages asynchrones avec des hyperliens H. Grall (Ascola) Objets/Services 7/VI/2013 7 / 15
Des objets aux services : une rencontre nécessaire Deux modèles pour les services Web Un objectif commun : la découverte de services Principe important : la compatibilité des interfaces Exemple : découverte d un service de météo Recherche du client : météo du jour pour une ville donnée Service découvert : météo du jour pour un lieu donné Cela marche car une ville est aussi un lieu. H. Grall (Ascola) Objets/Services 7/VI/2013 7 / 15
Des objets aux services : une rencontre nécessaire La rencontre Les applications réparties avant les services Web DCOM (Distributed Component Object Model) de Microsoft CORBA (Component Object Request Broker Architecture) de l OMG RMI (Remote Method Invocation) de Sun Problèmes Pas de passages des pare-feux Protocoles de communication non interopérables Solution : les services Web Question : comment les programmer? Les spécifications et frameworks Exemple : Java JAX-WS (2006) et JAX-RS (2007) avec leurs implémentations de références H. Grall (Ascola) Objets/Services 7/VI/2013 8 / 15
Fonctionnement d un framework - Le problème et sa solution Plan 1 Des objets aux services : une rencontre nécessaire 2 Fonctionnement d un framework - Le problème et sa solution H. Grall (Ascola) Objets/Services 7/VI/2013 9 / 15
Fonctionnement d un framework - Le problème et sa solution Consommation et production d un service Une invocation et une réponse ( c Allam) H. Grall (Ascola) Objets/Services 7/VI/2013 10 / 15
Fonctionnement d un framework - Le problème et sa solution Consommation et production d un service Invocation Décomposition en canal et message Sérialisation du message Transmission du message via le canal Désérialisation du message Appel du service H. Grall (Ascola) Objets/Services 7/VI/2013 10 / 15
Fonctionnement d un framework - Le problème et sa solution Possibilité de raffinement? Principe général appliqué en Java : la règle de subsomption Principe général applicable pour les services Web : boîte noire H. Grall (Ascola) Objets/Services 7/VI/2013 11 / 15
Fonctionnement d un framework - Le problème et sa solution Possibilité de raffinement? Exemple : le service météo Client : utilisation d un service de météo lieu météo du jour Client : envoi de nantes Cela devrait marcher car une ville est aussi un lieu. Mais : javax.xml.bind.unmarshalexception dans une version du framework testé, pas d erreur dans une nouvelle version H. Grall (Ascola) Objets/Services 7/VI/2013 11 / 15
Fonctionnement d un framework - Le problème et sa solution Compatibilité des interfaces? Principe général appliqué en Java : la règle de subsomption Principe général non appliqué pour les services Web Idée : le meilleur des deux mondes H. Grall (Ascola) Objets/Services 7/VI/2013 12 / 15
Fonctionnement d un framework - Le problème et sa solution Compatibilité des interfaces? Exemple : le service météo Client : utilisation d un service de météo ville météo du jour Client : basculement vers un nouveau service lieu météo du jour Cela devrait marcher car une ville est aussi un lieu. Mais : javax.xml.bind.unmarshalexception dans toutes les versions testées H. Grall (Ascola) Objets/Services 7/VI/2013 12 / 15
Fonctionnement d un framework - Le problème et sa solution Solution : un diagramme commutatif Ville ι Lieu σ Ville σ Lieu id Ville Serie(Ville) Serie(ι) Serie(Lieu) id Lieu δ Ville δ Lieu Ville ι Lieu Diagnostic : problème avec la flèche Serie(ι) (conversion entre les structures série) Nouvelle spécification souhaitable Les spécifications actuelles sont muettes relativement au polymorphisme. H. Grall (Ascola) Objets/Services 7/VI/2013 13 / 15
Fonctionnement d un framework - Le problème et sa solution Diagramme commutatif? Origine : les mathématiques et la théorie des catégories (surnommée par auto-dérision «abstract nonsense» De nombreuses applications très intuitives en programmation A f B ncopies(10,-) List(A) List(f) List(B) ncopies(10,-) H. Grall (Ascola) Objets/Services 7/VI/2013 14 / 15
Fonctionnement d un framework - Le problème et sa solution Sur les normes, les spécifications Simplicité Profondeur Bon exemple : le langage Java Mauvais exemple : les services Web Solution : sans doute dans le rapport recherche/enseignement/industrie H. Grall (Ascola) Objets/Services 7/VI/2013 15 / 15