Une meilleure technologie

En évaluant la technologie d'un logiciel il y a certaines questions de bon sens qu'il vaut mieux se poser; voici, à notre avis, quelques éléments de réponse.


Est-il vraiment important que la technologie soit bonne?
Après tout, si cela fonctionne, qui s'en inquiète ?
Réponse : la qualité de votre logiciel peut affecter vos résultats dans trois secteurs : technologie, production et opportunité.

Technologie

    Trop compliqué
Une technologie trop compliquée ajoute de la confusion, des délais, des erreurs et coûte cher. C'est vrai des approches adoptées par Java/J2EE de Sun et C#/.net de Microsoft. La production d'écrans à l'aide de langage comme JSP ou ASP prend du temps et limite leur organisation. Encapsuler les fonctionnalités dans des Java Beans ou utiliser EJB pour avoir des fonctionnalités distantes créent de grandes quantités d'un code sans valeur ajoutée qui doit être maintenu. Ces approches, qui peuvent (à peine) se justifier dans de grandes entreprises, sont contre-productives dans le cadre de PME. Le niveau des programmeurs Java nécessaires pour établir de tels ensembles est très élevé, ce qui les mets hors de portée de beaucoup de sociétés.
    Trop simple
De même, une technologie trop simple retarde l'accomplissement et créé des surcoûts en forçant les programmeurs à utiliser des environnements peu familiers quand leur plate-forme ne peut s'adapter à la tâche demandée. Microsoft Access et Visual Basic en sont de bons exemples.
    Juste ce qu'il faut

La puissance d'Apache OFBiz vient de l'utilisation de plusieurs dispositifs importants de la norme J2EE, sans donner dans l'excès. C'est un framework très ouvert. Si nécessaire, son architecture permet aux développeurs d' utiliser confortablement des environnements plus puissants sans perturber l'architecture.

Certains des dispositifs qui rendent OFBiz si productif sont:

  • L'Architecture Orientée Services (SOA en anglais) est une approche modulaire permettant de réutiliser le logiciel. Elle englobe l'approche orientée objet apparue il y a une décennie. OFBiz permet à ses services d'être appelés depuis l'extérieur, par le Web (le seul concept que la plupart des personnes retiennent de SOA, on parle aussi de services Web) ou dans OFBiz même depuis n'importe quel endroit du programme. En plus du gestionnaire standard de services Java, OFBiz a des gestionnaires spécialisés pour SOAP, la gestion de flux ou encore d'autres langages. Il doit néanmoins être étendu à l'aide d'AXIS2 ou CXF dans les cas complexes
  • L'Architecture Orientée Evènement (EDA en anglais) Les services d'OFBiz peuvent être déclenchés en fonction d'évènements liés à d'autres services et même sur la valeur de données (entités dans OFBiz). Ceci confère une grande partie des avantages normalement dévolus aux procédures stockées et déclencheurs des bases de données mais sans dégrader la portabilité.
  • Le moteur d'entité (Entity Engine), alors que presque toutes les bases de données emploient le langage de programmation de SQL, les différences entre leurs différents "dialectes" rendent toujours nécessaire un codage spécifique des applications en fonction de la base de données utilisées en production. Ceci s'ajoute au coût du développement et limite les options. Le moteur d'entité d'OFBiz (largement reconnu par la communauté internationale comme un excellent outil, voire notament son utilisation avec succès dans le logiciel Jira de la société Atlassian) masque les nuances des diverses bases de données, rendant possible une écriture unique quelle que soit la base de données utilisées. Parmi celles implémtentées dans OFBIz PostGres, MySQL, Max DB (anciennement SAP DB), Oracle, Sybase, MS SQL Server, Advantage, etc.. Ceci permet au développeur d'employer de simples de fichiers XML pour s'interfacer avec les bases de données.
  • Screen widgets (éléments visuels), à l'origine OFBiz utilisait JSP (Java Server Pages) pour le développement d'interface utilisateur (la volonté d'OFBiz a toujours été d'utiliser les standards, normes et logiciels existants là où cela a du sens). Mais sa technologie actuelle, dites "screen widgets", a dépassé de deux générations JSP. Les éléments visuels utilisent des fichiers de configuration XML pour définir les écrans qui peuvent être utilisés sur le web, en mode application standard (Linux, Windows) ou pour produire des rapports (fichiers PDF), des code-barres, etc.. Cela n'interdit pas d'utiliser HTML directement si nécessaire grâce à Freemarker.
  • Scripting, OFBiz à identifié le fait que de devoir coder des "action scripts" au sein de classes Java (ce qui est nécessaire si vous voulez donner un semblant d'ordre et de structure à JSP) empêche la séparation entre la gestion de l'affichage et les règles de gestion. OFBiz offre nombre de possibilités pour écrire des "action scripts" de façon plus efficace. Des classes Java peuvent être appelées par des "action scripts" intégrés au code Java ou non, par l'intermédiaire de services ou encore à l'aide de l'interpréteur Groovy. OFBiz offre également un environnement de script à base de XML (appelé mini-langage) qui recourt à la puissance du moteur d'entité pour effectuer beaucoup du travail lié aux données avec peu de code et sans nécessité de compilation, ni de redémarrage du serveur. Ajoutez un éditeur XML à complétion de code et vous avez un environnement de programmation pour professionnels ne connaissant pas Java.
  • Le code d'OFBiz vaudrait déjà son pesant d'or (plus de 20 millions de dollars suivant Ohloh
    à ce jour, 2 mars 2012) s'il n'était rien d'autre qu'un environnement de développement. Le fait qu'il soit disponible sous forme d'un PGI comprenant des modules comme le commerce électronique, la gestion commerciale avec articles, acteur (fournisseurs et clients), commandes (achat vente), la gestion de point de vente (caisse enregistreuse) et le contrôle en temps réel du stock - tous codés conformément aux normes de codage de Java - ajoute immensément à sa valeur. En décidant des schémas de base de données pour ces modules, les architectes d'OFBiz n'ont pas réinventé la roue. Au lieu de cela ils ont fortement tiré partie d'un ouvrage du "gourou" des base de données, Len Silverston : Data Model Resource Book. Avoir 60 à 80% de l'application déjà pensée est une bonne manière d'augmenter la productivité ! Le schéma initial de la base de données utilisé, qui a été augmenté et adapté depuis au contexte d'OFBiz, représente à lui seul certainement un nombre important d'années/homme d'expérience !

Production

Comme c'est un logiciel libre, OFBiz contribue à la productivité dans le déploiement (lors de l'hébergement par exemple) en évitant le besoin de spécialités coûteuses telles que les serveurs d'application (par exemple Weblogic ou Webshere) ou les bases de données. Ainsi Apache Tomcat, configuré et utilisé de manière interne et transparente, contribue fortement à la valeur ajouté d'OFBiz, sans parler de la facilté de maintenance.

OFBiz élimine le besoin de ressources supplémentaires en base de données en mettant en application un système de cache sophistiqué qui maintient les données généralement utilisées en mémoire. Ce système de cache peut être employé dans un mode distribué, permettant à une seule base de données de servir plusieurs clients dans les meilleures conditions et garantissant la cohérence dans un environnement clusterisé (en se basant sur Apache ActiveMQ)

Si nécessaire vous pouvez facilement étendre OFBiz en amont en utilisant Apache HTTPD (le serveur web le plus utilisé dans le monde) avec les module mod_proxy_ajp et mod_rewrite par exemple. Vous pouvez étendre les services web d'OFBiz en aval à l'aide d'Apache Axis2 ou d'Apache CXF. Et si vraiment vous avez besoin d'intégrer OFBiz au sein de votre architecture d'application vous pouvez vous tournez vers Apache ServiceMix, l'ESB de la fondation Apache, voire Apache Camel.

Opportunité

Les coûts liés à l'opportunité sont ceux qui surviennent après le déploiement initial, quand vous voulez réagir à différents débouchés. Si vous pensez votre logiciel d'entreprise comme quelque chose de statique, alors vous n'en n'exigez certainement pas assez. Quand vous voulez améliorer/augmenter votre logiciel pour prendre pied dans un nouveau secteur, le fait que votre application soit basée sur une plateforme de développement, pas simplement codée de manière à accomplir un résultat, vous donne un grand avantage. Des améliorations peuvent être aisément faites, et la communauté large et active qui soutient OFBiz vous garantit une forte probabilité pour que ce dont vous avez besoin ait déjà été envisagé. De plus la garantie de pérenité est grande, une telle communauté ne disparaît pas du jour au lendemain. La preuve: OFBiz existe déjà depuis plus d'une décennie et continue de croitre avec sa communauté...

Copyright (c) 2000-2025 Les Arts. Tous droits réservés.
Prévu pour 1024x768, en police de taille moyenne. Compatible IE et Mozilla (Firefox, Netscape, ...)