AVAX Applikationsserver

Zweck


AVAX ist ein Applikationsserver, welcher für den Betrieb von hochperformanten und hochskalierbaren Multi-Tier-Applikationen gedacht ist.

Features

AVAX wird durch folgende Hauptmerkmale charakterisiert:

  • Unterstützung von Multiprocessing / Clustering

    Durch Unterstützung von Multiprocessing versteht man Verwendung optimaler Anzahl der Applikationsprozesse ( zB. JAVA Virtual Machine Prozesse ), die sowohl auf einem Multiprozessorrechner als auch im Rechnercluster eingesetzt werden. Dadurch werden die Ressourcen der Rechner optimal genutzt, gleichzeitig werden die Verfügbarkeit der Anwendung ( zB. durch Reduzierung der Garbage Collection Probleme ) und die Performance gesteigert. Die Anwendungsprozesse können sowohl im lokalen Rechnercluster verteilt sein. Auch eine Integration der Systeme über Internet wird möglich.

  • hochperformante interne Kommunikation, basierend auf WebServices und SOA

    Die Kommunikation zwischen den Systemkomponenten basiert bei AVAX prinzipiell auf hochoptimierten XML-Kommunikation, unterstützt direkt WebServices-Standard. Diese XML-Kommunikation erreicht in der Performance die native Kommunikation der jeweiligen Programmiersprache, bietet aber den Vorteil der Offenheit und Unabhängigkeit von der Programmiersprache: dadurch können Systemkomponenten performant  miteinander integriert werden, die in unterschiedlichen Programmiersprachen entwickelt wurden.

    Die allseitige Flexibilität von AVAX erlaubt es auch, für die Kommunikation wahlweise eine

    - native superschnelle Kommunikation ( optimiert gegenüber der Standardimplementierung )

    - komprimierte XML Kommunikation

    - verschlüsselte Kommunikation ( um Security auf mehreren Ebenen zu gewährleisten )

    einzusetzen, einfach durch entsprechende Konfigurationsvorgabe.

  • hohe Skalierbarkeit ( superscalability )

    AVAX verwendet intern ein flexibles Load Balancing Konzept. Die Anwendungsrequests werden je nach zu erwarteten Load auf die einzelnen Anwendungsprozesse durch den Load Balancer verteilt.

    Die Konfiguration des Application Servers kann dynamisch sein, die Anzahl der aktiven Prozesse wird automatisch gesteuert. Durch Verwendung von Multiprocessing/Clustering ist AVAX in der Lage, die Ressourcen der Hardware optimal zu nutzen, ohne daß dabei systembedingten Leistungsverluste notwendig sind.

  • Plattformunabhängigkeit

    AVAX ist lauffähig auf fast allen gängigen Betriebssystemen.

  • Programmiersprachenunabhängigkeit

    AVAX wurde implementiert in JAVA, C#, C++, Delphi.

    Connectormodule werden in anderen Programmiersprachen entwickelt.

    Die Anwendungen können in den entsprechenden Programmiersprachen entwickelt und unter AVAX eingesetzt werden. Dabei ist es möglich, die Implementierungen in verschiedenen Sprachen miteinander laufen und kommunizieren zu lassen. Ebenso ist es möglich, daß der Clientteil der Anwendung in beispielsweise C# und der Serverteil der Anwendung in JAVA implementiert werden und miteinander funktionieren können.

    Da AVAX auf dem Application Framework JUVE basiert, ist eine heterogene Entwicklung in unterschiedlichen Programmiersprachen durch Verwendung von JUVE und JUVE Development Process vereinfacht, aufwandminimierend.

    Dadurch entstehen für den Systemarchitekten völlig neue Möglichkeiten.

    Es ist möglich, den Clientteil der Anwendung basierend auf .NET-Ansätzen mit C# zu implementieren, und gleichzeitig um eine hohe Skalierbarkeit des Serverteils den Server unter UNIX als JAVA-Implementierung auf einem entsprechenden UNIX-Serverrechner zu betreiben.

Technologie


AVAX ist implementiert in JAVA, C#, C++, Delphi.

AVAX basiert intern auf dem Application Framework JUVE. Durch entsprechende Bridges ist aber der Betrieb von Applikationen, die nicht mit JUVE entwickelt wurden auch möglich.

AVAX realisiert grundsätzlich das Konzept der Service Oriented Architecture. Als Basis für die Kommunikation dient der Mechanismus WebServices. Intern basiert die Implementierung von AVAX auf dem Frameworkmodul JUVE Web Services.

Standard Funktionalität

  • Application Management

    AVAX verwaltet die Anwendungen auf der Basis der Applikationsdeskriptoren. Die Applikationsdeskriptoren definieren die Anwendung hinsichtlich der Schnittstellen ( JUVE Web Service Provider ), Commands, User und deren Berechtigungen.

    JUVE Web Service Provider definiert eine Applikationsschnittstelle mit einer Zahl von Requestmethoden auf der Anwendungsebene. Die Requestmethoden definieren die Input/Outputparameter, die seinerseits sowohl Primärdatentypen ( int, long, double, String ) sein können als auch Klassen der Domänenschicht der Anwendung ( Bank, Person, etc. ). Die Schnittstellen basieren auf dem Standard Web Services, sind aber generisch aufgebaut. Dadurch müssen die Klassen der Domänenschicht nicht für die Übergabe als Parameter registriert werden.

    Eine Anwendung kann über mehrere Web Service Provider angesprochen werden. Die Architektur fördert direkt die Wiederverwendung der Software: Web Service Provider können generisch gebaut werden, die gleichen Web Service Provider können in unterschiedlichen Anwendungen verwendet werden.

  • User Management and Authorization

    AVAX unterstützt die Userverwaltung und die Zugriffsauthorisierung. Die Userverwaltung basiert auf dem Rollenprinzip. Die Authorisierung erfolgt auf der Rollenebene. Den Usern können mehrere Rollen zugewiesen werden.

    Die Userverwaltung und Zugriffsauthorisierung ist für jede von AVAX verwaltete Anwendung separat.

    Die Zugriffsauthorisierung kann für eine Userrolle auf mehreren Ebenen definiert werden:

    - Ebene der Domänenklassen

    für jede Domänenklasse in der Anwendung können die Lese/Lösch/Schreib-Rechte definiert werden

    - Ebene der Web Service Provider

    für jeden Web Service Provider in der der Anwendung können die Aufruf-Rechte definiert werden

    - Ebene der Web Service Provider Requestmethoden

    für jede Web Service Provider - Requestmethode in der der Anwendung können die Aufruf-Rechte definiert werden

    - Ebene der internal/external Commands

    für die in der Anwendung aufrufbaren Kommandos können n der der Anwendung können die Aufruf-Rechte definiert werden

Erweiterte Funktionalität

AVAX außer der Standardfunktionalität des Application Servers enthält Mechanismen, die zur erweiterten Unterstützung der plattformunabhängigen Systemen benötigt werden:

  • Resource Manager

    Der Resource Manager verwaltet alle Systemressourcen, die von den Anwendungen in Anspruch genommen werden können. Darunter versteht man Datenbankverbindungen, Data Stores, File Stores, etc.

    Die Verwaltung erfolgt je nach Bedarf nach passenden Zuweisungsstrategien:

    - Shared Pool Resource Access Strategy

    - Unlimited Generative Resource Access Strategy

    - Read Only  Resource Access Strategy

    Das Ziel der Verwendung des Resource Managers ist es, den Ressourcenverbrauch des Rechners zu minimieren und gleichzeitig die Performance der Anwendung zu steigern. Es wird grundsätzlich durch Pooling und Caching der Ressourcen erreicht. Durch die Wahl der entsprechenden Access Strategy wird dem Charakter der Ressorcennutzung die Rechnung getragen.

  • Scheduler

    AVAX verfügt über einen internen Taskscheduler, der die zeitliche Ausführung von Tasks im System zentral steuert. Scheduler übernimmt die automatische Ausführung von Hintergrundaufgaben. Die Ausführung wird vom Scheduler nach Vorgaben zeitlich komplett gesteuert.

Neue Möglichkeiten für die Applikationsentwicklung und den Betrieb


AVAX definiert neuen Standard in der Sparte der Application Server Produkte. Neben den J2EE Application Server Produkten und der auf .NET-basierenden Windows Server 2003 Architektur entsteht eine Alternative, die einerseits Vorzüge der WebServices-Technologie voll ausnutzen läßt, andererseits eine hohe Performance und Skalierbarkeit mit der offenen Architektur und plattform-programmiersprachen-Unabhängigkeit verknüpft.

Durch den Einsatz von AVAX entstehen wesentliche Vorteile für die Systemarchitektur

  • Integration von Anwendungen und Komponenten entwickelt in verschiedenen Programmiersprachen

  • Integration von verteilten Systemkomponenten in ein Gesamtsystem

  • flexible Wahl der Zielarchitektur: Standalone, 2-Tier, 3-Tier, n-Tier

  • flexible Verteilung / Integration der Anwendungen

  • Förderung der Wiederverwendung der Software

Die Sicherheit der Investition in die Softwareentwicklung wird durch den Einsatz von AVAX erhöht, denn

  • die hohe Skalierbarkeit und Performance reduzieren im starken Maße die Hardwarekosten

  • Verwendung zukunftträchtiger Technologie ( WebServices ) erhöht die Lebendauer der entwickelten Software

  • Unterstützung des Application Frameworks JUVE minimiert die Entwicklungs- und Wartungsaufwände

Weitere Dokumentation

Power Point Präsentation ( PDF ): Avax Application Server Architecture