Modèle d'application (Avalanche - cadre d'application pour Java)

Modèle d'application (Avalanche - cadre d'application pour Java)


«Avalanche - framework d'application pour Java» - implémentation de la technologie de flou des différences
entre les appels vers le code local et distant. Tolérance aux pannes, évolutivité,
la modifiabilité, la disponibilité continue sont livrées avec de beaux bonus.

Le modèle d'application considéré dans cet article est né sur la base de notre propre expérience dans la mise en œuvre et l'exploitation de diverses interactions d'intégration de systèmes d'information (SI) et visait principalement à réduire l'utilisation de diverses ressources (financières, de travail, de temps, etc.) dans la mise en œuvre de ces solutions d'intégration.

La plupart des entreprises exploitent de nombreux systèmes différents qui automatisent des processus individuels ou le travail d'unités ou de services structurels individuels. En conséquence, il est nécessaire d'organiser l'échange d'informations entre ces systèmes ou avec les systèmes d'information des organisations liées afin de réduire les coûts d'exploitation, d'éliminer l'introduction de données en double et l'incohérence des données dans divers systèmes (par exemple NSI), de réduire l'impact du facteur humain et de réduire le temps consacré à l'échange d'informations.

Le besoin d'intégration se pose non seulement dans les logiciels spéciaux de développement propre ou personnalisé, mais aussi dans les solutions «en boîte». Le coût des ventes peut dépasser la réduction attendue des coûts d'exploitation.

Moyens existants pour aborder l'intégration des systèmes informatiques:

  • Partage de fichiers
  • Messagerie (un type de partage de fichiers)
  • Intégration au niveau du modèle de données, par exemple, création d'objets de base de données spéciaux ou de procédures stockées
  • Utilisation des technologies RCP (procédure d'appel à distance), par exemple CORBA, RMI, SOAP, DCOM, etc.

Toutes ces méthodes de mise en œuvre de solutions d'intégration présentent les mêmes inconvénients: la complexité de mise en œuvre et de modification, la faible répétabilité, la nécessité de résoudre les problèmes de tolérance aux pannes, l'impossibilité de travailler en mode multi-version lors de l'installation des modifications, la complexité du fonctionnement et la mise à jour de la documentation opérationnelle.

À la suite de la recherche d'une alternative aux solutions existantes, l'idée a été formulée pour convertir le modèle MVC (MODEL - VIEW - CONTROLLER) en modèle MVFA (MODEL - VIEW - FUNCTION - APPLICATION), divisant CONTROLLER en deux couches de programme FUNCTION et APPLICATION entre lesquelles un réseau de transmission de données peut être placé (SPD )



La division en fonctions au sein du contrôleur est présente à un degré ou à un autre dans tous les systèmes informatiques modernes, en particulier si le développement est effectué à l'aide de langages de programmation orientés objet. Et la séparation de ces fonctions dans une couche logicielle distincte résout le problème de leur réutilisation par d'autres systèmes informatiques.

La séparation des objets «application» dans une couche de programme séparée standardise l'appel non seulement à ses propres fonctions, mais aussi aux fonctions d'autres systèmes, ce qui efface toutes les différences d'appels de fonctions «propres» et «étrangères».

Pour implémenter le modèle MVFA, le modèle logiciel suivant est proposé:

  1. Function (Function), tout objet qui a des méthodes pour implémenter une fonctionnalité;
  2. Un adaptateur, un objet déclaré qui n'a pas d'implémentation. Cet objet assure la connexion des objets "application" avec des fonctions locales ou distantes. Pour accéder aux fonctions distantes, l'objet «interface» est utilisé;
  3. Connector (Connector), donne accès aux fonctions locales des objets distants à l'aide des objets "publication";
  4. Publication (Publish), publie une fonction locale dans le connecteur;
  5. Interface (Interface), donne accès aux adaptateurs aux fonctions à distance;
  6. L'application (Application), effectue la conversion des données entre la présentation et la / les fonction (s), peut également agir comme une "fonction" pour d'autres objets de l '"application".



Une paire d '«interface» - «connecteur» forme un canal de données via un protocole entre différents systèmes ou différents nœuds du même système. Un canal implémenté doit avoir la capacité de transmettre les quantités de données requises.

Il existe des implémentations spécialisées d '«interfaces» qui n'ont pas d'éléments de «connecteur» appariés, par exemple, une interface à haute disponibilité qui vous permet de créer des systèmes d'information tolérants aux pannes. L'interface haute disponibilité a pour principal objectif de rediriger la charge vers des nœuds en double lors de la planification ou en dehors de l'arrêt planifié de l'un des nœuds du système.

Le modèle MVFA considéré est mis en œuvre dans Avalanche - cadre d'application pour le produit logiciel Java, qui appartient à la catégorie des logiciels intermédiaires et est conçu pour créer des grappes de logiciels ou des systèmes d'information à haute disponibilité tolérants aux pannes.

Bien sûr, comme toute technologie, Avalanche - cadre d'application pour Java a certaines limites:

  1. Tous les objets (types) déclarés dans les adaptateurs (paramètres d'entrée et de retour) peuvent être transmis sur le réseau, et ces objets doivent donc implémenter l'interface java.lang.Serializable . Les objets locaux sont appelés directement, sans utiliser d'opérations de lecture et d'écriture dans le flux.
  2. Tous les objets ne peuvent pas être transférés sur le réseau. Par exemple, des objets dont l'état ou les performances dépendent de la configuration du nœud système où ils ont été créés. Ces objets incluent des objets qui implémentent la spécification javax.sql.DataSource.
  3. Les nœuds système en double doivent être situés sur un matériel différent.
  4. Les nœuds système en double ne doivent pas être désactivés (réparés) en même temps.

Un exemple d'application simple est décrit dans l'article - Première application (Avalanche - framework d'application pour Java)

Source: https://habr.com/ru/post/fr477500/


All Articles