Mit der rasanten Entwicklung der Informationsindustrie wird der Wettbewerb zwischen Unternehmen heute intensiver. Angesichts der kontinuierlichen Größenausweitung und kontinuierlichen Aktualisierung des Geschäfts benötigen Unternehmen dringend vollständige verteilte Lösungen, um komplexe heterogene Umgebungen zu verwalten und eine vollständige Integration zwischen verschiedenen Hardwaregeräten, Softwaresystemen, Netzwerkumgebungen und Datenbanksystemen zu erreichen.
Im Laufe der Entwicklungsgeschichte menschlicher Computer wird die Informationsindustrie alle zehn bis fünfzehn Jahre zyklische Veränderungen erfahren. Von 1950 bis 1970 haben Unternehmen hauptsächlich die Mainframe-Terminal-Architektur übernommen, während Unternehmensanwendungssysteme den Benutzern Dienste zur gemeinsamen Nutzung von Ressourcen in einem einzigen System zur Verfügung stellten , zentralisiert. In den frühen 1980er Jahren wurden offene Systeme und relationale Datenbankverwaltungssysteme von Unternehmen weit verbreitet. Im Gegensatz zu zentralisierten Systemen war die Anwendungslogik zwischen Master und Slave verteilt. Mit der Popularität von Windows waren die 1990er Jahre die Ära der grafischen Anwendungen, und auch die Client/Server-Architektur fand eine weite Verbreitung. In den späten 1990er Jahren tauchte die verteilte Objekttechnologie in der Informationsindustrie auf. Anwendungen können auf verschiedenen Systemplattformen verteilt werden, und die gegenseitige Kommunikation von Objekten zwischen heterogenen Plattformen kann durch verteilte Technologie erreicht werden. Durch die Integration vorhandener Unternehmenssysteme in verteilte Systeme kann die Skalierbarkeit von Unternehmensanwendungssystemen erheblich verbessert werden. Das Aufkommen mehrschichtiger verteilter Anwendungen in den späten 1990er Jahren wies Unternehmen den Weg, die Entwicklung von Anwendungssystemen weiter zu vereinfachen.
In der herkömmlichen Client/Server-Struktur wird die Anwendungslogik normalerweise zwischen dem Client und dem Server verteilt. Der Client gibt eine Datenressourcenzugriffsanforderung aus und der Server gibt die Ergebnisse an den Client zurück. Der Nachteil der Client/Server-Struktur besteht darin, dass mit zunehmender Anzahl von Clients die Leistung des Servers stark abnimmt, da kein Lastausgleich durchgeführt werden kann. Sobald sich die Anwendungsanforderungen ändern, müssen sowohl Client- als auch Serveranwendungen geändert werden, was große Unannehmlichkeiten bei der Anwendungswartung und -aktualisierung mit sich bringt und die Übertragung großer Datenmengen auch die Belastung des Netzwerks erhöht. Um die Probleme von Client/Server zu lösen, können Unternehmen nur auf mehrschichtige verteilte Anwendungen umsteigen.
In einer mehrschichtigen verteilten Anwendung können eine oder mehrere Schichten von Anwendungsdienstprogrammen zwischen dem Client und dem Server hinzugefügt werden. Dieses Programm wird als „Anwendungsserver“ bezeichnet. Entwickler können die Geschäftslogik von Unternehmensanwendungen auf dem Middle-Tier-Server statt auf dem Client platzieren, wodurch die Geschäftslogik der Anwendung von der Benutzeroberfläche isoliert wird und Benutzern eine schlanke (schlanke) Anwendung bereitgestellt wird, während gleichzeitig die Funktionalität des Clients sichergestellt wird. )-Schnittstelle. Das bedeutet, dass, wenn der Anwendungscode geändert werden muss, dies an einem Ort (auf dem Middle-Tier-Server) und nicht in Tausenden von Clientanwendungen erfolgen kann. Dies ermöglicht Entwicklern, sich auf die Analyse, das Design und die Entwicklung der Kerngeschäftslogik des Anwendungssystems zu konzentrieren, vereinfacht die Entwicklung, Aktualisierung und Aktualisierung von Unternehmenssystemen und verbessert die Skalierbarkeit und Flexibilität von Unternehmensanwendungen erheblich.
Wenn Unternehmen webbasierte kommerzielle Anwendungssysteme einrichten müssen, bietet die mehrschichtige verteilte Architektur ebenfalls leistungsstarke Vorteile und bietet eine „Thin Client“-Architektur für webbasierte kommerzielle Anwendungen, die es browserbasierten Kunden ermöglicht, effektiv mit Intranetressourcen zu kommunizieren Interaktion, ohne dass auf der Client-Seite komplexe Anwendungskonfigurationsarbeiten erforderlich sind. Mehrschichtige verteilte Lösungen bauen Brücken zwischen heterogenen Plattformen und ermöglichen die Integration webbasierter Geschäftsanwendungen in bestehende Unternehmenssysteme.
Derzeit verwenden viele Unternehmen in unserem Land immer noch die Client/Server-Architektur, während in westlichen Industrieländern die Umstellung von Unternehmen von traditionellen Anwendungssystemen auf mehrschichtige verteilte Anwendungssysteme zum Mainstream in der Branche geworden ist. Es wird davon ausgegangen, dass mehrschichtige verteilte Systeme in unserem Land häufiger eingesetzt werden.
Herausforderungen durch mehrschichtige verteilte Anwendungen
Obwohl die mehrschichtige verteilte Architektur große Vorteile für Unternehmen bietet, ist es schwieriger, mehrschichtige verteilte Anwendungen zu entwickeln als der traditionelle Client/Server-Ansatz, was neue technische Herausforderungen für Entwickler mit sich bringt. Es umfasst im Wesentlichen die folgenden drei Aspekte:
1. Diversifizierung verteilter Objektstandards
Wenn Unternehmen mehrschichtige verteilte Systeme aufbauen möchten, müssen sie verteilte Industriestandards befolgen. Welche Standards darauf basieren, wirkt sich direkt auf die Offenheit und Skalierbarkeit von Unternehmensanwendungssystemen aus. Derzeit gibt es drei Hauptstandards für verteilte Objekte: DCOM von Microsoft, Enterprise JavaBeans/RMI von Sun Microsystems und CORBA (Common Object Request Broker Architecture) von OMG (Object Management Group). DCOM ist ein verteilter Objektstandard, der auf der Windows-Umgebung basiert, daher sind die Arten der unterstützten Plattformen begrenzt. RMI und Enterprise JavaBean sind verteilte Objektarchitekturen, die auf der Java-Sprache basieren und für die plattformübergreifenden Anforderungen großer Unternehmen geeignet sind. Die eigentliche Anwendungssystemumgebung wird jedoch im Allgemeinen durch mehrere verschiedene Programmiersprachen erstellt und basiert nur auf einer Programmiersprache . Unternehmensanwendungen sind selten. CORBA ist ein verteilter Objektstandard, der von der OMG-Organisation unter Beteiligung von mehr als 800 großen Software- und Hardwareunternehmen entwickelt wurde. Er wird von großen Unternehmen wie IBM, Sun Microsystems, Oracle, Sybase, Novell und Netscape unterstützt Die Integration zwischen verschiedenen Plattformen und die Interoperabilität von Objekten ermöglichen Entwicklern die Bereitstellung oder den Bezug von Diensten in Form von Objekten Beseitigen Sie die Notwendigkeit, heterogene Plattformen zu berücksichtigen. Unterschiedliche Kommunikationsprotokolle oder unterschiedliche Programmiersprachen verursachen Unterschiede und konzentrieren sich auf die Entwicklung der Anwendungslogik. Es ist ersichtlich, dass CORBA einen offenen und flexiblen verteilten Standard bereitstellt, der für Unternehmen zum Aufbau mehrschichtiger verteilter Anwendungssysteme geeignet ist.
2. Die Entwicklung mehrschichtiger verteilter Anwendungen ist sehr komplex
Wenn mehrschichtige verteilte Anwendungen auf herkömmliche Weise entwickelt werden, müssen Entwickler über umfassende Kenntnisse auf Computersystemebene verfügen und Kenntnisse in verschiedenen Aspekten wie Parallelität, Sicherheit, Skalierbarkeit und Transaktionsverarbeitung beherrschen. Darüber hinaus ist eine effektive Verwaltung des Zugriffs auf Systemressourcen erforderlich, beispielsweise die Verwaltung von Threads, Speicher, Datenbankverbindungen und Netzwerkverbindungen. Diese komplexen Aufgaben verbrauchen die Energie der Entwickler erheblich und schränken den Fortschritt der Entwicklungsarbeit ein. Die Entwicklung von Unternehmensanwendungssystemen erfordert, dass sich Entwickler mehr auf die Entwicklung der Geschäftslogik konzentrieren, anstatt mehr Zeit mit der Entwicklung auf Systemebene zu verschwenden.
3. Auch die Verteilung und Verwaltung verteilter Anwendungen stellt eine Herausforderung dar
Die meisten verteilten Anwendungen bestehen aus Hunderten oder Tausenden von Komponenten, und jede Komponente verfügt über Eigenschaften, die während der Verteilung konfiguriert werden müssen. Normalerweise hängt die Art und Weise, wie Sie Komponenteneigenschaften konfigurieren, von der Plattform ab, auf der sich die Komponente befindet. Daher wird es nach der Verteilung der Anwendung eine Herausforderung sein, die verteilten Komponenten zu verwalten. Manager müssen sicherstellen, dass Anwendungskomponenten ordnungsgemäß ausgeführt werden können, sich auf jedem Computer im Unternehmensnetzwerk befinden und Verarbeitungsfehler (einschließlich Systemfehler, Netzwerkunterbrechungen, Anwendungsfehler usw.) rechtzeitig erkennen können.
Im herkömmlichen Sinne kann die Netzwerksystemverwaltung (z. B. SNMP) den Betriebsstatus von Anwendungen nur durch Analyse des Hoststatus ermitteln. Bei verteilten Anwendungssystemen wird eine Anwendung jedoch nicht auf einem bestimmten Host ausgeführt Der Status des gesamten Netzwerks muss verwaltet werden, was die Unterstützung durch entsprechende Tools erfordert.
Anforderungen für mehrschichtige verteilte Anwendungen
Die Entwicklung mehrschichtiger verteilter Unternehmensanwendungen erfordert normalerweise Folgendes:
Leicht zu entwickeln
Obwohl die mehrschichtige verteilte Architektur fundierte Kenntnisse auf Computersystemebene als Grundlage erfordert (z. B. Datenbank, Transaktionsverarbeitung, Netzwerksicherheit, CORBA-Technologie usw.), ist für IT-Entwickler kein tiefes Verständnis der zugrunde liegenden Grundlagen erforderlich Mit der Technologie können leistungsstarke mehrschichtige verteilte Anwendungssysteme schnell und einfach in einer benutzerfreundlichen visuellen integrierten Entwicklungsumgebung (IDE) entwickelt werden.
Vereinfachen Sie die Vertriebs- und Verwaltungsarbeit
Entwickler benötigen die Fähigkeit, verteilte Anwendungen in einer integrierten Entwicklungsumgebung zu testen und zu ändern, um die Anwendungsleistung zu verbessern und die Verteilung und Verwaltung von Anwendungen in derselben Umgebung zu erreichen. Da viele Anwendungen Tausende von Komponenten umfassen, die im gesamten Unternehmen verteilt sind, ist ein zentrales Verwaltungstool erforderlich, um verteilte Anwendungen zu verwalten und zu steuern und Funktionen zur Fehlererkennung und -korrektur zu implementieren.
Robustheitsanforderungen für Unternehmensanwendungen
Eine vollständige verteilte mehrschichtige Unternehmensanwendung sollte die Anforderungen an Transaktionsverarbeitung, Sicherheitsmanagement, Fehlertoleranz, Lastausgleich, Skalierbarkeit und hohe Leistung erfüllen.
Verfügt über eine offene, auf Industriestandards basierende Architektur
Was Unternehmen brauchen, sind offene, auf Industriestandards basierende Lösungen, die mit anderen standardkonformen Systemen interagieren können.
Kann in verschiedene Datenbanken und bestehende Systeme integriert werden
Verteilte Unternehmensanwendungen müssen auf Unternehmensdatenressourcen zugreifen können. Unternehmensdaten werden normalerweise in derzeit gängigen Großdatenbanken (wie Oracle, Sybase usw.) gespeichert oder über TP Monitor (wie IBM CICS, BEA Tuxedo) abgerufen ), daher ist es erforderlich, dass verteilte Unternehmenssysteme in Datenbanken und bestehende Systeme integriert werden können.
Unterstützen Sie verschiedene Plattformumgebungen
Mehrschichtige verteilte Unternehmensanwendungen müssen verschiedene Plattformumgebungen unterstützen. Die Serverseite sollte Windows NT- oder UNIX-Plattformen unterstützen, und Kunden auf verschiedenen Plattformen können auf Anwendungen auf dem Server zugreifen, darunter: HTML, Java-Applets, Java-Anwendungen, dynamisches HTML, C++ Bewerbungen usw.
Unternehmensanwendungsserver
Aus den oben genannten Gründen benötigen Unternehmen bei der Umstellung auf mehrschichtige verteilte Anwendungen die Unterstützung von Anwendungsservern, damit verschiedene Anwendungstechnologien miteinander integriert werden können, was die Entwicklung, Verteilung und Verwaltung mehrschichtiger verteilter Anwendungen vereinfacht. Einfacher. Viele Unternehmen haben mittlerweile Anwendungsservertechnologie eingesetzt, die die Leistung von Unternehmensanwendungen erheblich verbessert hat. Die derzeit in meinem Land verwendete Anwendungsservertechnologie kann jedoch die Anforderungen von Unternehmen zur Einrichtung mehrschichtiger verteilter Anwendungen nicht vollständig erfüllen. Diese Anwendungsserver werden hauptsächlich in die folgenden zwei Kategorien unterteilt:
Webbasierter Anwendungsserver
Webbasierte Anwendungsserver stellen im Allgemeinen eine Entwicklungsumgebung für webbasierte Internetanwendungen bereit und eignen sich zum Aufbau webbasierter Client/Server-Anwendungssysteme. In diesem System wird der Webanwendungsserver normalerweise auf dem Webserver ausgeführt, um Clientanforderungen zu verarbeiten. Für die Verbindung zur Datenbank werden üblicherweise ODBC und JDBC verwendet. Diese Art von Anwendungsserver ist im Allgemeinen einfach zu verwenden und unterstützt die Entwicklung von Serveranwendungen auf Basis von EJB (Enterprise JavaBeans). Zu den Mängeln dieser Art von Anwendungsservern gehören jedoch: Er unterstützt keine Transaktionsverarbeitung, weist eine geringe Sicherheit auf, bietet nur begrenzte Unterstützung für bestehende Handelssysteme und weist eine geringe Leistung auf.
Middleware-basierter Anwendungsserver
Middleware-basierte Anwendungsserver können Unternehmen durch die Integration in bestehende Systeme (z. B. TP-Monitore) leistungsfähigere Funktionen bieten, darunter: Transaktionsverarbeitung, Sicherheitsmanagement, Fehlertoleranz, Lastausgleich usw., aber die meisten Lösungen basieren auf Client/Server Die Architektur ist entweder auf eine dreistufige Architektur beschränkt oder auf eine dreistufige Architektur beschränkt. Sie eignet sich nicht für die Erstellung verteilter Webanwendungen und verfügt nicht über eine effektive Entwicklungs- und Verwaltungsumgebung.
Hinweis: Beim Lastausgleich handelt es sich um eine Gruppe von Servern, die symmetrisch aus mehreren Servern bestehen. Jeder Server hat den gleichen Status und kann externe Dienste unabhängig und ohne die Unterstützung anderer Server bereitstellen. Durch eine Art Lastverteilungstechnologie werden von außen gesendete Anforderungen in der symmetrischen Struktur gleichmäßig auf einen bestimmten Server verteilt, und der Server, der die Anforderung empfängt, antwortet unabhängig auf die Kundenanfrage. Eine ausgeglichene Last kann Kundenanfragen gleichmäßig auf das Server-Array verteilen, wodurch ein schneller Zugriff auf wichtige Daten ermöglicht und das Problem einer großen Anzahl gleichzeitiger Zugriffsdienste gelöst wird. Diese Cluster-Technologie kann mit minimalen Investitionen eine Leistung nahe der eines Mainframes erreichen. Vorteile des Netzwerklastenausgleichs: Erstens stellt die Netzwerklastenausgleichstechnologie sicher, dass der Server auch bei hoher Auslastung schnell reagieren kann. Zweitens muss der Netzwerklastenausgleich nur eine IP-Adresse (oder einen Domänennamen) für die Außenwelt bereitstellen oder mehrere Server im Netzwerk-Load-Balancing nicht verfügbar sind, wird der Dienst nicht unterbrochen. Der Netzwerklastenausgleich erkennt automatisch, wenn ein Server nicht verfügbar ist, und kann den Clientverkehr schnell auf die verbleibenden Server verteilen. Diese Schutzmaßnahme kann Ihnen dabei helfen, unterbrechungsfreie Dienste für wichtige Geschäftsprogramme bereitzustellen, und kann die Anzahl der Netzwerklastausgleichsserver entsprechend der Zunahme des Netzwerkzugriffs erhöhen. Viertens kann der Netzwerklastausgleich auf normalen Computern implementiert werden.
Dieser Artikel stammt aus dem CSDN-Blog. Bitte geben Sie beim Nachdruck die Quelle an: http://blog.csdn.net/deantry119/archive/2009/12/28/5089598.aspx