Objets distribués
appel de méthode distante
mode statique
comme RPC
mode dynamique
création dynamique d'objets
à partir d'interfaces
intergiciel
IDL
définition de l'interface
ORB
nommage
liaison
nombreux services
nommage
cycle de vie
notification d'événements
transactions
concurrence
externalisation
relation
service de temps
sécurité
...
Streaming
transmission de flux vidéo en temps réel
adaptation à bande passante
synchronisation flux audio et vidéo
protocoles
Real-Time Protocol
sur UDP
pas de contrôle
identifier le type de données transmises
déterminer ordre paquets
pas de QoS
-> Real-Time Control Protocol
unicast/multicast
Real-Time Streaming Protocol
sur TCP
amélioration RTP
contrôle des propriétés temporelles d'une vidéo
Transactions
unité d'interaction fondamentale
groupe d'opérations
BD
client/serveur
ensemble asynchrone de RPC
propriétés ACID
Atomicité
tout ou rien
Consistence
état consistent avant
<=
état consistent après
Isolation
contrôle de la concurrence
sérialisabilité globale
verrouillage à deux phases
lectures et écritures seulement dans transactions
verrous attribués par ordonnanceur
phase 1
acquisition de verrous
pahse 2
libération de verrous
pbs
interblocages
timeouts
quand libérer ?
version stricte
à la fin
coordination dans système distribué
estampillage temporel
estampillage par transaction
ordonnancement ops dans ordre estampille
abandon trans. si rejet d'une opération
contrôle optimiste
travail sur copies privées
validation si commit
sinon abandon
Durabilité
HW
stockage stable
duplication
RAID
SW
journalisation
des écritures
sur stockage stable
copies privées
shadow
distribution
pbs
un coordinateur et plrs participants
possibilité de pannes
pendant commit
possibilité de plrs commits concurrents
commit à deux phases
coordinateur demande votes des participants
coordinateur choisit et diffuse
résistance aux pannes
participants
utiliser RPC
coordinateur
temps d'incertitude inévitable
peut être réduit avec 3 phases
mettre coordianteur sur machine fiable...
transactions imbriquées
modularisation
arbre de transactions
adaptation règles
commit
commit local => visibilité ancêtres
global commit si local et ancêtres commit
rollback
y compris toutes s/s transactions
visibilité
chgts locaux visibles
aux parents
après commit
verrous visibles aux descendants
verrouillage
vers l'extérieur
racine a tous les verrous
vers l'intérieur
héritage de verrous
seules feuilles peuvent agir sur objets verrouillés