Retour PowerBuilder l’outil client serveur



PowerBuilder l’outil client serveur


(Url : http://phortail.org/webntic/PowerBuilder-l-outil-client-serveur.html)

Mise en ligne : 21 mars 2003 par km

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.

Modularité et réutilisation

PowerBuilder dispose d’une fonctionnalité originale : la notion de bibliothèque dynamique. Une application peut donc être découpée en un ensemble de bibliothèques, le lien entre les différentes bibliothèques s’effectuant dynamiquement sur le poste d’exécution de l’application. Cela permet de modulariser l’application, y compris lorsqu’elle est mise en production. La technique utilisée ici est analogue à l’appel dynamique de fonction classique (DLL pour Dynamic Link Library) mais respecte un protocole propriétaire. Par conséquent, les fonctions définies dans ces bibliothèques seront appelables exclusivement par des applications PowerBuilder, ce qui limite la réutilisation inter-applicative. La version 5 inclus une bibliothèque de classes techniques documentée et supportée par l’éditeur : la PowerBuilder Foundation Class (en abrégé PFC). Powersoft encourage tous ses clients à l’utiliser comme base de développement. Cependant, annoncé comme apport principal de cette version, il se trouve qu’à l’utilisation peu d’entreprises utilisent les possibilités qu’offrent les PFC.

Interopérabilité applicative

La version 5 apporte également une intégration accrue avec le protocole d’échange OLE de Microsoft. Le support de DDE reste de mise bien que cette méthode d’échange soit vouée à l’obsolescence à court terme. La réutilisation des composants OLE 2 ou OCX ( OLE Control eXtended) est possible dans les applications développées avec PowerBuilder. En effet, ces objets sont encapsulés de manière transparente par l’environnement et sont considérés dès lors au même niveau que les objets PB natifs. Ainsi, les fonctions d’exploration ou d’héritage deviennent possibles sur ces composants. PowerBuilder est client OLE Automation : autrement dit, les serveurs OLE Automation (typiquement MS Word ou MS Excel) sont accessibles dans les DataWindow, les fenêtres et les objets utilisateurs de PowerBuilder. Il est possible de créer des serveurs OLE Automation à partir d’objet utilisateur non visuel (Non Visual User Object) mais cette opération demande un effort de codage non trivial. Cette solution peut s’avérer intéressante pour coder des traitements batchs.

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 :