www.tres.pl - Baza wiedzy Trawers ERP - Spis treści


SOA Architektura wymiany danych 1. Koncepcja i zastosowanie 1.1 Koncepcja 1.2 Opis funkcji w języku WSDL 1.3 Zastosowanie funkcji SOA 2. Poznawanie usług SOA 3. Uruchamianie usługi SOA 3.1 Serwer SOA 3.2 Linia poleceń 4. Przykłady, opisy użycia, skrypty 5. Sprawdzanie poprawności usług SOA Przykłady i ćwiczenia Skrypty testujące Zapisy do logu 6. Wstawianie do programu pozycji dokumentów 7. Kierunki rozwoju funkcji SOA 8. Przykład użycia SOA 9. Tematy powiązane 10. Kurs szkoleniowy 1. Koncepcja i zastosowanie 1.1 Koncepcja SOA (en: Service Oriented Architecture), to architektura zorientowana na usługi. SOA pozwala na wymianę informacji i integracje z innymi systemami informatycznymi. Integracja z innymi systemami o=======================o o----------------o | | | Sklep | | | o----->| internetowy | | o---------------o SOA (TCP/IP) | o----------------o | | Serwer HTTP |<-------------------o | o---------------o | | | | o----------------o | Trawers ERP | o----->| Terminal na | | | | | produkcji | | o---------------o | o----------------o | | AutoRun | SOA (pliki xml) | | | (przetwarzanie|<-------------------o | | wsadowe) | | o----------------o | o---------------o o----->| Dokumenty EDI | | | | o----------------o o=======================o | o-----> * Raportowanie automatyczne * WOE Zamówienia internetowe * ... Warstwy architektury SOA o> <o | o---------------------------o | Prezentacja | | Interfejs użytkownika | | Dialog | | np. HTML, CSS, JavaScript | | | o-------------o-------------o | Klient SOA | | | o> | | Program używający o> | | funkcji SOA Trawers | o-------------o-------------o | np. sklep internetowy Komunikacja | | np. PHP (SoapClient) | | | | Serwer HTTP | | | o-------------o-------------o | | | | | | <o | | <o | o-------------o-------------o | | | Trawers Serwer SOA | | Dostawca SOA | o---------------------------o | o> <o Program Trawers posiada rozwiązania pozwalające na świadczenie wybranych usług. Konsument (obcy system) wysyła do Dostawcy (Trawers) komunikat z parametrami, z żądaniem usługi. Trawers wykonuje usługę i odsyła wynik. Trawers traktowany jest przez systemy zewnętrzne jako czarna skrzynka (en: Black Box) Wymianę danych można zapoczątkować: * Z linii poleceń systemu operacyjnego (en: Command-Line) Program zewnętrzny może tworzyć i odbierać pliki XML bezpośrednio w katalogach wymiany. Gdy oczekiwany jest inny format, to plik trzeba przekształcić przy pomocy xslt. AutoRun Procesy automatyczne * Jako usługa internetowa (en: WebServices) SOA Serwer internetowy Komunikacja odbywa się przez TCP/IP, wymiana zapytań i odpowiedzi następuje przy użyciu strumieniowych danych XML 1.2 Opis funkcji w języku WSDL Web Services Description Language (WSDL), to jest język oparty na XML do definiowania usług sieciowych. Opisu funkcji i danych. Usługi SOA dostępne w programie Trawers opisane są w języku WSDL. Plik z opisem jest pod adresem: localhost:7000/TrawersSOA.wsdl Plik opisuje dostępne funkcje i ich parametry. Przy użyciu popularnych edytorów można plik zapisać i przeglądać w postaci czytelnej tabelki. Plik zapisany jest w stylu 'Document/literal wprapped'. Używa przestrzeni nazw (en: Namespace) do rozróżniania elementów. http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/ Podgląd WSDL Dane wymieniane przez usługi opisane są w pliku XSD (XML Schema Definition). Są tam definicje struktur pytań i odpowiedzi w standardzie XML Schema. Plik XSD jest pod adresem: localhost:7000/TrawersSOA.xsd Pliki są dostępne po uruchomieniu funkcji: AD > Trawers > Usługi SOA > SOA Serwer internetowy [AD_PSOA2] Plik WSDL tylko informacyjny NOTE: Opublikowany plik WSDL ma charakter informacyjny. Nie może służyć do automatyzacji wykorzystania usług SOA programu Trawers. Ograniczamy się do publikowania pliku WSDL, lecz nie weryfikujemy jego poprawności, w szczególności użycia definicji WSDL w różnych kontekstach programistycznych (języki, algorytmy). W miarę możliwości reagujemy na zgłoszenia problemów, lecz nie zapewniamy skutecznych rozwiązań, gdyż wiele czynnikow wpływających na poprawność leży poza nami, np. dialekty WSDL, specyfika programów interpretujących. Tworzyć i interpretować pliki wymiany XML Funkcje (usługi) SOA należy wykonywać przy użyciu plików wymiany XML. Nie należy korzystać z automatów bazujących na WSDL. Funkcje SOA opisane są tutaj: SOA Funkcje (usługi) SOA Przykłady rozwiązań SOA Serwer internetowy SOA Przykłady i ćwiczenia SOA Programy w Python i PHP 1.3 Zastosowanie funkcji SOA Funkcje (usługi) SOA pozwalają na współpracę (wymianę danych) programu Trawers ERP z innymi programami. * Mobilne systemy sprzedaży Integracja z internetem * Systemy zbierania zamówień bezpośrednio u klientów RA Zdalny dostęp kontrahentów WOE Zamówienia internetowe * Sklepy internetowe Integracja z internetem. B2B. B2C * Integracja z internetem. Google Integracja z internetem. Google * Inne programy, które pobierają dane i wpisują je do programu Trawers Wymiana danych z innymi programami Przy zastosowaniu funkcji SOA, integratorzy i twórcy interfejsów wymiany danych, nie muszą znać wewnętrznych rozwiązań w programie Trawers, np. struktury bazy danych, relacji pól (kolumn), algorytmów obliczeniowych. Dla nich Trawers jest czarną skrzynką, z którą kontaktują się poprzez funkcje SOA. Wysyłają zapytania i otrzymują odpowiedzi. Oba komunikaty, wejściowy i wyjściowy, są precyzyjnie zdefiniowane. Architektura SOA zapewnia, że użytkownik nie musi obawiać się, że współpracujące programy zewnętrzne przestaną pracować po zainstalowaniu nowego wydania programu Trawers, w którym, np. zmieniono strukturę bazy danych. Niezależnie od zakresu zmian wewnątrz programu, funkcje SOA będą mogły dalej pracować. Istotną zaletą użycia SOA jest to, że funkcje i aplikacje zewnętrzne komunikują się bezpośrednio (on-line) z bazą danych Trawersa. Nie ma potrzeby wielokrotnego wprowadzania danych. Np. wprowadzone on-line zamówienia sprzedaży mogą być natychmiast przetwarzane w programie Trawers. Można natychmiast przygotować wysyłkę, wystawić fakturę, zarejestrować płatność. 2. Poznawanie usług SOA Przykłady zapytań i odpowiedzi (pliki XML) znajdują się w programie, w funkcji: AD > Trawers > Usługi SOA > SOA Przykłady usług (ćwiczenia) (dane branżowe: MT Meble tapicerowane) SOA Przykłady i ćwiczenia Integracja usług wymaga określonej wiedzy programistycznej i dla osoby bez doświadczenia w tej dziedzinie może okazać się zbyt pracochłonna. W razie problemów można skorzystać z konsultacji naszych Partnerów specjalizujących się w usługach SOA: Partnerzy i Konsultanci 3. Uruchamianie usługi SOA Usługi można uruchomić na dwa sposoby: 1. Serwer SOA. Wymiana strumieni zapytań i odpowiedzi. 2. Linia poleceń. Wywołanie zapytania ręcznie lub w AutoRun. 3.1 Serwer SOA W oddzielnej funkcji: AD > Trawers > Usługi SOA > SOA Serwer internetowy [AD_PSOA2] odbywa się komunikacja przez TCP/IP i wymiana zapytań i odpowiedzi przy użyciu strumieniowych danych XML. Zalety: - Jest automatyczna wymiana danych między aplikacją zewnętrzną a programem Trawers - Nie trzeba tworzyć ręcznie plików wejściowych i wyjściowych XML - Analizę problemów może przejąć oprogramowanie - Wymiana danych może odbywać sią bez przerwy (24/7) - Można jednocześnie przetwarzać wiele zapytań - Serwer SOA zdejmuje tylko jedną sesję z puli sesji. Zajmuje jedną sesję na stałe. Sesje można zwolnić wyłączając serwer SOA (kill) po przetworzeniu zapytania. Następnie włączyć. Wady: - trzeba zapewnić łącze internetowe i uruchomić serwer SOA - trzeba pielęgnować (rozwijać i aktualizować) oprogramowanie sterujące wymianą danych Rada: - Rekomenduje się serwer SOA. Serwer SOA może zastąpić linię poleceń Linia poleceń nie zastąpi serwera SOA. SOA Serwer internetowy 3.2 Linia poleceń Z linii poleceń systemu operacyjnego wywołuje się proces: AD_PSOA1 z parametrami. * Proces wykonuje (wywołuje) usługę SOA * Można go uaktywnić ręcznie lub w trybie AutoRun. Nie ma pozycji w menu AutoRun Procesy automatyczne * Proces pobiera jedną sesję z puli sesji programu Zarządzanie sesjami NOTE: wywołanie z linii poleceń można zastąpić np. programem curl Np. pobranie danych z linii poleceń z serwera SOA linux i windows: curl localhost:7000 -H 'SOAPAction: TrawersSOA' -d input.xml > output.xml Zalety: - Nie trzeba zapewniać łącza internetowego i uruchamiać serwera SOA - Pliki wejściowe i wyjściowe XML można tworzyć ręcznie w edytorze tekstowym Wady: - Nie ma automatycznej wymiany danych między aplikacją zewnętrzną a programem Trawers - Ew. problemy trzeba analizować ręcznie wg zapisów w pliku XML - Wymiana danych odbywa się w godzinach pracy operatorów - Każde zapytanie zdejmuje jedna sesję z puli sesji. Trzeba zapewnić (zarezerwować) tyle sesji ile może być jednocześnie zapytań. Po przekroczeniu liczby sesji kolejne zapytanie nie będzie przetworzone - Trudno jest za pomocą skryptów zarządzać pracą poszczególnych procesów. Pliki in/out muszą mieć unikalne nazwy. Rada: - Rekomenduje się serwer SOA. Przykład wywołania z linii poleceń ---------------------------------- Potrzeba: Uzyskać (export) dane kartoteki odbiorców z programu Trawers Realizacja: Wysłać zapytanie do programu Trawers o zestawienie zawierające dane wszystkich odbiorców znajdujących sie w kartotece odbiorców. Kolejne kroki: 1. W katalogu: /trtres/trinout umieścić plik zawierający zapytanie: Plik input.xml - zapytanie bez parametrów -------------- <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <soap:Header/> <soap:Body> <CUSTOMERS/> </soap:Body> </soap:Envelope> Plik input.xml - zapytanie z parametrem: changeSince -------------- <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <soap:Header/> <soap:Body> <customers> <changeSince>2016-07-01T12:00</changeSince> </customers> </soap:Body> </soap:Envelope> W pliku xml znajduje się nazwa funkcji SOA: CUSTOMERS Jej zadaniem jest odesłać komunikat z danymi z kartoteki odbiorców. 2. Wywołać proces AD_PSOA1, tzn. wywołać program, tu: tr5x.exe, z parametrami. $TR_DIR/bin/tr5x.exe --operator=AA --firma=FP --oddzial=00 \ --proces=AD_PSOA1 --input=input.xml --output=output.xml Parametry: --operator=AA symbol operatora --firma=FP symbol firmy --oddzial=00 \ nr oddziału --proces=AD_PSOA1 proces, tu: wykonanie funkcji SOA --input=input.xml nazwa pliku wejsciowego (patrz wyżej) --output=output.xml nazwa pliku wyjsciowego 3. W katalogu /trtres/trinout odebrać plik output.xml zawierający odpowiedź, tu: dane odbiorców Plik output.xml (przykładowa odpowiedź) --------------- <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header/> <soap:Body> <customers> <customer> <fax/> <key>000001</key> <nip>141-121-15-11</nip> <tel/> <vat>true</vat> <zip>81-370</zip> <city>Gdynia</city> <code>000001</code> <mail/> <name>Odbiorca 1</name> <note/> <type>RECIPIENT</type> <person/> <street>Kwiatowa</street> <enabled>false</enabled> </customer> <customer> <fax/> <key>000002</key> <nip>222-222-22-22</nip> <tel/> <vat>true</vat> <zip>81-371</zip> <city>Gdynia</city> <code>000002</code> <mail/> <name>Odbiorca 2</name> <note/> <type>RECIPIENT</type> <person/> <street>Morska 2</street> <enabled>false</enabled> </customer> </customers> </soap:Body> </soap:Envelope> Odebrany plik output.xml trzeba usunąć przed kolejnym wywołaniem polecenia SOA. Program nie nadpisze istniejącego pliku output.xml 4. Przykłady, opisy użycia, skrypty Skrypty i opisy użycia ---------------------- W katalogu https://ftp.tres.pl/integracja/soa/ są skrypty i opisy użycia: opis-soa.txt i webservice.txt (patrz też niżej) Skrypty wysyłają przykładowe pytania do Trawersa i odbierają odpowiedzi Jest tam też przykład pobierania zamówienia i zapłaty przez Trawers 5. Sprawdzanie poprawności usług SOA Przykłady i ćwiczenia Sprawdzanie poprawności zapytań i odpowiedzi (pliki XML) warto zacząć na danych przykładowych demo firmy: MT Meble Tapicerowane Przyklady zapytań i odpowiedzi są w programie, w funkcji: AD > Trawers > Usługi SOA > SOA Przykłady usług (ćwiczenia) [AD_PSOA3] SOA Przykłady i ćwiczenia Można zmieniać treść zapytań w plikach XML i analizować odpowiedzi SOA Skrypty testujące Skrypty testujące znajdują się: * w https://ftp.tres.pl/integracja/soa * w katalogu programu, np. /opt/trawers5/soa (zapisywane są podczas instalowania programu) Prace przygotowawcze w środowisku Linux: 1. Skrypt: /opt/trawers5/soa/testsoa.sh Sprawdzić, czy zmienne środowiskowe w skrypcie wskazują na właściwe podkatalogi export TR_DIR=/opt/trawers5/dane - katalog z danymi export TR_DIRSOA=/opt/trawers5/soa - katalog ze skryptami soa export TR_OPERATOR=AA - operator export TR_FIRMA=HA - firma export TR_BROWSER=firefox - przeglądarka www 2. Wywołać skrypt testujący: testsoa.sh Wyniki przetwarzania, tj. odpowiedź Trawersa powinna pokazać się we wskazanej przeglądarce www, w formacie HTML 3. Dodatkowo, można wywołać przykładowe zapytania i wstawiania danych, które znajdują się w katalogu: /opt/trawers5/soa/zapytania Podczas wstawiania danych trzeba przestrzegać zasad: np. gdy w poleceniu wstawiania zamówienia jest zapis: <productKey>10100001</productKey> to symbol: 10100001 musi znajdować się w kartotece KIM Zapisy do logu Log, to jest historia (kronika) zdarzeń w programie, wykrytych błędów i problemów Kronika operacji (log) Informacje o operacjach SOA program zapisuje w logu: (trzeba oznaczyć parametry sterujące - poziomy logu) * 0813 [1] Komunikaty Autorun i SOA (poziom logu 13) Zapisywać komunikaty i raporty procesów AutoRun i SOA * 0822 [2] Operacje na załącznikach (poziom logu 22) Zapisywać: usuwanie, zmiany grupy, załączanie do e-maili i wydruków, pobieranie przez SOA, zapisywanie w \trinout oraz wyświetlanie załączników Dodatkowo, sytuacje dotyczące błędów związanych m.in. z SOA program zapisuje z poziomem logu: 99. Nie trzeba oznaczać, program zawsze zapisuje do logu informacje o błędach. Parametry ogólne 01xx 02xx 03xx Informacji o problemach należy szukać w logu oraz w pliku wynikowym zwracanym przez funkcje SOA. 6. Wstawianie do programu pozycji dokumentów Przy pomocy funkcji SOA można wstawiać (dopisywać) dokumenty (transakcje). Np. funkcja wstawienia (en: InBound) dokumentu magazynowego [RO] Rozchód [InventoryIssue]. SOA Funkcje (usługi) Funkcja wstawia (dopisuje) pozycje dokumentu pojedynczo. Numery pozycji można podać w parametrach funkcji lub program nada kolejne. Numer dokumentu można podać w parametrach funkcji lub zlecić numerowanie automatyczne. Z wykorzystaniem tabeli serii dokumentów. Numerowanie dokumentów Dopisywanie pozycji dokumentu via SOA można porównać do dopisywania pozycji dokumentu podczas rejestracji ręcznej (jeden ekran, to jedna pozycja dokumentu) i rejestracji z pliku CSV (jeden wiersz pliku CSV, to jedna pozycja dokumentu). Funkcje SOA dają natychmiastową odpowiedź. Programy przetwarzające dane mogą od razy wykonać usługę i odesłać wynik. To umożliwia przetwarzanie danych na bieżąco (en: Real-Time). Mechanizmy wewnętrzne programu zapewniają poprawność zapisu pozycji dokumentu we wszystkich zbiorach i kartotekach powiązanych. Zastosowano mechanizm transakcyjności (Roll-forward recovery REDO) i procedury restartu w celu zapewnienia integralności bazy danych. Zarządzanie bazą danych Mechanizm transakcyjności zapewnia poprawność zapisu jednej pozycji dokumentu wstawianej do bazy danych funkcją SOA przez aplikację zewnętrzną. Dokumenty zewnętrzne wstawiane do bazy danych, np. dokumenty rozchodu magazynowego są często wielo-pozycyjne. P. Czy mechanizm SOA nadzoruje i zapewnia poprawność zapisu wszystkich pozycji dokumentu ? Np. Czy można zrealizować oczekiwanie: zapisz dokument, gdy wszystkie pozycje można zapisać poprawnie albo wogóle nie zapisuj dokumentu (żadnej pozycji). O. Nie. Mechanizm SOA nie nadzoruje zapisu wielu pozycji jednego dokumentu. Nadzoruje i zapewnia poprawność zapisu tylko jednej pozycji dokumentu wielo-pozycyjnego. W procesach i algorytmach aplikacji zewnętrznej powinno się uwzględnić, że SOA nadzoruje i zapewnia poprawność jeden pozycji dokumentu. Np. przed wywołaniem funkcji zapisu pozycji powiązanej z pozycja poprzedzającą, sprawdzić czy poprzedzająca została poprawnie zapisana. 7. Kierunki rozwoju funkcji SOA * Raporty przekrojowe * Statusy zamówionych wyrobów * Konfigurator produktów Patrz: [NA_DXML1] z konfiguracją produktu * Płatności zdalne * Aplikacje rekrutacyjne * Serwisowanie maszyn i urządzeń * Zarządzanie zapasami przez dostawców * Pobieranie zamówień z różnych źródeł, np. serwisów aukcyjnych * Rejestrowanie zgłoszeń serwisowych * Rejestrowanie reklamacji * Kolejne komunikaty EDI 8. Przykład użycia SOA W przykładzie używa się SOA (w systemie Linux) aby wyświetlić w przeglądarce internetowej dane pobrane z Trawersa. Elementy przykładu znajdują się w katalogu: https://ftp.tres.pl/integracja/soa Aby uruchomić przykład SOA, należy przegrać zawartość /integracja/soa na dysk lokalny a następnie ustawić parametry wywołania w skrypcie: testsoa.sh export TR_DIR=/trawers/dane/tr5x - katalog z danymi export TR_DIRSOA=/integracja/soa - katalog z przykładem SOA export TR_OPERATOR=AA - operator export TR_FIRMA=FP - firma export TR_BROWSER=firefox - przeglądarka internetowa i wywołać ten skrypt. Katalog /soa zawiera: /zapytania - pliki xml zawierające zapytania w formacie obsługiwanym przez Trawers /xslt - arkusze transformacji z xml do html /wyniki - tutaj skrypty zapisują wyniki /php - przykłady wywołania funkcji SOA w języku PHP testsoa.sh - skrypt testujący tr-pytanie.sh - skrypty pomocnicze tr-pytanieSH.sh tr-soa.sh tr-wczytajdane.sh 9. Tematy powiązane SOA Funkcje (usługi) SOA Serwer internetowy SOA Przykłady i ćwiczenia SOA Programy w Python i PHP Kronika operacji (log) Integracja z internetem Komponenty technologiczne Zmienne środowiskowe 10. Kurs szkoleniowy I200 Integracja: SOA Integracja danych API Wykłady i ćwiczenia dotyczące wymiany danych z innymi programami przy użyciu funkcji usług sieciowych SOA. * SOA Opis ogólny * Budowa i przykłady komunikatów * Polecenia pobrania z programu Trawers (en: OutBound) Stany zapasów, karty odbiorców i dostawców, dokumenty transakcyjne * Polecenia wstawienia do programu Trawers (en: InBound) Zamówienia sprzedaży, karty indeksów, karty odbiorców i dostawców * Przykłady i ćwiczenia (pre-definiowane komunikaty do ćwiczeń) * SOA Serwer internetowy. Przykłady użycia


www.tres.pl - Baza wiedzy Trawers ERP - Spis treści

Polityka prywatności Ustawienia Cookies