38
Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : Java, C++, javascript UML Architecture Web Depuis Janvier 2012 : 2j / 5 à l’UFR. Hestia - 2012/2013 1

Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Embed Size (px)

Citation preview

Page 1: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 1

Présentation

Stéphane TALLARD●Ingénieur en Informatique depuis 1996●Je travaille à Cap Gemini Bayonne depuis 2000●Spécialités :–Java, C++, javascript–UML–Architecture Web –Depuis Janvier 2012 : 2j / 5 à l’UFR.

Page 2: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 2

Systèmes d'information pour l'entreprise

Pourquoi ce cours ?–Montrer comment les architectures réseaux ont évolué pour faire face aux besoins des entreprises

–Présentation des architectures basées sur Java

–Etre capable d'être un interlocuteur pour un prestataire de service en informatique

Page 3: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

3Hestia - 2012/2013

Mainframes : Systèmes centralisés

● Le système héberge une ou plusieurs applications

● Les applications accèdent à un système de gestion de base de données

● Des terminaux permettent d'utiliser ces applications

● Le système central réalise l'ensemble des traitements

● Les terminaux sont passifs : ils se cantonnent à faire des requêtes et à afficher les données

Page 4: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 4

● Avantages–Bien adaptés lorsqu'on a des gros traitements sans intervention humaine (batch)●Les seuls utilisateurs sont les administrateurs●Le système est pris pour sa plus grande partie aux tâches de traitement

–Centralisation : l'administration est facilitée

Systèmes d'information pour l'entreprise

Page 5: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 5

Mainframes : Systèmes centralisés

● Inconvénients:–Gérer la centralisation d’un tel système avec les problèmes généraux qui y sont liés.

–Non robustesse en cas de panne

–Problèmes de congestion en entrée du serveur lors de l’arrivée massive de requêtes (congestion de communication)

–Congestion de traitement car le système central est chargé non seulement de l’administration des données mais aussi de tout le reste de l’application, entre autres, de la partie interface utilisateur.

–Fonctionnalités limitées : les données restent sur le système central. Un individu ne peut pas les retraiter pour des présentations, des calcus statistiques ...

Page 6: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 6

● Le système central ne s'occupe plus que de l'administration des données et du traitement des requêtes SQL

●Le poste client prend en charge :

– L'envoi de requêtes SQL vers le serveur.

– La présentation des données.

Technologie client – serveur et les serveurs de bases de données

Page 7: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 7

● Avantages :–Bien adaptés à l'évolution de la micro informatique : les utilisateurs peuvent récupérer les données issues du serveur de base de données pour réaliser des traitements à façon (présentation, calculs statistiques)–Logiciels graphiques plus conviviaux–Gestion centralisée des données (vues comme le coeur de l'entreprise)

Technologie client – serveur et les serveurs de bases de données

Page 8: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 8

● Inconvénients–Administration des postes clients●Héterogéinité des matériels et des logiciels●Mise à jour logicielle : comment faire quand on a un grand nombre postes ?

–Performance●Pour réaliser un « vrai » traitement il faut multiplier les requêtes et les aller-retours entre le client et le serveur : le réseau est fortement sollicité●Problèmes d'engorgement du serveur à des périodes de pointe ...

Technologie client – serveur et les serveurs de bases de données

Page 9: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 9

● les systèmes mainframe ?–Comment les traitements sont répartis ?–Quelles problèmes pouvaient survenir ?

Qu'avez vous retenu sur ...

Page 10: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 10

●Les architectures client-serveur–Comment les traitements sont répartis ?–Quels problèmes pouvaient survenir ?

Qu'avez vous retenu sur ...

Page 11: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 11

● Pour remédier au probléme d'étranglement du serveur lors des pics de charge, on utilise des système d'équilibre de charge● Architecture :

Il y plusieurs serveurs Le système d'équilibre de charge :

● reçoit les requêtes● Les redirige vers la machine la

moins chargée

Equilibre de la charge

Page 12: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

12Hestia - 2012/2013

●La machine qui se charge d'équilibrer la charge doit être capable de choisir la machine qui va offrir la meilleure performance● Si une machine tombe en panne, les performances globales seront moins bonnes mais les services seront toujours assurés

Equilibre de la charge

Page 13: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

13Hestia - 2012/2013

● Une transaction est une une suite d'actions sur système

● Pour qu'une système soit fiable, ses transactions doivent avoir certaines propriétés

– Atomicité : soit la transaction réussit complètement, soit elle échoue complétement : elle ne modifie l'état du système

–Cohérente: le système passe d’un état cohérent à un autre.

–Isolées : Aucune modification n’est visible sur la base tant que toutes les opérations n’ont pas été réalisées et validées.

–Durables : Les transactions validées sont conservées même si le système tombe en panne.

Notion de transaction

Page 14: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

14Hestia - 2012/2013

●Pour gérer les transactions les Systèmes de gestion de base de données utilisent les ordres begin, commit et rollback

– begin ouvre une transaction sur le SGBD

– commit valide toutes les opérations effectuées depuis le begin précédent et clôt la transaction

– rollback annule toutes les opérations affectuées depuis le begin précédent et clôt la transaction

●Le SGDB sait:

–protéger les données si besoin

–faire attendre les utilisateurs

–Faire échouer une transaction en cas de time out

Notion de transaction

Page 15: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

15Hestia - 2012/2013

Il y a 300€ sur votre compte. Vous faites un retrait de 50 euros au distributeur au moment où on vous fait un versement de 500 euros au guichet.

==> Vous avez perdu 500 euros !

Actions

Au distributeur Au guichet Dans la mémoire de l’ordinateur du guichet

Dans la mémoire du distributeur

Dans le système central

1 Vous interrogez le système

300 € 300 €

2 L’employé de la banque interroge le système central

300 € 300 €

3 Vous retirez 50 € 300–50 = 250 €

300 €

4 L’employé vous crédite de 500€

300+500=800 €

300€

5 L’employé valide la transaction => on écrit dans le SGBD du système central

800€ 800€

6 Vous validez la transaction=> on écrit dans le SGBD du système central

250€ 250€

Illustration de la notion de transaction

Page 16: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 16

● Au moment où vous accèdez à votre compte, le SGBD (système de gestion de base de données) ouvre un transaction => l'enregistrement est protégé en écriture pour tout autre utilisateur

● Quand l'employé tente de lire le montant sur votre compte, le SGBD fait attendre la demande

● Vous faites votre retrait

● Du côté de l'employé, deux possibilités :

●Le temps d'attente maximum défini côté SGD est dépassé ==> le SGBD a levé une erreur et l'employé a eu un message « compte en cours de modification – essayez plus tard » (si l'application est bien programmée)

●Le temps d'attente maximum n'est pas dépassé : l'employé a eu la sensation d'un temps d'attente , mais a pu faire son opération normalement.

Illustration de la notion de transaction – Avec la gestion des transactions

Page 17: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

17Hestia - 2012/2013

● Il apparaît que le vrai problème c'est la répartition des traitements c'est la répartition des traitements

–Trop de traitements côté serveur c'est l'engorgement assuré pour tous les utilisateurs

–Trop de traitements côté client c'est le risque de voir des traitement échouer :

●la machine client n'est pas assez puissante ,●ou n'a pas assez de mémoire,●ou n'a pas assez d'espace disque,●ou ....● Si on veut concevoir un système fiable un des problèmes majeurs c'est la répartition des traitements.

Répartition des traitements

Page 18: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

18Hestia - 2012/2013

● Une application se décompose en trois parties :

● Présentation : (ou interface)

●la définition du scénario de saisie●L'interprétation des interactions de l'utilisateur, tel que l'API Windows●L'affichage des données

Traitements :

• les algorithmes propres à l'application : on parle de traitement métier● Exemple : la facturation, la gestion des impayés

Données:

– Les opérations que fait le SGBD (recherche des données, stockage, contrôle des accès, gestion des transactions etc...)

Typologie des traitements

Page 19: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

19Hestia - 2012/2013

● Lorsque le stock est inférieur à 10 % de la production de la semaine (en moyenne sur l'année passée) il faut passer commande pour se réapprovisionner

●Le système permet un accès rapide aux données

● La liste des produits doit être affichée par ordre alphabétique dans un tableau dont la forme est la suivante …

●Le système sauvegarde les données toutes les nuits.

●Les clients dont le montant total de commandes est > à 1500 euros pour l'année en cours ont une ristourne de 10 % sur leur commande.

Classez ces traitements selon leur type

Page 20: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 20

Evolution exponentielle du nombre d’utilisateurs

Le cas Facebook

Page 21: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 21

L'évolution exponentielle du nombre d'utilisateurs impose des contraintes à l'architecture physique :

•Évoluer rapidement : • Le moins de programmation possible (si possible pas du tout ) • Uniquement de la configuration

•Pourvoir scinder les traitements • Séparer le métier de l'accès aux données • Dédier des serveurs à des traitements particuliers (gestion des messages,

gestion des images, gestion des comptes, …) • Éviter au maximum de faire de la présentation

Le cas Facebook (2)

Page 22: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 22

● On associe à chaque couche des machines dédiés :- Les clients gérent la présentation- Le serveur WEB a en charge la gestion des requêtes HTTP- La logique des traitements est assurée par une serveur d'application- La gestion des données est assurée par un SGBD

Les architectures n-tiers

Page 23: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 23

●les différents types de traitement que réalise un système :●Présentation ? ● Métier ? ●Gestion des données ?

Qu'avez vous retenu sur ...

Page 24: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 24

● Les architecture n-tiers–Pourquoi ?–Qu'est qu'une architecture 1-tiers ?–Qu'est ce qu'une architecture 2-tiers ?

Qu'avez vous retenu sur ...

Page 25: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

25Hestia - 2012/2013

● Les mainframes sont une architecture 1-tiers.●Le site central gére :–Les traitements métier–Les accès aux données–La présentation

● Les terminaux sont passifs

Remarque

Page 26: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

26Hestia - 2012/2013

● L'architecture client-serveur est une architecture 2-tiers● Le système de gestion de base de données prend en charge l'accès aux données● Le client prend en charge la présentation●Les traitements métiers sont répartis entre le client et le serveur.

Remarque

Page 27: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

27Hestia - 2012/2013

● L'architecture client-serveur est une architecture 2-tiers● Le système de gestion de base de données prend en charge l'accès aux données● Le client prend en charge la présentation●Les traitements métiers sont répartis entre le client et le serveur.

Remarque

Page 28: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

28Hestia - 2012/2013

● Le client léger :●S'occupe uniquement de présentation●Ne comprend la signification des données qu'il traite●Typiquement : un PC avec un browser Web

–Avantage●Interopérabilié : les browser web prennent en entrée un langage normalisé : HTML●On n'a plus de problème lié à l 'hétérogeneité des matériels●Quand le logiciel change, pas besoin d'installer une nouvelle version du client

–Inconvénient●Ergonomie ...

Couche Présentation : Notion de client léger

Page 29: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

29Hestia - 2012/2013

Un client lourd:–possède généralement des capacités de traitement évoluées–peut posséder une interface graphique sophistiquée.–Inconvénient :●tend à mêler la logique de présentation avec la logique des traitements●Quand le logiciel change de versions il faut réinstaller l'application

–Avantage :●Ergonomie

Couche présentation : notion de client riche

Page 30: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 30

• On a évoqué jusqu'ici des problèmes industriels

Rendre un système évolutif au moindre coût

• On va décrire dans la suite les solutions que Java offre à ce problème.

Java pour bâtir des architectures techniques

Page 31: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 31

• Écrire des serveurs Web : Les Servlets • Écrire des traitements métiers et les déployer sur des serveurs dédiés : RMI

• Accéder à des bases de données : JDBC

Avec Java

Page 32: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 32

Requête http

Script CGI

Calcul de la page html

Serveur WEB

Décodage

Détermination de l’application à lancer

Lancement du script CGI

page html encodage

Réponse http

Il y a autant de scripts CGI tournant en même temps que de requêtes entrantes en cours de traitement

Les serveurs WEB basés sur les scripts CGI

Page 33: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 33

A chaque requête entrante, on lance un script (historiquement perl) qui calcule la page html à renvoyer au browser.

on est conduit à lancer un nouveau processus à chaque requête. A chaque lancement on recharge en mémoire l’environnement d’exécution nécessaire à l’exécution du script.

Cela conduit à écrouler le serveur

Les serveurs WEB basés sur les scripts CGI

Page 34: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 34

Architecture d'un serveur Web dynamique

Page 35: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

35Hestia - 2012/2013

● Les servlets sont une technologie Sun● Ils sont basés sur :–le langage Java–Le protocole http

● Concurrents de Asp (Microsoft)

Servlets

Page 36: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

36Hestia - 2012/2013

●Ce sont des applications Java fonctionnant du côté serveur

●les servlets s'exécutent dans un moteur de servlet utilisé pour établir le lien entre la servlet et le serveur web.

●Ainsi le programmeur n'a pas à se soucier de détails techniques:

–connexion au réseau,

–la mise en forme de la réponse HTTP, ...

Servlets

Page 37: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

37Hestia - 2012/2013

● Le moteur de servlet est un composant du serveur d'application ou serveur Web

●Le moteur de servlet reçoit les requêtes http

● En fonction de la requête entrante, le moteur de servlet détermine la servlet qui va traiter la requête

● Dans une thread séparée, il appelle une des méthodes doGet ou doPost

●Une servlet tourne dans une thread séparée

● Une servlet est écrite en java et peut donc appeler toutes les bibliothèques java et notamment faire des accès à des bases de données

Servlet

Page 38: Présentation Stéphane TALLARD Ingénieur en Informatique depuis 1996 Je travaille à Cap Gemini Bayonne depuis 2000 Spécialités : – Java, C++, javascript

Hestia - 2012/2013 38

Entreprise Java Beans

Les EJB sont une alternative aux servlets pour bâtir des applications distribuées non orientées WEB.

Comme les servlets, les EJB sont des objets qui sont complètement gérés par le serveur d’application

C’est le serveur d’application qui se charge d’associer une requête entrante au bon objet en se basant sur sa configuration interne dépendante de l’application