3.1. Rappel de la problématique
La problématique qui est la notre, à ce niveau d’analyse : nous développons une gamme de produit bancaires, en architecture client-serveur non répartie et désirons faire évoluer notre gamme vers l’architecture répartie, et ce en conservant nos investissements tant logiciels qu’humains. Nous utilisons pour cela un outil de développement (PowerBuilder) lequel permet depuis quelques années d’aborder la distribution d’architecture et Internet. Notre vision actuelle du client-serveur est limitée à l’utilisation d’une base de donnée et de ses procédures stockées, accédée par des postes clients au travers de requêtes. L’utilisation de PowerBuilder en tant qu’outil de première génération (client-serveur sans distribution) qui a évolué vers l’architecture multi-niveaux (dont Internet), est en entreprise une démarche difficile. De même que dans notre analyse, réécrire l’ensemble de nos applicatifs semble être, dans mon entreprise, une voie nécessaire, mais celle-ci n’est pas souhaitée, essentiellement pour des raisons de coûts.3.2. L’outil PowerBuilder
3.2.1. Présentation
PowerBuilder est un produit développé à l’origine par la société américaine Powersoft Corporation et qui est devenu depuis 1995 la division outil de développement de Sybase. La première version du produit date de juin 1991 et se positionnait sur le marché des frontaux SQL. Alors qu’aujourd’hui PowerBuilder a évolué vers le marché du client-serveur distribué et se positionne comme un outil de développement possible de toute entreprise. Parmi la gamme il existe une version Entreprise et qui nous intéresse, celle-ci inclut tous les outils (notamment ObjectCycle le référentiel de développement, les pilotes SGBD natifs, la possibilité de distribuer les traitements). Depuis 1992, Powersoft a mis en place une politique de partenariat très active intitulée : le programme CODE (pour Client/server Open Development Environment). Celui-ci a généré depuis un marché d’outils satellites interfacés avec PowerBuilder complétant ce dernier dans les différentes phases du cycle de développement d’application (conception, tests, bibliothèques de composants prédéfinis) ou l’enrichissant de fonctions transversales de plus haut niveau (gestion documentaire, d’images, etc.).3.2.1.1. Coté conception et développement
3.2.1.1.1. Facilité d’utilisation
Un des facteurs de succès de l’outil auprès des entreprises provient de ce point. Depuis son origine, l’environnement de développement s’intègre très fortement au monde Windows en suivant notamment les évolutions ergonomiques que connaît l’interface graphique de Microsoft. Il devient plus facile de développer des interfaces graphiques qui deviennent de plus en plus facile riches. Il est à noter que si Powersoft essaye de suivre le « standard » que peut représenter Windows de Microsoft, il peut s’avérer nécessaire de répercuter ces nouvelles fonctionnalités dans les applications générées avec l’outil de développement. Je pense qu’un utilisateur « séduit » par exemple par le menu contextuel du bouton droit de la souris au niveau bureautique, ne comprendrait pas pourquoi dans son application, ces menus ne sont pas utilisés. Les fonctionnalités développées par Microsoft deviennent ensuite des arguments commerciaux pour Powersoft, et des sources de modification applicative au niveau des projets.3.2.1.1.2. Méthodologie et conception
De plus en plus, les interfaces entre outils de conception et PowerBuilder se sophistiquent. Les liens entre les dictionnaires de ces outils deviennent de plus en plus riches. Cet aspect permet par exemple de mettre en place une codification globale ou une charte graphique commune très tôt. De nombreux ponts existent déjà entre PowerBuilder et les outils de conception (de type Upper Case) développent souvent des extensions spécifiques pour PowerBuilder. On retrouve ce type de lien dans la majorité des produits de conception du marché. Cette richesse, ou ce poids que l’on pourrait accorder à PowerBuilder montre en fait que la conception dépends de produits externes, ce qui n’est pas une garantie de pérennité. De plus de manière dynamique, ces produits de conception vont faire évoluer leur offre en fonction des modifications d’offres de PowerBuilder au niveau de l’outil de développement. Je pense qu’il serait plutôt intéressant d’avoir un processus descendant de la conception vers l’outil, ainsi les évolutions seraient prises en compte au plus tôt, et au niveau le plus haut. Ainsi parmi ces produits de conception, il est à noter l’offre AMC*Designor, qui est une approche de type Merise avec des concepts de type entités relation, alors que le développement qui se fera par la suite sera, pourra être de type objet et nécessiterait plutôt une conception de type objet. Selon [Baudoin96] la conception orientée objet permettrait les bénéfices au niveau de la maintenance par isolation du domaine du problème, au niveau de la réutilisation des éléments de conception, et au niveau de la production. Ces deniers avantages nous intéressant, je pense qu’un développement objet tire plus de bénéfices d’une conception objet que d’une conception traditionnelle.3.2.1.1.3. Référentiel et travail de groupe
Plusieurs version de PowerBuilder sont disponibles sur le marché, dont la version Entreprise que nous utilisons. Celle-ci intègre un référentiel de développement : ObjectCycle, permettant le développement en équipe et assurant le contrôle de versions des objets du projet. Cet outil fonctionne en architecture client-serveur et stocke toutes les ressources nécessaires au développement des applications dans une base relationnelle (SQL Anywhere). Il n’est pas limité aux objets de PowerBuilder : il peut prendre en compte les ressources graphiques (icônes, images, etc.) ou textuelles (document Word par exemple). Il se décompose en modules client, serveur et utilitaires dont un outil graphique permettant de gérer le référentiel. Bien qu’autonome, l’outil est intégré à l’environnement de développement de Sybase/Powersoft. Il suffit de glisser / déplacer les objets à partager à partir de l’interface graphique de PowerBuilder vers ObjectCycle pour les enregistrer la première fois dans le référentiel. A partir de ce moment, la ressource est contrôlée par le gestionnaire de version et devient partageable par les membres de l’équipe de développement. La gestion des révisions ou versions des ressources est automatique. La notion d’étiquette est proposée en complément pour figer logiquement toutes les composantes d’une application dans une version donnée. A noter que l’accès au référentiel est contrôlé par le moteur SGBD, il n’y a donc pas de possibilité pour attribuer des privilèges différents suivant la fonction des membres de l’équipe de développement (développeur, testeur, etc.), cette particularité entre autres à motiver notre refus d’utiliser cet outil.3.2.1.1.4. Interface graphique
L’outil de Powersoft est très abouti en ce qui concerne la création d’interfaces graphiques, ce qui trouve son origine dans sa conception initiale d’outil orienté client. Par conséquent, tous les objets graphiques usuels sont gérés par cet outil (onglets, contrôle pour créer des arborescences, éditeur RTF etc.). Quelques extensions caractérisent l’outil de Sybase depuis son origine et la plus importante est le contrôle graphique spécialisé dans l’accès aux données appelé la DataWindow. Ce contrôle spécifique sera détaillé dans le paragraphe concernant l’accès aux données.3.2.1.1.5. Développement
Langage de développement PowerBuilder offre un langage de script complet intégrant des notions objets : le PowerScript. Ce langage combine les notions propres à la programmation événementielle et des notions objets (classes, méthodes, héritage etc.). En particulier, PowerBuilder autorise la définition de groupe d’objets utilisateur (notion de User Define Object ou UDO). Ce type de notion s’applique aux objets graphiques et également depuis la version 3 aux objets non visuels.3.2.1.1.6. Accès aux données
PowerBuilder offre plusieurs moyens d’accéder aux données stockées dans les SGBD :- Le SQL programmé
- L’objet graphique DataWindow.
- L’objet non visuel DataStore apparu en V5.
- L’impossibilité de définir certaines requêtes complexes en mode assisté ;
- La limitation des mises à jour automatiques. Si la mise à jour est mono-table, PowerBuilder la prendra totalement à sa charge, de manière entièrement automatisée. Dans les cas plus complexes ou si les méthodes automatisées ne sont pas satisfaisantes pour une raison ou pour une autre (stratégie de gestion de concurrence par exemple), la programmation nécessaire devient plus conséquente. Cette remarque limite l’utilisation de ces automatismes à des cas précis comme la gestion des tables de références par exemple.
3.2.1.1.7. Editions et rapports
PowerBuilder ne propose pas d’outil spécifique pour les éditions, mais permet de définir des rapports en utilisant exactement le même outil que celui permettant de définir les fenêtres. La création d’un rapport est donc analogue à celle d’un écran classique. Infomaker, l’outil de création de requêtes SQL, permet également la définition de rapports stockés dans un format interne (PSR pour Powersoft Report), mais il est peu utilisé en entreprise car propriétaire de PowerBuilder ; les entreprises préférant des outils plus génériques de type Business Objects de Business Objects S.A. et qui peuvent utiliser plusieurs sources de données.3.2.1.2. Côté production
3.2.1.2.1. Installation - Déploiement - partitionnement
La version 5 aborde le partitionnement des applications de deux manières :- par interfaçage avec des solutions tierces permettant la distribution des traitements et services ;
- en offrant de nouvelles possibilités intégrées à PowerBuilder( Distributed PowerBuilder).
Solutions externes
- Un langage de définition d’interface qui détermine les paramètres de la fonction logique de l’application à invoquer.
- Une fonction de conversion des types de données PowerBuilder en types de données supportés par l’interface, cette fonction devant être codée en C ou C++.
-
Une fonction externe pour appeler l’interface de fonction et rapatrier les données dans la DataWindow pour les afficher, avec une limite liée à la syntaxe propriétaire du moteur de base de donnée. Il apparaît que si cette méthode peut être appliquée avec succès pour un cas d’entreprise utilisatrice finale, il apparaît à l’étude que ce type de procédé ne convient pas à une activité d’édition de progiciel, c’est à dire face à une variété de sites qui représentent autant de cas divers à traiter. Cette méthode se prête peu à une ingénierie par progiciel.
PowerBuilder Distribué
- Objet Transport. Toute application serveur contient un objet de ce type. Son rôle est de réceptionner les demandes de connexions émanant d’une application cliente et d’établir un canal de communication réservé pour ce client.
- Objet Connexion. De manière symétrique, toute application cliente désireuse d’accéder à un serveur PB, doit contenir un objet de ce type. Celui-ci a pour charge d’initialiser la communication avec l’application serveur.
- Une propriété a été ajoutée pour les objets utilisateurs non visuels : la notion de proxy. Un proxy est la description de l’interface externe de ce type d’objet. Enregistrer un proxy correspond à rendre distant l’objet sur un serveur PB. Ceci correspond effectivement à la publication de l’interface externe de l’objet.
3.2.1.2.2. Processus de développement avec Distributed PowerBuilder
Au niveau de la construction des applications sur la partie cliente et sur la partie serveur, il n’y a pas de différence entre une application classique et une application distribuée (DPB). Conceptuellement, la logique de gestion doit être modulaire. Les objets créés constituent des classes d’objets PB. Ils peuvent être tous répartis ou en partie.3.2.1.2.3. Comportement en client-serveur
La technique de communication sous-jacente est celle des RPC avec PowerBuilder Distribué. Le dialogue entre applications serveurs et clientes est donc synchrone : cela signifie que l’invocation d’une méthode distante impose l’attente des résultats avant de poursuivre le déroulement du programme.3.2.1.2.4. Sécurité Disponibilité
Aucune fonctionnalité n’est fournie en standard dans l’environnement. L’éditeur préconise dans ce cas d’utiliser un produit tiers interfacé avec PB (un moniteur transactionnel par exemple).3.2.1.2.5. Administration et suivi d’exploitation
Powersoft commercialise un produit complémentaire appelé « Kit d’outils de développeur PowerBuilder » permettant de synchroniser les développements coté serveur et coté client (outil de références croisées, synchronisation d’attributs, vérificateur de syntaxe SQL...).3.2.2. Les contraintes
3.2.2.1. PowerBuilder en tant que L4g2 : le respect des dix règles
3.2.2.1.1. Apports fonctionnels
- Règle 1 : Principe de la fenêtre unique Plusieurs versions de PowerBuilder existent selon la plate-forme de développement. Le passage d’un environnement à l’autre nécessite une recompilation intégrale des scripts. On peut donc difficilement faire abstraction de la configuration de déploiement pendant la phase de développement, la règle de la fenêtre unique n’est pas respectée.
-
Règle 2 : Orientation services
La dernière version apporte un début de réponse avec PowerBuilder Distribué. Toutefois, celle-ci reste rudimentaire. La notion de service applicatif partagé existe aujourd’hui dans l’outil mais n’est pas neutre ni transparent pour le développeur. La séparation des données de leur présentation est désormais possible via le nouvel objet DataStore. Ce nouvel objet, et c’est le point névralgique de notre problématique indique bien que les versions précédentes ne permettaient guère de séparer des traitements de la présentation. Ce qui signifie aujourd’hui de devoir :
- - soit réécrire avec cet objet la majeure partie des quelques 1800 objets que nous utilisons en moyenne pour une application. Cette solution est coûteuse en délais et en ressources humaines mais permettrait de disposer par la suite de traitements séparés de l’IHM.
- - soit séparer les traitements des fenêtres applicatives. Ce qui signifie reprendre au cas par cas les différents modules pour essayer d’extraire les traitements des fenêtres applicatives pour les isoler dans des objets. Mais cette tâche ne semble pas évidente étant donné que les traitements sont fonctionnellement liés aux fenêtres et il faudrait donc reprendre la cinématique des transactions. Cette règle n’est respectée qu’en partie
- Règle 3 : Adaptation au transactionnel lourd L’outil s’appuie sur des outils externes pour supporter de fortes contraintes transactionnelles. Il s’interface alors avec la plupart des moniteurs transactionnels du marché (Tuxedo, Encina ).
3.2.2.1.2. Conformité à l’état de l’art technologique
- Règle 4 : Interface graphique et développements visuels L’une des raisons du succès de PowerBuilder tient à son intégration avec l’environnement graphique sous-jacent. Il respecte donc absolument cette règle et propose tous les outils pour réaliser des applications graphiques rapidement. La version 5.0 supportant Windows 95 et ses standards (OLe 2, OCX, ) confirme et renforce encore cette impression, avec les restrictions faites précédemment sur "les standards" qui évoluent et qui concerne pleinement PowerBuilder. Ainsi de la version 4 à la version 5, un certain nombre d’éléments ne sont plus implémentés, et doivent donc être remplacés au fur et à mesure des évolutions de versions.
- Règle 5 : Support des technologies du partage L’outil est interfacé avec la plupart des SGBD et des moniteurs transactionnels du marché. Il reste tout de même centré sur le client : la partie serveur d’application PB n’est disponible que pour les environnements Windows 32 bits et pour Unix Solaris en version 5.0. Pour l’accès aux données par procédures stockées, la syntaxe n’est pas identique d’un moteur de SGBD à un autre. Cette règle est partiellement respectée.
- Règle 6 : Support des standards de l’interopérabilité Le programme de partenariat Code a encouragé les développements autour de PowerBuilder : de nombreuses interfaces existent aujourd’hui avec les mondes DCE et Corba. Toutefois, celles-ci sont disponibles généralement auprès d’éditeurs tiers et ne sont pas fournies avec l’outil.
3.2.2.1.3. Qualité des développements
- Règle 7 : Apport d’un référentiel homogène La version 5 fourni un référentiel de développement stocké sur SGBDR : ObjectCycle. Celui-ci offre toutes les facilités nécessaires au développement en équipe et à la gestion de projets complexes (gestion de version notamment).
- Règle 8 : Persistance des objets applicatifs Un des principaux reproches que l’on peut faire à l’offre PowerBuilder est qu’elle est centrée sur le développement d’applications et qu’elle vise peu leur administration ou leur exploitation. Il sait toutefois coopérer avec des outils externes pouvant adresser ce problème. De ce fait, cette règle n’est pas adressée au mieux par l’environnement.
- Règle 9 : Facilités d’installation et de configuration L’environnement offre peu de fonctionnalités sur ce sujet. Il génère du Cpour optimiser les performances dès la mise en production des applications. Des partenariats avec des éditeurs ont permis de mettre en place des interfaces avec des environnements d’administration (exemple IBM avec Tivoli). Mais on peut considérer que cela ne fait pas partie de l’outil. Cette règle n’est respectée qu’en partie.
-
Règle 10 : Ouverture
L’outil reste spécialisé sur la phase de développement et a choisi une stratégie de partenariat très active garantissant son ouverture : le programme CODE. De nombreuses interfaces entre PowerBuilder et des outils tiers en découlent et font de cet environnement un outil très riche en terme d’extensions possibles.
Bilan
A l’étude comparative de l’outil de développement PowerBuilder, avec ce que l’on pourrait attendre d’un outil de développement de seconde génération, c’est à dire en informatique répartie, je pense que de par son évolution vers le client-serveur distribué, cet outil reste fortement marqué par ce qui en a fait son succès auprès des entreprises. Ainsi, son interface graphique très riche et sa facilité d’utilisation, tant au niveau de l’outil de développement qu’au niveau du produit réalisé, masquent des aspects importants dans l’utilisation de l’outil, notamment lorsque l’on a suivi son évolution vers le client-serveur. Il semblerait que la démarche d’évolution vers le client-serveur se soit faite par ajouts de couches supplémentaires, de fonctionnalités, plutôt que par refonte partielle et modulaire de cet outil. Résumé : Plusieurs règles dont principalement la règle n°2 ne sont pas respectées : l’orientation service, ou la possibilité d’adresser des objets distants, n’est pas possible à notre niveau sans devoir réécrire un nombre important d’objets. De plus certaines règles ne sont assurées qu’avec des produits tiers qui viennent le compléter ou l’enrichir (l’interopérabilité ,la persistance des objets, l’installation, l’ouverture).
3.2.2.2. PowerBuilder et sa diachronie.
En matière d’outil de développement client-serveur d’entreprise, notre choix s’est porté dès le départ vers la gamme de PowerBuilder. Par rapport aux autres produits du marché, PowerBuilder est à l’origine un outil de développement de première génération ; contrairement à d’autres offres d’acteurs majeurs qui ont choisi de développer leur nouvelle offre autour du client-serveur distribué de seconde génération. PowerBuilder tente depuis quelques années de faire évoluer son offre vers ce concept d’outil de seconde génération, mais reste avant tout un outil fortement orienté client avec une interface graphique riche, tant au niveau de la facilité de développement que du confort d’utilisation.En utilisant ce L4G pour développer une gamme de produits, il s’avère que les choix originaux faits par PowerBuilder peuvent apparaître aujourd’hui et dans le futur comme des contraintes à l’évolution vers le client-serveur distribué ; la solution la plus adéquate serait la réécriture complète de la gamme avec la version distribuée de PowerBuilder, mais ce serait aussi la plus coûteuse, et ce choix devrait être imposé à nos clients. Notre souci étant aujourd’hui d’évoluer vers le client-serveur distribué avec le moindre coût en matière de réécriture, et en conservant les bénéfices des investissements engagés.3.2.2.2.1. Le métier du Back office
De part notre activité métier banque et finance caractérisée par une informatique de gestion et résolument Back Office, il n’est pas nécessaire, utile de développer une gamme de produits qui répondent à des critères qui ne sont pas ceux de l’activité métier de nos clients. Notre marché BackOffice et Trésorerie entreprise s’adresse à des sites informatiques peu consommateurs en nombre d’utilisateurs voire en activité, ce qui influe grandement le type d’architecture technique sous-jacent.3.2.2.2.2. Ne cesse d’évoluer
Néanmoins, à suivre les regroupements, fusions de sociétés sur le marché de la Banque comme de l’industrie avec l’avènement politique et monétaire de l’Euro, il est à prévoir et on peut déjà constater que les sites informatiques suivent ce mouvement. Les SI de demain seront composés de réseaux plus ouverts, plus hétérogènes et devront coopérer, être interopérable. De plus sur un plan fonctionnel, notre gamme de produit peut avoir à s’adresser à des sites ayant une activité front office. Les métiers du Back Office sont caractérisés par une informatique de gestion peu réactive, en amont de laquelle se situent les métiers du Front Office caractérisés par une informatique donnant plus de poids à l’interactivité qu’aux traitements. Il me semble ainsi, de par mon expérience, que l’activité métier peut exiger de l’architecture technique sous-jacente qu’elle réponde à des critères relative aux temps de traitements des transactions, réplications des données, ergonomie de saisie, gestionnaire de travaux par lots, et que selon ces métiers certains critères seront prépondérants à d’autres. Ainsi l’informatique Back Office sera différente de l’informatique Front Office, ce qui peut aussi s’exprimer par une exigence plus grande dans les fonctionnalités de l’outil de développement aux regards des critères que l’activité métier exigera du SI.
3.2.2.2.3. Bilan
L’évolution qu’a suivi le produit, et les annonces marketing faites sur les évolutions à suivre, laissent augurer que les versions futures, au delà des aspects commerciaux, adresseront mieux le client serveur distribué. En effet le produit essaye de suivre le marché et d’être ouvert avec les autres produits considérés comme des produits de référence (les serveurs Oracle ou Sybase, mais aussi des technologies différentes telles que l’AS400, l’environnement Java). Il suscite notamment, au niveau des produits s’interfaçant avec lui d’un marché satellite important. Ce dernier élément témoigne de l’aspect ouvert du produit, mais ne signifie pas qu’il adresse les problématiques au mieux. Cependant, en entreprise, la philosophie suivie au regard des évolutions est résumée par le slogan « il est urgent d’attendre », car les évolutions proposées semblent difficiles à implémenter, car soit elles nécessitent une réflexion pour être adaptées à notre SI, soit elles nous orientent vers des choix qui ne sont pas en adéquation avec le devenir de notre SI, ou les compétences disponibles du moment. Il est important de souligner que notre problématique ne se poserait pas en ces termes si nous avions la possibilité de partir de zéro pour démarrer un nouveau projet, mais c’est bien dans l’utilisation de PowerBuilder avec des application existantes que notre problématique prends tout son sens. Face à notre problématique liée à PB en architecture distribuée, et le fait que cet outil de développement de par son évolution ait une faible maturité en tant qu’outil de seconde génération, il nous faut envisager des scénarios d’évolution s’appuyant sur d’autres solutions. Résumé : L’outil de développement PB ayant évolué vers le client- serveur plutôt que de l’avoir implémenté dès l’origine est limitatif dans les possibilités qu’il offre au niveau de la migration vers l’architecture distribuée. Au niveau de notre activité métier, marquée par une informatique de gestion de type Back Office, le client-serveur n’est pas une nécessité, mais l’activité suit une évolution fonctionnelle, marquée par une informatique de type Front Office, c’est à dire donnant plus d’importance à la réactivité du système. Alors l’outil utilisé doit permettre de mettre en place le SI qu’exige le métier. A ce niveau il devient nécessaire d’envisager des scénarios d’évolution. Powerbuilder scénarios
