Le développement des enfants et des jeunes Cours de moniteurs J+S basketball.
Les Moniteurs TransactionnelsLes Moniteurs Transactionnels Didier Donsez Université Joseph Fourier...
Transcript of Les Moniteurs TransactionnelsLes Moniteurs Transactionnels Didier Donsez Université Joseph Fourier...
Les Moniteurs Transactionnels
Didier DonsezUniversité Joseph Fourier (Grenoble 1)
PolyTech’Grenoble LIG/[email protected]
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
2
Plan
� Rappel sur la notion de Transaction� Rappel sur la Validation à 2 phases� Les Principes� Les Services Offerts� Exemples d’Application� Les Protocoles Standardisés� Les Produits� Interopérabilité MT� Transaction et Web� Conclusion� Bibliographie
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
3
Notion de Transaction
� Pour le développeur
� une série d’actions delimitées par
Begin et Commit/Begin et Commit/AbortAbort.
� Un modèle simple de panne
� seulement 2 devenir
Begin()action
action
action
action
Commit()
SuccSuccèès!!s!!
Begin()action
action
action
Rollback()
Begin()action
action
action
Rollback()
Faute!!Faute!!
Erreur !Erreur !
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
4
Notion de Transaction
�� PropriPropriééttéés ACIDs ACID
�� AAtomicittomicitéé
� tous ou rien
�� CConsistanceonsistance� cohérence sémantique
�� IIsolationsolation
� pas de propagationde résultats non validés
�� DDurabiliturabilitéé
� persistance des effets validés
transaction Ti
la BD peut être temporairement
incohérentebeg
inT
i
com
mit
Ti
BD
Cohérente
BD
Cohérente
transaction Ti
la BD peut être temporairement
incohérente
begin
Ti
abor
t Ti
BD
Cohérente
BD
Cohérente
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
5
Modèles Avancés de Transaction
� Applications� Tolérance aux pannes dans une transaction répartie
� Workflow,
� Coopération, ...
� Modéles avancées
� Chaînées, Compensation
� Emboîtées (Nested [Moss85])
� Sagas, Open Nested, …
+ un formalisme ACTA
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
6
Validation d ’une Transaction
� Centralisél’application et les données sont sur la même machine
� Panne facile à traiter
� Validation à 1 phase
� Distribuél’application et les données sont sur 2 à N machines
� Panne (partielle) difficile à traiter
� Validation à 2 phases (2PC : Two Phases Commit)
� Validation à 3 phases (3PC : Three Phases Commit)
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
7
Validation à 2 Phases
� Coordinateur � Participant(s)
Initial
Wait
Abort Commit
Commit Cmd
Prepare
Vote-Abort
Global-Abort
Vote-Commit
Global-Commit
Initial
Ready
Abort Commit
Prepare
Vote-Abort
Global-Abort
ACK
Global-Commit
ACK
Prepare
Vote-Commit
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
8
2PC - Hors Panne
begintrans
begintrans
ApplicationSGBD1 SGBD2
reqSQL
result
reqSQL
result
reqSQL
result
prepare prepare
votecommit
votecommit
Gcommit Gcommit
prepare prepare
votecommit
voteabort
Gabort Gabort
ApplicationSGBD1 SGBD2
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
9
2PC - Panne Coordinateur
CoordinateurSGBD1 SGBD2
prepare prepare
votecommit
votecommit
Gcommit Gcommit
prepare prepare
votecommit
votecommit
GCommit Gcommit
CoordinateurSGBD1 SGBD2
resume resume
votecommitvotecommit
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
10
2PC - Panne Esclave
CoordinateurSGBD1 SGBD2
prepare prepare
votecommit
Gabort Gabort
prepare prepare
votecommit
votecommit
GCommit Gcommit
CoordinateurSGBD1 SGBD2
resume
Gabort
resume
Gcommit
timeout
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
11
Applications Transactionnelles
� Application requérant une sureté d’exécution
� OLTP (OnLine Transaction Processing)
� Des centaines de transactions simultanées
� en général courtes (peu d’instruction + temps de réflexion opérateur humain)
� Batch
� Travaux lourds pouvant être différés
� rapport, bilan
� Exemple
� Réservation de Transport, Guichet Automatique (DAB),
� Prise de Commande, Stock Exchange, ...
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
12
Exemple : Réservation de Transport
� Systèmes
� SABRE (IBM & Américan Airlines, 1960)
� SOCRATE (SNCF)
� Fonctions
� réservation de place , suivi clientèle, ...
� Charge de Travail� SABRE : 300 000 postes et pic de 4200 msg/sec
� SNCF
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
13
Exemple
� Guichet Automatique (DAB)Automated Teller Machine (ATM)
� plusieurs centaines de Guichets
� plusieurs millions de clients
� une transaction dure 30 secondes
� Stock Exchange
� Achat et Vente de Titre
� NYSE :10000000 Titres échangés par jour
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
14
Moniteur TransactionnelTP Monitor
� Pilote l ’exécution distribuée de transactions
globales
� Fonctionnalités
� Multiplexage de connexions
� Nommage
� Routage dépendant des données
� Accès hétérogène aux RM (Resource Manager)
� Haute disponibilité
� Bas prix, Haute Performance
� Equilibre de charge
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
15
Moniteur TransactionnelTP Monitor
� Services Offerts
� Coordination de Validation Distribuée
� Validation de 2 phase (en général)
� parfois modèle de transactions emboîtées
� File de Transactions
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
16
Moniteur Transactionnel
vs Serveur de Bases de Données
� Lite-TP vs Heavy-TP
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
17
Les Protocoles Standards
� X/OPEN
� OSI/TP
� OTS
� MIA/SPIRIT
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
18
X/OPEN DTP
� Modèle DTP: Distributed Transaction Processing
� Plusieurs interfaces :
� TX
� XA
� CRM
� XA+
� RM
� XAP-TP
� SDTL (Structured Transaction Definition Language)
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
19
Le Modèle DTP de l’X/Open
AP (Application Program)
AP avec STDL / AP utilisant d’autres langages
OSI TP
vers d’autres domaines TP
TM(Transaction Mnger)
TXSQL, ISAM
...
XA XA+
TxRPC, XATMI
CPI-C
RM(Ressource Mnger)
CRM(Comm. Rsrc. Mnger)
XAP-TP
d’après Bernstein et Newcomer 1997
17/12/2007
Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
20
OS
I/TP
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
21
CORBA/OTS
� OTS : Object Transaction Service
� Compatibilité avec X/OPEN DTP
ORB (Object Request Broker)
Client
Transactionnel
Transaction
Service (OTS)
Serveur
Transactionnel
Serveur
Recouvrable
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
22
ORB (Object Request Broker)
CORBA/OTS
CommettrePrêt à
Commettre ?Prêt !
� Commit
Client
Transactionnel
Transaction
Service (OTS)
Serveur
Transactionnel
Serveur
Recouvrable
Commis !
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
23
Interopérabilité OTS - X/OPEN
� Une Application X/OPEN accède un Obj
X/OPEN Client
TM
TX
Trans. Obj
OTS
X/OPEN Client
TM
X/OPEN Serveur Trans. Obj
OTS
X/OPEN Serveur
ORB
ORB
XOPENClient
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
24
Interopérabilité OTS - X/OPEN (2)
� Des Obj Transactionnels incluent des ressources
XOPEN dans une transaction gérée par OTS
Client Serveur
OTS
ORB
XOPENRessourceManager
RM API
X/OPEN ServeurCM API
Transaction Manager
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
25
OTS
� Produits
� Inprise ITS
� BEA M3
� Orbix OTS
� Arguna OTS
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
26
MIA/SPIRIT
� Consortiums� MIA : Multivendor Integration Architecture
� SPIRIT : Service Providers’ Integrated Requirements for IT
� But: définition une API standard� STDL: Structured Transaction Definition Language
STDLSTDL
CICS APICICS API
précompilation
STDLSTDL
Encina APIEncina API
précompilation
STDLSTDL
Tuxedo APITuxedo API
précompilation
d’après Bernstein et Newcomer, 1997
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
27
Interopérabilité MT
� Xopen et ISO
� normalisent les interfaces
� pas les protocoles
� Interopérabilité MT
� difficile à mettre en œuvre
� Politique de la non interopérabilité
� Tuxedo, Encina
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
28
Performance Transactionnelle
� Benchmarks OLTP
� TPC/A et B
� environnement « réel » (TPC/A)
� environnement « laboratoire » (TPC/B)
� 90 % des transactions réalisés en moins de 2 secondes
� TPC/C et E
� mix de 5 à 8 types de transactions
� TPC/W
� commerce électronique
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
29
Les Produits
� CICS
� IMS
� TDS
� Tuxedo
� ACMS
� Encina
� Top End
� Pathways/TS
� Microsoft Transaction Server
� Comparaison
17/12/2007
Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
37
Tu
xe
do
(Novell)
�N
on
Sto
p T
uxe
do
(Ta
nd
em
)
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
38
Encina (Transarc Corporation, IBM)
� racheté par IBM
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
41
Microsoft Transaction Server
� Basé sur DCOM, Intégration DCOM+
� Module DTC :
Distributed Transaction Coordinator
� Serveur sur NT et SGBD SQL Server
� MMQS (MS Message Queue Service)
� Nom de Code : Falcon
� file d’attente de messages transactionnelsstockant des requêtes client
� prévue dans MTS 2.0
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
43
MTS et ASP
<%@ TRANSACTION=Required LANGUAGE="JScript" %>
<!--#include file="adojavas.inc"-->
<HTML><HEAD><TITLE>Modification Transactionnelle d ’une Base</TITLE></HEAD><BODY>
<h1>Modification de la Commande 123<h1><hr>
<%
var oConn = Server.CreateObject("ADODB.Connection");
var oRs = Server.CreateObject("ADODB.Recordset");
oConn.Open("DSN=LocalServer;UID=sa;PWD=;DATABASE=pubs");
oRs.ActiveConnection = oConn;
oRs.Source = "SELECT * FROM Cmd WHERE cmd_id=123";
oRs.CursorType = adOpenStatic; oRs.LockType = adLockOptimistic;
oRs.Open();
if (! oRs.EOF) { // Change la quantité
oRs("qty").Value = oRs("qty").Value + 1;
oRs.Update();
}
%>
</BODY></HTML>
<% // fonctions exécutées à la terminaison de la transaction
function OnTransactionCommit() { Response.Write("<p>Modification enregistrée."); }
function OnTransactionAbort() { Response.Write("<p>Modification abandonnée."); }
%>
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
44
Passerelle MTS vers l’X/Open
Application Program (AP)
RTR (TM)
Native Interface (SQL)
XA Interface
MS
DTC
TrxOLE
MS RM
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
46
Transactions et Web (i)
� Web Transactionnel
� HTTP : protocole « stateless »
� pas de notion de session
� 3 approches
� Session transactionnelle sur 3 tiers
� Script Serveur Transactionnel
� Applet Transactionnelle
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
47
Transactions et Web (ii)
� Architecture 3 tiers
� Session transactionnelle� coté client (navigateur)
� «Cookies» (souvent déactivés car il y a risque de traçage)
� Inputs HIDDEN
� coté serveur (serveur HTTP)
� Gestion des sessions
� SYBASE Jaguar CTS, IIS+MTS, …
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
48
Transactions et Web (iii)
� Script Serveur Transactionnel
� ActiveX
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
49
Transactions et Web (iv)
� Applet Transactionnelle
� JOLT (Java OnLine Transaction)
17/12/2007
Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
50
Tra
nsactio
n e
t AS
P
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
51
IIS Extension
DLL
ISAPI
Browser
Serveur Web
Extension
DLL
HTTP
IIS Script
ASP
DLL
Browser
Serveur Web
Extension
DLL
HTTP
objet
COM
objet
COM
Transaction et ASP - Modèle (i)
� Script ISAPI
� Script ASP
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
52
MTS
IIS Script
ASP
DLL
Browser
Serveur Web
Extension
DLL
HTTP
objet
COM
objet
COM
Transaction et ASP - Modèle (ii)
� Script ASP avec MTS
� Script ASP avec MTS + MSMQ
MTS
IIS Script
ASP
DLL
Browser
Serveur Web
Extension
DLL
HTTP
objet
COM
MSMQ
17/12/2007
Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
53
Tra
nsactio
n e
t AS
P (e
xe
mp
le)
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
54
Java et les transactions
� JTS
� JTA
� Servlet
� EJB
� JavaSpace
� JINI
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
55
JTS Java Transaction Service
� Interface Java à un service transactionnel
� reprend exactement
les interfaces de l ’OTS de CORBA
� à partir du JDK 1.2
� A noter
� notion de transaction dans les JavaSpaces
17/12/2007
Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
56
Tra
nsactio
n e
t Se
rvle
t
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
58
XAMLTransaction Authority Markup Language
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
59
XAML - Transaction Authority Markup Language
BWTP versus OLTP� BWTP “business web
transaction processing”
� Multiples parties B2B
� Complex interactions
� E-Business
� Plug-and-Play e-Commerce
� Across several Firewalls
� Request with XML, HTTP, SMTP, SOAP, … on Web Server
� Multi vendor TP Monitors
� OLTP « Online Transaction Transcation Processing »
� One party
� Inside an (secure) intranet
� Requests on DBMS (SQL,RPC), MOM, …
� One vendor TP Monitor
� Standards (Xopen, …)however Interoperability is hard
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
60
XAML
� Motivations� defines a set of XML message formats and interaction
models that web services can use in order to provide business-level transactions that span multiple parties across the Internet.
� Business web transactions involve web services from multiple organizations on the web and must coordinate the low-level operations of commit, cancel, retry, and compensate (undo or reverse), in order to ensure business-level transaction integrity.
� XAML Group� Vendor-Neutral Standard
� Promoted by Bowstreet, Hewlett-Packard Company, IBM, Oracle, Sun Microsystems
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
61
Conclusion
� Attention
� Les standards ne sont pas assez précis et les
leaders les interprètent de différentes façons
� L’interopérabilité est donc souvent compliquée
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
62
Bibliographie (i)
� P.A. Bernstein, E. Newcomer, «Principles of Transaction Processing for the
Systems Professional», Ed. Morgan Kaufmann, 1997, ISBN 1-55860-415-4.
� la bible des Moniteurs Transactionnels
� Les PDF en ligne sur http://research.microsoft.com/pubs/ccontrol/
� P.A. Bernstein, V. Hadzilacos, N. Goodman, «Concurrency Control and
Recovery in Database Systems», Ed. Addison-Wesley, 1987
� pour se rappeler des techniques de contrôle de concurrence et de reprise sur
panne.
� Besancourt, Cart, Ferrié, Guerraoui, Pucheral, Traverson, «Les Systèmes
Transactionnels», Ed. Hermes, 1997, ISBN 2-86601-645-9.
� La communauté française « noyaux transactionnels »
� A. Elmagarmid, « Advanced Transaction Models for New Applications », ed.
Morgan-Kaufmann, 1992.
� la compilation des travaux majeurs sur les transactions avancées
� Sushil Jajodia (Editor), Larry Kerschberg (Editor), « Advanced Transaction
Models and Architectures », Ed Kluwer Law International, June 1997, ISBN:
0792398807
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
63
Bibliographie (ii)
� Gerhard Weikum, Gottfried Vossen, « TransactionalInformation Systems, Ed. Morgan Kaufmann, 2002, ISBN 1-55860-508-8
� Krithi Ramamritham, Panos K. Chrysanthis, Advancesin Concurrency Control and Transaction Processing, IEEE Press, ISBN 0-8186-7405-9
17/12/2007Didier DONSEZ, 1997-2001, Moniteurs Transactionnels
64
Bibliographie (iii)
� Alex HOMER . David SUSSMAN, Programmation MTS et MSMQ avec Visual Basic et ASP, Mars 1999, Editeur Eyrolles, 504 Pages, ISBN 2-212-09047-1
� un manuel de développement avec MTS et MSMQ avec les sources
des exemples
� Andreas Vogel, Madhav Rangarao, « Programming Enterprise Javabeans, JTS and OTS : Building Distributed Transactions With Java and C++ », 1999, Ed John Wiley & Sons; ISBN 0-471-31972-4
� orienté programmation CORBA/OTS en C++ et Java . L ’exemple
utilisé est la résearvation de billets d ’avion.
� Karen Boucher ; Fima Katz, « Essential Guide to Object Monitors », 1999, Ed John Wiley & Sons; ISBN 0471319716
� Robert Orfali, Dan Harkey, Jeri Edwards, « Client/Server SurvivalGuide », 3rd edition, February 1999, Ed John Wiley & Sons; ISBN:
0471316156