jeudi 17 avril 2014

GRAF - Volumetrics Analysis Tools - 1 - Les plages d'activité

GRAF propose une démarche et un outil pour analyser finement la volumétrie des systèmes d'information,  étudier less taux de sollicitation des différents serveurs de l'infrastructure et en déduire une consommation CPU pouvant évoluer dans le temps. Cet outil se nomme le VAT (Volumetrics Analysis Tool).

Nous allons étudier les concepts du VAT dans les prochains articles.

Le premier concept a trait à l'activité du système d'information.

On décrit des plages d’activité en donnant un poids à l’activité pour chaque heure de la journée
On rajoute une marge éventuellement pour tenir compte d’un dépassement potentiel de l’activité dans la journée (Par exemple : rattrapage d’un jour précédent)
On pourra ensuite associer un flux avec une plage d’activité.

Par exemple, dans le cas de notre agence de voyage, nous avons défini 3 plages d'activité
1) Une plage d'activité pour les internautes qui consultent le site de l'agence à toute heure de la journée. Cependant, l'activité est plus forte le jour que la nuit (3 fois plus).
2) Une plage d'activité pour les travailleurs de l'agence, principalement aux heures ouvrables
3) Une plage d'activité pour les batchs de facturation qui est impérativement concentrée entre 1h30 et 4h00 du matin


Les deux premières plages sont exprimées en poids. La dernière en pourcentage (le symbole "%" précède la ligne qui décrit chaque heure)

L'onglet G_Plage contient un graphique illustrant  pour chaque plage l'évolution de l'activité au cours des heures


lundi 14 avril 2014

GRAF - Diagramme des flux physiques

Après avoir généré les flux physiques, on peut dessiner un diagramme GRAF reprécsentant ces mêmes flux physiques.

Ce dernier est proche d’un FlowView d’Archimate - avec la couleur et les techniques graphiques caractéristiques de GRAF en plus (les OU logiques par exemple) -.


Ci-dessous le diagramme des flux physiques de notre application « Agence de voyage »



Bien sûr on peut élaborer le diagramme sans passer par le générateur. Notons toutefois que dans un système complexe pour lequel les spécifications fonctionnelles sont difficiles à stabiliser, les flux logiques évoluent beaucoup. Le générateur qui permet de passer des flux physiques aux flux logiques  est alors utile pour vérifier que nous n’avons oublié aucun flux dans le diagramme.

Ci-dessous, l’intégralité des flux logiques de l’agence de voyage, qui ont servi à la vérification du schéma

descr
obsol
menv
src
dst
prot






écriture base pour flux logique YGYG_Client___ (Client) et lecture base pour flux logique YGYP_Clients__ (Clients) et écriture base pour flux logique YGYG_Demandes____1 (Demandes) et lecture base pour flux logique YGYG_Demandes____2 (Demandes) et écriture base pour flux logique YPYP_DossiVoya (Dossier Voyage) et écriture base pour flux logique YGYG_MisJouDon (la mise à jour de données) et lecture base pour flux logique YGYP_Reservati (Réservations)
+
1
P-MVO-T
P-MVO-D
sqlnet
accès au serveur apache depuis l'extérieur pour flux logique C_YG_DemanVoya (Demander voyage)
+
1
X-CLI-P
P-MVO-W
http
du serveur apache au serveur d'application pour flux logique C_YG_DemanVoya (Demander voyage) et du serveur apache au serveur d'application pour flux logique M_YM_GererCata (Gérer catalogue) et du serveur apache au serveur d'application pour flux logique V_YG_TraDemVoy___1 (Traiter demande voyage) et du serveur apache au serveur d'application pour flux logique V_YG_TraDemVoy___2 (Traiter demande voyage)
+
1
P-MVO-W
P-MVO-T
RMI
Envoi du message au provider JMS pour flux logique YGYG_DeposDema (Déposer demande)
+
1
P-MVO-T
X-JMS-T
http
Du provider JMS au serveur de destination pour flux logique YGYG_DeposDema (Déposer demande)
+
1
X-JMS-T
P-MVO-T
http
appel d'un web service dans l'ESB pour flux logique YPYE_EnvDosVoy (Envoyer dossier voyage) et appel d'un web service dans l'ESB pour flux logique YGYE_Reserver____1 (Réserver) et appel d'un web service dans l'ESB pour flux logique YGYE_Reserver____2 (Réserver)
+
1
P-MVO-T
P-ECH-T
soap
lecture base pour flux logique YFYP_Factures_ (Factures)
+
1
P-MVO-T
P-FAC-D
sqlnet
écriture base pour flux logique YFYF_Factures_ (Factures)
+
1
P-FAC-T
P-FAC-D
sqlnet
accès au serveur apache depuis l'interne pour flux logique M_YM_GererCata (Gérer catalogue) et accès au serveur apache depuis l'interne pour flux logique V_YG_TraDemVoy___1 (Traiter demande voyage) et accès au serveur apache depuis l'interne pour flux logique V_YG_TraDemVoy___2 (Traiter demande voyage)
+
1
P-MVO-P
P-MVO-W
http
appel d'un web service  applicatif pour flux logique YPYP_ImpDosVoy (Imprimer Dossier Voyage)
+
1
P-MVO-T
P-IMP-T
soap
lecture base pour flux logique YGYF_Reservati (Réservations)
+
1
P-FAC-T
P-MVO-D
sqlnet
appel d'un web service dans l'ESB pour flux logique YEH__Reserver_ (Réserver)
+
1
P-ECH-T
X-HOT-T
soap
appel d'un web service dans l'ESB pour flux logique YEA__Reserver_ (Réserver)
+
1
P-ECH-T
P-MVO-P
soap


vendredi 11 avril 2014

GRAF - Utilisation de Fluphy - le générateur de flux physique - 2


Reprenons notre exemple de l'architecture de l'agence de voyage.

Ouvrons le référentiel généré préalablement par GRAFlux (FX)  ainsi que le tableur  FluPhy (FY)
lançons tout d'abord la macro "synchronisation" (alt-F8)" et allons dans l'onglet "asel"
Les composants du référentiel ont été importé

id
lg
descr
obsol
YSMCP
type






Y
2
GRAFVOYAGE
+
Y
SY
YE
3
Echanges
+
S
SS
YE_PasseMail
4
Passerelle mail
+
M
CE
YE_ResaAvion
5
Résa Avions
+
M
CE
YE_ResaHotel
6
Résa Hotels
+
M
CE
YF
7
Facturation comptabilité
+
S
SS
YF_Facturati
8
Facturation
+
M
PA
YF_Factures_
9
Factures
+
M
DO
YG
10
Gestion demandes client
+
S
SS
YG_Clients__
11
Clients
+
M
DO
YG_GestiClie
12
Gestion des clients
+
M
SD
YG_GestiRese
13
Gestion des réservations
+
M
SD

Notons la colonne « obsol » qui a pour valeur « + » indiquant qu’il s’agit d’une première importation.

Dans l’onglet « Ccum » (Cluster matériel) on saisit les nom des serveurs que nous avons identifié dans les § précédents :

nom
descr
admin
o
r
u



#
#
#
P-MVO-W
Frontal web (Apache)
ssh
0
0
0
P-MVO-T
Application (Catalogue produits + réservation voyage)
ssh
0
0
0
P-MVO-D
Données (Catalogue produits + réservation voyage + base clients)
ssh
0
0
0
P-ECH-T
Echanges
ssh
0
0
0
P-IMP-T
Serveur d'impression
ssh
0
0
0
P-FAC-T
Serveur de facturation (Aplication server)
ssh
0
0
0
P-FAC-D
Serveur de facturation (Central Instance)
ssh
0
0
0
P-MVO-P
Poste de travail Agent
ssh
0
0
0
X-CLI-P
Poste de travail Client
ssh
0
0
0
X-AVI-T
Serveurs externes de réservation d'avion
ssh
0
0
0
X-HOT-T
Serveurs externes de réservation d'hotel
ssh
0
0
0
X-JMS-T
Provider JMS
ssh
0
0
0

Puis de nouveau dans l’onglet « asel », on associe les composants importés et les serveurs pour décrire le déploiement physique :

id
lg
descr
obsol
YSMCP
type
clum_1







Y
2
GRAFVOYAGE
+
Y
SY
YE
3
Echanges
+
S
SS
P-ECH-T
YE_PasseMail
4
Passerelle mail
+
M
CE
P-ECH-T
YE_ResaAvion
5
Résa Avions
+
M
CE
P-ECH-T
YE_ResaHotel
6
Résa Hotels
+
M
CE
P-ECH-T
YF
7
Facturation comptabilité
+
S
SS
YF_Facturati
8
Facturation
+
M
PA
P-FAC-T
YF_Factures_
9
Factures
+
M
DO
P-FAC-D
YG
10
Gestion demandes client
+
S
SS
YG_Clients__
11
Clients
+
M
DO
P-MVO-D
YG_GestiClie
12
Gestion des clients
+
M
SD
P-MVO-T
YG_GestiRese
13
Gestion des réservations
+
M
SD
P-MVO-T
YG_PorBacOff
14
Portail Back office
+
M
CA
P-MVO-T
YG_PortaClie
15
Portail client
+
M
CA
P-MVO-T

Puis on liste les règles dans l’onglet « regle »

nom
bus
type_f
type_s
type_d
descr
o
r
u






#
#
#
$ff
FF
flux de fichiers
0
0
1
$ff
bus
FF
flux de fichiers
0
0
1
$callEch
FS
CE,SX
Appel synchrone d'un composant "Echange"
0
0
0
$callSvc
FS
SD
Appel synchrone d'un service
0
0
0
$ecrBD
FD
DO
écriture dans une BASE DE DONNÉES
0
0
0
$bus
bus
découper en deux moitiés
0
0
0
$lecfic
FD
DF
lecture fichier (flux à retourner)
0
0
0
$lecBD
FD
DO,D*
lecture BD (flux à retourner)
0
0
0
$ihmAI
AI
accès à l'IHM depuis son poste pour acteur interne
0
0
0
$ihmAE
AE
accès à l'IHM depuis son poste pour acteur externe
0
0
0
$Async
FA
Message asynchrone
0
0
0

Ces règles utilisent  des attributs qui sont présent dans le référentiel FX :
- le type du flux (Par exemple : FS = Flux synchrone, FA = Flux asynchrone)
- le type du composant source (Par exemple : DO : silo de donné, AE : acteur externe)
- le type du  composant destination.

Le corps de la règle est décrit dans l’onglet « étape ». Ici on prend la règle « $Async »

nom
étape
src
dst
clum_1
prot
rpp
dpp
cat
descr










$Async
1
src
rgl
X-JMS-T
M
Envoi du message au provider JMS
$Async
2
rgp
dst
M
Du provider JMS au serveur de destination

Précisons le mode de description des étapes

C’est dans l’étape que l’on spécifie le mode de génération de chacun des flux physiques. Les colonnes de l’onglet  \_étape_/  sont les suivantes :
-          nom      nom de la règle contenant l’étape
-          étape   numéro de l’étape dans la règle (1,2,…)
-          src          choix du serveur à utiliser comme source du flux généré :
o   « src »  utiliser le serveur source du flux logique
o   « dst » utiliser le serveur destination du flux logique
o   « via »  utiliser le serveur intermédiaire spécifié dans les colonnes « via_# » de \_flul_/
               si via_# dans \_flul_/ est vide, on prendra par défaut  le serveur spécifié dans la colonne « clum_# » de l’étape
o   « rgl »   utiliser le serveur spécifié dans les colonnes « clum_# » de l’étape
o   « rgp » utiliser le serveur spécifié dans les colonnes « clum_# » de l’étape précédente
o   « rgs »  utiliser le serveur spécifié dans les colonnes « clum_# » de l’étape suivante
-          dst         choix du serveur à utiliser comme destination du flux généré :
o   « src »  utiliser le serveur source du flux logique
o   « dst » utiliser le serveur destination du flux logique
o   « via »  utiliser le serveur intermédiaire spécifié dans les colonnes « via_# » de \_flul_/
               si via_# dans \_flul_/ est vide, on prendra par défaut « clum_# » de l’étape
o   « rgl »   utiliser le serveur spécifié dans les colonnes « clum_# » de l’étape
o   « rgp » utiliser le serveur spécifié dans les colonnes « clum_# » de l’étape précédente
o   « rgs »  utiliser le serveur spécifié dans les colonnes « clum_# » de l’étape suivante
-          clum_#                serveur à utiliser comme source ou destination du flux généré quand on a spécifié
               « rgl » dans les colonnes src ou dst ; sert également de valeur par défaut pour « via ».
               # est le numéro de modèle d’environnements [1..4] (permet de faire 4 variantes)
-          prot       protocole à utiliser si différent de celui du flux logique
-          rpp        seulement si « prot » est spécifié
               règle d’attribution des ports :
o   0             port par défaut du protocole
o   1             premier port alternatif du protocole  + dpp
o   2             second port alternatif du protocole  + dpp
o   vide      port par défaut du protocole (comme 0)
-          dpp       seulement si « prot » est spécifié
               décalage dans la plage de ports (ports alternatifs)         
               (si vide : pas de décalage)
-          cat         catégorie du flux généré (une lettre préfixant l’id du flux)
               par défaut : A (applicatif)
               ex. : U (utilisateur)
-          descr    description courte du flux généré
               sera placé devant le nom du flux logique dans la description du flux généré
Donc dans notre exemple :

Etape 1 :
- le serveur source est « src » : la source du flux logique considéré
- la destination est « rgl », soit le serveur spécifié dans « clum_1 » : à savoir, le provider JMS

Etape 2 :
- le serveur source est « rgp » : le serveur spécifié dans la colonne « clum_1 » de l’étape précédente : à savoir, le provider JMS
- la destination est « dst », soit la destination du flux logique

Une fois les règles établies, nous pouvons lancer la macro « génération ».
Le résultat se trouve dans l’onglet « flug » dont voici un extrait :

descr
obsol
menv
src
dst
prot






écriture base pour flux logique YGYG_Client___ (Client) et lecture base pour flux logique YGYP_Clients__ (Clients) et écriture base pour flux logique YGYG_Demandes____1 (Demandes) et lecture base pour flux logique YGYG_Demandes____2 (Demandes) et écriture base pour flux logique YPYP_DossiVoya (Dossier Voyage) et écriture base pour flux logique YGYG_MisJouDon (la mise à jour de données) et lecture base pour flux logique YGYP_Reservati (Réservations)
+
1
P-MVO-T
P-MVO-D
sqlnet
accès au serveur apache depuis l'extérieur pour flux logique C_YG_DemanVoya (Demander voyage)
+
1
X-CLI-P
P-MVO-W
http
du serveur apache au serveur d'application pour flux logique C_YG_DemanVoya (Demander voyage) et du serveur apache au serveur d'application pour flux logique M_YM_GererCata (Gérer catalogue) et du serveur apache au serveur d'application pour flux logique V_YG_TraDemVoy___1 (Traiter demande voyage) et du serveur apache au serveur d'application pour flux logique V_YG_TraDemVoy___2 (Traiter demande voyage)
+
1
P-MVO-W
P-MVO-T
RMI

La première ligne identifie un flux physique (protocole SQLNET) qui permet de supporter l’ensemble des flux logiques accédant au serveur de données.

La troisième ligne identifie un flux physique (protocole RMI) qui permet l’accès au serveur applicatif depuis le serveur frontal