JADE (język programowania) - JADE (programming language)

Logo Jade Software Corporation

JADE to zastrzeżona platforma do tworzenia i wdrażania oprogramowania obiektowego firmy Jade Software Corporation z Nowej Zelandii , wydana po raz pierwszy w 1996 roku. Składa się z języka programowania JADE, zintegrowanego środowiska programistycznego i debugera , zintegrowanego serwera aplikacji i systemu zarządzania obiektową bazą danych .

Zaprojektowany jako środowisko programistyczne typu end-to-end, aby umożliwić kodowanie systemów w jednym języku od serwera bazy danych do klientów , zapewnia również interfejsy API dla innych języków, w tym .NET Framework , Java , C / C++ i usług internetowych .

Chociaż do rozwoju dostępna jest bezpłatna ograniczona licencja, korzystanie z platformy JADE wymaga uiszczenia opłat za proces.

Język

W składni JADE jest bardzo podobne do Pascala ; jego składnia jest oparta na języku Modula-2 , który wywodzi się z Pascala. Chociaż zawiera innowacje, których brakuje w Pascalu czy Modula-2, brakuje mu pewnych cech innych nowoczesnych języków zorientowanych obiektowo, takich jak C# i Java.

JADE jest w stanie importować i uruchamiać programy LINC 4GL i początkowo była jego podstawową rolą.

Model programowania

Podobnie jak wszystkie inne popularne języki programowania używane do tworzenia oprogramowania opartego na bazach danych, JADE jest w pełni zorientowany obiektowo . JADE zostało zaprojektowane tak, aby posiadało wszystkie najważniejsze cechy programowania obiektowego, ale nie wspierało przeciążania metod ani operatorów, a do Jade 2018 brakowało sparametryzowanych konstruktorów.

Klasy w JADE są przechowywane razem w schematach . Schematy służą temu samemu celowi, co pakiety Java lub przestrzenie nazw w .NET, ale mają hierarchię i dziedziczą klasy z superschematów. Staje się to przydatne zwłaszcza podczas programowania przy użyciu metodologii model–widok–kontroler , ponieważ klasy modelu można umieścić w jednym schemacie, a następnie klasy kontrolera i widoku można zbudować na podstawie klas modelu w podschemacie.

Struktura programu

Programy JADE są tworzone przy użyciu interfejsu użytkownika, który umożliwia programistom wizualne tworzenie klas oraz definiowanie ich właściwości i metod. Zamiast lokalizować metody w dużych plikach, programiści wybierają metodę, którą chcą edytować i wyświetlany jest tylko kod dla tej konkretnej metody. Ponadto zamiast kompilowania całego kodu programu na raz, w JADE każda metoda jest kompilowana indywidualnie, gdy tylko metoda zostanie ukończona, co oznacza, że ​​kod można sprawdzić natychmiast.

Cały kod aplikacji JADE jest przechowywany w jej obiektowej bazie danych. Pozwala to na rozwój wielu użytkowników, ponieważ baza danych utrzymuje kontrolę współbieżności, a każdy fragment kodu jest oddzielnym obiektem w bazie danych, często można przekodować system, gdy jest on aktywny i online, o ile części zmieniane systemy nie są używane.

funkcje

Głównym celem JADE było stworzenie bezproblemowo zintegrowany język programowania, który pozwoliłby programistom tworzenie jednej aplikacji, która pójdzie z end-to-end, zamiast napisać trzy oddzielne aplikacje dla serwera bazy danych , serwera aplikacji i klienta prezentacji , a następnie napisz kod, aby mogli się ze sobą komunikować.

Baza obiektów

Najbardziej uderzającą różnicą między JADE a innymi obiektowymi językami programowania jest to, że jego obiektowa baza danych jest natywną częścią jego języka. Na przykład podczas tworzenia obiektu w JADE można go utworzyć jako przejściowy lub trwały. Tworzenie obiektu jako przejściowego jest podobne do tworzenia obiektów w innych obiektowych językach programowania – obiekt jest po prostu tworzony w pamięci, a następnie tracony po zakończeniu programu. Z drugiej strony, gdy obiekt jest tworzony jako trwały , po zakończeniu programu obiekt nadal będzie istniał i będzie tam przy następnym uruchomieniu programu. Tak więc, gdy obiekt jest trwały, JADE automatycznie działa w tle, aby w razie potrzeby przechowywać i pobierać obiekt w bazie danych. Obiekty trwałe mogą być dystrybuowane na wiele współpracujących serwerów, a JADE automatycznie obsługuje buforowanie obiektów i spójność pamięci podręcznej.

Istnieje bardzo niewiele różnic między manipulowaniem obiektami przejściowymi i trwałymi, więc JADE sprawia, że wydaje się to programiście tak, jakby wszystkie obiekty w całej bazie danych znajdowały się w pamięci lokalnej. Przez większość czasu zorientowana obiektowo baza danych JADE jest używana w systemie wielu użytkowników, więc JADE sprawia, że ​​programista wydaje się, jakby wszystkie obiekty w bazie danych były przechowywane w pamięci współdzielonej, do której mają dostęp wszyscy użytkownicy podłączeni do systemu , nawet z różnych komputerów.

Ponieważ cały kod programu jest scentralizowany na serwerze bazy danych, a także dane, wszystkie węzły klienckie można zaprogramować tak, jakby działały na serwerze bazy danych.

Baza danych JADE jest z natury zorientowana obiektowo i zgodna z ACID i posiada wszystkie standardowe funkcje, takie jak transakcje atomowe, blokowanie, wycofywanie zmian, odzyskiwanie po awarii i możliwość utrzymywania jednego lub więcej serwerów pomocniczych baz danych zsynchronizowanych z główną bazą danych w celu tworzenia kopii zapasowych, odzyskiwanie po awarii i przyczyny wydajności.

Aby współpracować z relacyjnymi bazami danych na potrzeby raportowania, analizy biznesowej i hurtowni danych , JADE od 2010 r. udostępnia „usługę relacyjnej populacji”, która umożliwia automatyczne replikowanie obiektów z macierzystej bazy danych zorientowanej obiektowo na jedną lub więcej relacyjnych baz danych . Ta funkcja obsługuje Microsoft SQL Server w wersjach 2000, 2005 i 2008.

Model trzypoziomowy

Oprogramowanie oparte na bazie danych często wykorzystuje trójwarstwową metodologię, w której aplikacje są podzielone na trzy warstwy – przechowywanie, przetwarzanie i prezentacja danych. W warstwach przechowywania i przetwarzania danych systemy JADE są zbiorem współpracujących serwerów, zwanych węzłami , a wiele węzłów może być zaangażowanych w każdą warstwę. Każdy typ węzła ma inną nazwę i wszystkie są w stanie manipulować obiektami i wykonywać logikę biznesową. Kolekcję węzłów można wdrożyć na jednej lub kilku komputerach. Serwery baz danych obsługują przechowywanie danych, a także mogą realizować logikę biznesową, podczas gdy serwery aplikacji obsługują przetwarzanie. W modelu trójwarstwowym klienci prezentacji zapewniają interfejs użytkownika. JADE zapewnia również dwuwarstwowego klienta, który łączy możliwości serwera aplikacji i klienta prezentacji. Tradycyjnie te trzy poziomy byłyby tworzone przez połączenie trzech programów i komunikowanie się ich w jeden system. Posiadanie oddzielnych programów w ten sposób ma wiele zalet, główną z nich jest to, że system staje się skalowalny, to znaczy, że zwiększenie mocy systemu wymaga po prostu dodania większej liczby węzłów.

Projektowanie takiego systemu daje programiście decyzję do rozważenia za każdym razem, gdy chce kodować w określonej funkcji. Przed rozpoczęciem kodowania muszą zdecydować, czy funkcja będzie działać najlepiej na serwerze bazy danych, serwerze aplikacji lub kliencie prezentacji, ponieważ trudno będzie zmienić tę decyzję po zakodowaniu funkcji w jednej z warstw.

Inaczej jest w przypadku aplikacji JADE, ponieważ są one kodowane jako jedna aplikacja od początku do końca. Tworząc aplikację JADE, programista może myśleć tak, jakby tworzył program, który będzie działał na serwerze bazy danych – tak, jakby całe przechowywanie, przetwarzanie i prezentacja danych odbywało się na jednym komputerze. Gdy program działa na trzech warstwach, JADE automatycznie wie, że należy domyślnie uruchamiać cały kod na serwerze aplikacji i wysyłać żądania bazy danych do serwera bazy danych oraz informacje o interfejsie użytkownika do klienta prezentacji. Jednak programista może bardzo łatwo zmienić lokalizację, w której uruchamiana jest dana metoda, i przenieść ją do innej warstwy, zmieniając sygnaturę metody. Z tego powodu decyzja o tym, gdzie dany fragment kodu powinien być uruchamiany, może zostać podjęta na późnym etapie cyklu rozwojowego, a refaktoryzacja kodu w celu uruchomienia na różnych częściach systemu jest znacznie łatwiejsza ze względu na sposób, w jaki JADE umożliwia -koniec rozwoju oprogramowania.

Rodzaje klientów

Programiści mają możliwość umożliwienia trzem różnym rodzajom klientów łączenia się z systemem JADE. Te trzy typy klientów są nazwane:

  • JADE formularze
  • Dokumenty HTML
  • Usługi internetowe

W tym samym schemacie programista JADE może stworzyć wiele całkowicie oddzielnych aplikacji, które mogą udostępniać różne interfejsy dostępu do tej samej bazy danych.

JADE formularze

Jak sama nazwa wskazuje, aplikacje JADE Forms składają się z formularzy. Klienci muszą łączyć się za pośrednictwem cienkiego klienta JADE Smart lub klienta standardowego, aby móc uruchamiać aplikacje korzystające z formularzy JADE.

Smart Thin Client działa, łącząc się z serwerem aplikacji, który zazwyczaj wykonuje całe przetwarzanie w imieniu Smart Thin Client, co oznacza, że ​​cienki klient musi być tylko odpowiedzialny za wyświetlanie formularzy i wprowadzanie danych. Oznacza to, że komputer z uruchomionym cienkim klientem nie musi być bardzo wydajnym komputerem i nie wymaga szybkiego połączenia sieciowego, ponieważ nie ładuje danych z bazy danych – cienkie klienty JADE są często uruchamiane przez połączenie dial-up. Z tego powodu nazywa się je cienkimi klientami, ponieważ nie ma dużego zapotrzebowania na moc obliczeniową do obsługi tych klientów.

Klient standardowy to po prostu Smart Thin Client połączony z serwerem aplikacji na jednej maszynie. W takim przypadku węzeł, na którym działa klient, wykonuje całe przetwarzanie oraz prezentację. Klienci standardowi mają większe wymagania w zakresie mocy obliczeniowej niż klienci cienkościenni, ponieważ muszą ładować dane z bazy danych, a także samodzielnie przetwarzać dane.

Zalety korzystania z formularzy JADE to:

  • Spośród trzech rodzajów klientów JADE Forms zapewnia najkrótszy czas tworzenia aplikacji JADE.
  • Umożliwia programistom korzystanie z tej samej technologii od końca do końca.
  • Inteligentne cienkie klienty można spakować w taki sposób, aby można je było zainstalować i uruchomić na komputerach klienckich kilkoma kliknięciami.

Wady to:

  • Nie można dotrzeć do odbiorców na całym świecie, jak jest to możliwe w sieci WWW.

JADE Forms mają jednak ciekawy zwrot. W rzeczywistości możliwe jest uruchomienie aplikacji JADE Forms przez przeglądarkę internetową, zmieniając jej tryb na web-enabled . Kiedy tak się dzieje, JADE automatycznie generuje kod HTML, aby tworzyć strony przypominające formularze i kontrolki , bez żadnych modyfikacji kodu. Jest to bardzo szybki sposób dla programistów, którzy nie są kompetentni w HTML i innych technologiach internetowych, aby dostarczyć program przez sieć.

Dokumenty HTML

JADE wspiera wdrażanie aplikacji w sieci poprzez funkcję dokumentów HTML. Działają one bardzo podobnie do ASP.NET, gdzie programiści tworzą szablony stron HTML i pozostawiają części w szablonie do wypełnienia przez program.

Zalety korzystania z dokumentów HTML to:

  • Umożliwia aplikacji dotarcie do odbiorców na całym świecie.

Wady to:

  • Gdy aplikacje JADE używają dokumentów HTML, nie używają już tej samej technologii od początku do końca. Sprawdzenie w interfejsie systemu może odbywać się na przykład za pomocą JavaScript.
  • Przenoszenie części przetwarzania na klientów frontonu nie jest już tak łatwe ani bezpieczne.

usługi internetowe

Usługi sieci Web służą do umożliwienia różnym programom komunikowania się ze sobą ze zdalnych lokalizacji w formie zorientowanej obiektowo. Użytkownicy nie mogą uzyskać bezpośredniego dostępu do usług sieci Web. Jednym z zastosowań usług internetowych z JADE jest umożliwienie innym technologiom, takim jak .NET lub Java, używania JADE jako zorientowanej obiektowo bazy danych zaplecza. Usługi sieciowe pozwalają również systemom JADE na współdziałanie z usługami dostarczanymi przez inne systemy inne niż JADE.

Interoperacyjność

Oprócz usług sieci Web, JADE może również łączyć się z innymi programami za pośrednictwem interfejsów API języka (w tym .NET, Java, C/C++), wywołań DLL, obiektów ActiveX/COM i zestawów .NET. Pozwala to innym programom na dostęp do obiektów i wykonywanie metod, a także może służyć do zapewnienia innego interfejsu do aplikacji JADE. JADE 6.2 zapewniał Java API, integrację .NET Assembly i możliwość uruchamiania Smart Thin Clients na urządzeniach z systemem Windows Mobile. JADE 6.3 zapewnia API dla języków .NET.

Umiejętności wielojęzyczne

JADE natywnie obsługuje programy wielojęzyczne . Robi to na kilka sposobów:

  • Ciągi znaków można oznaczyć jako możliwe do przetłumaczenia , co oznacza, że ​​będą się zmieniać w zależności od bieżącego języka.
  • Można stworzyć wiele wersji tego samego formularza dla każdego języka. Oznacza to, że interfejsy mogą wyglądać zupełnie inaczej w zależności od języka.
  • Deweloper ma dostępne metody dostępu do bieżącej lokalizacji systemu, dzięki czemu może zaimplementować własne funkcje zależne od języka.

JADE automatycznie przełączy się na język, który wykryje w systemie, jeśli język jest dostarczony przez programistę.

Ruchliwość

Obecnie aplikacje JADE można uruchamiać tylko w systemie Windows, zrezygnowano z obsługi Linuksa. JADE 6.2 umożliwia uruchamianie inteligentnych cienkich klientów i wyspecjalizowanego klienta standardowego na urządzeniach Windows Mobile.

Przykłady kodu

W tej sekcji znajduje się kilka krótkich przykładów kodu JADE.

Witaj świecie!

To jest „Witaj świecie!” kod w JADE:

helloWorld();

begin
   app.msgBox("Hello, World!", "Hello, World!", MsgBox_OK_Only + MsgBox_Information_Icon);
end;

lub

helloWorld();

begin
   write "Hello, World!";
end;

Historia

JADE został pierwotnie wymyślony przez Sir Gilberta Simpsona, a obecnie jest rozwijany przez Jade Software Corporation.

Pierwszą wersją JADE była JADE 3, wydana we wrześniu 1996 roku.

Obecna wersja to JADE 2020, zastępująca JADE 2018

Zobacz też

Bibliografia

Linki zewnętrzne