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) 1997-2023 Les Arts. Tous droits réservés.