XML w elektronicznej wymianie dokumentów i integracji aplikacji
Geneza elektronicznej wymiany danych (EDI) Problemy z automatyzacją procesów między przedsiębiorstwami. „Izolowane wyspy” Przedsiębiorstwa najpierw automatyzują wewnętrzne procesy wymiany dokumentów. Połączenie między przedsiębiorstwami nie jest jednak zwykle możliwe bezpośrednio, ze względu na różne platformy sprzętowe, aplikacje i formaty danych. Dlatego wymiana dokumentów między przedsiębiorstwami pozostaje w postaci tradycyjnej – papierowej. Różne rodzaje „zygzaków” reprezentują różne formaty kodowania informacji (komunikatów). 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Pojedyncze rozwiązania Wielka korporacja dostarcza kontrahentom narzędzia dostosowujące do własnego formatu. Wielka korporacja wymusza na kontrahentach dostosowanie do swojego formatu. Schemat przedstawia drugi z wymienionych wariantów, w którym konwersję implementuje mniejszy kontrahent. 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Standardy EDI Standard EDIFACT – United Nations Standard Messages Directory for Electronic Data Interchange For Administration, Commerce and Transport. ANSI Accredited Standards Committee X12 sub-group. Standard Dlatego opracowano standardowe metody kodowania i przesyania komunikatów EDI. EDIFACT jest rozpowszechniony w Europie, zaś X12 jest bardziej popularny za oceanem. Wykorzystanie standardu wymaga zastosowania konwerterów – ale tym razem tylko jednego na system. Konwertery są zwykle dostarczane wraz z systemami klasy ERP. 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
EDIFACT – przykład: Details of Transport 8051 TRANSPORT STAGE QUALIFIER M an..3 8028 CONVEYANCE REFERENCE NUMBER C an..17 C220 MODE OF TRANSPORT C 8067 Mode of transport, coded C an..3 8066 Mode of transport C an..17 C228 TRANSPORT MEANS C 8179 Type of means of transport identification C an..8 8178 Type of means of transport C an..17 C040 CARRIER C 3127 Carrier identification C an..17 1131 Code list qualifier C an..3 3055 Code list responsible agency, coded C an..3 3128 Carrier name C an..35 8101 TRANSIT DIRECTION, CODED C an..3 C401 EXCESS TRANSPORTATION INFORMATION C ... C222 TRANSPORT IDENTIFICATION C 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
EDIFACT – przykład: 8051 Transport stage qualifier 1 Inland transport 2 At the statistical territory limit 10 Pre-carriage transport 11 At border 12 At departure 13 At destination 20 Main-carriage transport 21 Main carriage - first carrier 22 Main carriage - second carrier 23 Main carriage - third carrier 30 On-carriage transport 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
EDIFACT – fragment komunikatu TDT+20+57EP12+1++HLC:172:20+++8407319:146::HAMBURG EXPRESS:DE’ RFF+VM:DIHE’ RFF+VON:51WP11’ FTX+TRA+++CEE-CHINA EUROPE EXPRESS LOOP 4’ FTX+AAI+++MASTER PETER SUNSHINE’ 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Nowa EDI Pomysł: zakodować strukturę dokumentu EDI przy pomocy elementów XML. <faktura> <dostawca> <nazwa>empolis Polska sp. z o.o.</nazwa> <adres>ul. Płocka 5a</adres> <kod>01-231</kod> <miasto>Warszawa</miasto> </dostawca> ... </faktura> N1*BY*92*1287 N1*ST*92*87447 N1*ZZ*992*1287 PO1*1*1*EA*13.33**CB* 80211*IZ*364*UP*718379271641 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Tradycyjna EDI – XML EDI Format dokumentów zapisany w specyfikacji. „Samoopisujący się” format dokumentów. Zwięzłe komunikaty, zawierające tylko niezbędne dane. Rozwlekłe komunikaty – narzut na „samoopisywanie się”. Scentralizowana, trudna zmiana standardu. Możliwość tworzenia własnych odmian standardów. Zmiany standardu pociągają uciążliwe zmiany oprogramowania. Większość problemów ze zmianą standardu bierze na siebie parser XML. Komunikaty EDIFACT zawierają jedynie dane, oddzielone od siebie odpowiednimi separatorami. Znaczenie każdej danej jest opisane w specyfikacji. Komunikaty EDIFACT są więc stosunkowo zwięzłe. W przeciwieństwie do nich, dokumenty XML zawierają nazwy elementów i atrybutów, które są w pewnym sensie informacją nadmiarową, powodującą rozwlekłość komunikatu. Dzięki temu XML jest jednak bardziej elastyczny i odporny na zmiany, bowiem aplikacje korzystające z komunikatów XML nie muszą mieć „zakodowanej w sobie” specyfikacji formatu komunikatu, lecz mogą być sparametryzowane strukturą komunikatu zawartą w samej jego treści. 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Tradycyjna EDI – XML EDI Przetwarzanie przez specjalne aplikacje Interakcja przy pomocy przeglądarki Implementowanie od podstaw Możliwość korzystania z gotowych narzędzi Łącza dedykowane dla EDI (Value Added Networks) Internet + bezpieczne protokoły Możliwość integracji z tradycyjnymi systemami EDI Tradycyjne dokumenty EDI wymagają specjalnych aplikacji do ich przetwarzania, z reguły pisanych od zera. W przypadku XML EDI, możemy wykorzystać istniejące parsery XML-a i inne moduły programistyczne wspierające przetwarzanie dokumentów XML. Tradycyjna EDI jest zwykle realizowana na dedykowanych łączach, tzw. Value Added Networks (VAN). Dostawca takich łącz dzierżawi je zwykle od korporacji telekomunikacyjnej, dodając usługi takie jak wykrywanie błędów, bezpieczeństwo komunikatów. Takie usługi są kosztowne, w przeciwieństwie do Internetu, za który i tak się płaci, niezależnie od tego, czy korzysta z niego EDI. 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Elastyczność XML EDI empolis Polska <firma nazwa=”empolis Polska” adres=”Płocka 5a” kod=”01-231” miasto=”Warszawa” email=”empolis@empolis.pl” /> <firma nazwa=”empolis Polska” email=”empolis@empolis.pl” /> empolis Polska Adres: Płocka 5a Kod: 01-231 Miasto: Warszawa Tel. Pewne zmiany w ustalonym formacie danych mogą się obejść bez jakichkolwiek poprawek oprogramowania. Przykład: można stosować różne zestawy atrybutów opisujących firmę. Dodanie nowego atrybutu email nie powoduje błędnego działania aplikacji, która takiego atrybutu nie oczekuje – jest on przez nią ignorowany. <firma nazwa=”empolis Polska” adres=”Płocka 5a” miasto=”Warszawa” /> 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
XML EDI a przeglądarki internetowe Najnowsze wersje przeglądarek wspomagają wyświetlanie dokumentów XML. XSL jako język opisu formatowania. Nowe zastosowanie EDI: podstawowa funkcjonalność – wymiana danych między aplikacjami przedsiębiorstw, nowe perspektywy: kontakt z klientami wyposażonymi tylko w przeglądarki, E-Commerce. Dzięki przeglądarkom można myśleć o wykorzystaniu technologii XML EDI wszędzie tam, gdzie klient nie zawsze jest wyposażony w systemy komputerowe wspierające EDI, a więc np. w sklepach internetowych, w firmach kurierskich (klient śledzi drogę przesyłki), itp. 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Inicjatywy standaryzacji XML-EDI XML jest zbyt elastyczny. Inicjatywy standaryzacyjne: ogólne – dążą do ukierunkowania tej elastyczności, aby: można było wymieniać informacje dowolnego typu, informacje jednego typu były tak samo reprezentowane; np. Electronic Business XML – ebXML; branżowe – standaryzują konkretne komunikaty: SWIFT, RosettaNet, Automotive Industry Action Group, Health Level Seven, Open Travel Alliance, ... XML pozwala zamodelować i zakodować wszystko. Niestety, ten sam byt można zakodować na wiele sposobów, różniących się choćby nazwami elementów. Inicjatywy w różny sposób próbują ograniczyć tą dowolność, która w końcu może przeszkadzać w integracji. Inicjatywy tego typu dość intensywnie pączkują, tworzą się i upadają. Wśród inicjatyw ogólnych, nie związanych z konkretną branżą, najważniejsza to ebXML. XML 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
ebXML ebXML: Electronic Business XML Working Group: zbiór specyfikacji definiujących sposób prowadzenia biznesu i wymiany danych przez Internet, zaakceptowane 14 maja 2001 r., oczekiwane implementacje i wsparcie w istniejących systemach, wsparcie przez inne inicjatywy standaryzacyjne. Electronic Business XML Working Group: założona we wrześniu 1999 r., ok. 150 specjalistów, patronat OASIS i UN/CEFACT. Po 18 miesiącach prac, specyfikacje ebXML zostały zaakceptowane. Pojawiają się już pierwsze implementacje. Inicjatywa ebXML wygląda na najpoważniejszą na rynku i można wróżyć jej sukces. Znamienne jest, że powstała ona jedynie w celu zaprojektowania XML-owej ramy dla EDI, zaś nie zamierza nią zarządzać, rozpatrując przekazanie tej działalności (wraz z ewentualnym połączeniem) jednej z istniejących inicjatyw. Jest to o tyle prawdopodobne, że niektóre inne inicjatywy (np. RosettaNet, zajmująca się standaryzacją w branży informatycznej i elektronicznej) przejmują idee ebXML i stosują je w swoich rozwiązaniach. www.ebxml.org 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Podejście do standaryzacji Meta-model pozwalający na opracowywanie modeli specyficznych dla zastosowań: zbiór podstawowych schematów, elementów XML oraz procesów biznesowych, sposób definiowania słowników danych, nie definiuje konkretnych, docelowych komunikatów. Metainformacje: informacje o wersjach, metadane odpowiadające nagłówkom z istniejących systemów EDI. Ramy architektury technicznej: sposoby implementacji repozytoriów, serwisów, itp., integracja z istniejącymi technologiami EDI. Grupa ebXML zaprojektowała ramę pozwalającą na opracowywanie specyficznych sub-standardów. Jej podstawą będzie repozytorium przechowujące typowe obiekty (schematy, elementy, encje). ebXML zakłada od początku integrację z istniejącymi technologiami. Podstawowy zbiór komponentów, używanych niezależnie od technologii, zostanie bowiem opisany w sposób niezależny od konkretnej implementacji. ebXML będzie ponadto wspierać konwersje i migracje z innych technologii. 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
XML w integracji aplikacji Cel: umożliwienie wymiany danych pomiędzy aplikacjami: aplikacje/komponenty/moduły posługują się różnymi formatami wewnętrznymi, wspólny mianownik: XML. Zastosowania: komunikacja między klientem a serwerem, komunikacja między elementami systemu rozproszonego, integracja komponentów aplikacji, konfigurowanie aplikacji i jej komponentów, ... Coraz częściej aplikacje (niekoniecznie rozproszone) są złożone z komunikujących się ze sobą składników. W XML-EDI XML pojawiał się w niewidocznej dla użytkownika warstwie komunikacji między aplikacjami. Podobnie jest tutaj – XML może być niewidoczny dla użytkownika i stanowić interfejs między składnikami aplikacji. Projektowanie wykorzystania XML-a w integracji aplikacji jest o tyle prostsze od projektowania komunikatów EDI, że obie strony wymiany są pod naszą (projektanta) kontrolą i to my decydujemy o formacie wymiany. Odpada więc – niezbędny w wymianie EDI – uciążliwy proces standaryzacji. 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
EDI a integracja aplikacji Komunikacja pomiędzy systemami biznesowymi różnych organizacji. Komunikacja systemów lub komponentów systemu w ramach organizacji. Brak kontroli nad systemem partnera w komunikacji. Kontrola nad komunikującymi się komponentami. Niezbędna standaryzacja komunikatów. Standaryzacja na poziomie metodologii ułatwia korzystanie z gotowych narzędzi. Internet kluczowym elementem infrastruktury XML-EDI. Internet tylko dla „rozległej” integracji. 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Web Services Pomysł na: udostępnianie aplikacji/funkcjonalności/obiektów w Internecie, (bardzo) rozproszony RPC/messaging, „strony internetowe” przeznaczone dla aplikacji. Web service: samodzielna aplikacja (komponent), która może być: opisana, opublikowana w sieci, znaleziona przez potencjalnych użytkowników, wywołana poprzez sieć w sposób ustandaryzowany. Web Services: platforma do tworzenia takich aplikacji. 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Standaryzacja Standardowy system typów: Interfejs serwisu: XML Schema. Interfejs serwisu: WSDL – Web Service Definition Language. Sposób wywołania serwisu i otrzymania odpowiedzi: SOAP – Simple Object Access Protocol, HTTP POST. Sposób znajdowania odpowiedniego serwisu: UDDI - Universal Description, Discovery and Integration. 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Typowe zastosowania Udostępnianie/sprzedaż użytecznych danych: rozkłady lotów linii lotniczych, dane o pogodzie, aktualny czas wg zegara atomowego. Zdalne usługi: wyszukiwanie, pobieranie aktualnej wersji oprogramowania. Operacje biznesowe między partnerami: zamawianie, sprawdzanie stanu realizacji zamówienia. 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Źródło: Yasser Shohould, "Building XML Web Services with VB .NET" Typowa architektura Źródło: Yasser Shohould, "Building XML Web Services with VB .NET" 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Źródło: Yasser Shohould, "Building XML Web Services with VB .NET" Wywołanie serwisu Źródło: Yasser Shohould, "Building XML Web Services with VB .NET" 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Opis serwisu: WSDL Zawartość opisu: Zastosowania: udostępniane metody (nazwy, parametry, zwracane wartości), protokół używany do wywołania (np. SOAP poprzez HTTP), typ wywołania (RPC czy messaging), URI serwisu. Zastosowania: do czytania przez developera, automatyczne generowanie kodu klienta, analiza dokumentu WSDL w czasie wykonania w celu wywołania serwisu. 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
WSDL – przykład <definitions name='Weather' targetNamespace = 'http://weather.com/wsdl' xmlns:wsdlns='http://weather.com/wsdl/'> ... <message name='Weather.GetTemperature'> <part name='zipcode' type='xsd:string'/> <part name='celsius' type='xsd:boolean'/> </message> <message name='Weather.GetTemperatureResponse'> <part name='Result' type='xsd:float'/> </message> <portType name='WeatherSoapPort'> <operation name='GetTemperature' parameterOrder='zipcode celsius'> <input message='wsdlns:Weather.GetTemperature' /> <output message='wsdlns:Weather.GetTemperatureResponse' /> </operation> </portType> ... </definitions> 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Źródło: Yasser Shohould, "Building XML Web Services with VB .NET" Komunikacja: SOAP Standard kodowania komunikatów o dowolnej treści: Style komunikatów SOAP: document, RPC. Sposoby serializacji danych: encoded – dane są zserializowanymi obiektami programistycznymi, literal – dokument o dowolnej strukturze. Źródło: Yasser Shohould, "Building XML Web Services with VB .NET" 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
SOAP – przykład <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <vbws:GetEmpOrders xmlns:wsdlns="http://weather.com/wsdl/" soapenv:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"> <zipcode>23-456</zipcode> <celsius>true</celsius> </vbws:GetEmpOrders> </soapenv:Body> </soapenv:Envelope> 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
UDDI: jak znaleźć odpowiedni serwis UDDI - Universal Description, Discovery and Integration: katalog serwisów do automatycznego wyszukiwania. UDDI web services: Inquiry: find_business, get_businessDetail; Publish: save_business, delete_business. Serwery UDDI: publiczne i prywatne, replikacja między serwerami publicznymi, UDDI Business Registry (UBR) – publiczny serwis uruchomiony przez IBM, Microsoft, NTT Communications i SAP. 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Z lotu ptaka WSDL ... RPC Web Services UDDI SOAP messaging ... HTTP 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji
Gdzie szukać dalej Bryan, M. et. al., Guidelines for using XML for Electronic Data Interchange www.eccnet.com/xmledi/guidelines-styled.xml EDISON – Narodowy Operator EDI www.edison.net.pl www.edi.pl Zioło, S. , Księżyk, R., Wykorzystanie języka XML w EDI Materiały na VIII Krajową Konferencję EDI-EC, Wydawca: Niedźwiedziński Consulting, Łódź, 2000 Shohoud, Y., Building XML Web Services with VB .NET www.learnxmlws.com/book/ Sulecki, M., Web Services na urządzeniach mobilnych Software 2.0, 6/2002, Wydawnictwo Software 2006-01-05 XML w elektronicznej wymianie dokumentów i integracji aplikacji