Sysdeo Formation
    
Technologies
 Vous êtes Accueil > Technologies > Frameworks J2EE > Borneo : Framework J2EE Sysdeo
 

Introduction

Alors que les services informatiques grands et moins grands de nos clients commencent à prendre du recul sur les méthodologies de développement en technologies J2EE et s'intéressent aux approches framework, de plus en plus de SSII, tentant de se raccrocher à cette nouvelle vague, se prévalent désormais d'un framework et/ou de compétences framework. Se démarquant de cette génération spontanée de compétences framework, Sysdeo capitalise plus que jamais sur ses neuf années d'expérience en frameworks objet et célèbre les quatre années d'existence de son framework J2EE.

Désormais entré dans l'âge de maturité, le framework J2EE Sysdeo, aujourd'hui déployé chez de nombreux clients, offre une structure et un cadre de développement exceptionnels.

Framework J2EE de Sysdeo

Le principe de framework est, avec les boîtes à outils et les modèles de conception ("design patterns"), l'une des trois stratégies opérationnelles qui donnent vie au principe de réutilisabilité inhérent au paradigme objet.

Les frameworks sont des structures logicielles qui définissent des cadres dans lesquels viennent s'insérer les objets et concepts spécifiques à une application. En pratique, un framework, ou squelette d'application, est un ensemble de classes et de mécanismes associés à une architecture logicielle qui fournissent un ou plusieurs services techniques ou métiers aux applications qui s'appuient dessus.

Alors qu'un framework métier fournit des services à forte plus value fonctionnelle (gestion de clients, d'abonnements, d'articles, …), un framework technique apporte les concepts, entités et mécanismes qui permettent, dans le cadre d'une architecture logicielle retenue, de s'abstraire d'un certain nombre de problématiques conceptuelles et techniques récurrentes.

Expertise

Nos clients attendent de leurs intégrateurs qu'ils leurs fournissent vite et bien des logiciels de qualité conformes à leurs besoins. La célérité, à ne pas confondre avec la précipitation, ne pourra être associée à la qualité que si les équipes de réalisation savent rapidement profiter de l'expérience acquise dans des contextes similaires à celui qui les concerne.

Voilà pourquoi les experts Sysdeo ont retenu une architecture logicielle et des services qui synthétisent leurs "best practices" - leurs meilleures manières de faire - au sein d'un outil, support de développement désormais incontournable : le framework J2EE Sysdeo.

Les applications Internet et intranet font un usage intensif des servlets et des JSP, des langages ou formalismes Java, JavaScript, HTML et XML, des protocoles HTTP, HTTPS, voire FTP et SMTP, des JavaBeans, de JDBC, de JNDI, sans parler de RMI ou des EJB, bref d'un ensemble de technologies en constante évolution qu'il convient de connaître et maîtriser pour pouvoir en exploiter les possibilités et en éviter les écueils. Ce sont cette connaissance et cette maîtrise que les ingénieurs Sysdeo insufflent dans les services et outils du framework Borneo afin d'accompagner la tâche des équipes techniques, celles de Sysdeo et/ou de ses clients, tout au long de la vie de leurs applications.

Logiciel flexible et évolutif

Fixer une architecture logicielle, l'associer à un framework technique, c'est avant tout, bien entendu, fixer une structure, une charpente autour de laquelle construire son application. C'est aussi définir un "esprit", une orientation de conception et de développement. Derrière ce vœu pieux subsiste un double mot d'ordre : délai et qualité.

Le secret de la réactivité d'une équipe de développement réside dans sa capacité à rendre ses logiciels flexibles et évolutifs, c'est-à-dire, pour l'essentiel, adaptables :

  • aux évolutions de l'environnement d'exploitation,
  • aux évolutions de l'environnement technique,
  • aux évolutions de l'environnement fonctionnel.

L'ensemble des services fournis par le framework Borneo est configurable. Bien entendu, la configurabilité d'une application, si bien pensée soit-elle, ne peut être sans limite. C'est toute l'expérience des équipes techniques qui entre ici en jeu dans le choix du niveau de granularité de la configuration.

Cette configurabilité apporte à toute application développée autour du framework une flexibilité qui est généralement bien trop coûteuse à inclure dans une application développée "from scratch".

Organisation

La communauté des concepteurs d'applications Internet s'accorde aujourd'hui sur l'organisation en trois couches sur laquelle doit être construite toute application Internet robuste, évolutive et maintenable. Ces couches prennent respectivement en charge les interactions avec les utilisateurs, les traitements métiers de l'application et l'accès aux sources de données (fichiers, bases de données, systèmes d'information d'entreprise, …) auxquelles est associée l'application. Ces couches sont complétées par une couche technique en charge de services transversaux partagés (journalisation, configuration, internationalisation, …).

Services récurrents

Communément, le premier pas vers la réutilisation inter-applications et la mise en place d'un framework se matérialise en pratique par la normalisation et la factorisation des services transverses récurrents. Ces services, exploités par l'ensemble de l'application, sont ceux que l'on retrouve dans toute application J2EE, qu'il s'agisse ou non d'une application Web, et recouvrent la gestion de configuration, la journalisation des événements, les statistiques, etc.

Les services dit transverses du framework Borneo permettent aux développeurs d'étendre à leurs applications les capacités d'adaptabilité du framework : avec le Gestionnaire de Configuration, notamment, ils bénéficient d'une interface d'accès unique aux information de configuration et aux ressources textuelles externalisées, qu'ils proviennent de fichiers de propriétés Java, de fichiers XML ou de bases de données. Exemplaire en ce domaine, le Gestionnaire de Multilinguisme, par exemple, fournit ainsi une gestion multilingue à partir de sources toutes aussi hétérogènes.

Rationalisation de la couche IHM

La couche interaction homme-machine (IHM) de l'application a la responsabilité de la gestion des échanges homme-machine.

Le framework Borneo retient une structuration de la couche IHM de l'application selon le modèle MVC II. Le terme "MVC II" ne fait pas ici référence, par le biais de quelque détournement de langage, au modèle d'architecture JSP II de Sun, mais aux évolutions du modèle MVC qui ont amené l'introduction d'une couche verticale supplémentaire entre les éléments les plus proche de l'interface graphique (contrôleurs et vues) et le modèle métier.

Depuis la version 3.0 du framework J2EE Sysdeo, une partie du moteur MVC II du framework est prise en charge par le framework IHM open source Struts (pour en savoir plus sur Struts, référez vous à l'article Sysdeo "Struts, vous avez dit Struts?").

Le Module IHM du framework Borneo est animé par le Noyau de Contrôle. Celui-ci inclut le contrôleur de navigation Borneo basé sur celui de Struts, le mécanisme Sysdeo de gestion de Vues (au sens MVC) et les mécanismes semi-automatiques de gestion de formulaires de Struts.

A ce Module IHM sont associés plusieurs composants. Parmi ceux-ci, le Gestionnaire d'Authentification tient une place particulière. Il fournit une interface d'authentification et d'autorisation unique à l'ensemble de l'application. Il est compatible avec toute solution d'authentification et d'autorisation retenue pour vos projets (fichiers, base de donnée, serveur LDAP,…). Il est intimement lié au Noyau de Contrôle.

Le Module IHM est complété par des composants qui intègrent des facettes client léger : le Composant Menus Dynamiques, le Composant Listes Longues, ou le Composant PDF, pour la sortie d'états.

Enfin, il est entièrement compatible avec les librairies de balises Struts.

Organisation de la couche données

Les services transverses mis en place, la couche IHM organisée, il est temps de se tourner vers la couche données. La couche données a pour responsabilité de gérer et d'encapsuler les accès aux données, tout en décorrélant ces derniers des couches amont.

Les composants données fournis par le framework Borneo implémentent opérationnellement des modèles de conception éprouvés et facilitent considérablement la tâche des développeurs. Ils prennent en charge des mécanismes aussi variés que l'obtention des connexions JDBC choisi par l'exploitation, la gestion de cache des données reconnues suffisamment pérennes, les accès FTP, le déploiement de ressources vers d'autres  serveurs (dans un contexte de gestion de l'équilibrage de charge par exemple), la génération de mails, le cryptage des données ou encore la gestion du mapping objet-relationnel.

Structuration de la couche métier

La couche métier est détentrice des informations du domaine métier, tant en termes de structure qu'en termes de comportement. Selon le contexte, elle peut avoir pour responsabilité d'encapsuler ces informations métier et de les décorréler de la couche IHM, voire de la couche Données.

Le framework J2EE Borneo de Sysdeo est un framework technique. Les composants et services fournis par le Module Métier de Borneo sont donc essentiellement techniques.

Notons par ailleurs que si les services métier de l'application sont déportés (sur serveur CICS, au sein d'EJB, ou encore sous forme de procédures stockées, par exemple), la couche métier de notre application J2EE devient une couche très technique qui regroupe pour l'essentiel un ensemble de proxy qui donnent accès à ces services métiers distants. Plusieurs composants du module données sont alors utilisables pour la mise en œuvre et l'encapsulation des mécanismes nécessaires.

Certains composants restent cependant spécifiques au Module Métier de Borneo tels que le Composant Énumérateur, par exemple, qui réalise le modèle de conception éponyme.

Support actif aux développeurs

Soucieux de réduire autant que faire se peut la phase incontournable de prise en main du framework et des applications associées, l'équipe Sysdeo a porté une attention toute particulière à l'accompagnement des développeurs et des exploitants.

Cela se traduit par une documentation précise sans être inutilement verbeuse, par des applications "bootstrap" démonstratives, dont notamment un console d'administration en ligne intégrable à vos applications Web, mais aussi par la mise à disposition d'outils d'édition et de génération de code. Ces outils se présentent aujourd'hui sous la forme de plugins Eclipse ou WSAD (voir le site www.eclipsetotale.com pour plus d'information concernant ces environnements de développement).

Des pour et des contre

Les contre

Comme dans toute architecture logicielle de type MVC II à point d'entrée unique, l'unicité du servlet de l'application réduit considérablement l'apport d'une prise en charge de la sécurité des traitements et des ressources par le serveur d'application sur lequel est déployée l'application, dans la mesure où ce servlet occulte ces traitements et ces ressources.

Borneo a été conçu pour fournir un support aux applications J2EE Internet ou intranet. Cependant, comme tout outil équivalent, il est soumis à la loi des 80/20 : il assure un support immédiat de 80% des cas rencontrés mais nécessite un effort spécifique pour le développement des 20% de cas restants. Ces cas appellent des mécanismes complémentaires et une bonne compréhension des classes du framework.

Enfin, comme tout framework ou toute librairie, Borneo nécessite un délai d'apprentissage dont il convient de tenir compte, même s'il peut s'avérer assez court pour les intervenants familiarisés avec le type d'organisation sur laquelle il s'appuie, et plus largement avec la notion de framework.

Les pour

Borneo propose de construire vos applications Internet et intranet autour d'une organisation de l'application en trois couches plus une couche transverse, et de structurer votre interaction homme-machine selon l'approche MVC II à point d'entrée unique. De fait, Borneo bénéficie de l'ensemble des apports de l'architecture retenue.

Le contrôle de navigation, dont le comportement est configuré par fichier et est implémenté par des entités atomiques, donne une grande flexibilité à la gestion de la navigation de l'application et permet de transformer rapidement et à votre plus grand bénéfice vos maquettes en prototypes.

La centralisation des accès à l'application permet un contrôle fin et personnalisé des accès aux traitements et offre une grande marge de manœuvre pour la gestion des profils ou des rôles utilisateurs.

De ce fait, le framework, par le biais complémentaire de composants tels que les composants de gestion de connexions et de gestion de serveur de noms, limite considérablement les adhérences entre les applications développées et les serveurs d'application sur lesquels elles sont déployées. Il restreint ainsi notablement les contraintes que les choix d'exploitation peuvent imposer sur les choix de développement (serveur d'application retenu, organisation physique, balance de charge, …).

Associé à une organisation logicielle opérationnelle et à des composants, donc du code, robustes et réutilisables, le framework Borneo apporte, à périmètre constant, des gains en charges, donc en ressources et/ou en délais de développement des applications Web J2EE, et, à charge constante, des gains quant au périmètre technique couvert, mais aussi, et plus important, sur la qualité, la robustesse, la maintenabilité et l'évolutivité des applications réalisées.

Enfin, au delà de l'éternel choix entre frameworks maison et frameworks clefs en main, frameworks open source et frameworks éditeurs, Sysdeo vous propose avec Borneo d'accéder à un juste milieu sur lequel se cristallisent les avantages des différentes solutions que vous pouvez envisager. En souscrivant à l'offre Borneo, vous acquérez naturellement le framework lui-même, sa documentation, ses outils (non décrits dans cet article), un accès au support technique de Sysdeo et un droit de mise en production exempt de toutes royalties  supplémentaires. Mais vous acquérez aussi le code source du framework et donc un contrôle complet sur ce dernier et une indépendance potentielle totale vis-à-vis de Sysdeo.

Conclusion

La conception, le développement, le déploiement et le suivi en exploitation d'applications Internet ou intranet sont des activités à forte teneur technique dans lesquelles Sysdeo a cumulé une grande expertise.

Capitaliser cette expertise et, de façon sous-jacente, mettre en place une stratégie de mémoire d'entreprise et de retour d'expérience technique sont des priorités vitales pour Sysdeo. Exploiter et réutiliser ce pool d'expertise est une gageure pour ses équipes techniques.

Pour atteindre ce double objectif, Sysdeo a lancé depuis 1999 le développement d'un framework technique Java pour les applications déployées sur serveurs d'applications.

Construit autour d'une architecture logicielle éprouvée, quintessence de plusieurs années de pratique de la conception objet, le framework permet aux équipes de développement Sysdeo de remplir leurs engagements de réactivité et de qualité tout en garantissant flexibilité et évolutivité de leurs applications.

La couche présentation du framework Sysdeo s'appuie sur Struts. La couche données apporte une couche de services de données pouvant s'appuyer si nécessaire sur des outils spécialisés, tels que Toplink par exemple, pour le mapping objet-relationnel. La couche technique transverse exploite les couches techniques et les API J2EE qui en garantissent la portabilité et la pérennité.

Forte de son expérience des frameworks, propriétaires ou open source, Sysdeo propose les indispensables services de réalisation, de conseil et de formation qui leurs sont associés.

Pour plus d'informations, contactez-nous à .

   

 

Téléchargez cet article (format PDF)

Le livre blanc Framework J2EE (2.7Mo)

Nouveau : annonce de la version 4.0 de Borneo

Struts, vous avez dit Struts?

Outils Borneo : Accélérez vos développements

 
service services nouvelles technologies méthodologie processus de développement portail conseil architecture architecte administration framework frameworks objet design pattern design patterns patron de conception modèle de conception composants composants réutilisables réutilisation plateforme J2EE plate-forme J2EE serveurs d'applications mise en oeuvre mise-en-oeuvre maîtrise d'oeuvre maitrise d'oeuvre maîtrise d'ouvrage maitrise d'ouvrage gestion de projets gestion de projet J2EE connecteurs connecteur connecteurs CICS connecteur CICS CICS connectors applications web évaluer audit auditer normes outil outils adapter adaptation intégrer intégration intégration de l'existant migrer migration java j2ee Java2 Entreprise Edition Java 2 Entreprise Edition web mvc mvc2 mvcII JMS Java Messaging Service Java Message Service JCA Java Connector Architecture EAI Entreprise Application Integration UML EJB Entreprise JavaBeans Entreprise Java Beans Entreprise JavaBean Entreprise Java Bean JSP taglibs taglib servlet servlets Apache Tomcat Jakarta Struts Struts eclipse eclipse2 websphere wsad wsad4 wsad4.0 wsad5.0 websphere studio application developper wsed wsed5.0 websphere studio entreprise developper wssd websphere studio site developper websphere studio site developper advanced wsad-ie wsadie websphere studio application developer integration edition websphere studio was was5 was5.0 was4 was4.0 was3.5