Beruflich Dokumente
Kultur Dokumente
Mta donnes
Meta donnes
Scurit
Dfinit les rgles d'encodage et des conventions pour dfinir les RPC S'adapte plusieurs protocoles de transport
Meta donnes
Scurit
ne correspondant pas du XML? Via des protocoles autres que HTTP? De faon fortement asynchrone?
Spcifications complmentaires
MTOM (Message Transmission Optimisation Mechanism) Permet d'envoyer des donnes binaires (attachements) fait suite 2 spcifications DIME et WS-Attachment SOAP-over-UDP, WS-Addressing /2003, WS-Eventing, WS-Notification /2003
WS-Addressing (2004)
Identifier les points d'accs d'un service Web Ncessaire pour scuriser l'identification des points d'accs Dcoupler l'identification d'un point d'accs du protocole utilis pour transporter les messages SOAP
Requte SOAP
Le point d'accs du service est identifi dans l'entte HTTP => SOAP est dpendant du protocole de transport
POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml Content-Length: nnnn SOAPMethodName: Some-Namespace-URI#GetLastTradePrice <SOAP:Envelope xmlns:SOAP="urn:schemas-xmlsoap-org:soap.v1> <SOAP:Body> <m:GetLastTradePrice xmlns:m="Some-Namespace-URI> <symbol>DIS</symbol> </m:GetLastTradePrice> </SOAP:Body></SOAP:Envelope>
6
WS-Adressing Bilan
SOAP spcifie la structure des messages pour invoquer des services WS-Adressing fournit un format d'adressage au niveau des messages SOAP WS-Adressing permet de dcorrler SOAP du protocole de transport Comment dfinir une communication inter service Web plus flexibles, asynchrone ?
WS-Notification, WS-Eventing
Notification d'vnements
Event router
Event router
Notify
Event router
Subscribe
Subscribe
Notify
Event generator
Routing topology
WS-Notification, WS-Eventing
Notification et souscription sont deux messages envoys dans un seul sens Deux approches pour grer des notifications
Filtrage des vnements, agrgation sont aussi grs au niveau des spcifications
Exemple de souscription
<s12:Envelope xmlns:s12="http://.../soap-envelope" xmlns:wsa="http://.../addressing" xmlns:wse="http://.../eventing" xmlns:ew="http://.../warnings" > <s12:Header> <wsa:Action> http://.../eventing/Subscribe </wsa:Action> <wsa:MessageID> uuid:d7c574259 </wsa:MessageID> <wsa:ReplyTo> <wsa:Address>http://..../MyEventSink</wsa:Address> </wsa:ReplyTo> <wsa:To>http://www..../oceanwatch/EventSource</wsa:To> </s12:Header>
Suite notification
<s12:Body> <ow:WindReport> <ow:Date>030701</ow:Date> <ow:Speed>65</ow:Speed> <ow:Location>BRADENTON BEACH</ow:Location> <ow:County>MANATEE</ow:County> <ow:State>FL</ow:State> <ow:Lat>2746</ow:Lat> <ow:Long>8270</ow:Long> ... </ow:WindReport> </s12:Body> </s12:Envelope>
Meta donnes
Scurit
WS-ReliableMessaging : dlivrer des messages de faon fiable malgr des erreurs (rseau, logiciel)
Ordonnancement de messages (SOAP) : chaque squence de messages identifie, un numro pour chaque message Perte des messages (SOAP) : s'assurer qu'un message envoy est effectivement reu via des accuss de rception positifs et ngatifs
WS-ReliableMessaging
SOAP peut utiliser UDP comme transport TCP fournie des garantie pour 1 saut (et donc pas pour du multi-sauts) Les applications (notamment les transactions) ont des exigences trs contraignantes
At-Least-Once: garantie le dlivrement At-Most-Once: Garantie sur l'limination des messages dupliqus Exactly-Once: Garantie la fois le dlivrement et l'limination des duplicats
Bilan : ces garantis sont des pr-requis pour un support des transactions et des processus mtiers
Meta donnes
Scurit
Transactions
WS-AtomicTransaction WS-BusinessActivity
WSCL, WS-choreography, WS-orchestration, BPEL4WS (Business Execution Language for Web Services)
Transaction traditionnelles
Atomicity : le tout ou rien, si une partie de la transaction est un chec, alors toute la transaction est un chec Consistency : seules des donnes valides sont sauvegardes. En cas d'invalidit, la transaction sera retrogrades de faon maintenir un tat cohrent Isolation : les transactions oprent de faon isole Durability
Transactions distribues Long terme Les transactions ACID sont trop contraignantes : de longues transactions peuvent rduire des accs concurrents Il faut supporter des compensations (scnario de l'agence de voyage) et non pas verrouiller les ressources
Transaction (2/2)
WS-Atomic transaction (court terme) WS-Business Activity (long terme, tolre la dfaillance des transactions, compensables)
Service web
WS-coordination
Contexte :
De nombreux services Web distribus Des changes complexes entre les participants coordonner les activits (transactions) & les participants
Besoin :
WS-coordination
coordinateur
Service web
Est une spcification d'une infrastructure de coordination Une application souhaite crer un service transactionnel ou non Un service d'activation permet l'application de crer
Un coordinateur (instance) Un contexte de coordination pour une activit; ce contexte est plac dans les messages
WS-coordination : Model
Quels sont les protocoles de coordinations? A qui envoyer des notifications lorsque le protocole passe une autre tape?
Un protocole de verrouillage deux phases assure une terminaison atomique de la transaction Un protocole bas sur le consensus pour prendre la dcision assez longue Etape 1 : prparation
Le Coordinateur s'assure que les participants sont prts (message chaque participant)
tape 2 : vote
WS-Transaction et WScoordination
Fournit un support
pour grer
des transactions long-terme/short-terme Des transactions Web distribues compensables Une infrastructure de coordination Des abstractions ncessaires (protocoles de coordination, type de coordination, contexte de coordination)
Processus mtiers
Un processus mtier :
une collection d'activits conues pour un mtier (utilisateur et march) donn Implique une emphase sur le mtier effectu dans l'organisation
informations entres
Processus Web
Un processus mtier peut tre vu comme un ensemble d'interactions entre des services Web (workflow) Besoin : dfinir de faon abstraite et concrte un processus
Dcrire comment des services Web peuvent s'inter-connecter, s'intgrer, se composer Langage de chorgraphie (conversation), d'orchestration
Chorgraphie :
Un processus est un change de messages ordonns comme c'est le cas lors d'une conversation 2 langages : WSCL, WS-choreography une suite d'oprations ordonnes (workflow) sous le contrle d'un coordinateur central (chef d'orchestre correspondant un partenaire)
Conversation (1/2)
Limitations de WSDL :
WSDL ne dfinie qu'une liste d'oprations WSDL ne dfinit pas dans quels ordres les oprations doivent tre invoques
Par exemple, il faut dj se logger un ordinateur avant d'accder un fichier, et non le contraire
Conversation (2/2)
Fournit le vocabulaire ncessaire pour dfinir l'ensemble de tous les ordres correctes, les contraintes d'ordre, sous quelles conditions la conversation prend fin
Logique temporelle, chorgraphie, change de messages, point d'accs Les processus privs (que se passe t-il l'intrieur du service) et publiques (que voit-on de l'extrieur). Remarque : un processus publique doit tre en accord avec les processus priv
@tartanoglu
@tartanoglu
Conversation = liste d'interactions et de transitions Interactions : Send, Receive, SendReceive, Empty Transition : ordre des interactions
<ConversationTransitions>
<Transition> <SourceInteraction href="Quote"/> <DestinationInteraction href="Purchase"/> </Transition> ...
Une chorgraphie
Dcrit le flot du point de vue de chaque service est insre dans le document WSDL de chaque service
L'lment
<interface> dfinie l'interface publique (visible depuis l'extrieur) L'lment <model> pour combiner plusieurs interfaces et de les lier entre elles
<wsdl:portType name=TAtoHotel>
refusMess confirmeMess
Exemple
Book
Suite...
confirme
refus
<interface name=BookingService>
Partenaire
Les messages changs entre les activits sont des messages SOAP WSDL dcrit un ensemble d'activits BPEL4WS dcrit
un partenaire (document XML) Une activit Flux (squences, switch, ...) Synchronisation, concurrence
Ensemble de spcification pour la gestion automatique des transactions et des processus mtiers dans les services Web
Transactions atomiques et Web Coordination des transaction mais aussi des activits Framework : Microsoft, IBM, BEA
Meta donnes
Scurit
Scurit des changes : WS-security Confiance : SAML, WS-Trust, WSSecureConversation, WSFederation Infrastructures de cls publiques XML : XKMS
WS et scurit
WS-Security (2004) correspond la brique de base pour la scurisation des changes Scuriser les services Web (les processus) -> politiques de scurit, risque, confiance/trust
Connections chiffres SSL point point Schmas d'authentification de HTTP Certificats SSL
Authentification
Intgrit : adjonction d'une ou plusieurs signatures XML Confidentialit : chiffrement(s) XML, s si plusieurs acteurs, Authentification
WS-security
Chiffrement est effectu de bout en bout (client-service Web) Intgrit est fournie dans un environnement multi-sauts Si les contraintes de scurit ne sont pas satisfaites, une faute (SOAP) sera envoye
WS-Policy
Fournir les conditions suivant lesquelles un service doit tre fourni Une politique = une ou plusieurs assertions reprsentant
WS-SecurityPolicy
Dfinit comment les messages sont scuriss, fiabiliss sur un chemin de communication
Comment dois -je scuriser l'acheminement d'un message (quel chiffrement, quel protocol, ...)
WS-SecurityPolicy- Exemple
<sp:TransportBinding> <Policy> <sp:TransportToken> <Policy> <sp:HttpsToken RequireClientCertificate="false" /> </Policy> </sp:TransportToken> <sp:AlgorithmSuite> <Policy> <sp:Basic256Rsa15 /></Policy> </sp:AlgorithmSuite> ... </Policy> </sp:TransportBinding>
Bilan - WS-security
En se basant sur des politiques de scurit (WS-SecurityPolicy), WSsecurity fournit une scurisation des changes au niveau
WS-Trust
Objectifs :
tablir la confiance avant l'change de messages SOAP-WS-Security Permettre un service (Security Tocken Service) de demander des infos un tier de confiance
Ncessits :
Assurer la gestion (cration, update, destruction) et l'change de security-tockens Assurer dcouverte & fdration de cercles de confiances
Une fdration correspond un ensemble de domaines ayant tablis une relation de confiance Une fdration opre indpendamment des frontires administrative d'un rseau Exemple de fdration : un utilisateur de carte bleu retirant de l'argent depuis une banque amie (confiance entre les banques)
Fdration - Approche
Fournit un accs un domaine de confiance en utilisant les identits des domaines Ncessite : tablir la relation de confiance en
Partageant les informations relatives l'identit, l'authentification et l'autorisation Attribuant des identits : fdrations anonymes (pseudonymes, privacy) mais authentifies Se basant sur un brocker de confiance
3 Topologies de confiances
Confiance directe : le tiers de confiance du client connat le tiers de confiance du service Web Confiance indirecte : le tiers de confiance du client ne connat pas directement le tiers de confiance du service Web Dlgation de la confiance
Topologie directe
Domaine client Tier de confiance client Trust Domaine service Tier de confiance service 3 bis/ Vrification des accs Service Web
1 /obtention de l'identit 2/ Obtention accs (identity tocken) (access tocken) client 3/ Requtes/rponses scurises
Domaine client
Tier de confiance client 1 /obtention de l'identit 2/ Obtention accs (identity tocken) (access tocken) client 3/ Requtes/rponses scurises
Topologie dlgation
Tier de confiance client Trust Trust
Domaine client
Domaine service
Tier de confiance Tier de confiance client service 3bis/Vrification 2/ Obtention accs 4 Obtention accs 6/ Vrification 1 /obtention accs accs de l'identit client 3/ Requtes rponses 5/ Requtes Service Web rponses Service Web
Bilan - scurit
Deux paradigmes :
WS-Trust, FS-federation : gestion de la confiance WS-security, WS-Policy : chiffrement, authentification, intgrit ect... suivant des politiques
pare-feux Service Web protg
Cercle de WS-Security confiance HTTP/S HTTP/S client passerelle XML XML pare-feux
Agent
WS-SecurityPolicy
Gestionnaire de politiques
Meta donnes
Scurit
Politiques
Bilan WS-*
de nouvelles plateformes de dveloppement, de nouveaux protocoles d'changes, de nouveau mcanismes (transaction, scurisation, composition, chorgraphie, fiabilit..)
de dcrire des mcanismes existants (RPC ect...) de faire interagir des services distribus sur l'Internet/Web
Cycle de vie du service (dploiement, configuration, mise jour automatique, gestion des versions ect...)
1999 : dbut de l'histoire, OSGI alliance , http://www.osgi.org focus sur java et l'embarqu 2003 : support pour des dispositifs mobiles 2004 : adoption
62
implmente un interface (implmente le service) recherche le service partir de son interface Comment lier le client au service ?
Utilisateur du service
Objet client et service Classes, interfaces On amliore le concept d'objet Modularit : garder le cur de l'application petit Fournir la facult d'ajouter des fonctionnalits autours de ce cur
OSGI (1/2)
des services des composants dcomposer/packager une application en services pour s'abstraire en fournissant des composants OSGI = systme de module dynamique pour java
OSGI (2/2)
Fournit les lments ncessaires la maintenance Peut tre utilis sur diffrentes plate formes
Limiter le problme de la portabilit Grer l'application sur le dispositif Supporter une myriad de versions diffrents, d'adaptations ncessaires
Intergiciel OSGI
JVM : Java Virtual Machine : permet une application java de s'excuter Deux couches au dessus de java :
OSGI : permet un bundle de s'excuter (se charger) bundle : application Bundle Bundle Bundle
OSGI JVM Systme d'exploitation Driver Driver Hardware Driver
pour construire des applications java base de composants : bundles Pour maintenir ces applications durant tout leur cycle de vie
Bundle
Un bundle est
un module, c'est--dire l'unit de base pour dployer et modulariser Du code (ensemble de classes dans un package) Des mta donnes (contexte, description du bundle) Des ressources (d'autre fichier jar)
Cycle de vie :
OSGI fournit un support au cycle de vie d'une application Comment de pas stopper l'excution de l'ensemble de l'application durant le cycle de vie service/de l'application ?
Rsoudre les dpendances (lier) Contrler le cycle de vie, les versions Appeler l'activateur du bundle pour dmarrer le bundle Grer les class paths Appeler de dsactivateur de bundle Nettoyer aprs la dsactivation du bundle
En pratique :
Bundle et SOA
Un bundle peut aussi publier des services ... Annuaire de services (publication & langage de demande)
@Eric-Gressier-Soudan
Composant : unit de base dfini des fins de compositions et de rutilisation Connecteur : composant de communication regroupe l'ensemble des mcanismes de communication distantes permettant d'interagir entre les composants
Tout comme un service, un composant est une boite noire Avec une phase d'assemblage
@Eric-Gressier-Soudan
Bilan - OSGI
OSGI fait partie du paysage des architectures orientes service Assure la gestion du cycle de vie d'un service /bundle
Dploiement dynamique (sans reboot!) Gestion de versions, configuration, gestion des liens, collaborations
OSGI vise les systmes contraints java avec de nouveaux marchs (M2M)
Intergiciel ddi pour supporter les jeux ubiquitaires multi-joueurs Bas sur OSGI -> fournit des services modulaires (bundles)
Assure la liaison entre le client (le joueur) et le serveur de jeu Intergiciel dvelopp avec Eclipse Plus d'informations :
http://gasp.ow2.org/ubiquitous-osgi-middleware.html Une dmo...