Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
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