
JADE est un produit propriétaire de plate-forme de développement et de déploiement de logiciels orienté objet de la société néo-zélandaise Jade Software Corporation , publié pour la première fois en 1996. Il se compose du langage de programmation JADE, d'un environnement de développement intégré et d'un débogueur , d'un serveur d'applications intégré et d'un système de gestion de base de données d'objets .
Conçu comme un environnement de développement de bout en bout pour permettre aux systèmes d'être codés dans un seul langage depuis le serveur de base de données jusqu'aux clients , il fournit également des API pour d'autres langages, notamment .NET Framework , Java , C / C++ et les services Web .
Bien qu'une licence limitée gratuite soit disponible pour le développement, l'utilisation de la plateforme JADE nécessite le paiement de frais par processus.
Langue
En termes de syntaxe, JADE est très similaire à Pascal ; sa syntaxe est basée sur le langage Modula-2 , qui est dérivé de Pascal. Bien qu'il intègre des innovations qui manquent à Pascal ou Modula-2, il lui manque certaines fonctionnalités d'autres langages orientés objet modernes tels que C# et Java.
JADE est capable d'importer et d'exécuter des programmes LINC 4GL et c'était initialement son rôle principal.
Modèle de programmation
Comme tous les autres langages de programmation populaires utilisés pour créer des logiciels basés sur des bases de données, JADE est entièrement orienté objet . JADE a été conçu pour avoir toutes les fonctionnalités les plus importantes de la programmation orientée objet, mais ne prend pas en charge la surcharge de méthodes ou d'opérateurs, et jusqu'à Jade 2018, il manquait de constructeurs paramétrés.
Les classes dans JADE sont regroupées dans des schémas . Les schémas remplissent le même rôle que les packages Java ou les espaces de noms dans .NET, mais ont une hiérarchie et héritent des classes des superschémas. Cela devient particulièrement utile lors de la programmation à l'aide de la méthodologie modèle-vue-contrôleur , car les classes de modèle peuvent être placées dans un schéma, puis les classes de contrôleur et de vue peuvent être construites sur les classes de modèle dans un sous-schéma.
Structure du programme
Les programmes JADE sont développés à l'aide d'une interface utilisateur qui permet aux programmeurs de créer visuellement des classes et de définir leurs propriétés et méthodes. Au lieu de localiser les méthodes dans de gros fichiers, les programmeurs sélectionnent la méthode qu'ils souhaitent modifier et seul le code de cette méthode particulière est affiché. De plus, au lieu de compiler tout le code d'un programme en une seule fois, dans JADE, chaque méthode est compilée individuellement dès qu'elle est terminée, ce qui signifie que le code peut être vérifié immédiatement.
L'ensemble du code d'une application JADE est stocké dans sa base de données orientée objet. Cela permet un développement multi-utilisateur car la base de données maintient le contrôle de la concurrence et chaque partie du code étant un objet distinct dans la base de données, il est souvent possible de recoder un système alors qu'il est en ligne tant que les parties du système modifiées ne sont pas utilisées.
Caractéristiques
L'objectif principal de JADE était de créer un langage de programmation parfaitement intégré qui permettrait aux développeurs de créer une application qui irait de bout en bout au lieu de devoir écrire trois applications distinctes pour le serveur de base de données , le serveur d'applications et le client de présentation , puis d'écrire le code pour qu'ils communiquent entre eux.
Base de données d'objets
La différence la plus frappante entre JADE et d’autres langages de programmation orientés objet est que sa base de données d’objets fait partie intégrante de son langage. Par exemple, lors de la création d’un objet dans JADE, il peut être créé comme transitoire ou persistant. La création d’un objet transitoire est similaire à la création d’objets dans d’autres langages de programmation orientés objet : l’objet est simplement créé en mémoire, puis perdu lorsque le programme se termine. En revanche, lorsqu’un objet est créé comme persistant , lorsque le programme se termine, l’objet existera toujours et sera présent au prochain démarrage du programme. Ainsi, lorsqu’un objet est persistant , JADE fonctionne automatiquement en arrière-plan pour stocker et récupérer l’objet dans la base de données lorsque cela est nécessaire. Les objets persistants peuvent être distribués sur plusieurs serveurs coopérants, JADE gérant automatiquement la mise en cache des objets et la cohérence du cache.
Il y a très peu de différences entre la manipulation d'objets transitoires et persistants, c'est pourquoi JADE donne l'impression au programmeur que tous les objets de la base de données entière se trouvent dans la mémoire locale. La plupart du temps, la base de données orientée objet de JADE est utilisée dans un système multi-utilisateur, et JADE donne donc l'impression au programmeur que tous les objets de la base de données sont stockés dans une mémoire partagée à laquelle tous les utilisateurs connectés au système peuvent accéder, même à partir d'ordinateurs différents.
Avec tout le code du programme centralisé sur le serveur de base de données ainsi que les données, tous les nœuds clients peuvent être programmés comme s'ils s'exécutaient sur le serveur de base de données.
La base de données de JADE est intrinsèquement orientée objet et compatible ACID , et dispose de toutes les fonctionnalités standard telles que les transactions atomiques, le verrouillage, la restauration, la récupération après incident et la possibilité de maintenir un ou plusieurs serveurs de base de données secondaires synchronisés avec la base de données principale pour des raisons de sauvegarde, de reprise après sinistre et de performances.
Pour interagir avec les bases de données relationnelles à des fins de reporting, de business intelligence et d'entreposage de données, JADE propose depuis 2010 un « service de population relationnelle » qui permet de répliquer automatiquement les objets de sa base de données orientée objet native vers une ou plusieurs bases de données relationnelles . Cette fonctionnalité prend en charge les versions Microsoft SQL Server 2000, 2005 et 2008.
Modèle à trois niveaux
Les logiciels basés sur des bases de données utilisent souvent une méthodologie à trois niveaux , les applications étant divisées en trois niveaux : stockage, traitement et présentation des données. Dans les niveaux de stockage et de traitement des données, les systèmes JADE sont un ensemble de serveurs coopérants, appelés nœuds , et plusieurs nœuds peuvent être impliqués dans chaque niveau. Chaque type de nœud a un nom différent et tous sont capables de manipuler des objets et d'exécuter la logique métier. Un ensemble de nœuds peut être déployé sur une ou plusieurs machines. Les serveurs de base de données gèrent le stockage des données et peuvent également exécuter la logique métier, tandis que les serveurs d'applications gèrent le traitement. Dans un modèle à trois niveaux, les clients de présentation fournissent l'interface utilisateur. JADE fournit également un client à deux niveaux qui combine les capacités d'un serveur d'application et d'un client de présentation. Traditionnellement, ces trois niveaux seraient créés en combinant trois programmes et en les faisant communiquer pour former un seul système. Le fait de séparer les différents programmes de cette manière présente de nombreux avantages, le principal étant que le système devient évolutif, c'est-à-dire qu'augmenter la puissance du système implique simplement l'ajout de nœuds supplémentaires.
Concevoir un système comme celui-ci donne au programmeur une décision à prendre en compte chaque fois qu'il souhaite coder une fonction particulière. Il doit décider si la fonction s'exécutera de manière optimale sur le serveur de base de données, le serveur d'applications ou le client de présentation avant de commencer à coder, car il sera difficile de changer cette décision une fois la fonctionnalité codée dans l'un des niveaux.
Les applications JADE sont différentes, car elles sont codées comme une seule application de bout en bout. Lors de la création d’une application JADE, le programmeur peut penser qu’il crée un programme qui s’exécutera sur le serveur de base de données, comme si tout le stockage, le traitement et la présentation des données se déroulaient sur un seul ordinateur. Lorsque le programme s’exécute sur trois niveaux, JADE sait automatiquement qu’il doit exécuter tout le code par défaut sur le serveur d’applications, et envoyer les requêtes de base de données au serveur de base de données et les informations d’interface utilisateur au client de présentation. Cependant, il est très facile pour le programmeur de changer l’emplacement d’exécution d’une méthode particulière et de la déplacer vers un autre niveau en modifiant la signature de la méthode. De ce fait, la décision sur l’emplacement d’exécution d’un morceau de code particulier peut être prise tard dans le cycle de développement, et la refactorisation du code pour qu’il s’exécute sur différentes parties du système finit par être beaucoup plus facile en raison de la manière dont JADE permet le développement de logiciels de bout en bout.
Types de clients
Les programmeurs ont la possibilité d'autoriser trois types de clients différents à se connecter à un système JADE. Ces trois types de clients sont nommés :
- Formulaires JADE
- Documents HTML
- Services Web
Dans le même schéma, un développeur JADE peut créer de nombreuses applications complètement distinctes qui peuvent fournir des interfaces différentes pour accéder à la même base de données.
Formulaires JADE
Les applications JADE Forms sont constituées de formulaires, comme leur nom l'indique. Les clients doivent se connecter via le client léger JADE Smart ou le client standard pour pouvoir exécuter des applications qui utilisent JADE Forms.
Le client léger intelligent fonctionne en se connectant à un serveur d'applications qui effectue généralement tout le traitement pour le compte du client léger intelligent, ce qui signifie que le client léger n'a besoin que d'afficher les formulaires et de saisir les données. Cela signifie que l'ordinateur exécutant le client léger n'a pas besoin d'être très puissant et qu'il ne nécessite pas de connexion réseau rapide car il ne charge pas de données à partir de la base de données. Les clients légers JADE sont souvent exécutés via une connexion par ligne commutée. C'est la raison pour laquelle on les appelle clients légers, car ils n'ont pas besoin d'une puissance de calcul importante pour fonctionner.
Le client standard est simplement le client léger intelligent combiné au serveur d'applications sur une seule machine. Dans ce cas, le nœud exécutant le client effectue l'ensemble du traitement ainsi que la présentation. Les clients standard ont des exigences plus élevées en termes de puissance de calcul que les clients légers, car ils doivent charger les données de la base de données et effectuer leur propre traitement.
Les avantages de l'utilisation de JADE Forms incluent :
- Parmi les trois types de clients, JADE Forms offre le temps de développement le plus court des applications JADE.
- Permet aux développeurs d'utiliser la même technologie de bout en bout.
- Les clients légers intelligents peuvent être packagés de manière à pouvoir être installés et exécutés sur les ordinateurs clients en quelques clics.
Les inconvénients sont :
- Impossible d'atteindre un public mondial comme c'est possible sur le World Wide Web.
Les formulaires JADE ont cependant une particularité intéressante. Il est en fait possible d'exécuter une application JADE Forms via un navigateur Web en changeant son mode en mode Web . Lorsque cela se produit, JADE génère automatiquement du code HTML pour créer des pages qui ressemblent aux formulaires et aux contrôles , sans aucune modification du code. Il s'agit d'un moyen très rapide pour les programmeurs qui ne maîtrisent pas le HTML et d'autres technologies Web de diffuser un programme via le Web.
Documents HTML
JADE prend en charge le déploiement d'applications sur le Web grâce à sa fonctionnalité de documents HTML. Ces derniers fonctionnent de manière très similaire à ASP.NET, où les développeurs créent des modèles de pages HTML et laissent des parties du modèle pour que le programme les remplisse.
Les avantages de l’utilisation de documents HTML sont les suivants :
- Permet à l'application d'atteindre un public mondial.
Les inconvénients sont :
- Lorsque les applications JADE utilisent des documents HTML, elles n'utilisent plus la même technologie de bout en bout. La vérification en amont du système peut être effectuée via JavaScript par exemple.
- Décharger une partie du traitement vers les clients frontaux n’est plus aussi simple ni aussi sûr.
Services Web
Les services Web permettent à différents programmes de communiquer entre eux à partir d'emplacements distants sous une forme orientée objet. Les services Web ne sont pas accessibles directement par les utilisateurs humains. L'une des utilisations des services Web avec JADE est de permettre à d'autres technologies telles que .NET ou Java d'utiliser JADE comme base de données orientée objet back-end. Les services Web permettent également aux systèmes JADE d'interagir avec les services fournis par d'autres systèmes non JADE.
Interopérabilité
En plus des services Web, JADE est également capable d'interagir avec d'autres programmes via des API de langage (notamment .NET, Java, C/C++), des appels DLL, des objets ActiveX/COM et des assemblages .NET. Cela permet à d'autres programmes d'accéder aux objets et d'exécuter des méthodes, et peut être utilisé pour fournir une interface différente à une application JADE. JADE 6.2 fournit une API Java, l'intégration d'assemblage .NET et la possibilité d'exécuter des clients légers intelligents sur des appareils Windows Mobile. JADE 6.3 fournit une API pour les langages .NET.
Compétences multilingues
JADE prend en charge nativement les programmes multilingues . Il le fait de plusieurs manières :
- Les chaînes peuvent être marquées comme traduisibles , ce qui signifie qu'elles seront modifiées en fonction de la langue actuelle.
- Plusieurs versions d'un même formulaire peuvent être créées pour s'adapter à chaque langue. Cela signifie que les interfaces peuvent être complètement différentes d'une langue à l'autre.
- Le développeur dispose de méthodes lui permettant d'accéder aux paramètres régionaux actuels du système et ainsi d'implémenter ses propres fonctionnalités dépendantes de la langue.
JADE passera automatiquement à la langue détectée sur le système si la langue est fournie par le développeur.
Portabilité
Actuellement, les applications JADE ne peuvent être exécutées que sous Windows. La prise en charge de Linux a été abandonnée. JADE 6.2 permet aux clients légers intelligents et à un client standard spécialisé de fonctionner sur les appareils Windows Mobile.
Exemples de code
Dans cette section vous trouverez quelques courts exemples de code JADE.
Bonjour le monde!
Voici le code « Hello World ! » dans JADE :
Bonjour le monde(); commencer l'application .msgBox( "Bonjour le monde !" , "Bonjour le monde !" , MsgBox_OK_Only + MsgBox_Information_Icon ); terminer ;
ou
Bonjour le monde(); commencer écrire "Bonjour le monde !" ; finir ;
Histoire
JADE a été conçu à l'origine par Sir Gilbert Simpson et est actuellement développé par la Jade Software Corporation.
La première version de JADE était JADE 3, sortie en septembre 1996.
La version actuelle est JADE 2022, remplaçant JADE 2020