WebObjects est un serveur web d’application Java et un cadre d’application web basé sur un serveur, développé à l’origine par NeXT Software, Inc. Depuis 2009, le logiciel est maintenu de manière indépendante par des bénévoles.
WebObjects se distingue par son orientation objet, sa connectivité aux bases de données et ses outils de prototypage. Les applications créées avec WebObjects peuvent être déployées sous forme de sites web, d’applications de bureau et/ou de services web basés sur des normes.
Le runtime de déploiement est purement Java, ce qui permet aux développeurs de déployer des applications WebObjects sur des plates-formes compatibles Java. Vous pouvez utiliser WebObjects Java SE comme serveur d’application (inclus) ou déployer des serveurs d’application Java EE tiers tels que JBoss, Apache Tomcat, WebLogic Server ou IBM WebSphere.
Histoire
WebObjects a été créé par NeXT Software, Inc. et a été présenté pour la première fois au public lors de la conférence Object World en 1995, avant d’être mis à la disposition du public en mars 1996. Les avantages en termes de temps et de coûts du développement rapide orienté objet ont attiré de grandes entreprises vers WebObjects dans les premiers temps du commerce électronique, avec des clients tels que BBC News, Dell Computer, Disney, DreamWorks SKG, Fannie Mae, GE Capital, Merrill Lynch et Motorola. Toutefois, après la fusion de NeXT avec Apple Inc. en 1997, le profil public de WebObjects s’est étiolé. De nombreux utilisateurs de la première heure sont ensuite passés à d’autres technologies, et aujourd’hui, Apple reste le plus gros client du logiciel, sur lequel s’appuient certaines parties de l’Apple Store et de l’iTunes Store, l’implémentation de plus haut niveau de WebObjects.
WebObjects faisait partie de la stratégie d’Apple consistant à utiliser des logiciels pour stimuler les ventes de matériel, et en 2000, son prix a été ramené de 50 000 dollars (licence d’implémentation complète) à 699 dollars. À partir de mai 2001, WebObjects a été intégré à Mac OS X Server et n’a plus nécessité de clé de licence pour le développement ou le déploiement.
WebObjects est passé du statut de produit autonome à celui de partie intégrante de Mac OS X avec la sortie de la version 5.3 en juin 2005. Les outils et cadres de développement, qui étaient auparavant vendus au prix de 699 USD, ont été inclus dans l’IDE Xcode d’Apple. La prise en charge de Windows a été abandonnée par la suite. Apple a déclaré qu’elle continuerait à intégrer les outils de développement WebObjects à Xcode dans les prochaines versions. Cela incluait un nouveau plugin EOModeler pour Xcode. Cette stratégie n’a toutefois pas été poursuivie.
En 2006, Apple a annoncé que le pont Cocoa-Java dans MacOS X serait abandonné avec la sortie de Xcode 2.4 lors de la Worldwide Developers Conference en août 2006, ainsi que toutes les fonctionnalités qui en dépendent, y compris la suite complète d’applications de développement WebObjects : EOModeler, EOModeler Plugin, WebObjects Builder, WebServices Assistant, RuleEditor et WOALauncher. Apple avait décidé de concentrer ses ressources d’ingénierie sur le moteur d’exécution WebObjects, laissant la responsabilité du développement des applications à la communauté open source. La principale alternative open source : l’IDE Eclipse avec la suite de modules complémentaires WOLips, avait atteint une telle maturité que ses capacités avaient, dans de nombreux domaines, dépassé celles des outils d’Apple, qui n’avaient pas connu de mises à jour significatives depuis plusieurs années.
Apple a promis de soutenir la communauté dans ses efforts pour étendre ces outils et en développer de nouveaux. Dans un message publié sur la liste de diffusion webobjects-dev, Daryl Lee, de l’équipe WebObjects d’Apple, a révélé publiquement la nouvelle stratégie de l’entreprise pour WebObjects. Il a promis de « faire de WebObjects le meilleur environnement d’exécution côté serveur » :
WebObjects 5.4, livré avec Mac OS X Leopard en octobre 2007, a supprimé l’obligation de disposer d’une clé de licence pour développer et déployer des applications WebObjects sur toutes les plateformes. Toutes les méthodes de vérification des limitations de licence sont devenues obsolètes.
En 2009, Apple a cessé de publier de nouvelles versions de WebObjects en dehors d’Apple. La communauté a décidé de poursuivre le développement avec Project Wonder, un framework open source construit au-dessus des frameworks WebObjects de base et de l’étendre. Par exemple, Project Wonder a mis à jour les outils de développement et fournit un cadre REST qui ne faisait pas partie du paquetage original de WebObjects.
Bien qu’il ait été inclus dans l’installation par défaut de Mac OS X Server, WebObjects n’a plus été installé par défaut à partir de Mac OS X Snow Leopard Server et, peu après, Apple a cessé de promouvoir ou de vendre WebObjects. Depuis 2016, WebObjects est activement soutenu par sa communauté de développeurs, l’association WOCommunity, en étendant les cadres de base et en fournissant des correctifs avec le projet Wonder. La dernière conférence mondiale des développeurs de WebObjects, WOWODC, a eu lieu en 2013.
En mai 2016, Apple a confirmé l’abandon de WebObjects.
Outils
En 2016, la plupart des architectes et ingénieurs WebObjects utilisent les outils développés par la communauté WebObjects. Ces outils s’exécutent dans l’IDE Eclipse et sont open source. Les plug-ins WebObjects pour Eclipse sont connus sous le nom de WOLips.
La création de cadres et d’applications WebObjects en vue de leur déploiement est généralement réalisée à l’aide de la boîte à outils WOProject pour Apache Ant ou Apache Maven, qui sont distribués avec WOLips.
Cadres de base
Une application WebObjects est essentiellement un exécutable côté serveur, créé en combinant des objets de cadre d’application préconçus avec le code personnalisé du développeur. Les frameworks WebObjects peuvent être divisés en trois parties principales :
Développement rapide d’applications basées sur des règles (RBRAD)
WebObjects présente un ensemble de technologies de développement rapide qui permettent de créer automatiquement une application web sans avoir à écrire de code Java. À partir d’un fichier modèle pour une base de données, WebObjects crée une interface qui prend en charge neuf tâches courantes liées aux bases de données, notamment l’interrogation, l’édition et l’établissement de listes. Ces applications sont utiles pour le prototypage ou la création d’une base de données, par exemple pour vérifier les relations ou pour alimenter la base de données en données.
L’interface utilisateur est générée dynamiquement, à la volée, au moment de l’exécution, à l’aide d’un système basé sur des règles ; aucun code n’est généré. Il est donc possible de modifier la configuration d’une application au moment de l’exécution (à l’aide d’un assistant) sans recompiler ou relancer l’application.
Les développeurs peuvent utiliser trois technologies différentes, en fonction du type d’interface qu’ils souhaitent utiliser :
Compatibilité Java
WebObjects est un produit 100% Java avec les fonctionnalités suivantes basées sur Java :
Historique des versions
WebObjects a été publié à l’origine par NeXT Computer en mars 1996, mais a été racheté par Apple Inc. lors de l’acquisition de NeXT en décembre de la même année.
WOWODC
Depuis 2007, la communauté organise une conférence annuelle pour les développeurs WebObjects, la WOWODC. En 2007 et 2008, la conférence s’est tenue le week-end précédant la WWDC. En 2009, la communauté a organisé deux conférences : WOWODC West à San Francisco les 6 et 7 juin, juste avant la WWDC, et WOWODC East à Montréal les 29 et 30 août. WOWODC 2010 a eu lieu à Montréal les 27, 28 et 29 août 2010. La conférence WOWODC 2011 s’est tenue à Montréal les 1er, 2 et 3 juillet 2011. WOWODC 2012 s’est tenu à Montréal les 30 juin, 1er et 2 juillet 2012. WOWODC 2013 s’est tenu à Montréal. WOWODC 2014 s’est tenu à Montréal (12, 13 et 14 avril). WOWODC 2015 s’est tenu à Hambourg les 25, 26 et 27 avril. WOWODC 2016 s’est tenu à Montréal les 24, 25 et 26 juin.
Alternatives open-source
L’intérêt pour les alternatives open-source à WebObjects utilisant le langage Objective-C s’est accru avec le passage de WebObjects d’Objective-C (dernière version WO 4.5.1) à Java (première version WO 5.0). Les deux frameworks disponibles sont SOPE, qui sert de base au serveur de logiciels collaboratifs OpenGroupware.org depuis environ huit ans, et GNUstepWeb, qui fait partie du projet GNUstep. Des réécritures libres des cadres EOF (AJRDatabase, AJRDatabase, GDL2) sont également disponibles.
Il existe également des alternatives basées sur Java :
Une tentative de réaliser une version Swift basée sur SOPE / GETobjects est disponible sous le nom de SwiftObjects. L’implémentation pour Swift 4 est limitée en raison des capacités de réflexion de cette version de Swift.