| Technologie
        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. 
        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. 
        
                    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 complexesL'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é... |