Przeznaczenie
AVAX jest serwerem aplikacji, stworzonym do zarządzania aplikacji wielowarstwowych o wysokich wymaganiach dotyczących ilości użytkowników i ilości przetwarzanych transakcji.
Główne cechy
AVAX wyróżnia się spośród podobnych produktów kilkoma istotnymi cechami:
- zastosowanie kombinacji Multiprocessing / Clustering
AVAX umożliwia stosowanie na komputerze serwera kombinacji wielu procesów aplikacyjnych, połączonych w jeden system ( multiprocessing ). Poza tym możliwe jest łączenie komputerów w sieci w jeden system - na każdym z nich możliwe jest zastosowanie wielu procesów. Dzięki tej technice możliwe jest optymalne wykorzystanie zasobów komputera i zminimalizowanie efektów negatywnych wywołanych np. przez garbage collection. Zwiększa się również pewność działania systemu przez eliminowanie single point of failure. Możliwa jest również bezpieczna i szybka integracja systemów przez Internet.
- zastosowanie szybkiej specjalizowanej wewnętrznej komunikacji opartej o standard Web Services i architekturę SOA
Komunikacja pomiędzy częściami systemu bazuje w AVAXie na zoptymalizowanej serializacji przy zastosowaniu języka XML. Bezpośrednio może ona korzystać ze standardu Web Services. Zoptymalizowana komunikacja XML osiąga szybkość działania standardowej komunikacji w oparciu o serializację binarną, dla celów specjalnych istnieje dodatkowo specjalna serializacja binarna, o jeszcze większej szybkości.
Dzięki korzystaniu z naszej serializacji możliwa jest integracja komponentów systemów stworzonych w różnych językach programowania. Dzięki stosowaniu komunikacji w XML osiąga się otwartość i możliwość integracji różnych systemów, stworzonych w dowolnym języku programowania.
Możliwy jest wybór poprzez zmianę konfiguracji dowolnej kombinacji rodzaju komunikacji w AVAXie:
- bardzo szybka komunikacja binarna ( zoptymalizowana w porównaniu ze standardową )
- skomprymowana komunikacja XML
- zakodowana komunikacja ( celem zapewnienia bezpieczeństwa na wielu poziomach )
- wysoka skalowalność ( superscalability )
AVAX stosuje wewnętrznie efektywny i elastyczny mechanizm Load Balancing. Żądania klienta są w zależności od oczekiwanego współczynnika obciążenia przydzielane poszczególnym procesom przez Load Balancera.
Odpowiednia konfiguracja serwera aplikacji może być zmieniana dynamicznie, ilość aktywnych procesów aplikacyjnych również. Dzięki zastosowaniu kombinacji multiprocessing/clustering AVAX jest w stanie wykorzystać możliwości systemu komputerowego do maksimum, minimalizując straty wynikające z konstrukcji języka programowania czy architektury systemu.
- niezależność od języka programowania
AVAX jest zaimplementowany w językach JAVA, C#, C++, Delphi.
Moduły connectorów są tworzone również w innych językach programowania.
Aplikacje mogą być tworzone w odpowiednim języku programowania i zarządzanie przez AVAX. Jest przy tym możliwe korzystanie z heterogenicznej architektury aplikacji, korzystającej z implementacji w różnych językach programowaniach w poszczególnych częściach systemu. Jest np. możliwe stosowanie implementacji części klienta aplikacji z interfejsem użytkownika napisanym w C# i serwera aplikacji napisanego w JAVie, przy użyciu dużej maszyny UNIX jako serwer.
Ponieważ AVAX bazuje na frameworku aplikacji JUVE, proces tworzenia aplikacji nawet w różnych językach programowania jest systematyczny, w pełni można stosować metody inżynierii oprogramowania, dzięki temu nakłady na tworzenie oprogramowania są zmniejszone w stopniu znacznym.
Dzięki tym cechom AVAX stwarza architektowi systemowemu zupełnie nowe możliwości architektoniczne przy budowie zarówno produktów softwareowych, dużych systemów informatycznych jak i zintegrowanych systemów informatycznych.
Jest np. możliwa realizacja części klienta aplikacji przy pomocy architektury .NET i języka C#, i jednocześnie implementacja części serwera aplikacji przy pomocy języka JAVA lub C++ celem osiągnięcia wysokiej wydajności systemu i jego skalowalności.
Technologia
Wersje AVAX są implementowane w językach JAVA, C#, C++, Delphi.
AVAX zbudowany jest w oparciu o framework aplikacji JUVE. Dzięki stosowaniu odpowiednich adaptorów możliwe jest łączenie modułów napisanych w innych językach programowania.
AVAX zasadniczo realizuje koncepcje architektury Service Oriented Architecture. Komunikacja jest bazowo zbudowana w oparciu o standard Web Services. Wewnętrznie implementacja komunikacji klient/serwer w AVAXie korzysta z modułu JUVE Web Services.
Funkcjonalność podstawowa
-
Application Management
AVAX zarządza aplikacjami w oparciu o deskryptory aplikacji. Deskryptory aplikacji definiują interfejsy aplikacji ( JUVE Web Service Provider ), rozkazy, użytkowników i ich uprawnienia.
JUVE Web Service Provider definiuje interfejs aplikacji i metody wołania na poziomie aplikacyjnym. Metody wołania definiują parametry wejściowe/wyjściowe wykorzystując podstawowe typy danych oraz klasy warstwy domenowej. Tak zdefiniowane interfejsy wykorzystują standard Web Services, mogą być jednak zbudowane w sposób generyczny i wykorzystywać bez konieczności rejestracji struktury aplikacji wysokiego poziomu.
Aplikacja może definiować wiele interfejsów Web Service Provider. Architektura wspomaga bezpośrednio reuse software'u: te same interfejsy Web Service Provider i ich implementacje mogą być wykorzystane w wielu aplikacjach.
-
User Management and Authorization
AVAX realizuje funkcje zarządzania użytkownikami systemu i kontrolą ich praw dostępu. Zarządzanie użytkownikami i ich prawami dostępu bazuje na koncepcji roli użytkownika. Na poziomie roli następuje kontrola dostępu. Użytkownikom systemu można być przyporządkować wiele ról jednocześnie.
Zarządzanie użytkownikami i kontrola dostępu jest w AVAXie oddzielne dla poszczególnych zarządzanych przez AVAX aplikacji.
Autoryzacja i kontrola dostępu może być zdefiniowana na różnych poziomach:
- poziom klas domeny
dla każdej klasy domenowej można zdefiniować prawa READ/DELETE/UPDATE
- poziom interfejsów Web Service Provider
dla każdego interfejsu Web Service Provider w aplikacji można określić prawo wywołania ( EXEC )
- poziom pojedynczych metod interfejsów Web Service Provider
dla każdej metody interfejsu Web Service Provider w aplikacji można określić prawo wywołania ( EXEC )
- poziom rozkazów wewnętrznych / zewnętrznych
dla każdego rozkazu wykorzystywanego w aplikacji ( wewnętrznego lub zewnętrznego ) można zdefiniować prawo wywołania ( EXEC )
Funkcjonalność dodatkowa
AVAX poza funkcjonalnością podstawową dla serwera aplikacji posiada dodatkowe mechanizmy ułatwiające zarządzanie aplikacjami i umożliwiające optymalizacje wykorzystanie zasobów systemu komputerowego:
-
Resource Manager
Resource Manager zarządza zasobami systemowymi, które są wykorzystywane przez aplikacje. Następujące zasoby mogą być zarządzane przez Resource Managera: połączenia do bazy danych, Data Stores, File Stores, etc.
Zarządzanie może odbywać się według różnych strategii zarządzania w zależności od charakteru zasobu i sposobu jego wykorzystywania:
- Shared Pool Resource Access Strategy
- Unlimited Generative Resource Access Strategy
- Read Only Resource Access Strategy
Celem stosowania Resource Managera jest optymalizacja wykorzystania zasobów systemu komputerowego i maksymalne zwiększenie wydajności aplikacji. Zasadniczo polega to na stosowaniu mechanizmów Pooling i Caching.
Nowe możliwości w tworzeniu aplikacji i ich stosowaniu
AVAX definiuje nowy standard w dziedzinie produktów typu serwer aplikacji. Obok standardowych produktów korzystających z architektury J2EE/EJB czy architektury .NET w oparciu o Windows Server 2003 powstaje w ten sposób alternatywa, która bezpośrednio wykorzystuje zalety technologii WebServices i łączy je z wysoką skalowalnością i performance oraz niezależnością od stosowanej architektury komputera czy języka programowania.
Dzięki zastosowaniu serwera aplikacji AVAX powstają dla architektury systemu istotne korzyści:
- możliwość integracji aplikacji i ich komponentów stworzonych w różnych językach programowania
- możliwość integracji rozproszonych komponentów systemu
- elastyczny wybór docelowej architektury aplikacji: Standalone, 2-Tier, 3-Tier, n-Tier
- elastyczne podział i integracja aplikacji na moduły, podsystemy itd.
- oszczędne gospodarowanie budżetem na rozwój systemów informatycznych, minimalizowanie kosztów hardware na rzecz koncentracji na rozwoju oprogramowania
- minimalizacja kosztów tworzenia oprogramowania poprzez zwiększenie stopnia wykorzystania gotowych modułów / komponentów
Efektywność inwestycji w rozwój oprogramowania jest zwiększona przy użyciu serwera aplikacji AVAX dzięki:
- unikalnie wysoka skalowalność i performance umożliwia redukcję kosztów hardware
- zastosowanie przyszłościowej nowoczesnej technologii ( WebServices ) przedłuża długowieczność tworzonego oprogramowania
- zastosowanie frameworku aplikacji JUVE zmniejsza w znaczącym stopniu koszty tworzenia i obsługi oprogramowania
Prezentacja Power Point ( PDF ): Avax Application Server Architecture
|