Architecture Internet – J.M. Vanel http://jmvanel.free.fr

Introduction

Les concepts

Modèles N-Tiers

Les composants

Rôle et Fonctionnement

Les serveurs d ’applications

Le modèle J2EE

Intégration d’applications - EAI

Les offres

Les composants

1

En guise d’introduction

Préoccupation
‘ architecture ’

Objets

CORBA

JAVA

. NET

EJB

Architecture WEB

UML

Intranet - Extranet

composants

Quelques points de repères ?

XML

1

Les préoccupations ...

Nouveau business - model :

Accélération des traitements

du Batch au WEB - transactionnel

Multi-sources, multi destinations

du Document au WEB/XML/WAP ...

Les points chauds :

Évolution du S.I. :

multi-composants (ERP, CRM, ... Composant factory)

évolution des échanges et modèles d’intégration (EAI / EII / ETL)

Évolution des Architectures

Corba, COM, J2EE, Services Web ...

Déploiement des postes clients / Internet - Intranet - Extranet

Évolution des modèles de conception

maturité du concept et solutions ‘OBJET'’

1

Modèles d’architecture

Du Client/Serveur au ...

... modèle N/Tiers

1

Historique ,
le C/S mais c’est très simple ...

Main Frame

Main Frame

Terminal passif

Informatique Personnelle

Main Frame

Réseaux

PC non connectés

PC connectés

Poste Client

Main Frame

Réseaux

Serveurs

?

1

2001 ...
Un modèle multi serveurs - multi terminal

Client UNIVERSEL

Main Frame

Réseaux de l’E.

Réseaux Externes

Serveurs applications

Serveurs ...

Serveurs de publication

Les modèles N-Tiers

Intégration

Présentation

Logique Métier

WEB serveur

Serveurs

Applications

1

Objectifs

Poste client universel

Poste léger

Pas de déploiement

Multi support

Implantation de la logique métier

Développement composants

Intégration avec l’existant

Middleware / EAI / moniteur TP

Connecteurs (ERP, CRM, SGBD,...)

EVOLUTIVITE

REUTILISABILITE

PERFORMANCE & FIABILITE

Le fonctionnement

Serveur

Serveur

Legacy

Scripts

Pages

Accès SGBD

Accès Annuaire

Annuaire

Données

entreprise

Applications

Pourquoi faire ? ... du plus simple au plus complexe

navigateur + pages statiques,

navigateur + pages dynamiques

navigateur + pages dynamiques + SGBD

navigateur + serveur d'applications (+ SGBD + annuaire)

Rôle des diverses couches

Le navigateur :

affiche du texte, des images, des formulaires, des boutons; il sait envoyer des requêtes HTTP.

Le serveur Web :

répond à des requêtes HTTP par des pages en language HTML (ou autre) que le navigateur affiche.

Un SGBD gère des données structurées

(en général suivant le modèle relationnel)

assure l'intégrité, la sécurité, la durabilité, les requêtes et les transactions (ACID). C'est un serveur de données.

Rôle des diverses couches :
Le serveur d’Applications (SA)

Entre le serveur Web et le SGBD.

Il assure lui aussi la sécurité et les transactions,

mais sans écrire de code (procédural),

en général de manière déclarative (fichier de déploiement).

Il prend en charge les aspects performance:

répartition des applications entre les différentes machines, la réutilisation de ressources : connections aux sources de données, mémoire, etc

Il assure la correspondance entre les objets vus par le programmeur et les tables dans la base (mapping Object-Relationnel - ORM)

Ainsi le code métier se trouve simplifié :

Pas de code à écrire pour la sécurité, les transactions, les accès partagés (multi-thread), l'ORM

le code est écrit comme si l'objet était tout seul sur une machine isolée

Fonctionnement des couches

Le navigateur, outre l'affichage statique, peut faire des calculs et des animations :

DHTML + langage Javascript, ou Applets Java

SMIL ou SVG

Le serveur Web répond à des requêtes HTTP par des pages en langage HTML
Pour cela, le serveur Web peut :

Renvoyer un fichier tout préparé (« pages statiques »)

Générer par programme une page réponse (« pages dynamiques »)

Exemple page Web dynamique

Exemples de pages dynamiques, livrées avec Tomcat 4.0 :

Caddie
Calendrier

Les serveurs d’applications

Quel modèle?

Définition et fonctionnement

Modèle J2EE

Point de vue de SIEVERS en 2000

2000 ?

Microsoft Com/Dcom
- arrivé à maturité,
- en attente de COM+ et DNA2000

Le modèle SUN /J2EE
- engouement de l’année 2000,
- modèle complet disponible pour l’implémentation

Evolution des modèles
- Web services, XML
- Microsoft .Net

- Frameworks légers (Spring)

Corba :
- complexité de mise en oeuvre
- interopérabilité vers J2EE (ex : offreurs type Iona)

Quel modèle Corba/COM/EJB ?

Historique

Une longue évolution :

Moniteurs transactionnels (Tuxedo)

Moniteurs transactionnels OO, MTS

Le modèle CORBA et les ORB (dialogue entre objets)

Le Microsoft Transaction Server

Puis

Standard Sun Java 2 Enterprise Edition (J2EE)

Frameworks légers (Spring)

Services Web

Définition

Le SA est un conteneur d'applications

Le SA manipule les objets métiers
(EJB : Enterprise Java Beans) :

Création, persistance et destruction

Activation et désactivation

Lancement des transactions

Contrôle d'accès

Le SA permet de déployer des objets métiers

Le standard J2EE permet d’écrire ces objets (EJB), de les ‘emballer’ pour un déploiement facile et général

Le modèle J2EE

Le standard J2EE :

Construit sur JAVA

Couvre toute l’informatique répartie et de gestion

Une communication normalisée entre le Serveur d'EJB et les autres couches :

Avec le serveur Web: Servlets, JSP

Entre les composants (RMI / IIOP / Corba)

Avec les SGDBR : JDBC

Avec les annuaires (JNDI)

Avec les infrastructures de messages (JMS)

La sécurité (JAAS)

Services Web (JAX-RPC, JAXR, SAAJA)

Exemples

Exemple de pages dynamiques + SGBD

un exemple simple du type gestionnaire de rendez-vous.

Exemple d'utilisation de Serveur d'Application

Le même exemple simple avec un serveur EJB. Il faut écrire un peu plus de code (standard EJB) pour la machinerie, mais ensuite on peut gérer les permissions sur l'agenda sans toucher au code.

De même sans toucher au code, on peut déclarer la mise à jour d'un rendez-vous comme une transaction ACID, ou relâcher plus ou moins cette contrainte pour une raison de performance.

J2EE et Sécurité

Rôle

Rôle: Administrateur

Méthode Assuré.créer

Méthode Assuré.enlever

Méthode Assuré.facturer

Agent Dubois

Agent Durand

Rôle: agent

Méthode Dossier.traiter

1

N-Tiers

Serveurs Applications

Architecture

J2EE

CORBA

COM/DCOM

DNA

Websphere

WebLogic

Gemstone

SGBDOO

Mapping SGBD

Scripting

JSP

ASP

Silverstream

HahtSite

Java : Orion

Jaguar

Client léger

Applet

Dhtml

Citrix

Serveur

EJB

servlet

Com

others

cgi

perl

iPlanet

Arbre de connaissance N-Tiers

Les offres

JBoss

JonAS/

ObjectWeb

Services Web

1

Exemple de solution IBM

Serveur UNIX ou OS/390

Java

SGBDR

(DB2)

Service

Applicatif

JavaBean

(interface)

CICS ...

WebSphere

Page JSP

servlet

Cobol

Java

WSAD

Cobol/370

1

Exemple de solution mixtes
J2EE - Corba

Serveur Unix

Java

Composants

Corba

EJB

Iona

SA - WebLogic

Page JSP

servlet

Java

Compilateur C

Atelier Java

C++

Connecteurs

(OTM)

1

Et la solution MicroSoft
.NET

Serveurs NT

Composant

technique

Page HTML

Script client

Applet tech.

Application
Win32

HTML/CSS

JavaScript

C#

Active X (?)

dll

COM / DCOM

COM+(?)

Visual .Net

.NET ? C#

Internet

Explorer

MTS (?)

Visual C++

1

Les composants
fonctionnement et standards

Serveur WEB

Serveur application

Données & existant

Scripting

JSP

Serveur de pages

Servlet et EJB

socle

technique

référentiel

Données

entreprise

applications

Http / Https

Object

(RMI/IIOP)

SQL et JDBC...

LDAP ...

..XML.

1

1 - Le poste client

Objectifs

Poste léger

déploiement simple

administration

Communication http

simplicité (proxy)

sécurité (https)

Ergonomie

Solutions & questions

utilisation d ’un browser ‘ standard ’

limite sur la compatibilité des browsers et sur les extensions (plug-in et version JVM java)

utilisation des protocoles propriétaires (RMI, activeX, Flash)

Futur :
XML et XHTML

Deux solutions à investiguer :
HTML pur / applet java
une alternative : DHTML (Javascript)

1

2 - Le serveur WEB

Objectifs

Flux pages http

scalabilité

sécurité

Services

présentation et réalisation des pages

gestion Session & fail over

appel des composants des autres Tiers

Solutions & questions

marché dominé par

IIS

Apache

sécurité

https

Firewall / proxy

JVM

méthodes de scripting

JSP, XSP

ASP

.. Et perl, python,

solutions de gestion session (cookies, html marqué ...)

1

3 - Le serveur d ’application

Objectifs

médiateur entre les 2 environnements :

1 - WEB et client lèger

2 - existant (‘ legacy ’)

introduction de la notion de composants ‘ métier ’

indépendance du socle technique

réutilisabilité

montée en charge

scalabilité

load balancing

et notion de Fail Over

Solutions & questions

3 modèles (*)

Corba / COM / EJB

réutilisabilité et composants :
mythe ou réalité ?

Administration

(*) Le marché aujourd’hui est dominé par J2EE ...
... Maturité des implémentations

1

4 - L’intégration avec l’existant

Objectifs

interopérabilité

accès données

accès applications

gestion des transactions

multi environnements et applications

Solutions & questions

2 modèles

middleware de type messages (vers EAI)

connecteurs propriétaires

persistance des objets

mapping relationnel

SGBOO

Mapping XML ...

Le marché des EAI arrive à maturité ...

... Format d’échanges propriétaires >> XML

1

Serveur

Base de

données

Composant

EJB

Serveur d’Applications

Page JSP,

servlet

Java

Poste client

Browser

Page HTML

Script

Applet

SQL

Modèle

indép.

platef.

SGBDR

HTML/CSS

JavaScript

Java

le schéma

relationnel

Générer

les squelettes

de classes

Java

Persistance

Exemple :
de la conception à l’implémentation

On peut montrer ici des exemples des capacités d’affichage d’un browser:

Affichage d’une arborescence cliquable et repliable

Un jeu de voiture en 3D

Le « jeu » de la vie de Conway

On verra plus loin un exemple de plus gestion avec un choix dans un catalogue.

Le serveur utilise le mécanisme des cookies pour savoir à qui il a affaire. Ce sont des paires champs-valeurs qui sont écrites par le navigateur sur le disque et lues à la requête d’après. C’est une norme de fait, qui pallie au mode sans connexion de HTTP (limitation voulue); l’utilisateur peut déconnecter les cookies.

Note:

On ne va pas bouleverser la manière de déployer les applis Agora, il n’y a pas que des parties J2EE .

Un SA évolué peut même propager le contexte transactionnel vers un autre SA.

On peut montrer des métaphores :

SA = carte mère d’ordinateur, application J2EE =carte d’extension

SA = chef de bureau, application J2EE = employé de bureau

JNDI=Java Naming and directory interface

IIOP est le protocole Corba de communication inter-objets sur Internet, repris par RMI qui est une couche Java par-dessus.

C’est juste un exemple assez générique ; l’agent peut traiter un dossier standard , mais pas créditer directement un compte.

On peut gérer les permissions au niveau de la méthode.

Le code source n’a pas à être modifié.

On peut aussi gérer programmatiquement la sécurité (par exemple fixer une limite au montant d’une transaction en fonction du rôle de sécurité).

Il y a des outils de génération dans les 2 sens entre schéma relationnel et classes Java.

ARCHITECTURES INTERNET

2005-01-31T09:22:19