Tworzenie serwisów OpenEdge cz. II

W poprzedniej części pokazałem jak stworzyć projekt oraz serwis OpenEdge. Teraz zajmiemy się utworzeniem logiki biznesowej aby wystawić przez ten serwis dane z bazy Progress.

W widoku Project Explorer klikamy prawym klawiszem myszy na podkatalog AppServer i wybieramy New -> Business Entity.

Tworzymy nową klasę obiektu biznesowego np. Customer. Pamiętajmy, że w nazwie rozróżnia się wielkość liter. Można opcjonalnie wypełnić pola Description i Purpose. Klikamy Next.

Ekran Select a schema file. Wybieramy aktywne połączenie z bazą danych oraz tabelę Customer. (W tym miejscu możemy zamiast połączenia z bazą wskazać przygotowany wcześniej plik schematu, w którym będzie zdefiniowany ProDataSet z kilkoma tabelami). Zauważmy listę operacji, jakie zostaną zdefiniowane w klasie. Domyślnie są to CRUD czyli: Create, Read, Update, Delete i takie zostawiamy.

Klikamy Finish.

Można zauważyć, że w projekcie pojawiły się nowe zasoby (podkatalog AppServer): plik klasy Customer.cls, plik customer.i z definicjami ProDataSeta dsCustomer oraz tablicy tymczasowej ttCustomer.

Plik Customer.cls zawiera gotowe metody dla operacji CRUD. Dane będą przekazywane między bazą OpenEdge a ProDataSetem. Możemy modyfikować te metody dla naszych potrzeb. Teraz jednak zostawiamy je w stanie domyślnym.

Teraz nowy obiekt biznesowy trzeba dodać do serwisu. Rozwijamy Defined Services i prawym klawiszem klikamy na Edit.

Ekran Edit an ABL Service. Nic tu nie zmieniamy. Next.

Ekran Create a Data Object service. Zaznaczamy zdefiniowane wcześniej zasoby, czyli klasę Customer. Zanotujmy składnię URI, przez którą będzie dostęp do naszych zasobów OpenEdge w serwisie REST. Finish.

W podkatalogu static został wygenerowany plik mobile6.json zawierający opis serwisu. Zajrzymy do niego za chwilę.

Otwieramy widok Servers i uruchamiamy naszą instancję appservera oepas1 . Może to potrwać kilka minut.

Po uruchomieniu appservera PAS wpisujemy w przeglądarce www link:

http://localhost:8810/mobile6/rest/mobile6Service/Customer

Widać, że udostępniliśmy tabelę Customer poprzez serwis REST.

Jeśli chcemy podejrzeć plik json, możemy go odszukać i otworzyć na dysku lub wpisać poniższy link:

http://localhost:8810/mobile6/static/mobile6Service.json

Następnym razem pokażę prosty przykład jak wykorzystać gotowy serwis z technologią Telerik.

Tworzenie serwisów OpenEdge cz. I

Chcę teraz napisać o tworzeniu serwisów typu REST, które są bardzo przydatne w integracji danych pochodzących z baz OE z nowym front-endem np. Rollbase, Telerik Kendo UI czy z urządzeniami mobilnymi.

Wspomniałem o tym w zeszłym miesiącu w artykule o JSDO.

Serwisy tworzymy w Progress Developer Studio for OpenEdge. Zakładam, że mamy skonfigurowane środowisko: w zakładce Servers widzimy : Pacific AppServer (domyślna nazwa oepas1)

oraz w Preferencjach mamy zdefiniowane połączenie z bazą danych sports (kopia bazy sports2000).

Gdyby były problemy z dojściem do tego miejsca, to bardzo proszę o wiadomość. Opis jest tutaj.

Proces tworzenia nieznacznie różni się od tego miejsca w OE 11.5 od OE 11.6. Najpierw zajmiemy się wersją OE 11.5.


Tworzymy nowy projekt OpenEdge (nazwa np. mobile5), wybieramy typ Mobile. Klikamy Next.

Pojawia się ekran Select AVM and Layout Options. Nic tu nie zmieniamy, klikamy Next.

Następny ekran: Define AppServer content module. Zaznaczamy, który serwer aplikacji będzie obsługiwał nasz serwis. Tutaj wybieramy PAS, czyli oepas1. (Gdybyśmy chcieli użyć tradycyjnego OE AppServera, to moglibyśmy wybrać restbroker1).

Zaznaczamy Publish changes immediately i Next.

Ekran Create a Mobile service. Upewniamy się, że zaznaczona jest opcja Create a Mobile service oraz jako Supported servers wybrany oepas1. Klikamy Next.

Ekran Create a Mobile App. Ponieważ nie budujemy aplikacji mobilnej, a jedynie serwis, odznaczamy tę opcję. Next.

Ekran Define PROPATH. Nic nie zmieniamy. Next.

Ekran Select database connections. Dodajemy do projektu istniejące połączenie z bazą danych (zdefiniowane wcześniej). Klikamy Next.

Ostatni ekran: Static Web Pages, zawiarający konfigurację folderów serwisu. Nic tu nie zmieniamy. Klikamy Finish. Tworzony jest nowy projekt.

Po utworzeniu powinniśmy zobaczyć zasoby projektu jak poniżej.


Teraz zrobimy to samo dla OE 11.6.

Tworzymy nowy projekt OpenEdge (nazwa np. mobile6), wybieramy typ ABL Web App (dla klasycznego AppServera wybieramy typ Data Object). Klikamy Next.

Ekran Provide ABL Web App deploy details.

Zaznaczamy Web Application: Deploy as WebApp, Sopported servers: oepas1 oraz Publish changes immediately. Klikamy Next.

Na ekranie Ceate an ABL Service zaznaczamy typ serwisu: Data Object (Annotated RPC) i klikamy Next.

Ekran Select AVM and Layout Options. Nic tu nie zmieniamy, klikamy Next.

Kolejny ekran Define PROPATH. Nic nie zmieniamy. Next.

Ekran Select database connections. Dodajemy do projektu istniejące połączenie z bazą danych. Klikamy Finish i czekamy aż serwis zostanie utworzony.

W drugiej części zajmiemy się wystawianiem danych z bazy OpenEdge poprzez utworzony serwis.

 

OpenEdge Pro2

Pro2
Kto z administratorów baz nie zna Dana Foremana – światowego guru w dziedzinie strojenia systemów baz OpenEdge? No, może nie wszyscy, ale z pewnością wielu, a to głównie za sprawą jego świetnych książek. Ja zwykle nie omieszkam wspomnieć o nich na kursach z administracji. Dan przez wiele lat pracował w firmie Bravepoint. Obecnie Bravepoint należy do Progressa a wspomniane podręczniki są dostępne na stronach bravepoint.com.

W zespole Bravepoint jest jeszcze kilka innych wybitnych i znanych postaci świata progressowego, ale o tym napiszę innym razem…

Teraz chcę nieco przybliżyć system Progress OpenEdge Pro2. Replikacja w ogóle może być realizowana na różne sposoby. Ci, którzy znają inny produkt OpenEdge Replication (Plus) wiedzą, że służy on do tworzenia kopii bazy danych w czasie niemal rzeczywistym, co ma skrócić czas braku dostępu do danych w wypadku awarii. Licencja Plus daje dodatkowo dostęp do replikowanej bazy w trybie Read-Only np. dla tworzenia raportów.

Pro2 nie jest rozwiązaniem typu Disaster Recovery. Daje ono jednak ogromne możlilwości replikowania danych w celu raportowania, przeprowadzania analiz, business intelligence, archiwizacji. Dane te mogą pochodzić z jednej lub kilku baz OpenEdge. Docelowa baza może być w technologii OpenEdge, SQL Server lub Oracle. Baz docelowych może być kilka przy czym każda może zawierać inne dane. Wszystko to dzięki elastyczemu systemowi definiowania i zarządzania procesem replikacji.

Replikowanie oparte jest na trygerach, które zapisują do kolejki tylko informacje o zmianach w rekordach.

Wybrane cechy produktu:

  • replikacja wszystkich typów danych 4GL
  • graficzna obsługa monitorowania i administrowania procesem
  • replikacja asynchroniczna
  • obsługa wielowątkowości
  • minimalne obciążenie I/O
  • minimalne obciążenie baz danych

Jeśli chcecie dowiedzieć się ze szczegółami jak działa Pro2 polecam obejrzeć poniższy film, zawierający bardzo dobre demo.

 

Więcej informacji znajdziecie tutaj:

http://www.bravepoint.com/products-pro2-replication-suite.shtml

http://pro2.progress.com/content/Pro2Benefits

https://www.progress.com/openedge/features/openedge-pro2