Web Services Praktyczny przewodnik. Robert Nowak Vercom Sp z o. o.
|
|
- Władysława Wójcik
- 8 lat temu
- Przeglądów:
Transkrypt
1 Web Services Praktyczny przewodnik Robert Nowak Vercom Sp z o. o. 21 września 2005
2 Spis treści 1 Web Services - tworzenie i użytkowanie Definicja Web Services Przykłady użycia Web Services Rozbudowa dotychczasowych aplikacji Pozyskanie informacji z Google Współpraca z bazą danych Księgarnia amazon.com BPEL - język zarządzania Web Services Podstawowe właściwości języka Podsumowanie ebxml - XML dla biznesu Protokół SOAP Opis protokołu Szkielet komunikatu SOAP Koperta (envelope) Nagłówek (header) Ciało (body) Błąd (fault) Przykładowa para komunikatów Format WSDL Przykładowy listing WSDL UDDI Web Services z wykorzystaniem Apache Axis Co to jest Axis Instalacja Wymagane oprogramowanie Pobranie Axisa Instalacja pakietu Opcjonalna instalacja parsera XML Użycie Axis 1.2 razem z WebLogic Ustawienie zmiennych systemowych Sprawdzenie instalacji Struktura katalogów Korzystanie z Axis Lista uruchomionych serwisów Dodawanie własnych serwisów Udostępnianie Web Services za pomocą plików JWS Rozbudowana metoda udostępniania Web Services Pisanie aplikacji serwera z wykorzystaniem Axis Użycie plików.jws Tworzenie kodu źródłowego
3 SPIS TREŚCI Udostępnianie klasy Łączenie się z Web Service za pomocą URL Testowanie udostępnionych metod Metoda zaawansowana Tworzenie kodu źródłowego Udostępnianie serwisu Pisanie aplikacji klienta z wykorzystaniem Axis Klient statyczny Generacja plików Java z WSDL Tworzenie kodu klienta Kompilacja kodu Uruchomienie klienta Kod klienta Klient dynamiczny Tworzenie kodu źródłowego Kod klienta Pliki do pobrania Tworzenie i korzystanie z Web Services w PHP Wstęp Wbudowany SOAP Instalacja Konfiguracja Tworzenie serwera Tworzenie klienta PEAR SOAP Instalacja Tworzenie serwera Klient Pliki do pobrania Web Services z użyciem Eclipse Web Tools Platform Wstęp Użyte komponenty Instalacja Web Tools Platform Programowanie Web Services z użyciem WTP Tworzenie nowego projektu Tworzenie Web Service z klas Javy (bottom-up WS) Tworzenie Web Service z pliku WSDL (top-down WS) Tworzenie klienta Web Service przy pomocy WTP Klasa wykorzystująca wygenerowany kod klienta (klient statyczny) Web Service na zdalnym serwerze (eksport projektu do pliku WAR) Testowanie WS używając Web Services Explorer Testowanie Web Service za pomocą URL Pliki do pobrania Web Services i Googletworzenie klienta Wstęp Użycie dostarczonych bibliotek Klient Java Klient w PHP Pliki do pobrania
4 SPIS TREŚCI 3 6 Dodatki Słowniczek XML J2EE
5 Rozdział 1 Web Services - tworzenie i użytkowanie 1.1 Definicja Web Services Web Services to zbiór standardów stworzony w celu wspierania wymiany informacji za pomocą sieci. Standardy te tworzą abstrakcyjną warstwę, znajdującą się ponad systemami operacyjnymi czy też językami programowania, umożliwiając porozumiewanie się aplikacji bez kłopotania się o szczegóły implementacyjne. Format i sposób wymiany komunikatów między serwisami jest dokładnie określony za pomocą standardów W3C ( Każdy serwer posiada dodatkowo reguły określające sposób komunikacji z nim (stosowane zabezpieczenia, adres właściwego serwisu) oraz listę udostępnianych metod wraz z argumentami i zwracanymi typami. Wszystko to jest opisane za pomocą dokumentu WSDL (1.4). Inne komputery współpracują z Web Service na zasadach określonych w tym dokumencie, używając komunikatów, które mogą być zawarte w kapsułce SOAP (1.3), lub też stosować format REST. Komunikaty są zazwyczaj przekazywane z wykorzystaniem protokołu HTTP. Ich budowa opiera się o XML (6.1.1), z możliwymi połączeniami z innymi standardowymi dokumentami sieciowymi. Aplikacje stworzone w różnych językach programowania, działające na różnych platformach sprzętowych i programistycznych mogą dzięki Web Services komunikować się ze sobą poprzez sieć tak łatwo jakby działo się to pomiędzy lokalnymi procesami (rysunek 1.1). Ta przenośność jest możliwa dzięki użyciu otwartych standardów, które tworzą OASIS razem z W3C. Stanowi ona o wielkiej sile Web Services, które powoli zdają się przejmować prym w komunikacji między aplikacjami sieciowymi. 1.2 Przykłady użycia Web Services Web Services służą znacznemu usprawnieniu współpracy na linii klient-serwer. W prosty sposób udostępniają usługi, jak również potrafią się z nimi łączyć i z nich korzystać. Można by powiedzieć że to żadna nowość i byłaby to prawda. Mamy strony WWW które przekazują informację, kanały RSS itp. Web Services nie są czymś rewolucyjnym jeśli chodzi o cel istnienia, jednak sposób ich pracy stanowi wielki krok w stronę ułatwienia i ustandaryzowania współpracy serwisów. Ich zastosowania są bardzo szerokie - można z nich z powodzeniem korzystać wszędzie tam gdzie potrzebna jest komunikacja w celu pobrania danych Rozbudowa dotychczasowych aplikacji Wyobraźmy sobie przykładową firmę, gdzie ze względu na niezawodność, serwer z najnowszymi danymi firmowy ma zostać uruchomiony na bazie danych PostgreSQL. Jednak wszystkie wcześniejsze dane są w aplikacji napisanej w.net i umieszczone w bazie danych MSSQL. Stworzenie komunikacji między aplikacją.net a Javową jest trudną sprawą, a jej wypracowanie zajęłoby miesiące. Bez użycia Web Services byłaby to trudna sytuacja, jednak dzięki nim, możliwe jest eleganckie i nowoczesne rozwiązanie: serwer MSSQL pozostaje na swoim miejscu, a na platformie.net uruchomionej 4
6 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE 5 Rysunek 1.1: Idea Web Services na tym samym komputerze, zostaje udostępniony Web Service, wstawiający funkcje dostępu do MSSQL. Powstaje też aplikacja napisana w języku Java. Łączy się ona z bazą PostgreSQL, a także z Web Service.NET u. Z tej aplikacji korzysta klient. Oto schemat tej struktury:
7 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE 6 Rysunek 1.2: Integracja.NET z Java Prześledźmy typowe wykorzystanie: użytkownik korzysta z aplikacji napisanej w Javie: wybiera z menu potrzebne mu informacje (1). Aplikacja analizuje dane i widzi, że potrzebuje danych z obu baz danych. Łączy się więc z Web Service udostępnionym przez.net i przekazuje mu żądanie (2). Web Service uruchamia odpowiednie procedury.net, który pobiera z bazy MSSQL odpowiednie wiadomości (3, 4). Dane zostają odesłane do Javy (5). Następnie pobierane są informacje z PostgreSQL (6,7), następuje ich przetworzenie i klient dostaje wynik (8). Jak widać, integracja przebiegła całkiem sprawnie. Ktoś mógłby stwierdzić, że to samo można by uzyskać innymi sposobami. To prawda, ale jak już napisano wcześniej, pochłonęłoby to dużo pracy i czasu. A my, dzięki zastosowaniu Web Services, możemy bez trudu przenieść naszą architekturę na następny poziom:
8 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE 7 Rysunek 1.3: Integracja.NET z Java - Internet Uzyskaliśmy teraz podział na dwie maszyny: jedna z zestawem.net - MSSQL, druga J2EE - PostgreSQL. Powyższy rozdział na dwa komputery połączone tylko przez Internet staje się możliwy dzięki sile Web Services. Powstaje pytanie: po co ryzykować i kazać użytkownikowi pracować na serwerze? Po raz kolejny korzystamy z Web Services: Rysunek 1.4: Rozbudowa współpracy.net z Java przez Internet Kolejna korzyść wydaje się być naturalna: użytkowników może być teraz wielu, każdy z nich może pracować niezależnie i równocześnie.
9 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE 8 Myślę że ten akapit dobrze zaprezentował potencjał drzemiący w Web Services Pozyskanie informacji z Google Do tej pory, chcąc na przykład wykorzystać wyniki wyszukiwania zwracane przez Google, należało parsować kod HTML. Odpowiedzią na zapytanie bała cała strona HTML. Pojedyncza pozycja (którą trzeba również wyłowić z innych) wygląda następująco: <!--m--><a href=" <b>cd</b> ::<b>płyty</b><b>cd</b> na Emuzyka.pl.</a><table border="0" cellpa dding="0" cellspacing="0"><tbody><tr><td style="width: 37em;" clas s="j"><font size="-1">strona główna? <b>płyty</b> <b>cd</b>? 1,2, 3... Partnerem działu <b>płyty</b> <b>cd</b> na emuzyka.pl jest Startuj z emuzyka.pl? Stare dzwonki zabronione! <b>...</b><br><font color="#008000"> - 44k - 13 IX </font><nobr><a class="fl"href=" /search?q=cache:HsLTXekgOLMJ: +&hl=pl">kopia</a>-<aclass="fl"href="/search?hl=pl&lr=& ;q=related: strony </a><span> - </ span><aclass="fl"cg_filter=" ript:void(0);">filter</a></nobr> </font><!--n--> Zamieńmy to może w bardziej czytelną postać: <!--m--> <a href=" <b>płyty</b> <b>cd</b>::<b>płyty</b><b>cd</b>na Emuzyka.pl. </a> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td style="width: 37em;" class="j"> <font size="-1"> Strona główna? <b>płyty</b> <b>cd</b>? 1, 2, 3... Partnerem działu <b>płyty</b> <b>cd</b> na emuzyka.pl jest Startuj z emuzyka.pl? Stare dzwonki zabronione! <b>...</b><br> <font color="#008000"> k - 13 IX </font> <nobr> <a class="fl" href=" q=cache:hsltxekgolmj: +p%c5%82yty+cd+&hl=pl">kopia </a> - <a class="fl" href="/search? hl=pl &lr=
10 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE 9 &q=related: Podobne strony </a> <span> - </span> <a class="fl" cg_filter=" href="javascript:void(0);"> Filter </a> </nobr> </font> <!--n--> Teraz z tego kodu należało wyciągnąć potrzebne nam dane - np. URL ( Nawet gdy już stworzono odpowiedni program, należało się liczyć z tym, że każda zmiana w formacie wyszukiwania spowoduje konieczność uaktualnienia. Chcąc ułatwić współpracę, Google stworzył i udostępnił własny Web Service: Google APIs. Teraz cały kod odpowiedzialny za wykonanie zapytania i otrzymania URL wygląda następująco (język PHP): $soapclient = new SoapClient( ); $odpowiedz = $soapclient-> dogooglesearch(key, płyty CD, 0, 10, true, countrypl, false, lang_pl,, ); $obecnyadres = $odpowiedz->resultelements[$x]->url; W zmiennej $obecnyadres mamy już w tej chwili adres którego szukamy. Niezależnie od przyszłych zmian w strukturze odpowiedzi, metoda ta zadziała. Za pomocą Google APIs można wykonać naprawdę wiele rzeczy - na przykład program do sprawdzania pozycji naszej strony w rankingu. Szerzej o tym programie oraz o Google APIs w rozdziale Współpraca z baza danych Ciekawszy przykład użycia to współpraca między komponentami tej samej aplikacji. Przykładowo serwer Web Services znajduje się na maszynie z bazą danych a klientem jest aplikacja w Javie. Zwyczajowo serwer musiał mieć udostępniony interfejs dostępu do bazy, a klient odwoływać się bezpośrednio do niego, przesyłając zapytania. Nie jest to zbyt bezpieczne, wymaga też implementacji dużej części obsługi w kliencie. Używając Web Services, aplikacja łączy się z serwerem za pomocą prostego kodu (Java), nie martwiąc się o szczegóły: Result res = new Result(); res = service.getksiazki(tytul, mincena, makscena); System.out.println("Tytul ksiazki numer " + x + " to " + res.gettytul() + " a cena " + res[x].getcena(); Zauważmy, że klient nie musi (a jeśli serwer nie zechce to nie może) wiedzieć jakiego typu bazę danych wykorzystano, czy też w jakim języku programowania napisano aplikację - jedyną interesującą go rzeczą jest odpowiedź na jego pytanie. Jeśli dodać do tego możliwość zabezpieczenia usługi za pomocą zaawansowanych technik (szyfrowanie całości i części przesyłanych komunikatów), otrzymujemy to, czym Web Services miały być: nową metodą sprawnej i bezpiecznej komunikacji między aplikacjami.
11 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE Księgarnia amazon.com Jeden z największych sklepów internetowych amazon.com również postanowił udostępnić swoje usługi z apomocą Web Services. Zostało to entuzjastycznie przyjęte przez osoby związane z serwisem. Wydawcy książek otrzymali narzędzie do monitorowania sprzedaży swoich i konkurencyjnych wydawnictw. Do tej pory wiele firm zbierało statystyki ręcznie (co przy dużej ilości sprzedawanych pozycji wymagało dużego nakladu pracy) albo też parsując HTML (o parsowaniu HTML napisano w punkcie 1.2.2). Jednocześnie właściciele stron internetowych otrzymali możliwość sprzedawania towarów amazon.com bezpośrednio ze swojego serwisu. Mając do dyspozycji Amazon Web Services, mogą w prosty sposób stworzyć kompleksową ofertę obejmującą na przykład tylko dział sprzedaży pokrywający się z tematyką strony. Odwiedzający mogą przeglądać taką ofertę, a nawet wyszukiwać wewnątrz niej. Za każdy zakupiony przedmiot, Amazon płaci odpowiednią marżę właścicielowi serwisu przez który dokonano transakcji BPEL - język zarzadzania Web Services BPEL, Business Process Execution Language jest językiem programowania opartym na XML. Jego zadaniem jest umożliwienie sprawnego i skoordynowanego przeprowadzenia transakcji ze jednym lub więcej Web Services. Co najważniejsze - serwisy te mogą być asynchroniczne i równoległe Podstawowe właściwości języka BPEL prezentuje logikę odmienną od języków takich jak C++ czy Java. Języki te służą do tworzenia programów, w których czas wykonywania pojedynczych zadań jest krótki (są one uruchamianie, wykonują swoją, zazwyczaj lokalną, pracę, a następnie kończą działanie). BPEL jest językiem wysokopoziomowym ze zdolnością wykonywania tranzycji stanów. Oznacza to, że system składa się z pewniej liczby (być może nieskończonej) stanów w których może się znaleźć oraz reguł przejść między nimi. W praktyce oznacza to, że jest nim możliwa obsługa asynchronicznych komunikatów, czy też wprowadzenie reguły ACID. Asynchroniczne komunikaty w uproszczeniu są to wiadomości na które oczekujemy nieznaną, ale skończoną ilość czasu. Przykładowo aplikacja wysyłająca wniosek o pożyczkę do banku w końcu otrzyma w końcu odpowiedź (zakładając niezawodność banku i transmisji), ale może ją otrzymać dopiero po kilku dniach. Nasza aplikacja zmieni wtedy stan na odpowiedni do sytuacji, przechodząc na przykład do wcześniej ustalonego zakupu posiadłości za pożyczone pieniądze w razie udzielenia kredytu, lub do wynajęcia mieszkania w razie odmowy. Nazwa reguły ACID jest skrótem od angielskich słów Atomicity (atomowość), Consistency (spójność), Isolation (izolacja), Durability (trwałość). Są to ważne zasady wzięte z dziedziny baz danych gwarantujące zachowanie poprawności przetwarzanych danych. Cztery żądania reguły oznaczają: atomowość - dana czynność jest wykonana cała, albo w ogóle. Jeśli zażądamy skopiowania danych z dysku A na dysk B, albo zostaną skopiowane wszystkie dane, albo żadne. Nawet jeśli połowa plików będzie zapisana już na dysku A gdy wydarzy się awaria, kopiowanie zostanie cofnięte, a dane usunięte. spójność - jeśli system był zgodny z określonymi regułami przed operacją, po operacji będzie również zgodny izolacja - jeśli dwa lub więcej procesów wykonuje się równocześnie, każdy działa osobno. Przykład: jeśli oba korzystają z jednej zmiennej, każdy z nich widzi jej własną wersję, zmieny wykonane w procesie A nie zmienią zmiennej w procesie B. Istnieją jednak tak zwane poziomy izolacji, gdzie niektóre założenia są modyfikowane. trwałość - dane są poprawne przez cały czas. Nawet jeśli wskutek awari wykonana zostanie tylko część operacji, co może spowodować powstanie niepoprawnego stanu, system będzie potrafił określić dokładnie w którym miejscu nastąpiła awaria i podjąć odpowiednie kroki Obecnie dostępne są już narzędzia, które pozwalają na tworzenie schematów przepływu obsługi w języku BPEL za pomocą technologii przeciągnij i upuść.
12 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE Podsumowanie Podsumowując, dzieki językowi BPEL jesteśmy, jak w powyższym przykładzie banku, połączyć wiele osobnych serwisów (składanie wniosków, obsługa przelewów pieniędzy, agencja wynajmu nieruchomości, pośrednik zakupu posiadłości) w jedną logicznie powiązaną całość. Dodatkowo otrzymujemy takie mechanizmy jak definiowanie współbieżności, zarządzanie zdarzeniami i wyjątkami czy też mainpulacja strukturami. Plugin pozwalający dodanie obsługi języka BPEL do Eclipse znajduje się pod adresem ebxml - XML dla biznesu ebxml, electronic business XML jest rodziną standardów XML tworzonych przez OASIS i UN/CEFACT których celem jest dostarczenie otwartej i opartej o XML infrastruktury która umożliwi światową wymianę informacji biznesowej w niezależny od systemu operacyjngo, bezpieczny i sprecyzowany sposób. Standard został zbudowany na podstawie wieloletnich doświadczeń biznesu elektronicznego, tak by w możliwie najprostszy sposób pokryć wymagania rozwijającego się przemysłu. Jedną z ciekawszych propozycji języka jest tworzenie profilu firmy, a następnie automatyczne znajdywanie partnera biznesowego z odpowiadającym nam profilem. 1.3 Protokół SOAP Komunikacja między serwerem a klientem odbywa się za pomocą protokołu SOAP. Specyfikacja standardu SOAP znajduje się pod adresem Tutaj wyjaśnimy tylko pokrótce czym jest SOAP i przedstawimy przykładowy komunikat SOAP i odpowiedź na niego Opis protokołu SOAP jest to protokół służący do wymiany informacji w zdecentralizowanym, rozproszonym środowisku. Używa technologii XML aby zdefiniować rozszerzalną platformę pozwalającą na wymianę komunikatów za pomocą różnych standardowych protokółów (np. HTTP). Platforma z założenia jest niezależna od języka programowania i innych szczegółów implementacyjnych. Protokół SOAP składa się z trzech głównych części: koperty (envelope) która określa szkielet opisujący co znajduje się w komunikacie i jak go przetwarzać, zbioru reguł kodujących potrzebnych do rozszyfrowania typów danych (również złożonych) zdefiniowanych wewnątrz aplikacji, reguł dotyczących wywoływania zdalnych procedur i odczytu odpowiedzi. Bardziej ludzko można by powiedzieć, że SOAP jest językiem jakim porozumiewają się Web Services, zbudowanym na podstawie języka XML (6.1.1), co umożliwia jego uniezależnienie do użytych systemów operacyjnych czy też języków programowania. Jego budowa jest określona przez standardy, a ich zachowanie gwarantuje poprawną wymianę informacji. Omówmy teraz dokładnie budowę komunikatu SOAP Szkielet komunikatu SOAP Ogólny szkielet prezentuje się następująco: <?xml version="1.0"?> <soap:envelope xmlns:soap=" soap:encodingstyle=" <soap:header>
13 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE naglowek </soap:header> <soap:body>......glowna czesc komunikatu <soap:fault>......bledy, o ile wystapily </soap:fault> </soap:body> </soap:envelope> Opiszemy teraz jego kolejne fragmenty Koperta (envelope) Element wymagany. Koperta to główna część komunikatu SOAP, inne elementy jak nagłówek czy ciało są jej potomkami. Koperta definiuje dokument XML jako komunikat SOAP. Składnia: <?xml version="1.0"?> <soap:envelope... Tresc komunikatu... </soap:envelope> Atrybut xmlns:soap (opcjonalny) wskazuje przestrzeń nazw (schemat według jakiego decydujemy się budować komunikat, w przykładzie podano standardowy zestaw dla SOAP 1.2 zdefioniowany przez W3C, ale możliwe jest defioniowanie własnych dokumentów). Składnia: xmlns:soap="url" Atrybut encodingstyle (obowiązkowy) służy do definicji typów danych używanych w dokumencie. Ten atrybut może pojawić się w każdym elemencie komunikatu i zostanie zastosowany w tym elemencie i wszystkich jego podelemnetach. Komunikat SOAP nie ma domyślnej wartości tego atrybutu, dlatego należy go podać przynajmniej raz, w głównym elemencie. Składnia: soap:encodingstyle="url" Prawidłowo zdefiniowane atrybuty to przykładowo: <?xml version="1.0"?> <soap:envelope xmlns:soap=" soap:encodingstyle=" Tresc komunikatu... </soap:envelope>
14 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE 13 Nazwa next none ultimatereceiver własna Wykonywanie Musi być wykonany przez wszystkie węzły Nikt nie może tego wykonać Końcowy węzeł nie może tego wykonać reguły określone w URL Tablica 1.2: Wykonanie poszczególnych ról Nagłówek (header) Element opcjonalny. Nagłówek zawiera wiadomości określające dodatkowe właściwości komunikatu. Mogą to być na przykład elementy dotyczące bezpieczeństwa czy też reguły przetwarzania ciała. Jeśli podano nagłówek, musi zostać wpisany jako pierwszy na liście potomków koperty. Przykład: <?xml version="1.0"?> <soap:envelope xmlns:soap=" soap:encodingstyle=" <soap:header>... Dane naglowka... </soap:header> </soap:envelope> Atrybut actor (opcjonalny) (w SOAP wersja 1.2 role) określa odbiorcę, a właściwie wykonawcę danego elementu. Komunikaty SOAP mogą podróżować przez sieć, przechodząc po drodze przez wiele węzłów (komputerów). Atrybut actor określa kto ma go (element nagłówka) wykonywać: Nazwa next none ultimatereceiver własna Pełna nazwa " " " Tablica 1.1: Nazwy ról w SOAP Składnia: soap:actor="uri" Przykład nagłówka z elementem actor: <?xml version="1.0"?> <soap:envelope xmlns:soap=" soap:encodingstyle=" <soap:header> <m:trans xmlns:m="
15 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE 14 soap:actor=" 234 </m:trans> </soap:header> </soap:envelope> Atrybut mustunderstand (opcjonalny) określa, czy element w którym go użyto jest obowiązkowy czy opcjonalny do przetworzenia. Jeśli atrybut jest ustawiony, a odbiorca nie zrozumie użytego elementu, zostanie przerwane przetwarzanie i zwrócony zostanie błąd. Przykładowy komunikat wraz z nagłówkiem wygląda następująco: <?xml version="1.0"?> <soap:envelope xmlns:soap=" soap:encodingstyle=" <soap:header> <m:trans xmlns:m=" soap:mustunderstand="1">234</m:trans> </soap:header> </soap:envelope> zapis m:trans oznacza metodę Trans obiektu m. Składnia: soap:mustunderstand="0 1" Atrybut encodingstyle (opcjonalny): wyjaśniony w punkcie Ciało (body) Element obowiązkowy. Ciało komunikatu zawiera wszystkie informacje, które końcowy odbiorca powinien otrzymać. Jego przetwarzanie może być uwarunkowane za pomocą nagłówka. Przykład ciała komunikatu: <?xml version="1.0"?> <soap:envelope xmlns:soap=" soap:encodingstyle=" <soap:body> <m:pobierzecene xmlns:m=" <m:nazwa>jablko</m:nazwa> </m:pobierzcene> </soap:body> </soap:envelope> Odpowiedź na ten komunikat powinna wyglądać następująco: <?xml version="1.0"?> <soap:envelope xmlns:soap=" soap:encodingstyle=" <soap:body>
16 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE 15 Element <faultcode> <faultstring> <faultactor> <detail> Opis kod identyfikujący błąd opis błędu informacja o węźle który spowodował błąd szczegóły błędu Tablica 1.3: Elementy komunikatu fault <m:pobierzceneodpowiedz xmlns:m=" <m:cena>1.90</m:cena> </m:pobierzceneodpowiedz> </soap:body> </soap:envelope> Bład (fault) Element opcjonalny. Ta część komunikatu zawiera opis ewentualnych błędów. Jest potomkiem elementu Body, nie Envelope. Komunikat błędu wygląda następująco: <soapenv:envelope> <soapenv:body> <soapenv:fault> <faultcode>ns1:client</faultcode> <faultstring>wykonano niepoprawna operacje</faultstring> <detail> <ns2:hostname>webservices</ns2:hostname> </detail> </soapenv:fault> </soapenv:body> </soapenv:envelope> Przykładowa para komunikatów Zobaczmy teraz przykładową parę komunikatów SOAP. Klient wysyła argument <host xsi:type="xsd:string"> gdzie host to nazwa argumentu, xsi:type to atrybut typu String o wartości inotel.pl do funkcji getip(). W zamian oczekuje czegoś bardziej skomplikowanego: struktury Adres, która składa się z nazwy zadanego hosta i jego adresu IP (obliczony na serwerze). Komunikat klienta wygląda następująco: <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:soap-env=" xmlns:ns1=" xmlns:xsd=" xmlns:xsi=" xmlns:soap-enc=" SOAP-ENV:encodingStyle=" <SOAP-ENV:Body> <ns1:getip> <host xsi:type="xsd:string">
17 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE 16 inotel.pl </host> </ns1:getip> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Częścią przenoszącą dane jest <SOAP-ENV:Body>. Metoda którą wywołujemy to getip (<ns1:getip>). Widać tam argument host typu String (<host xsi:type="xsd:string">) i wartości inotel.pl. Serwer odpowiada: <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:soap-env=" xmlns:ns1=" xmlns:xsd=" xmlns:soap-enc=" xmlns:xsi=" SOAP-ENV:encodingStyle=" <SOAP-ENV:Body> <ns1:getipresponse> <getipreturn xsi:type="soap-enc:struct"> <nazwa xsi:type="xsd:string"> inotel.pl </nazwa> <adres xsi:type="xsd:string"> </adres> </getipreturn> </ns1:getipresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Tutaj również informacja zawarta jest w części <SOAP-ENV:Body>. Dostajemy strukturę składającą się z nazwy i adresu IP, czyli to czego oczekiwaliśmy. Jak widać znając XML, można z łatwością odczytać (przynajmniej podstawowe) komunikaty SOAP. 1.4 Format WSDL WSDL (Web Services Description Language, jest dokumentem XML(6.1.1) opisującym udostępnione przez serwer Web Services. Udostępniając listę dostępnych metod, ich argumenty (w tym złożone typy danych) i zwracane typy, w prosty sposób definiuje schemat komunikacji na linii klient-serwer. Dzięki rozszerzalności WSDL pozwala opisywać procedury i ich formaty niezależnie od protokołów użytych do przekazywania danych. W chwili obecnej większość aplikacji oferuje automatyczne generowanie pliku WSDL, jednak przydatność jego odczytania jest bardzo pomocna Przykładowy listing WSDL Spróbujmy odczytać przykładowy plik WSDL. Cały listing niepoprzerywany komentarzami znajduje się w punkcie <?xml version="1.0" encoding="utf-8"?> Określenie wersji standardu XML (1.0) i kodowania znaków dokumentu (utf8).
18 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE 17 <wsdl:definitions targetnamespace=" xmlns:apachesoap=" xmlns:impl=" xmlns:intf=" xmlns:soapenc=" xmlns:wsdl=" xmlns:wsdlsoap=" xmlns:xsd=" Powyższy fragment to zdefiniowanie podstawowych informacji na temat samego dokumentu, a także przestrzeni nazw w jakiej znajdują się zmienne i metody wymienione dalej. <!--WSDL created by Apache Axis version: Built on Jun 14, 2005 (09:15:57 EDT)--> Komentarz generatora. <wsdl:message name="getiprequest"> <wsdl:part name="host" type="xsd:string"/> </wsdl:message> <wsdl:message name="getipresponse"> <wsdl:part name="getipreturn" type="xsd:string"/> </wsdl:message> Są to opisy dwóch komunikatów: getiprequest i getipresponse. Pierwszy z komunikatów służy do wywołania metody getip, a drugi definiuje odpowiedź tej metody. Nazwy które się tu pojawiają, nie są obowiązkowe. Powiązanie komunikatu z metodą widać w dalszej części dokumentu. Każdy z tagów opisujących komunikat zawiera określenie związanych z nim danych. W przypadku getiprequest jest to String o nazwie host. Łącząc się z serwerem, klient wysyła dokument SOAP, w którym podana jest właśnie nazwa tego komunikatu, a także argument o tej nazwie. Klient dowiaduje się o jej istnieniu właśnie z pliku WSDL. W przypadku getipresponse odczytujemy, że po wykonaniu metody getip serwer odeśle nam komunikat z łańcuchem znaków. Możliwe jest również stosowanie złożonych typów danych. Korzysta się wtedy z dodatkowych definicji typów. <wsdl:message name="helloresponse"> <wsdl:part name="helloreturn" type="xsd:string"/> </wsdl:message> <wsdl:message name="hellorequest"> </wsdl:message> Tutaj widzimy prostą metodę nie przyjmującą parametrów. Zwróćmy uwagę, że kolejność definiowania komunikatów nie jest ważna w obrębie nadrzędnego tagu. <wsdl:message name="podzielresponse"> <wsdl:part name="podzielreturn" type="xsd:float"/> </wsdl:message> <wsdl:message name="podzielrequest"> <wsdl:part name="a" type="xsd:int"/> <wsdl:part name="b" type="xsd:int"/> </wsdl:message> Metoda podzielrequest przyjmuje dwa parametry typu int, zwraca jeden float. <wsdl:porttype name="helloworld">
19 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE 18 Port type to nazwany zbiór abstrakcyjnych operacji i powiązanych z nimi abstrakcyjnych komunikatów. Nazwa portu jest unikalna w obrębie dokumentu. <wsdl:operation name="getip" parameterorder="host"> <wsdl:input message="impl:getiprequest" name="getiprequest"/> <wsdl:output message="impl:getipresponse" name="getipresponse"/> </wsdl:operation> Tutaj pojawia się wspomniane wyżej powiązanie komunikatów z metodami. Widać wyraźne zaznaczenie, jak nazywa się metoda którą wywołujemy, jej parametry oraz który komunikat jest wejściowy, a który wyjściowy. <wsdl:operation name="hello"> <wsdl:input message="impl:hellorequest" name="hellorequest"/> <wsdl:output message="impl:helloresponse" name="helloresponse"/> </wsdl:operation> <wsdl:operation name="podziel" parameterorder="a b"> <wsdl:input message="impl:podzielrequest" name="podzielrequest"/> <wsdl:output message="impl:podzielresponse" name="podzielresponse"/> </wsdl:operation> </wsdl:porttype> <wsdl:binding name="helloworldsoapbinding" type="impl:helloworld"> Ta część opisuje szczegółowo sposób łączenia metod zdefiniowanych wyżej z właściwym serwisem. <wsdlsoap:binding style="rpc" transport=" Określony zostaje styl wymiany komunikatów na RPC (remote procedure call, zdalne wywołanie procedury). Styl ten polega na tym, że komunikacja odbywa się na zasadzie wysłania pojedynczej procedury do wykonania i otrzymanie odpowiedzi. Innym, bardziej rozbudowanym, sposobem jest document oriented communication, gdzie zakłada się wykonanie całego przesłanego dokumentu XML, opisującego kolejne metody do wywołania. <wsdl:operation name="getip"> <wsdlsoap:operation soapaction=""/> <wsdl:input name="getiprequest"> <wsdlsoap:body encodingstyle=" namespace=" use="encoded"/> </wsdl:input> <wsdl:output name="getipresponse"> <wsdlsoap:body encodingstyle=" namespace=" use="encoded"/> </wsdl:output> </wsdl:operation> Tutaj znajdują się wiadomości na temat rodzajów komunikatów i standardów według których mają być budowane. <wsdl:operation name="hello"> <wsdlsoap:operation soapaction=""/>
20 ROZDZIAŁ 1. WEB SERVICES - TWORZENIE I UŻYTKOWANIE 19 <wsdl:input name="hellorequest"> <wsdlsoap:body encodingstyle=" namespace=" use="encoded"/> </wsdl:input> <wsdl:output name="helloresponse"> <wsdlsoap:body encodingstyle=" namespace=" use="encoded"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="podziel"> <wsdlsoap:operation soapaction=""/> <wsdl:input name="podzielrequest"> <wsdlsoap:body encodingstyle=" namespace=" use="encoded"/> </wsdl:input> <wsdl:output name="podzielresponse"> <wsdlsoap:body encodingstyle=" namespace=" use="encoded"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="helloworldservice"> <wsdl:port binding="impl:helloworldsoapbinding" name="helloworld"> <wsdlsoap:address location=" </wsdl:port> </wsdl:service> Korzystając z wyżej zdefiniowanych elementów, możemy stworzyć ostatni, najważniejszy fragment WSDL. Z tagu <wsdl:service> klient dowiaduje się wszystkiego o serwisie, czyli adres pod który ma kierować zapytania (adres serwera) i jak ma je budować. </wsdl:definitions> Jak widać, dokument WSDL jest po prostu zbiorem definicji metod i danych zapisanym w języku pochodnym od XMLa. 1.5 UDDI UDDI, Universal Description, Discovery, and Integration (uniwersalny opis, odkrywanie i scalanie) UDDI jest niezależnym od platformy, opartym o język XML (6.1.1) rejestrem umożliwiającym odnajdywanie i scalanie aplikacji biznesowych z całego świata poprzez internet. Każdy może dodać swoją usługę do katalogu, tak by inni mogli ją odnaleźć, lub też skorzystać z juz zamieszczenych roziwąznań.
Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej
Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej dr inż. Paweł Czarnul pczarnul@eti.pg.gda.pl Architektury usług internetowych laboratorium
Bardziej szczegółowoSimple Object Access Protocol
Simple Object Access Protocol Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 11 grudnia 2005 roku Czym jest SOAP? Akronim SOAP oznacza Simple Object Access Protocol. SOAP jest
Bardziej szczegółowoNarzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl
Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z
Bardziej szczegółowoArchitektury Usług Internetowych. Laboratorium 2. Usługi sieciowe
Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache
Bardziej szczegółowoTechnologie internetowe laboratorium nr 4. Instalacja i uruchomienie usługi sieciowej w serwerze Tomcat/AXIS
Technologie internetowe laboratorium nr 4 Instalacja i uruchomienie usługi sieciowej w serwerze Tomcat/AXIS 1. Wprowadzenie i konfiguracja Celem niniejszego laboratorium jest zainstalowanie i uruchomienie
Bardziej szczegółowoTworzenie i wykorzystanie usług sieciowych
Ćwiczenie 14 Temat: Tworzenie i wykorzystanie usług sieciowych Cel ćwiczenia: W trakcie ćwiczenia student zapozna się z procedurą tworzenia usługi sieciowej w technologii ASP.NET oraz nauczy się tworzyć
Bardziej szczegółowoKomunikacja i wymiana danych
Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX
Bardziej szczegółowoUruchamianie bazy PostgreSQL
Uruchamianie bazy PostgreSQL PostgreSQL i PostGIS Ten przewodnik może zostać pobrany jako PostgreSQL_pl.odt lub PostgreSQL_pl.pdf Przejrzano 10.09.2016 W tym rozdziale zobaczymy, jak uruchomić PostgreSQL
Bardziej szczegółowoDostęp do komponentów EJB przez usługi Web Services
243 Dostęp do komponentów EJB przez usługi Web Services Mikołaj Morzy Mikolaj.Morzy@cs.put.poznan.pl http://www.cs.put.poznan.pl/mmorzy/ Plan rozdziału 244 Wprowadzenie do usług sieciowych Architektura
Bardziej szczegółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowoWprowadzenie do technologii Web Services: SOAP, WSDL i UDDI
Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI Maciej Zakrzewicz PLOUG mzakrz@cs.put.poznan.pl Plan prezentacji Wprowadzenie do architektury zorientowanej na usługi Charakterystyka technologii
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
Bardziej szczegółowoJava jako język programowania
Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)
Bardziej szczegółowoWdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5
Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie
Bardziej szczegółowoI. Informacje ogólne. Jednym z takich systemów jest Mambo.
MAMBO (CMS) I. Informacje ogólne CMS, Content Management System ("system zarządzania treścią") jest to jedna lub zestaw aplikacji internetowych pozwalających na łatwe utworzenie oraz późniejszą aktualizację
Bardziej szczegółowoTypy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone
Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa
Bardziej szczegółowoWdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x
Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie
Bardziej szczegółowoProgramowanie Komponentowe WebAPI
Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,
Bardziej szczegółowoSposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.
Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby
Bardziej szczegółowoSpis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7
I Wprowadzenie (wersja 0906) Kurs OPC S7 Spis treści Dzień 1 I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami automatyki I-6 Cechy podejścia dedykowanego
Bardziej szczegółowoWeb Services. Wojciech Mazur. 17 marca 2009. Politechnika Wrocławska Wydział Informatyki i Zarządzania
Standardy w Rodzaje Przykłady Politechnika Wrocławska Wydział Informatyki i Zarządzania 17 marca 2009 Standardy w Rodzaje Przykłady Plan prezentacji 1 Wstęp 2 Standardy w 3 4 Rodzaje 5 Przykłady 6 Standardy
Bardziej szczegółowoJak używać funkcji prostego udostępniania plików do udostępniania plików w systemie Windows XP
Jak używać funkcji prostego udostępniania plików do udostępniania plików w systemie Windows XP System Windows XP umożliwia udostępnianie plików i dokumentów innym użytkownikom komputera oraz innym użytkownikom
Bardziej szczegółowoWdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9
Wdrożenie modułu płatności eservice dla systemu Magento 1.4 1.9 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do
Bardziej szczegółowoJava pierwszy program w Eclipse «Grzegorz Góralski strona własna
Strona 1 z 9 «Przykładowe zadania do cz. III ćwiczeń z genetyki Java pierwsze kroki w programowaniu (01)» Kategoria: java, Tagi: eclipse - java - programowanie. Autor: Grzegorz, napisał dnia: February
Bardziej szczegółowoProgramowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
Bardziej szczegółowoPodstawy technologii WWW
Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer
Bardziej szczegółowoJęzyk JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po
Bardziej szczegółowoAXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak
AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak Ustawienie zmiennych środowiskowych Przed rozpoczęciem pracy z pakietem AXIS należy ustalić
Bardziej szczegółowoWPROWADZENIE DO JĘZYKA JAVA
WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny
Bardziej szczegółowoSPOSOBY DYSTRYBUCJI OPROGRAMOWANIA PANDA
SPOSOBY DYSTRYBUCJI OPROGRAMOWANIA PANDA Panda Security oferuje trzy sposoby dystrybucji oprogramowania na stacje końcowe: - Lokalne pobranie pliku instalacyjnego z portalu zarządzającego - Generacja instalacyjnego
Bardziej szczegółowoCechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;
14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi
Bardziej szczegółowoGeneratory pomocy multimedialnych
Generatory pomocy multimedialnych Storna 1 Instalacja generatorów oraz praca z generatorem puzzli, memory oraz grupowania.* *Projekt jest całkowicie finansowany z programu Kapitał Ludzki, III Wysoka jakoś
Bardziej szczegółowoZaawansowane aplikacje WWW - laboratorium
Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w
Bardziej szczegółowoOBSŁUGA I KONFIGURACJA SIECI W WINDOWS
OBSŁUGA I KONFIGURACJA SIECI W WINDOWS Jak skonfigurować komputer pracujący pod kontrolą systemu operacyjnego Windows 7, tak aby uzyskać dostęp do internetu? Zakładamy, że komputer pracuje w małej domowej
Bardziej szczegółowoInstrukcja konfiguracji funkcji skanowania
Instrukcja konfiguracji funkcji skanowania WorkCentre M123/M128 WorkCentre Pro 123/128 701P42171_PL 2004. Wszystkie prawa zastrzeżone. Rozpowszechnianie bez zezwolenia przedstawionych materiałów i informacji
Bardziej szczegółowoOpenLaszlo. OpenLaszlo
OpenLaszlo Spis Treści 1 OpenLaszlo Co to jest? Historia Idea Architektura Jako Flash lub DHTML Jako servlet lub SOLO Jak to działa? Język LZX Struktura programu Skrypty Obiekty i klasy Atrybuty i metody
Bardziej szczegółowoZawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6
Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki
Bardziej szczegółowo76.Struktura oprogramowania rozproszonego.
76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie
Bardziej szczegółowoPakiety i interfejsy. Tomasz Borzyszkowski
Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji
Bardziej szczegółowo1 Wprowadzenie do J2EE
Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2
Bardziej szczegółowoREFERAT PRACY DYPLOMOWEJ
REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany
Bardziej szczegółowoPracownia internetowa w każdej szkole (edycja jesień 2005)
Instrukcja numer SPD3/12_02/Z Pracownia internetowa w każdej szkole (edycja jesień 2005) Opiekun pracowni internetowej cz. 3 Instalacja programu phpmyadmin (PD3) Zadanie 1 Program phpmyadmin jest jednym
Bardziej szczegółowoKancelaria instalacja programu
Kancelaria instalacja programu Program Kancelaria można zainstalować w wersji przeznaczonej na pojedynczy komputer (dane zgromadzone przez użytkownika nie będą udostępniane innym pracownikom firmy) lub
Bardziej szczegółowoKurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)
Spis treści Dzień 1 I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501) I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami
Bardziej szczegółowoKatalog książek cz. 3: Web Service
Katalog książek cz. 3: Web Service Przygotowanie usługi sieciowej (web service) 1) Uruchom Netbeans, otwórz projekt przygotowany w ramach poprzednich zajęć. W kolejnych krokach przerobimy klasę BookManager
Bardziej szczegółowoLaboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP
Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego Topologia Cele Część 1: Przygotowanie Wireshark do przechwytywania pakietów Wybór odpowiedniego interfejsu
Bardziej szczegółowoAplikacje internetowe - laboratorium
Aplikacje internetowe - laboratorium Administracja serwerem aplikacji. Celem ćwiczenia jest zainstalowanie i administracja prostym serwerem aplikacji. Ćwiczenie zostanie wykonane przy użyciu popularnego
Bardziej szczegółowoMechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Bardziej szczegółowoProgramowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Bardziej szczegółowoWorld Wide Web? rkijanka
World Wide Web? rkijanka World Wide Web? globalny, interaktywny, dynamiczny, wieloplatformowy, rozproszony, graficzny, hipertekstowy - system informacyjny, działający na bazie Internetu. 1.Sieć WWW jest
Bardziej szczegółowoMateriały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione
Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji
Bardziej szczegółowoZaawansowane aplikacje internetowe - laboratorium
Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest
Bardziej szczegółowoWstęp. Skąd pobrać program do obsługi FTP? Logowanie
Wstęp FTP - (ang. File Transfer Protocol - protokół transmisji danych) jest to protokół typu klient-serwer, który umożliwia przesyłanie plików na serwer, oraz z serwera poprzez program klienta FTP. Dzięki
Bardziej szczegółowoTemat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
Bardziej szczegółowoZałącznik 1 instrukcje instalacji
Załącznik 1 instrukcje instalacji W poniższym załączniku przedstawione zostaną instrukcje instalacji programów wykorzystanych w trakcie tworzenia aplikacji. Poniższa lista przedstawia spis zamieszczonych
Bardziej szczegółowoKonfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami
Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami Dotyczy programów opartych na bazie BDE: Menedżer Pojazdów PL+ Ewidencja Wyposażenia PL+ Spis treści: 1. Wstęp...
Bardziej szczegółowoWykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa
Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa Instalacja roli kontrolera domeny, Aby zainstalować rolę kontrolera domeny, należy uruchomić Zarządzenie tym serwerem, po czym wybrać przycisk
Bardziej szczegółowoSystem Kancelaris. Zdalny dostęp do danych
Kancelaris krok po kroku System Kancelaris Zdalny dostęp do danych Data modyfikacji: 2008-07-10 Z czego składaj adają się systemy informatyczne? System Kancelaris składa się z dwóch części: danych oprogramowania,
Bardziej szczegółowoPlan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym
1 Wprowadzenie do środowiska Oracle APEX, obszary robocze, użytkownicy Wprowadzenie Plan Administracja obszarem roboczym 2 Wprowadzenie Co to jest APEX? Co to jest APEX? Architektura Środowisko Oracle
Bardziej szczegółowoTworzenie pliku źródłowego w aplikacji POLTAX2B.
Tworzenie pliku źródłowego w aplikacji POLTAX2B. Po utworzeniu spis przekazów pocztowych klikamy na ikonę na dole okna, przypominającą teczkę. Następnie w oknie Export wybieramy format dokumentu o nazwie
Bardziej szczegółowoRozproszone systemy Internetowe
Rozproszone systemy Internetowe Transport komunikatów WS: protokół SOAP RSI Oskar Świda 1 Simple Object Access Protocol Bezstanowy protokół komunikacyjny, oparty na standardzie XML Prosty i elastyczny,
Bardziej szczegółowoWspółpraca z platformą Emp@tia. dokumentacja techniczna
Współpraca z platformą Emp@tia dokumentacja techniczna INFO-R Spółka Jawna - 2013 43-430 Pogórze, ul. Baziowa 29, tel. (33) 479 93 29, (33) 479 93 89 fax (33) 853 04 06 e-mail: admin@ops.strefa.pl Strona1
Bardziej szczegółowoAPLIKACJA SHAREPOINT
APLIKACJA SHAREPOINT Spis treści 1. Co to jest SharePoint?... 2 2. Tworzenie nowej witryny SharePoint (obszar roboczy)... 2 3. Gdzie znaleźć utworzone witryny SharePoint?... 3 4. Personalizacja obszaru
Bardziej szczegółowoĆwiczenie 1. Przygotowanie środowiska JAVA
Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.
Bardziej szczegółowoZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja
ZPKSoft WDoradca 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja 1. Wstęp ZPKSoft WDoradca jest technologią dostępu przeglądarkowego do zasobów systemu ZPKSoft Doradca.
Bardziej szczegółowoJava Podstawy. Michał Bereta www.michalbereta.pl mbereta@pk.edu.pl
Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu
Bardziej szczegółowoDeduplikacja danych. Zarządzanie jakością danych podstawowych
Deduplikacja danych Zarządzanie jakością danych podstawowych normalizacja i standaryzacja adresów standaryzacja i walidacja identyfikatorów podstawowa standaryzacja nazw firm deduplikacja danych Deduplication
Bardziej szczegółowoTworzenie oprogramowania
Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja
Bardziej szczegółowoSystem zdalnego dostępu (VPN) do sieci Wydziału Elektrycznego PW
System zdalnego dostępu (VPN) do sieci Wydziału Elektrycznego PW Dokument dostęny do pobrania Z początkiem bieżącego roku akademickiego 2011/2012 zotał uruchomiony nowy system zdalnego dostępu do sieci
Bardziej szczegółowoProdukcja by CTI. Proces instalacji, ważne informacje oraz konfiguracja
Produkcja by CTI Proces instalacji, ważne informacje oraz konfiguracja Spis treści 1. Ważne informacje przed instalacją...3 2. Instalacja programu...4 3. Nawiązanie połączenia z serwerem SQL oraz z programem
Bardziej szczegółowoDokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV
Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium
Bardziej szczegółowoEXSO-CORE - specyfikacja
EXSO-CORE - specyfikacja System bazowy dla aplikacji EXSO. Elementy tego systemu występują we wszystkich programach EXSO. Może on ponadto stanowić podstawę do opracowania nowych, dedykowanych systemów.
Bardziej szczegółowoProgramowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz
Programowanie komponentowe Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System Application
Bardziej szczegółowoWybrane działy Informatyki Stosowanej
Wybrane działy Informatyki Stosowanej Java Enterprise Edition WebServices Serwer aplikacji GlassFish Dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki Aplikacje
Bardziej szczegółowoKurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Bardziej szczegółowoSERWER AKTUALIZACJI UpServ
Wersja 1.12 upserv_pl 11/16 SERWER AKTUALIZACJI UpServ SATEL sp. z o.o. ul. Budowlanych 66 80-298 Gdańsk POLSKA tel. 58 320 94 00 serwis 58 320 94 30 dz. techn. 58 320 94 20; 604 166 075 www.satel.pl SATEL
Bardziej szczegółowoSIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja
SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja Instytut Telekomunikacji Wydział Elektroniki i Technik Informacyjnych Politechnika Warszawska, marzec 2015 Wprowadzenie Ćwiczenie jest wykonywane
Bardziej szczegółowoCertyfikat Certum Basic ID. Instrukcja dla użytkowników Windows Vista. wersja 1.3 UNIZETO TECHNOLOGIES SA
Certyfikat Certum Basic ID Instrukcja dla użytkowników Windows Vista wersja 1.3 Spis treści 1. INSTALACJA CERTYFIKATU... 3 1.1. KLUCZ ZAPISANY BEZPOŚREDNIO DO PRZEGLĄDARKI (NA TYM KOMPUTERZE),... 3 1.2.
Bardziej szczegółowoDokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.
Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->. Następnie wybieramy Serwer aplikacji (IIS, ASP.NET) i klikamy
Bardziej szczegółowoKlient poczty elektronicznej - Thunderbird
Klient poczty elektronicznej - Thunderbird Wstęp Wstęp Klient poczty elektronicznej, to program który umożliwia korzystanie z poczty bez konieczności logowania się na stronie internetowej. Za jego pomocą
Bardziej szczegółowoBezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia
Bezpieczeństwo systemów komputerowych Java i JavaScript mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Java i JavaScript używane w celu dodania cech interaktywności do stron WWW mogą
Bardziej szczegółowoWeb Services. Technologie Biznesu Elektronicznego. Konrad Kunicki. Politechnika Wrocławska, Wydział Informatyki i Zarządzania
Standardy Technologie Biznesu Elektronicznego Politechnika Wrocławska, Wydział Informatyki i Zarządzania Wrocław, 26 kwiecień 2005 Standardy Plan prezentacji 1 Wprowadzenie 2 Standardy 3 4 5 Standardy
Bardziej szczegółowoInstrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID
Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID wersja 1.3 Spis treści 1. INSTALACJA CERTYFIKATU... 3 1.1. KLUCZ ZAPISANY BEZPOŚREDNIO DO PRZEGLĄDARKI (NA TYM KOMPUTERZE),... 3 1.2.
Bardziej szczegółowoNiezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.
Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat. Serwer Tomcat Plan wykładu Opis serwera Jak uruchomić napisaną aplikację Podstawowa konfiguracja Pierwsze uruchomienie Tomcat
Bardziej szczegółowoMINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ EMAIL DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP
MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ EMAIL DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP WERSJA 1 z 15 Spis treści 1. Kanał email dla podmiotów zewnętrznych...
Bardziej szczegółowoBACKUP BAZ DANYCH FIREBIRD
BACKUP BAZ DANYCH FIREBIRD SPIS TREŚCI Informacje ogólne... 2 Tworzenie projektu... 2 Krok 1: Informacje podstawowe... 2 Krok 2: Dane... 3 Backup bazy umieszczonej na serwerze... 3 Bezpośredni backup pliku
Bardziej szczegółowoAplikacja npodpis do obsługi certyfikatu
BANK SPÓŁDZIELCZY w Witkowie Aplikacja npodpis do obsługi certyfikatu (instrukcja użytkownika) Wersja 05 http://www.ib.bswitkowo.pl I. Słownik pojęć dalej zwana aplikacją; Internet Banking dla Firm dalej
Bardziej szczegółowoInstrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie
Strona 1 z 6 Połączenia Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie Uwaga: Przy instalowaniu drukarki podłączonej lokalnie, jeśli dysk CD-ROM Oprogramowanie i dokumentacja
Bardziej szczegółowoemszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)
emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to przeznaczone jest dla właścicieli sklepów internetowych opartych
Bardziej szczegółowoExtensible Markup Language (XML) Wrocław, Java - technologie zaawansowane
Extensible Markup Language (XML) Wrocław, 15.03.2019 - Java - technologie zaawansowane Wprowadzenie XML jest językiem znaczników (ang. markup language) używanym do definiowania zbioru zasad rozmieszczenia
Bardziej szczegółowoWeb Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services
Web Services Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 2 grudnia 2005 roku Wstęp Oprogramowanie napisane w różnych językach i uruchomione na różnych platformach może wykorzystać
Bardziej szczegółowoAplikacja npodpis do obsługi certyfikatu
BANK SPÓŁDZIELCZY w Piotrkowie Kujawskim Aplikacja npodpis do obsługi certyfikatu (instrukcja użytkownika) Wersja 05 https://www.bspk.pl I. Słownik pojęć dalej zwana aplikacją; Internet Banking dla Firm
Bardziej szczegółowoPodłączenie TV przez VPN na Samsung Smart VPN Online Access
Podłączenie TV przez VPN na Samsung Smart VPN Online Access http://www.vpnonline.pl Co potrzebujemy: TV z możliwością podłączenia do Internetu i aplikacjami takimi jak ipla czy tvnplayer Notebook lub inny
Bardziej szczegółowoDokumentacja aplikacji Szachy online
Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja
Bardziej szczegółowo