Przejdź do treści

Dokumentacja dla dewelopera aplikacji w technologii Neos

Neos to autorska technologia służąca do bardzo szybkiego rozwoju i wdrażania aplikacji biznesowych opartych o bazę danych Firebird.

Założenia biznesowe

  1. znacznie większa wydajność w tworzeniu nowych funkcjonalności i rozbudowy starych, niż zwykłe technologie RAD
  2. standaryzacja procesu budowania aplikacji pozwalająca zminimalizować ilość miejsc, w których da się popełniać błędy implementacyjne
  3. możliwość użycia tych samych okien w różnych miejscach, co pozwala uzyskać mniej reklamacji od klientów związanych z niespójnym działaniem aplikacji w różnych miejscach
  4. prostota użycia technologii spowoduje krótszy czas szkolenia nowych pracowników zespołów wdrożeniowych i zespołu rozwoju produktu do osiągnięcia pełnej wydajności
  5. ograniczenie konieczności użycia zaawansowanych języków programowania spowoduje niższą barierę merytoryczną w realizowaniu skomplikowanych rozwiązań dla klientów oraz możliwość zwiększenia skali działalności bez angażowania kluczowych ludzi we wszystkie projekty
  6. lepsze narzędzie dla klientów z własnymi działami IT, którzy chcą sami rozwijać aplikacje
  7. ta sama technologia używana do rozwoju aplikacji standardowych oraz do personalizacji aplikacji podczas wdrożenia spowoduje brak ograniczeń technicznych w możliwości dostosowania elementów standardowych do wymagań biznesowych klienta
  8. prześcignięcie konkurencji która posiada nowe platformy programistyczne (bo oprócz platformy damy gwarancję wsparcia i możliwość aktualizacji oprogramowania z zachowaniem indywidualnych zmian)
  9. uproszczenie procesu emisji aktualizacji i instalacji modyfikacji w środowisku klienta

Założenia technologiczne

  1. cała aplikacja budowana w run-time bez potrzeby kompilacji. Te same możliwości (teoretycznie) dostępne dla developerów, wdrożeniowców i administratora u klienta
  2. część definicyjna ma być tak rozbudowana aby dało się oprogramować obecną funkcjonalność SENTE S4/Teneum bez kombinacji, ale nie powinna pozwalać na tyle co natywne aplikacje tworzone np. w C++Builder
  3. cała aplikacja definiowana w sposób spójny w jednym miejscu. Odchodzimy od plików, sekcji w s_appini, kodu w C, kodu w bazie. W zamian stosujemy kod w C#.
  4. nowa technologia jest w pełni połączona ze starą, aby część aplikacji działała po nowemu a część po staremu i aby dało się przechodzić płynnie z kolejnymi modułami
  5. nowa technologia w pierwszej kolejności oparta o klienta VCL działającego na obecnej warstwie SDAS oraz DevExpress LayoutControl, a następnie o indywidualnych klientów pisanych od zera, np. klienta WEB
  6. jak najwięcej mechanizmów budowanych w samym frameworku a nie aplikacji biznesowej,
  7. definicja aplikacji jest określona przez zestaw tzw. obiektów biznesowych umieszczonych w specjalnych repozytoriach w ramach określonych warstw. W definicji występuje wyraźnie rozdzielony model danych od definicji interfejsu.
  8. Kluczową funkcjonalnością technologii jest ściśle określony algorytm dziedziczenia obiektów, pozwalający na budowanie szczegółowych rozwiązań w oparciu o rozwiązania ogólne oraz wykonywanie zmian indywidualnych przez partnerów i klientów w taki sposób, aby one nie kolidowały z rozwojem standardu
  9. technologia powinna nie mieć ograniczeń językowych ani co do stosowanych alfabetów. Powinna sugerować programiście wykorzystanie słownika stałych tekstowych, łatwych do tłumaczenia zamiast używać tekstów bezpośrednio w skryptach.

Sposób działania technologii Neos

Serwer Neos działa jako aplikacja lub usługa na komputerze pełniącym funkcję serwera aplikacji. Serwer podczas uruchomienia wczytuje definicję aplikacji, którą będzie serwował klientom. Definicja aplikacji zawiera definicję wstążki (menu głównego), okien, zapytań do źródeł danych a także akcji napisanych w języku C#.

Klient jest aplikacją uruchamianą przez użytkowników. Klient po uruchomieniu wysyła do serwera komunikat logujący i komunikat proszący o definicję wstążki aplikacji (menu głównego). Serwer odpowiada komunikatem zawierającym listę wszystkich elementów wstążki, a klient wyświetla te elementy.

Użytkownik klika w jakiś element wstążki, klient wysyła do serwera komunikat z żądaniem uruchomienia określonej akcji. Serwer uruchamia związany z nią kod C#. Kod C# jest zbudowany w oparciu o specjalne API pozwalające np. na wyświetlanie okien aplikacji. Uruchamianie funkcji API powoduje generowanie kolejki komunikatów do klienta. Klient odbiera i interpretuje te komunikaty. Np na podstawie komunikatów z serwera klient może zbudować i wyświetlać okna aplikacji. Serwer wysyła także do klienta zapytania SQL do źródeł danych, dzięki którym w oknach wyświetlają się dane. Sam serwer nie zadaje tych zapytań do BD. Robi to klient.

Podczas pracy użytkownika w danym oknie, klient wysyła do serwera komunikaty z informacjami o czynnościach jakie wykonuje użytkownik. Z niektórymi czynnościami mogą być stowarzyszone akcje C# w serwerze. Serwer wykonuje kod tych akcji i wysyła do klienta komunikaty z żądaniami zmian w wyglądzie lub zachowaniu okna, np. może zażądać pokazania lub ukrycia pewnych pól, rozwinięcia dodatkowych paneli, włączenia lub wyłączenia edytowalności wybranych kontrolek, itp. Klient jest aplikacją która nie rozumie ani nie steruje logiką biznesową, ani logiką zachowania okien. Jedynie wyświetla okna w taki sposób w jaki każe mu to zrobić serwer.

Dokładnie ta sama definicja aplikacji może być wyświetlona przez klienta grubego (VCL) jak i klienta WEB. Logika serwera działa tak samo, bez względu na to, jakiego typu klient jest podłączony.