Professional Documents
Culture Documents
Concepts
Application Glassfish
LicencePro 2014
Olivier Perrin
Universit de Lorraine
Client
Browser
Browser-based
HTML Rendering
(progressive enhancement)
HTTP
HTML
View
Generation
Controllers
Application
Server
Service Layer
Channels
Repositories
RDBMS
CRUD
Server
15
Browser app or
embedded in native
Controllers
Client-side model
JSON
Client
web stg
events &
HTTP &
notifications WebSockets
Service Layer
Channels
Repositories
RDBMS
CRUD
Server
16
Controllers
Client-side model
JSON
Service
web stg
events &
HTTP &
notifications WebSockets
Service
Service
Service Layer
Channels
Client
business /
domain services
Repositories
RDBMS
CRUD
Server
17
Controllers
Client-side model
JSON
Service
Channels
Client
web stg
events &
HTTP &
notifications WebSockets
Service
Service
business /
domain services
Repositories
RDBMS
CRUD
Server
18
Controllers
Client-side model
JSON
Service
Service
SQL
Client
web stg
events &
HTTP &
notifications WebSockets
Service
Service
NoSQL
Service
business /
domain services
Service
other
platform services,
web APIs
PaaS
19
CORBA
RMI
.NET
Besoins
Objectifs
interoprabilit
Besoins
standards
infrastructure raisonnable
Micro-services
Couplage faible
Composables
Chaque service fait une seule chose, mais la fait bien
Suffisamment petit pour tenir dans une tte ( If a class is
bigger than my head then it is too big )
Suffisamment petit pour tre remplac ( Rewrite over
Maintain , un service qui meurt doit le faire vite et fort)
Multiples versions de services
Olivier Perrin, Universit de Lorraine LicencePro, 2014
Appel de procdure
Mcanisme des langages impratifs
Dfini par une interface qui spcifie:
le nom de lopration
10
Services Web
Il sont dcrits grce des fichiers
11
12
Procds
Transactions
Fiabilit des
messages
Scurit
Coordination
WSDL, UDDI, WS-Inspection
SOAP
XML, encodage
Qualit
de
service
Description
Autres
protocoles
Messages
Transport
SOAP: historique
Simple Object Access Protocol 1.0
pas dobjet
SOAP 1.1
SOAP 1.2
Olivier Perrin, Universit de Lorraine LicencePro, 2014
13
SOAP: introduction
Cest un protocole pour changer des informations
structures dans un environnement dcentralis/distribu
Il utilise les technologies XML pour dfinir un cadre
extensible dchange de messages
Il est indpendant dun modle particulier de
programmation
En gros, cest un protocole pour changer des informations
en envoyant des messages
14
15
et ainsi de suite
16
SMTP
les messages peuvent tre soit le texte du mail, soit un attachement
Jabber
17
18
Concepts de base
Un message SOAP est un document XML qui contient les
lments suivants:
Enveloppe SOAP
Header SOAP
Bloc Header
Bloc Header
Body SOAP
Bloc Body
-
Bloc Body
Olivier Perrin, Universit de Lorraine LicencePro, 2014
19
http://www.w3.org/2003/5/soap-envelope
http://www.w3.org/2003/5/soap-encoding
20
Exemple de message
Voyage
Enveloppe SOAP
Header SOAP
Bloc Header: rservation
Bloc Header: passager
Body SOAP
Bloc sous-lment:
itinraire
Bloc sous-lment:
htel
Olivier Perrin, Universit de Lorraine LicencePro, 2014
21
SOAP: Envelope
Le message en entier est contenu dans llment Envelope
Lenveloppe ne contient quun seul lment Body qui est
obligatoire
Llment Body peut contenir autant de nuds enfants que
ncessaire
Le contenu de llment Body forme le message
Si une enveloppe contient un lment Header (un seul,
optionnel), ce doit tre le premier fils de llment
Envelope
22
23
SOAP: Header
Chaque lment du Header est appel un bloc
24
25
SOAP: Body
Le Body est suppos tre trait par le dernier service
rcepteur
Hypothse implicite: le rcepteur comprend le message
La spcification ne dit rien sur les lments du Body dun
message
26
27
28
SOAP: Fault
Toutes les erreurs doivent apparatre dans un lment Fault
unique dans le Body
Il contient les sous-lments suivants
VersionMismatch
MustUnderstand
DataEncodingUnknown
Sender
Receiver
29
30
SOAP: srialisation
La spcification SOAP fournit une mthode pour srialiser
les donnes
Pour envoyer du XML, on lenvoie tel quel
Une valeur reprsente soit une donne unique, soit une
composition
Un accesseur reprsente un lment qui donne accs la
valeur
<nom>Toto</nom>
31
32
reservationService.gere(paiementReservation)
reservationService.reserve(Reservation res,
! ! ! ! CarteCredit cc)
33
35
metro: architecture
Tooling - NetBeans IDE
Security
Reliability
Transactions
Metadata
WSDL
MEX
Policy
TCP
Olivier Perrin, Universit de Lorraine LicencePro, 2014
SMTP
metro: JAX-WS
JAX-WS 2.2: API Web services simple utiliser
POJO + annotations
programmation facilite
API Java
36
37
utilisation de byte[]
byte[]
011011
JVM
Data handler
byte[]
InputStream getContent()
String getContentType()
Object getInputStream()
Olivier Perrin, Universit de Lorraine LicencePro, 2014
Fichier
Fichier
temp
SOAP: un exemple
tapes
Dploiement du service
crire un client
38
39
Dploiement
Se fait grce aux fichiers
web.xml
40
Dploiement (cont.)
sun-jaxws.xml
ant server
Olivier Perrin, Universit de Lorraine LicencePro, 2014
41
42
Le client
package licencepro.helloclient;
public class HelloClient {
Compilation
ant client
Olivier Perrin, Universit de Lorraine LicencePro, 2014
43
Excution
Dans /build/classes
java licencepro.helloclient.HelloClient Toto
SOAP Monitor
Pour voir ce qui se passe !
Comment ?
44
!
!
!
!
!
!
45
46
Synthse SOAP
Un message SOAP doit tre encod en XML
Un message SOAP doit utiliser le namespace Envelope de
la spcification
Un message SOAP doit utiliser le namespace Encoding de
la spcification
Un message SOAP ne doit pas contenir de DTD
Un message SOAP contient:
47
48
pas de transactions
SOAP: exercices
Hello
Calculatrice
Traduction
Musixtore WS
49