Aujourd’hui, avec le développement rapide du secteur de l’information, la concurrence entre les entreprises va devenir plus intense. Avec l'expansion continue de l'échelle et la mise à jour continue de leurs activités, les entreprises ont un besoin urgent de solutions distribuées complètes pour gérer des environnements hétérogènes complexes et réaliser une intégration complète entre différents périphériques matériels, systèmes logiciels, environnements réseau et systèmes de bases de données.
Tout au long de l'histoire du développement des ordinateurs humains, l'industrie de l'information connaîtra des changements cycliques tous les dix à quinze ans. De 1950 à 1970, les entreprises ont principalement adopté l'architecture mainframe-terminal, tandis que les systèmes d'applications d'entreprise ont adopté le système d'applications d'entreprise. , de manière centralisée. Au début des années 1980, les systèmes ouverts et les systèmes de gestion de bases de données relationnelles ont été largement adoptés par les entreprises. Contrairement aux systèmes centralisés, la logique des applications était dispersée entre les extrémités maître et esclave. Avec la popularité de Windows, les années 1990 ont été l’ère des applications graphiques et l’architecture Client/Serveur a également été largement adoptée. À la fin des années 1990, la technologie des objets distribués est apparue dans l'industrie de l'information. Les applications peuvent être distribuées sur différentes plates-formes système, et la communication mutuelle des objets entre plates-formes hétérogènes peut être réalisée grâce à la technologie distribuée. L'intégration des systèmes d'entreprise existants dans des systèmes distribués peut améliorer considérablement l'évolutivité des systèmes d'applications d'entreprise. L'émergence d'applications distribuées à plusieurs niveaux à la fin des années 1990 a ouvert la voie aux entreprises pour simplifier davantage le développement de systèmes d'applications.
Dans la structure Client/Serveur traditionnelle, la logique d'application est généralement distribuée entre le client et le serveur. Le client émet une demande d'accès aux ressources de données et le serveur renvoie les résultats au client. L'inconvénient de la structure Client/Serveur est que lorsque le nombre de clients augmente, les performances du serveur seront considérablement réduites car l'équilibrage de charge ne peut pas être effectué. Une fois que les exigences des applications changent, les applications client et serveur doivent être modifiées, ce qui entraîne de gros inconvénients pour la maintenance et les mises à niveau des applications, et la transmission de grandes quantités de données augmente également la charge sur le réseau. Afin de résoudre les problèmes client/serveur, les entreprises ne peuvent se transformer que vers des applications distribuées multicouches.
Dans une application distribuée à plusieurs niveaux, une ou plusieurs couches de programmes de services d'application peuvent être ajoutées entre le client et le serveur. Ce programme est appelé « serveur d'applications ». Les développeurs peuvent placer la logique métier des applications d'entreprise sur le serveur de niveau intermédiaire au lieu du client, isolant ainsi la logique métier de l'application de l'interface utilisateur et fournissant aux utilisateurs une application légère (mince) tout en garantissant la fonctionnalité du client. )interface. Cela signifie que si le code de l'application doit être modifié, cela peut être fait à un seul endroit (sur le serveur de niveau intermédiaire) plutôt que dans des milliers d'applications client. Cela permet aux développeurs de se concentrer sur l'analyse, la conception et le développement de la logique métier de base du système d'application, simplifie le développement, la mise à jour et la mise à niveau des systèmes d'entreprise et améliore considérablement l'évolutivité et la flexibilité des applications d'entreprise.
Lorsque les entreprises ont besoin d'établir des systèmes d'applications commerciales basées sur le Web, l'architecture distribuée multicouche offre également de puissants avantages, en fournissant une architecture « client léger » pour les applications commerciales basées sur le Web, permettant aux clients basés sur un navigateur de communiquer efficacement avec les ressources intranet. interaction sans nécessiter de travail complexe de configuration d’application côté client. Les solutions distribuées à plusieurs niveaux établissent des ponts entre des plates-formes hétérogènes et permettent aux applications métier basées sur le Web d'être intégrées aux systèmes d'entreprise existants.
À l'heure actuelle, un grand nombre d'entreprises dans notre pays adoptent encore l'architecture client/serveur, tandis que dans les pays développés occidentaux, la transformation des entreprises des systèmes d'applications traditionnels vers des systèmes d'applications distribués multicouches est devenue la tendance dominante de l'industrie. On pense que les systèmes distribués multicouches seront plus largement utilisés dans notre pays.
Défis posés par les applications distribuées multi-niveaux
Bien que l'architecture distribuée multicouche offre de grands avantages aux entreprises, il est plus difficile de développer des applications distribuées multicouches que l'approche client/serveur traditionnelle, ce qui pose de nouveaux défis techniques aux développeurs. Il comprend principalement les trois aspects suivants :
1. Diversification des normes d'objets distribués
Si les entreprises souhaitent créer des systèmes distribués multicouches, elles doivent suivre les normes industrielles distribuées. Les normes sur lesquelles reposent affectent directement l’ouverture et l’évolutivité des systèmes d’applications d’entreprise. Il existe actuellement trois normes principales pour les objets distribués : DCOM de Microsoft, Enterprise JavaBeans/RMI de Sun Microsystems et CORBA (Common Object Request Broker Architecture) d'OMG (Object Management Group). DCOM est un standard d'objet distribué basé sur l'environnement Windows, les types de plates-formes prises en charge sont donc limités. RMI et Enterprise JavaBean sont des architectures d'objets distribuées basées sur le langage Java, adaptées aux besoins multiplateformes des grandes entreprises. Cependant, l'environnement système d'application réel est généralement établi par plusieurs langages de programmation différents et ne repose que sur un seul langage de programmation. Les applications d'entreprise sont rares. CORBA est un standard d'objet distribué développé par l'organisation OMG avec la participation de plus de 800 grandes sociétés de logiciels et de matériel informatique. Il est pris en charge par de grandes entreprises telles que IBM, Sun Microsystems, Oracle, Sybase, Novell et Netscape. l'intégration entre les différentes plates-formes. Communication et interopérabilité des objets. Tant que les éditeurs de logiciels suivent l'IDL (Interface Definition Language) pour la communication entre les objets d'application et l'ORB, ils peuvent fournir ou obtenir des services sous forme d'objets. éliminez le besoin de prendre en compte des plates-formes hétérogènes, différents protocoles de communication ou différents langages de programmation provoquent des différences et concentrez-vous sur le développement de la logique d'application. On peut voir que CORBA fournit une norme distribuée ouverte et flexible, qui convient aux entreprises pour créer des systèmes d'applications distribués multicouches.
2. Le développement d'applications distribuées multi-niveaux est très complexe
Si les applications distribuées multicouches sont développées de manière traditionnelle, les développeurs doivent posséder des connaissances approfondies au niveau du système informatique et maîtriser divers aspects tels que la concurrence, la sécurité, l'évolutivité et le traitement des transactions. De plus, il est nécessaire de parvenir à une gestion efficace de l'accès aux ressources du système, comme la gestion des threads, de la mémoire, des connexions aux bases de données et des connexions réseau. Ces tâches complexes consomment beaucoup d'énergie des développeurs et limitent l'avancement des travaux de développement. Le développement de systèmes d'applications d'entreprise oblige les développeurs à se concentrer davantage sur le développement de la logique métier plutôt que de perdre plus de temps sur le développement au niveau du système.
3. La distribution et la gestion des applications distribuées constituent également un défi
La plupart des applications distribuées sont composées de centaines ou de milliers de composants, et chaque composant possède des propriétés qui doivent être configurées lors de la distribution. En règle générale, la façon dont vous configurez les propriétés du composant dépend de la plateforme sur laquelle se trouve le composant. Par conséquent, une fois l’application distribuée, la gestion des composants distribués constituera un défi. Les responsables doivent s'assurer que les composants d'application peuvent fonctionner correctement, peuvent être situés sur n'importe quelle machine au sein du réseau d'entreprise et peuvent détecter les erreurs de traitement (y compris les erreurs système, les interruptions de réseau, les erreurs d'application, etc.) en temps opportun.
Au sens traditionnel, la gestion des systèmes réseau (comme SNMP) ne peut obtenir l'état d'exécution des applications qu'en analysant l'état de l'hôte. Cependant, pour les systèmes d'applications distribués, une application ne s'exécute pas sur un hôte spécifique. L'état de l'ensemble du réseau doit être géré, ce qui nécessite le support d'outils appropriés.
Exigences pour les applications distribuées multi-niveaux
Le développement d'applications distribuées multiniveaux d'entreprise nécessite généralement les éléments suivants :
Facile à développer
Bien que l'architecture distribuée multicouche nécessite comme base une connaissance approfondie au niveau du système informatique (par exemple : base de données, traitement des transactions, sécurité réseau, technologie CORBA, etc.), pour les développeurs informatiques, elle ne nécessite pas une compréhension approfondie du système sous-jacent. complexités du système. Grâce à la technologie, de puissants systèmes d'applications distribués multicouches peuvent être développés rapidement et facilement dans un environnement de développement visuel intégré (IDE) convivial.
Simplifiez le travail de distribution et de gestion
Les développeurs doivent pouvoir tester et modifier des applications distribuées dans un environnement de développement intégré pour améliorer les performances des applications et réaliser la distribution et la gestion des applications dans le même environnement. Étant donné que de nombreuses applications incluent des milliers de composants répartis dans toute l'entreprise, un outil de gestion centralisé est nécessaire pour gérer et contrôler les applications distribuées et mettre en œuvre des fonctions de détection et de correction des erreurs.
Exigences de robustesse pour les applications d'entreprise
Une application multiniveau distribuée d'entreprise complète doit répondre aux exigences de traitement des transactions, de gestion de la sécurité, de tolérance aux pannes, d'équilibrage de charge, d'évolutivité et de hautes performances.
Présente une architecture ouverte basée sur les normes de l'industrie
Ce dont les entreprises ont besoin, ce sont des solutions ouvertes, basées sur les normes industrielles, capables d'interagir avec d'autres systèmes conformes aux normes.
Peut être intégré à diverses bases de données et systèmes existants
Les applications distribuées d'entreprise doivent pouvoir accéder aux ressources de données d'entreprise, et les données d'entreprise sont généralement stockées sur des bases de données à grande échelle actuellement populaires (telles que Oracle, Sybase, etc.), ou accessibles via TP Monitor (telles que : IBM CICS, BEA Tuxedo. ), il est donc nécessaire que les systèmes distribués d'entreprise puissent être intégrés aux bases de données et aux systèmes existants.
Prise en charge de différents environnements de plateforme
Les applications distribuées multiniveaux d'entreprise doivent prendre en charge différents environnements de plate-forme. Le côté serveur doit prendre en charge les plates-formes Windows NT ou UNIX, et les clients sur différentes plates-formes peuvent accéder aux applications sur le serveur, notamment : HTML, applets Java, applications Java, HTML dynamique, C++. Applications, etc.
Serveur d'applications d'entreprise
Pour les raisons ci-dessus, lorsque les entreprises se transforment en applications distribuées à plusieurs niveaux, elles ont besoin de la prise en charge de serveurs d'applications, afin que différentes technologies d'application puissent être intégrées ensemble, facilitant ainsi le développement, la distribution et la gestion d'applications distribuées à plusieurs niveaux. Plus facile. De nombreuses entreprises ont désormais recours à la technologie des serveurs d'applications, ce qui a considérablement amélioré les performances des applications d'entreprise. Cependant, la technologie des serveurs d'applications actuellement utilisée dans mon pays ne peut pas répondre pleinement aux besoins des entreprises pour établir des applications distribuées multicouches. Ces serveurs d'applications sont principalement divisés en deux catégories suivantes :
Serveur d'applications Web
Les serveurs d'applications Web fournissent généralement un environnement de développement pour les applications Internet Web et conviennent à l'établissement de systèmes d'applications client/serveur Web. Dans ce système, le serveur d'applications Web s'exécute généralement sur le serveur Web pour gérer les demandes des clients. ODBC et JDBC sont généralement utilisés pour se connecter à la base de données. Ce type de serveur d'applications est généralement simple à utiliser et prend en charge le développement d'applications serveur basées sur des EJB (Enterprise JavaBeans). Cependant, les inconvénients de ce type de serveur d'applications incluent : il ne prend pas en charge le traitement des transactions, a une sécurité médiocre, a une prise en charge limitée des systèmes de trading existants et a de faibles performances.
Serveur d'applications basé sur un middleware
Les serveurs d'applications basés sur un middleware peuvent fournir aux entreprises des fonctions plus puissantes en s'intégrant aux systèmes existants (tels que TP Monitors), notamment : le traitement des transactions, la gestion de la sécurité, la tolérance aux pannes, l'équilibrage de charge, etc., mais la plupart des solutions sont basées sur Client/Serveur. Cette architecture, ou limitée à une architecture à trois niveaux, n'est pas adaptée à la création d'applications Web distribuées et ne dispose pas d'un environnement de développement et de gestion efficace.
Remarque : L'équilibrage de charge est un ensemble de serveurs composés de plusieurs serveurs de manière symétrique. Chaque serveur a un statut égal et peut fournir des services externes de manière indépendante sans l'aide d'autres serveurs. Grâce à une sorte de technologie de partage de charge, les demandes envoyées de l'extérieur sont réparties uniformément vers un certain serveur dans la structure symétrique, et le serveur qui reçoit la demande répond indépendamment à la demande du client. Une charge équilibrée peut répartir uniformément les demandes des clients sur la baie de serveurs, fournissant ainsi un accès rapide aux données importantes et résolvant le problème d'un grand nombre de services d'accès simultanés. Cette technologie de cluster permet d'atteindre des performances proches de celles d'un mainframe avec un investissement minimal. Avantages de l'équilibrage de charge réseau : Premièrement, la technologie d'équilibrage de charge réseau garantit que le serveur peut répondre rapidement même sous une charge importante ; deuxièmement, l'équilibrage de charge réseau n'a besoin que de fournir une adresse IP (ou un nom de domaine) au monde extérieur ; ou si plusieurs serveurs du réseau d'équilibrage de charge sont indisponibles, le service ne sera pas interrompu. L'équilibrage de charge réseau détecte automatiquement lorsqu'un serveur est indisponible et peut rapidement redistribuer le trafic client entre les serveurs restants. Cette mesure de protection peut vous aider à fournir des services ininterrompus pour les programmes commerciaux clés et peut augmenter le nombre de serveurs d'équilibrage de charge réseau en fonction de l'augmentation de l'accès au réseau ; quatrièmement, l'équilibrage de charge réseau peut être mis en œuvre sur des ordinateurs ordinaires.
Cet article provient du blog CSDN Veuillez indiquer la source lors de la réimpression : http://blog.csdn.net/deantry119/archive/2009/12/28/5089598.aspx.