Serwer aplikacji AVAX

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 stosowanej architektury komputera i systemu operacyjnego

    AVAX może być stosowany na dowolnym szeroko stosowanym systemie operacyjnym i komputerze czy procesorze.

  • 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.

  • Scheduler


    AVAX posiada wbudowany moduł automatycznego zarządzania zadaniami w systemie ( Taskscheduler ), który steruje centralnie czasowym uruchomieniem zadań w systemie.

 

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