Budowa aplikacji sieciowych. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.
|
|
- Maksymilian Urbaniak
- 8 lat temu
- Przeglądów:
Transkrypt
1 Sieci Komputerowe Budowa aplikacji sieciowych. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl
2 Zagadnienia Obiektowe technologie programowania rozproszonego: DCOM, Java RMI, Corba. Interfejs programowy Winsock. Przykład programu klient-serwer UDP Echo (język C,C++). Środowisko.Net, interfejs programowy Winsock. Przykład programu klient-serwer UDP Echo (język C#). Komunikacja z bazami danych, obiekty ADO. Przykład programu: SqlQuerry (język ASP). Usługi WWW (web servcies). Standard Corba.
3 Co to jest COM+? COM+ jest rozszerzeniem technologii komponentowej COM, umoŝliwiającą budowę usług z wykorzystaniem Microsoft Transaction Server (MTS). Obiekty COM+ słuŝą do: - buforowania danych (resource pooling), - rozłączania aplikacji, - publikowania zdarzeń (event publication), - obsługa transakcji rozproszonych. Typy aplikacji COM+: serwer. proxy (klient). biblioteka. W środowisku.net obiekty COM+ są zdefiniowane w obszarze nazw System.EnterpriseServices. 3
4 Co to jest COM+? MTS słuŝy od kolejkowania wiadomości, zarządzania pamięcią, zarządzania wątkami, zarządzania zdarzeniami. Usługi COM+: Automatic Transaction Processing BYOT (Bring Your Own Transaction), usługa pozwala na definiowanie dziedziczenia między transakcjami. Just-in-Time Activation, usługa aktywuje obiekt, gdy ten wywołuje metodę, deaktywuje go gdy metoda zwróci wartość. Loosely Coupled Events, usługa słuŝy do zarządzania zdarzeniami (manages object-based events). Object Construction, usługa przekazuje wartość typu string do tworzonego obiektu. Object Pooling, usługa kolejkuje obiekty (provides a pool of ready-made objects). Private Components, chroni komponenty przed wywołaniem przez zewnętrzne procesy (protects components from out-of-process calls). Queued Components, odpowiada za asynchroniczne kolejkowanie wiadomości (provides asynchronous message queuing). Role-Based Security. SOAP Service. Synchronization, zarządza procesami współbieŝnymi. Services without Components, pozwala aplikacjom korzystać z usług COM+ które nie mają zaimplementowanych ServicedComponent object lub nie mają skonfigurowanego katalogu COM+.
5 Co to jest Distributed Component Object Model (DCOM)? DCOM model, technologia firmy Microsoft słuŝąca do budowy systemów rozproszonych (distributed systems). Obiekty DCOM mogą komunikować się między sobą poprzez sieci internetowe. DCOM jest rozszerzeniem modelu COM. Technologia COM/DCOM jest niezaleŝna od języka implementacji. Język i kompilator MIDL (Microsoft Interface Definition Language) słuŝy do specyfikowania interfejsów między serwerem a klientem, definiowania metod i obiektów COM/DCOM. Podstawowe pojęcia technologii COM/DCOM: klient serwer - program który wywołuje metody na serwerze COM/DCOM. program który udostępnia obiekty COM/DCOM klientowi. interfejs wskazuje na grupę funkcji które są wywoływane za pomocą obiektów COM/DCOM. klasa COM/DCOM (zwana ko-klasą) definiuje obiekt który implementuje interfejsy COM/DCOM. obiekt COM/DCOM instancja ko-klasy (klasa COM/DCOM). marshaling przekazywanie danych (parametrów) między klientem a serwerem COM/DCOM. Marshaling mechanizm zbierania i formatowania danych w celu przesłania ich do innego procesu.
6 Co to jest Distributed Component Object Model? Klient przekazuje (marshals) i odbiera (un-marshals) dane za pomocą obiektu proxy. Obiekt proxy dostarcza te same interfejsy co COM/DCOM serwer ale ich nie implementuje (implementacja jest na serwerze). Serwery są komponentami pasywnymi, tzn. odpowiadają tylko na Ŝądania klienta. Klient: uruchamia, aktywuje serwer, Ŝąda obiektu DCOM i interfejsu (podaje CLSID, IID). wywołuje metody na serwerze. zwalnia interfejsy, moŝe zamknąć lub zdeaktywować serwer.
7 Co to jest Distributed Component Object Model? Obiekty COM/DCOM muszą być unikalne w skali świata. Liczby słuŝące do numerowania obiektów COM/DCOM nazywają się UUID, Universally Unique Identifier (Open Software Foundation). GUID, Globally Unique Identifier (Microsoft). GUID jest liczbą z zakresu 0-2^128. Przykład GUID'a zapisanego w układzie szesnastkowym " F93A-11D0-BCE4-204C4F4F5020". PoniewaŜ, GUID jest 128 bitowym typem danych, w języku C++ do zapisu GUID ów stosuje się strukturę typedef struct _GUID { unsigned long Data1; unsigned short Data2; unsigned short Data3; unsigned char Data4[8]; } GUID;
8 Co to jest Distributed Component Object Model? Do identyfikacji klas i interfejsów stosuje się róŝne typu GUID ów: CLSID, Class ID, GUID jednoznacznie identyfikujący klasę DCOM którą klient chce uŝyć. IID, Interface ID, GUID identyfikujący interfejs. Program słuŝący do generowania GUID ów nazywa się guidgen.exe. Program słuŝący do rejestrowania obiektów COM/DCOM w rejestrach nazywa się regsvr32. Przykład: rejestracja komponentu proxy stub marshalserverps.dll \> regsvr32 marshalserverps.dll
9 Co to jest Distributed Component Object Model? Komponenty biorące udział w komunikacji między klientem a serwerem DCOM. Komponenty DCOM do komunikacji wykorzystują protokół RPC (Remote Procedure Calls). Komponenty COM do komunikacji wykorzystują protokół LPC (Local Procedure Calls). Service Control Manager (SCM) - słuŝy do odnajdywania komponentów DCOM, uruchamia i zatrzymuje serwer COM/DCOM, wywołuje Interfejsy COM/DCOM, zarządza komunikacją między procesami. Np. SCM wykorzystuje do uruchomienia serwera interfejs IremoteActivation, wywołując na serwerze funkcje RPC RemoteActivate().
10 Co to jest Java RMI? Java RMI jest technologią pozwalającą na budowę aplikacji rozproszonych. Technologia Java RMI została opracowana tak, aby budowa aplikacji była podobna do budowy aplikacji niesieciowych, posługiwania się lokalnymi obiektami Javy, obowiązywała ta sama składnia i semantyka. Istotą technologii RMI jest to, Ŝe interfejsy określają zachowanie obiektów a klasy definiują implementację. W Java RMI definicja zachowania systemu w procesie generowania usługi sieciowej (remote service) jest określona za pomocą interfejsów Javy (Java interface). Implementacja zachowania systemu i usługi jest zapisana w klasie i wykonywana na serwerze.
11 Co to jest Java RMI? W Java RMI istnieją dwa typy klas które mogą implementować interfejs. Pierwszy typ implementuje zachowanie interfejsu, wówczas program wykonywalny jest uruchamiany na serwerze. Drugi typ klasy implementuje interfejs jako klasa proxy, klasa uruchamiana jest na hoście klienta.
12 Co to jest Java RMI? Implementacja Java RMI zbudowana jest na trzech warstwach (abstraction layers): - warstwa Stub and Skeleton. W tej warstwie przechwytywane są metody wywołane przez klienta i przekierowywane do serwera (remote RMI service). - warstwa zdalnej referencji (Remote Reference Layer). W tej warstwie odbywa się interpretacja i zarządzanie referencjami do obiektów serwera utworzonymi przez klineta, budowane jest połączenie unicastowe (1-1). Aktywowanie nieaktywnych (uśpionych/) obiektów serwera następuje za pomocą ROA (Remote Object Activation). - warstwa transportowa, obsługa połączenia TCP między wirtualnymi maszynami Javy. Ponad protokołem TCP RMI stosuje protokół JRMP (Java Remote Method Protocol). Opracowywana wersja RMI-IIOP implementuje protokoły OMG stosowane w Corbie Internet Inter-ORB Protocol i IIOP. W tej warstwie moŝe teŝ być zaimplementowana transmisja bezpołączeniowa w protokole UDP.
13 Co to jest Java RMI? Szablon proxy. Interfejs jest implementowany jako stub (klasa typu proxy) uruchamiany na hoście klienta, RealSubject jest klasą implementującą usługę na serwerze. Skeleton jest klasą pomocniczą, słuŝy obsługi komunikacji między stubem a obiektami serwera. Klient odnajduje uslugi (serwer) za pomocą standardowych usług katalogowych lub usług - Java Naming and Directory Interface. - RMI Registry, port 1099.
14 Co to jest WinSock? Windows Sockets jest implementacja gniazd BSD (University of California-Berkeley Sockets API) edycja WinSock wersja WinSock wersja 2.0. Windows Sockets jest interfejsem programowym warstwy transportowej modelu OSI pozwalającym budować aplikacje sieciowe oparte o protokoły rodziny TCP/IP. Windows Sockets 2 definiuje interfejsy komunikacyjne do obsługi wielu standardów i usług: DNS, NetWare Service Advertising Protocol (SAP) name provider, standard X.509 (PKI) Quality of service transmisji w trybie multicast, multipoint.
15 Co to jest WinSock? W skład specyfikacji WinSock2 wchodzą: - WinSock 2 API (budowa aplikacji) - WinSock 2 Service Provider Interface (udostępnianie interfejsów WinSock 2 róŝnym protokołom transportowym). Komponenty Windows Open System Architecture (WOSA): - WinSock Service Provider Interface (SPI), nazwy funkcji zaczynają się od WSP - WinSock Provider Upcall, nazwy funkcji zaczynają się od WPU. Nazwy funkcji Windows Sockets 2 zaczynają się do WSA. Przykład: WinSock 1.1: connect() WinSock 2.0: WSAConnect().
16 Co to jest WinSock? Przykładowe funkcje WinSock API: WSAStartup() - funkcja inicjuje uŝycie przez proces biblioteki WS2_32.DLL. socket() - funkcja tworzy gniazdo o określonym typie. gethostbyname() - funkcja pobiera nazwę hosta z bazy hosta. connect() - funkcja buduje połączenie do określonego gniazda. send() funkcja wysyła dane do połączonego gniazda. sendto()- funkcja wysyła dane do konkretnego odbiorcy. closesocket() funkcja zamyka gniazdo. WSACleanup() funkcja kończy uŝycie biblioteki WS2_32.DLL. bind() - funkcja kojarzy adres lokalny hosta z gniazdem. recvfrom() - funkcja odbiera datagramy i przechowuje adres nadawcy WSAGetLastError()- funkcja zwraca status błędu ostatniej nieudanej operacji. Struktury WinSock API: WSADATA - struktura zawiera informacje o implementacji gniazd (Windows Sockets). sockaddr_in - struktura zawiera adres IP i numer portu odbiorcy danych. hostent - struktura jest uŝywana przez funkcje do przechowywania informacji o hoście.
17 1. Instrukcje preprocesorowe: Co to jest WinSock? Aplikacja UdpEchoClient. Język C, C++. #include <winsock2.h> #include <iostream> using namespace std; #define DEFAULT_PORT 5150 #define DEFAULT_COUNT 1 #define DEFAULT_BUFFER_LENGTH 1 #define DEFAULT_RECIPIENT " " 2. Funkcja main(). Definiowanie i inicjowanie zmiennych i obiektów. WSADATA wsd; SOCKET s; char *sendbuf = NULL; int iret, dwrecipientsize; SOCKADDR_IN recipient; int iport = DEFAULT_PORT; // Numer portu odbiorcy DWORD dwcount = DEFAULT_COUNT, // Liczba wiadomosci do wyslania dwlength = DEFAULT_BUFFER_LENGTH; // Dlugosc bufora do wysylania char chrecipient[128]= DEFAULT_RECIPIENT; // Adres IP lub nazwa hosta odbiorcy
18 Co to jest WinSock? Aplikacja UdpEchoClient. Język C, C++. WSAStartup(MAKEWORD(2, 2), &wsd); s = socket(af_inet, SOCK_DGRAM, 0); recipient.sin_family = AF_INET; recipient.sin_port = htons((short)iport); recipient.sin_addr.s_addr = inet_addr(chrecipient); sendbuf = new char; memset(sendbuf, 'Q', dwlength); connect(s, (SOCKADDR *)&recipient, sizeof(recipient)); iret = send(s, sendbuf, dwlength, 0); cout << "Do " << inet_ntoa(recipient.sin_addr) << " wyslano wiadomosc: " << *sendbuf << endl; dwrecipientsize = sizeof(recipient); iret = recvfrom(s, sendbuf, dwlength, 0, (SOCKADDR *)&recipient, (int*) &dwrecipientsize); cout << "Od " << inet_ntoa(recipient.sin_addr) << " odebrano wiadomosc: " << *sendbuf << endl; closesocket(s); delete sendbuf; WSACleanup();
19 1. Instrukcje preprocesorowe. Co to jest WinSock? Aplikacja UdpEchoServer. Język C, C++. #include <winsock2.h> #include <iostream> using namespace std; #define DEFAULT_PORT 5150 #define DEFAULT_COUNT 1 #define DEFAULT_BUFFER_LENGTH 1 // Funkcja main(). Definiowanie i inicjowanie zmiennych i obiektów. WSADATA wsd; SOCKET s; char *recvbuf = NULL; int iret; DWORD dwsendersize; SOCKADDR_IN sender, local; int iport = DEFAULT_PORT; // Numer portu odbiorcy DWORD dwcount = DEFAULT_COUNT, // Liczba wiadomości do odebrania dwlength = DEFAULT_BUFFER_LENGTH; // Długość bufora do obioru char chinterface[32]; // IP hosta do obioru datagramów
20 Co to jest WinSock? Aplikacja UdpEchoServer. Język C, C++. WSAStartup(MAKEWORD(2,2), &wsd); s = socket(af_inet, SOCK_DGRAM, 0); local.sin_family = AF_INET; local.sin_port = htons((short)iport); local.sin_addr.s_addr = htonl(inaddr_any); bind(s, (SOCKADDR *)&local, sizeof(local)); recvbuf = new char; dwsendersize = sizeof(sender); iret = recvfrom(s, recvbuf, dwlength, 0, (SOCKADDR *)&sender, (int*) &dwsendersize); cout << "Od " << inet_ntoa(sender.sin_addr) << " odebrano wiadomosc: " << *recvbuf << endl; memset(recvbuf, 'Z', dwlength); connect(s, (SOCKADDR *)&sender, sizeof(sender)); iret = send(s, recvbuf, dwlength, 0); cout << " Do " << inet_ntoa(sender.sin_addr) << " wyslano wiadomosc: " << *recvbuf << endl; closesocket(s); delete recvbuf; WSACleanup();
21 Programowanie aplikacji sieciowych w.net. WinSock Obszar nazw System.Net.Sockets Klasa UdpClient, IPEndPoint Obiekt klasy UdpClient dostraczają usług w protokole User Datagram Protocol. Obiekt klasy IPEndPoint reperezentuje odbiorcę danych poprzez jego adres IP i numer portu.
22 .Net. WinSock. Aplikacja UdpEchoClient. 1. Przypisanie wartości parametrom początkowym. Parametry: ServerName, ServerPort, SendMessage. String server = m40.math.uni.opole.pl ; // nazwa lub adres IP serwera int servport = 7; // port serwera byte[] SendMessage = Encoding.ASCII.GetBytes( Hello );//konwersja stringu Hello na tab. obiektów 2. Utworzenie obiektu Client. UdpClient client = new UdpClient(); 3. Wysłanie wiadomosci Ŝądanie Echa. client.send(sendpacket, sendpacket.length, server, servport); 4. Utworzenie obiektu IPEndPoint. IPEndPoint remoteipendpoint = new IPEndPoint(IPAddress.Any, 0);
23 5. Odebranie odpowiedzi Echa..Net. WinSock. Aplikacja UdpEchoClient. byte[] rcvpacket = client.receive(ref remoteipendpoint); 6. Zamknięcie obiektu Client. client.close();
24 1. Przypisanie wartości parametrom początkowym..net. WinSock. Aplikacja UdpEchoServer. int servport = 7; UdpClient client = null; 2. Utworzenie obiektu client. client = new UdpClient(servPort); 3. Utworzenie obiektu IPEndPoint. IPEndPoint remoteipendpoint = new IPEndPoint(IPAddress.Any, 0); for (;;) // serwer odbiera datagramy w nieskończonej pętli. 4. Odebranie wiadomości Ŝądanie Echa. byte[] bytebuffer = client.receive(ref remoteipendpoint); 5. Wysłanie odpowiedzi Echa (wysłanie wiadomości Echo replay). client.send(bytebuffer, bytebuffer.length, remoteipendpoint); Console.WriteLine("echoed {0} bytes.", bytebuffer.length);
25 Co to jest ADO, ActiveX Data Objects? ADO jest technologią firmy Microsoft. komponentem Active-X (ACTIVE exchange). automatycznie instalowany z serwerem www Microsoft IIS. interfejsem programowym dostępu do baz danych. Kontrolka Active-X - wcześniejsza nazwa kontrolka OLE, jest przykładem obiektu typu COM, komponent realizujący określoną funkcjonalność, który moŝe być zagnieŝdŝany w aplikacje, okna dialogowe, strony HTML. Plik z rozszerzeniem *.ocx Obiekty ADO: ADO Command ADO Connection ADO Error ADO Field ADO Parameter ADO Property ADO Record ADO Recordset ADO Stream ADO DataTypes
26 Co to jest ActiveX Data Objects? Obiekt Command stosowany do wykonania kwerend do bazy danych w celu utworzenia, uaktualnienia, dodania, pobrania, usunięcia (create, add, retrieve, delete, update) rekordu. JeŜeli kwerenda słuŝyła do pobrania danych, to dane są zwracane jako obiekt RecordSet (zbiór rekordów). Oznacza to, Ŝe aby odzyskać dane z obiektu (RecordSet) naleŝy posłuŝyć się metodami, zdarzeniami, properties, collections, obiektu Recordset. Przykład uŝycia: ProgID set objcommand=server.createobject("adodb.command") Obiekt Connection obiekt słuŝy do budowy i otwarcia połączenia z baza danych. Przykład uŝycia: ProgID set objconnection=server.createobject("adodb.connection")
27 Co to jest ActiveX Data Objects? Obiekt Error - obiekt zawiera dane o błędach powstałych przy wykonaniu pojedynczych operacji na bazie danych. Przykład uŝycia: for each objerr in objconn.errors response.write(objerr.description ) response.write(objerr.helpcontext) response.write(objerr.helpfile) response.write(objerr.nativeerror) response.write(objerr.number) response.write(objerr.source) response.write(objerr.sqlstate) next Obiekt Field obiekt przechowuje informacje o kolumnie danych w obiekcie Recordset. Przykład uŝycia: set objfield=server.createobject("adodb.field")
28 Co to jest ActiveX Data Objects? Obiekt Parameter obiekt słuŝy do uzyskania informacji o parametrach uŝytych w procedurach składowanych (stored procedures) lub kwerendach. Cztery typy parametrów: input, output, input/output, return. Przykład składni: objectname.property objectname.method Obiekt Property - obiekt reprezentuje dynamiczne charakterystyki obiektów ADO zdefiniowanych dla róŝnych typów baz danych (db providers). Przykład uŝycia: set objproperty=server.createobject("adodb.property")
29 Co to jest ActiveX Data Objects? Obiekt Record (ADO ver. 2.5) obiekt słuŝy do przechowania wiersza danych z Recordsetu, katalogu lub pliku. Przykład uŝycia: objectname.property objectname.method Obiekt Recordset - obiekt słuŝy do przechowywania danych (zbioru rekordów) z tabeli. Obiekt Recordset składa się z rekordów i kolumn (pól, ang. Fields). Recordset moŝe uaktualnić dane na dwa sposoby: immediate updating, batch updating. Przykład uŝycia: set objrecordset=server.createobject("adodb.recordset") Obiekt Stream (ADO version 2.5) obiekt stosowany do czytania, zapisywania, zarządzania strumieniem danych.
30 Co to jest ActiveX Data Objects? Kursory ADO są parametrami metod obiektów ADO. Kursory definiują usługi kursora (cursor service). Typy kursorów ADO: Dynamic cursor pozwala na przegląd operacji dodania, zmiany, usunięcia wykonane przez innego uŝytkownika. Keyset cursor usługa podobna do usługi kursora dynamic, za wyjątkiem: braku moŝliwości przeglądania operacji dodania przez innego uŝytkownika, braku dostępu do rekordów które inny uŝyytkownik usunął. Dane zmienione przez innego uŝytkownika są widoczne. Static cursor pozwala dokonać statycznego kopiowania rekordsetów w celu znalezienia danych lub wygenerowania raportów. Operacje dodania, zmiany, usunięcia wykonane przez innego uŝytkownika są niewidoczne. Typ kurosora dostępny tylko dla obiektów typu klient rekordset. Forward-only cursor pozwala przejrzeć rekordset. Operacje dodania, zmiany, usunięcia wykonane przez innego uŝytkownika są niewidoczne. Kursor Forward-only moŝe być ustawiony poprzez property CursorType lub poprzez parametr CursorType w metodzie Open().
31 Co to jest ActiveX Data Objects? Proces budowy połączenia z bazą danych za pomocą obiektów ADO: 1. Utworzenie połączenia ADO z bazą danych. 2. Otwarcie połączenia. 3. Utworzenie recordseta. 4. Otwarcie recordseta. 5. Pobranie danych do recordseta. 6. Zamknięcie recordseta. 7. Zamknięcie połączenia.
32 Co to jest ActiveX Data Objects? 1-2. Utworzenie i otwarcie połączenia z bazą danych. Baza northwind.mdb. set conn=server.createobject("adodb.connection") conn.provider="microsoft.jet.oledb.4.0" conn.open "c:/webdata/northwind.mdb Utworzenie i otwarcie połączenia z bazą danych za pomocą komponentu ODBC. set conn=server.createobject("adodb.connection") conn.open "northwind" 3. Utworzenie recordseta. set rs=server.createobject("adodb.recordset")
33 Co to jest ActiveX Data Objects? 4-5. Otwarcie i pobranie danych do recordseta. Czytanie dnych z rekordseta. rs.open "Select * from Customers", conn for each x in rs.fields response.write(x.name) response.write(" = ") response.write(x.value) next 6. Zamknięcie recordseta. rs.close 7. Zamknięcie połączenia. conn.close
34 Co to jest ASP? ASP oznacza skrót Active Server Pages ASP jest programem wykonywanym przez komponent IIS (Internet Information Services). Plik *.asp moŝe zawierać: tagi języka HTML, XML, skrytpy (VB scirpt, Java script,.). Skrypty w plikach *.asp są wykonywane na serwerze. śądane strony *.asp przez przegladarkę internetową są przekazywane przez serwer WWW do silnika ASP, skrypty są wykonywane i do klienta (przegladarki internetowej) zwracane są dane w formie HTML bez skryptów. Zaletą takiego rozwiązania jest, Ŝe przeglądarki internetowe nie muszą obsługiwać Ŝadnych języków skryptowych.
35 Co to jest ASP? Skrypty w plikach ASP zawarte są między znakami <% a %>. Przykład pliku *.asp. <html> <body> <% response.write("hello World!") %> </body> </html>
36 Co to jest ASP? Domyślnym językiem skryptowym dla stron ASP jest VBScript. Aby zagnieździć skrypty pisane w innych językach naleŝy uŝyć atrybutu language. <%@ language="javascript"%> <html> <body> <% Response.Write("Hello World!") %> </body> </html>
37 Co to jest ASP? Przykład: strona www wykonana w ASP. <html> <body> <% dim h h=hour(now()) response.write("<p>" & now()) response.write("</p>") </body> </html> If h<12 then response.write("jest przed południem") else response.write("jest po południu!") end if %>
38 Usługi WWW Web Services Architecture, W3C Working Group Note 11 February 2004 Usługa WWW (ang. web service) jest systemem aplikacyjnym zaprojektowanym w celu wspamogania wymiany danych między węzłami w sieciach komputerowych. System aplikacyjny usługi WWW posiada interfejs zaprojekowany w języku WSDL. Inne systemy aplikacyjne wymieniają wiadomości z systemem usługi WWW za pomocą protokołu SOAP (tzn. wiadomości przesyłane są za pomocą protokołu HTTP, dane są w formacie XML). Formalną definicję usługi WWW moŝna znaleźć w specyfikacji języka WSDL Usługa WWW korzysta z następujących protokołów i standardów: HTTP (ang. HyperText Transfer Protocol) SOAP (ang. Simple Object Access Protocol) UDDI (ang. Universal Description, Discovery and Integration) HTML (ang. HyperText Markup Language) XML (ang. extensible Markup Language) (xml, xml dtd, xml schema) WSDL (ang. Web Services Description Language)
39 Simple Object Access Protocol (SOAP) SOAP jest protokolem słuŝącym aplikacjom sieciowym na wymianę danych w protokole HTTP w których struktura danych określona jest w formacie XML. SOAP jest elementem architektury projektu Microsoft.NET. Większość aplikacji sieciowych komunikuje się w Internecie wykorzystując standardowe komponenty takie, jak obiekty DCOM, obiekty CORBA. Obiekty te korzystają z protokolu RPC (ang. Remote Procedure Calls). Wadą tego sposobu komunikacji jest to, Ŝe firewalle i serwery proxy blokują tego typu komunikację. Firewalle i serwery proxy zazwyczaj nie blokują komunikacji w protokole HTTP, tzn. port nasłuchiwania serwera www jest zazwyczaj otwarty. Protokół SOAP zostal stworzony przez firmę Microsoft w celu wymiany danych w protokole HTTP i foramcie XML.
40 Simple Object Access Protocol (SOAP) Cechy protokołu SOAP jest protokołem warstwy aplikacji w modelu OSI, jest protokołem zaprojektowanym do komunikacji w Internecie, definiuje format przesyłanych wiadomości, jest protokołem niezaleŝnym od platformy systemowej, jest niezaleŝny od języka implementacji usługi WWW, jest oparty o język XML, nie jest blokowany przez firewall e. Wiadomość SOAP ma strukturę dokumentu XML i zawiera następujące elementy (tagi): envelope, zawiera treść wiadomości, header, element opcjonaly, zawiera informacje nagłówkowe, body, zawiera zapytanie i odpowiedź.
41 Simple Object Access Protocol (SOAP) Podstawowe zasady skladni protokolu SOAP: wiadomość SOAP musi być w formacie XML, wiadomość SOAP musi zawierac tag SOAP Envelope, wiadomość SOAP moŝe zawierać tag SOAP Header, wiadomość SOAP musi zawierać tag SOAP Body, wiadomość SOAP musi korzystać z obszaru nazw SOAP Envelope, wiadomość SOAP musi korzystać z obszaru nazw SOAP encoding, wiadomość SOAP nie musi zawierać odnośnikow do dokumentow DTD, wiadomość SOAP nie musi zawierać instrukcji xml (ang. XML Processing Instructions). Przykład: struktura widomości SOAP. Pełna struktura widomości SOAP opisana jest w specyfikacji SOAP <soap:envelope> <soap:body> <NazwaTagu1> <Element1> </Element1> </NazwaTagu1> </soap:body> </soap:envelope>
42 Web Services Description Language Dokument WSDL słuŝy do opisu usługi WWW. Dokument WSDL umoŝliwia odnalezienie usługi WWW w Internecie. Dokument WSDL jest dokumentem XML. Specyfikacja języka WSDL znajduje się pod adresem Struktura dokumentu WSDL: <porttype> operacje wykonywane przez usługę WWW <message> wiadomosci wykorzystywane przez usługę WWW <types> typy danych wykorzystywane przez usługę WWW <binding> protokoly komunikacyjne wykorzystywane przez usługę WWW. Przyklad: prosty dokument wsdl. <definitions> <types> definition of types...</types> <message> definition of a message...</message> <porttype> definition of a port...</porttype> <binding> definition of a binding...</binding> </definitions>
43 Usługa WWW: Silnia 1. Uruchomić serwer WWW (Microsoft IIS). 2. Umieścić w katalogu \wwwroot\ plik silnia.asmx (C:\Inetpub\wwwroot\silnia.asmx ) 3. Utworzyć Web Service Proxy. \>wsdl wynik: silnia.cs 4. Utworzyć dynamicznie dołączaną biblitekę silnia.dll, tzn. skompilować plik silnia.cs. C:\Inetpub\wwwroot >csc /t:library silnia.cs wynik: silnia.dll 5. Skompilować program SilniaTest.cs z linkiem do biblioteki silnia.dll C:\Inetpub\wwwroot> csc /r:silnia.dll SilniaTest.cs Rezultat: SilniaTest.exe 6. Test usługi WWW. Uruchomić program SilniaTest.exe (plik silnia.dll umieścić w tym samym katalogu co SilniaTest.exe ). C:\> SilniaTest.exe 8 Rezultat: C:\> Usluga silnia. 8! = 40320
44 Usługa silnia Plik silnia.asmx WebService Language="c#" Class="Silnia"%> using System; using System.Web.Services; [WebService(Namespace=" public class Silnia : WebService { [WebMethod] public int silnia(int n) { if (n == 0) return 1; else return (n * silnia(n - 1)); } }
45 Plik silnia.cs // // <auto-generated> // This code was generated by a tool. // Runtime Version: // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // </auto-generated> // using System; using System.ComponentModel; using System.Diagnostics; using System.Web.Services; using System.Web.Services.Protocols; using System.Xml.Serialization; // // This source code was auto-generated by wsdl, Version= // /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", " ")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Web.Services.WebServiceBindingAttribute(Name="SilniaSoap", Namespace=" public partial class Silnia : System.Web.Services.Protocols.SoapHttpClientProtocol { private System.Threading.SendOrPostCallback silniaoperationcompleted; /// <remarks/> public Silnia() { this.url = " }
46 Plik silnia.cs /// <remarks/> public event silniacompletedeventhandler silniacompleted; /// <remarks/> [System.Web.Services.Protocols.SoapDocumentMethodAttribute(" RequestNamespace=" ResponseNamespace=" Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] public int silnia(int n) { object[] results = this.invoke("silnia", new object[] { n}); return ((int)(results[0])); } /// <remarks/> public System.IAsyncResult Beginsilnia(int n, System.AsyncCallback callback, object asyncstate) { return this.begininvoke("silnia", new object[] { n}, callback, asyncstate); } /// <remarks/> public int Endsilnia(System.IAsyncResult asyncresult) { object[] results = this.endinvoke(asyncresult); return ((int)(results[0])); } /// <remarks/> public void silniaasync(int n) { this.silniaasync(n, null); }
47 Plik silnia.cs /// <remarks/> public void silniaasync(int n, object userstate) { if ((this.silniaoperationcompleted == null)) { this.silniaoperationcompleted = new System.Threading.SendOrPostCallback(this.OnsilniaOperationCompleted); } this.invokeasync("silnia", new object[] { n}, this.silniaoperationcompleted, userstate); } private void OnsilniaOperationCompleted(object arg) { if ((this.silniacompleted!= null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeargs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.silniacompleted(this, new silniacompletedeventargs(invokeargs.results, invokeargs.error, invokeargs.cancelled, invokeargs.userstate)); } } } /// <remarks/> public new void CancelAsync(object userstate) { base.cancelasync(userstate); }
48 Plik silnia.cs /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", " ")] public delegate void silniacompletedeventhandler(object sender, silniacompletedeventargs e); /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", " ")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public partial class silniacompletedeventargs : System.ComponentModel.AsyncCompletedEventArgs { private object[] results; internal silniacompletedeventargs(object[] results, System.Exception exception, bool cancelled, object userstate) : base(exception, cancelled, userstate) { this.results = results; } } /// <remarks/> public int Result { get { this.raiseexceptionifnecessary(); return ((int)(this.results[0])); } }
49 Usługa silnia Plik SilniaTest.cs using System; class SilniaTest { public static void Main(string[] argv) { Silnia ms = new Silnia(); } } int n = Convert.ToInt16(argv[0]); int wynik = ms.silnia(n); Console.WriteLine("Usługa silnia. {0}! = {1}",n, wynik );
50 Usługa silnia
51 Usługa silnia
52 Plik silnia.asmx Usługa silnia
53 Standard Corba CORBA jest komercyjnym standardem Object Management Group (OMG). Głównym celem grupy OMG jest upowszechnianie technologii zorientowanych obiektowo słuŝących budowie duŝych, rozproszonych systemów informatycznych. Aby zrealizować swoją misję OMG stworzyła Model Referencyjny OMA (Object Management Architecture Reference Model) definiujący standard architektury rozproszonych systemów Informatycznych, podstawy dla innych standardów i specyfikacji: Meta Object Facility (MOF) specification, Unified Modeling Language (UML) specification, XML Metadata Interchange (XMI) specification, Common Warehouse Metamodel (CWM) specification, Common Object Request Broker Architecture (CORBA) specification, ułatwiających tworzenia aplikacji w środowisku rozproszonym.
Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl
Budowa aplikacji sieciowych. Usługi WWW dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Usługi WWW W3C Working Group, Web Services Architecture,
Bardziej szczegółowodr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl
Budowa obiektowych aplikacji sieciowych dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Zagadnienia Obiektowe technologie programowania rozproszonego
Bardziej szczegółowoCommon Object Request Broker Architecture (CORBA)
Budowa aplikacji sieciowych Common Object Request Broker Architecture (CORBA) dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Standard Corba
Bardziej szczegółowoProgramowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)
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ółowo4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152
Wstęp...xv 1 Rozpoczynamy...1 Co to jest ASP.NET?...3 W jaki sposób ASP.NET pasuje do.net Framework...4 Co to jest.net Framework?...4 Czym są Active Server Pages (ASP)?...5 Ustawienia dla ASP.NET...7 Systemy
Bardziej szczegółowoAplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów
Bardziej szczegółowoProtokoly w technologii obiektow rozproszonych - CORBA, RMI/IIOP, COM, SOAP. Paweł Kozioł p.koziol@students.mimuw.edu.pl
Protokoly w technologii obiektow rozproszonych - CORBA, RMI/IIOP, COM, SOAP Paweł Kozioł p.koziol@students.mimuw.edu.pl Na początek - moja praca magisterska Narzędzie dla środowiska Eclipse wspierające
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha
Bardziej szczegółowoWywoływanie metod zdalnych
Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia
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ół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ółowoPlan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone
Plan wykładu CORBA Wprowadzenie Architektura CORBA IDL język definicji interfejsów ORB Object Request Broker Usługi i POA Aplikacje CORBA tworzenie serwera tworzenie klienta Aplikacje rozproszone Cechy
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ółowoWywoływanie metod zdalnych
Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia
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ół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ół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ół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ół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ół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ółowoAplikacja Sieciowa. Najpierw tworzymy nowy projekt, tym razem pracować będziemy w konsoli, a zatem: File->New- >Project
Aplikacja Sieciowa Jedną z fundamentalnych właściwości wielu aplikacji jest możliwość operowania pomiędzy jednostkami (np. PC), które włączone są do sieci. W Windows operacja ta jest możliwa przy wykorzystaniu
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ółowoRPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )
III RPC Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) 1. Koncepcja Aplikacja wywołanie procedury parametry wyniki wykonanie procedury wynik komputer klienta komputer serwera Zaletą takiego
Bardziej szczegółowoJava RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć
interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
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ółowoObiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1
Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,
Bardziej szczegółowoPodejście obiektowe do budowy systemów rozproszonych
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia
Bardziej szczegółowoJava RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowoInformatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java
Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny
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ółowoSpis treci. Dzie 1. I Wprowadzenie (wersja 0911) II Dostp do danych biecych specyfikacja OPC Data Access (wersja 0911)
I Wprowadzenie (wersja 0911) Kurs OPC Integracja i Diagnostyka Spis treci Dzie 1 I-3 O czym bdziemy mówi? I-4 Typowe sytuacje I-5 Klasyczne podejcie do komunikacji z urzdzeniami automatyki I-6 Cechy podejcia
Bardziej szczegółowoInterfejsy w Javie. Przykład zastosowania interfejsów:
1 Plan wykładu 1. Interfejsy w Javie. 2. Zdalne wywołanie metod (Remote Method Invocation). interfejsy w RMI, architektura RMI, przykładowa aplikacja korzystająca z RMI, przekazywanie parametrów, dystrybucja
Bardziej szczegółowoZdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne
Zdalne wywołania procedur Jarosław Kuchta Programowanie Współbieżne Podstawy RPC Remote Procedure Call Wywołanie procedur jednego procesu z innego procesu. Proces wywoływany serwer Proces wywołujący -
Bardziej szczegółowoRemote Method Invocation 17 listopada 2010
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowoZdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu
Zdalne wywołanie metod - koncepcja Oprogramowanie systemów równoległych i rozproszonych Wykład 7 RMI (Remote Method Invocation) - obiektowe RPC, dostarcza klientowi interfejs do obiektu, implementacja
Bardziej szczegółowoRemote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1
interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowoOprogramowanie systemów równoległych i rozproszonych Wykład 7
Wykład 7 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Zdalne wywołanie
Bardziej szczegółowoRodzina protokołów TCP/IP. Aplikacja: ipconfig.
Rodzina protokołów TCP/IP. Aplikacja: ipconfig. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Specyfikacja struktury FIXED_INFO Nazwa struktury:
Bardziej szczegółowoZdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1
Zdalne wywołanie procedur Krzysztof Banaś Systemy rozproszone 1 RPC Komunikacja za pomocą gniazd jest wydajna, gdyż korzystamy z funkcji systemowych niewygodna, gdyż musimy wyrażać ją za pomocą jawnego
Bardziej szczegółowoPodejście obiektowe do budowy systemów rozproszonych
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm
Bardziej szczegółowoMicrosoft Interface Definition Language
Microsoft Interface Definition Language IDL IDL (Interface Definition Language) kompilowany jest przez MIDL.exe: Tworzy pliki nagłówkowe klas abstrakcyjnych dla zdefiniowanych w pliku *.idl interfejsów
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ółowoInformatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.
Informatyka I Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 Standard JDBC Java DataBase Connectivity
Bardziej szczegółowoAplikacja Sieciowa wątki po stronie klienta
Aplikacja Sieciowa wątki po stronie klienta Na ostatnich zajęciach zajmowaliśmy się komunikacją pomiędzy klientem a serwerem. Wynikiem naszej pracy był program klienta, który za pomocą serwera mógł się
Bardziej szczegółowoMODEL WARSTWOWY PROTOKOŁY TCP/IP
MODEL WARSTWOWY PROTOKOŁY TCP/IP TCP/IP (ang. Transmission Control Protocol/Internet Protocol) protokół kontroli transmisji. Pakiet najbardziej rozpowszechnionych protokołów komunikacyjnych współczesnych
Bardziej szczegółowoAplikacje RMI Lab4
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych 1 1. Koncepcja budowy aplikacji RMI (aplikacja rozproszonych
Bardziej szczegółowoKomunikator internetowy w C#
PAŃSTWOWA WYśSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie Komunikator internetowy w C# autor: Artur Domachowski Elbląg, 2009 r. Komunikacja przy uŝyciu poczty internetowej
Bardziej szczegółowoKlient-Serwer Komunikacja przy pomocy gniazd
II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu
Bardziej szczegółowoProgramowanie komponentowe
Piotr Błaszyński Wydział Informatyki Zachodniopomorskiego Uniwersytetu Technologicznego 25 października 2014 WebService, (usługi sieciowe) - komponenty aplikacji webowych, zawierające logike biznesową.
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ółowoZaawansowane aplikacje internetowe. Wykład 6. Wprowadzenie do Web Services. wykład prowadzi: Maciej Zakrzewicz. Web Services
Wykład 6 Wprowadzenie do Web Services wykład prowadzi: Maciej Zakrzewicz Web Services 1 Plan wykładu Wprowadzenie do technologii Web Services Architektura Web Services Protokół komunikacyjny SOAP Język
Bardziej szczegółowoProgramowanie rozproszone w języku Java
Wstęp Gniazda RMI Podsumowanie Programowanie rozproszone w języku Java Wojciech Rząsa wrzasa@prz-rzeszow.pl Katedra Informatyki i Automatyki, Politechnika Rzeszowska 25 maja 2015 Wojciech Rząsa, KIiA PRz
Bardziej szczegółowoWstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008
Adam 1 grudnia 2008 Wstęp Opis Historia Apache kontener serwletów rozwijany w ramach projektu Apache jeden z bardziej popularnych kontenerów Web open source, Apache Software License rozwijany przez ASF
Bardziej szczegółowoTworzenie aplikacji rozproszonej w Sun RPC
Tworzenie aplikacji rozproszonej w Sun RPC Budowa aplikacji realizowana jest w następujących krokach: Tworzenie interfejsu serwera w języku opisu interfejsu RPCGEN Tworzenie: namiastki serwera namiastki
Bardziej szczegółowoUstawienia Zabezpieczeń
Apartamenty STA obiekt COM żyjący w STA (single threaded apartament) obsługuje żądania na jednym wątku. Szeregowanie wywołań poprzez kolejkę komunikatów. Konieczność synchronizacji jedynie dostepu do danych
Bardziej szczegółowoMonitorowanie Sieci nonblocking content packet filtering
Monitorowanie Sieci nonblocking content packet filtering praca inŝynierska prowadzący: prof. dr hab. inŝ. Zbigniew Kotulski Michał Zarychta 1 Plan prezentacji ZałoŜenia projektu Sniffer Technologie WinPcap
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ółowoObiekty w plikach wykonywalnych, marshaling
Obiekty w plikach wykonywalnych, marshaling Komponent w pliku exe Odczyt IClassFactory komponencie umieszczonym w pliku dll ładowanym w przestrzeń adresową klienta następuje poprzez wywołanie eksportowanej
Bardziej szczegółowoProgramowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 6 dr inż. Komunikowanie się procesów Z użyciem pamięci współdzielonej. wykorzystywane przede wszystkim w programowaniu wielowątkowym. Za pomocą przesyłania
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ółowoTechnologie COM i ActiveX COM - Component Object Model
Technologie COM i COM - Component Object Model Jarosław Francik COM - Common Object Model Program - monolit Program składnikowy Składnik A Składnik B Składnik C Składnik D Składnik E Architektura składnikowa
Bardziej szczegółowoJarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne
Jarosław Kuchta Internetowe Usługi Informacyjne Komponenty IIS HTTP.SYS serwer HTTP zarządzanie połączeniami TCP/IP buforowanie odpowiedzi obsługa QoS (Quality of Service) obsługa plików dziennika IIS
Bardziej szczegółowoWprowadzenie. Dariusz Wawrzyniak 1
Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak
Bardziej szczegółowoProgramowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)
Programowanie w języku Java Wykład 13: Java Platform, Enterprise Edition (Java EE) Standard J2EE Programowanie w języku Java 2 J2EE - komunikacja Programowanie w języku Java 3 J2EE warstwa biznesowa Programowanie
Bardziej szczegółowoWybrane działy Informatyki Stosowanej
Wybrane działy Informatyki Stosowanej Java Enterprise Edition. WebServices. Język XML. Serwer aplikacji GlassFish. Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki
Bardziej szczegółowoProjektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych
Projektowanie architektury systemu rozproszonego Jarosław Kuchta Zagadnienia Typy architektury systemu Rozproszone przetwarzanie obiektowe Problemy globalizacji Problemy ochrony Projektowanie architektury
Bardziej szczegółowoRemote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1
P d jś i bi kt d b d t ó Podejście obiektowe do budowy systemów rozproszonych Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java),wywiedziony idi z Remote obie kt aplikacja klie ncka interfe js serw
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma
Bardziej szczegółowoActiveX Data Objects (ADO) dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.
Komunikacja z bazami danych ActiveX Data Objects (ADO) dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Co to jest ActiveX Data Objects? ADO
Bardziej szczegółowoA Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów
A Zasady współpracy Ocena rozwiązań 3.0 25 40 punktów 3.5 41 65 punktów 4.0 66 80 punktów 4.5 81 100 punktów 5.0 101 130 punktów Warunki zaliczenia przedmiotu Student uzyska ocenę zaliczającą (3.0) o ile
Bardziej szczegółowoWykład 6 Dziedziczenie cd., pliki
Wykład 6 Dziedziczenie cd., pliki Autor: Zofia Kruczkiewicz 1. Dziedziczenie cd. 2. Pliki - serializacja Zagadnienia 1. Dziedziczenie aplikacja Kalkultory_2 typu Windows Forms prezentująca dziedziczenie
Bardziej szczegółowoJava JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG
Java JMX Monitorowanie i zarządzanie usługami sieciowymi w Javie Marcin Werla mwerla@man.poznan.pl PCSS/Poznań JUG Plan prezentacji Wprowadzenie Specyfikacja Dodatkowe narzędzia i biblioteki Studium przypadku
Bardziej szczegółowoZaawansowane narzędzia programowania rozproszonego
Zaawansowane narzędzia programowania rozproszonego Karol Gołąb karol.golab@tls-technologies.com 28 listopada 2001 1 Streszczenie Omówienie i porównanie popularnych standardów mechanizmów komunikacyjnych:
Bardziej szczegółowoProgramowanie sieciowe
Programowanie sieciowe dr Tomasz Tyrakowski Dyż ury: wtorki 12:00 13:00 czwartki 14:00 15:00 pokój B4-5 e-mail: ttomek@amu.edu.pl materiały: http://www.amu.edu.pl/~ttomek 1 Wymagania podstawowa znajomość
Bardziej szczegółowoZaawansowany kurs języka Python
13 grudnia 2013 Plan wykładu 1 2 Wersje Cechy Plan wykładu 1 2 Wersje Cechy Schemat sieci HTTP, POP3, SMTP, FTP Application layer Transport layer TCP, UDP Internet Protokół UDP Cechy protokołu Protokół
Bardziej szczegółowoCzym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa
1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko
Bardziej szczegółowo1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1
1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie
Bardziej szczegółowoArchitektury usług internetowych. Tomasz Boiński Mariusz Matuszek
Architektury usług internetowych 2016 Tomasz Boiński Mariusz Matuszek Organizacja przedmiotu 1. Wykład 2 kolokwia po 25 punktów (23 listopada i 27 stycznia) 2. 6 zadań laboratoryjnych, zadania 1-5 po 8
Bardziej szczegółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
Bardziej szczegółowoWielowarstwowe aplikacje internetowe. Web Services. Autorzy wykładu: Maciej Zakrzewicz Marek Wojciechowski. Web Services
Web Services Autorzy wykładu: Maciej Zakrzewicz Marek Wojciechowski Web Services Plan wykładu Wprowadzenie do technologii Web Services Architektura Web Services Protokół komunikacyjny SOAP Język opisu
Bardziej szczegółowoWykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak
Wykład 3 / Wykład 4 Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak 1 Wprowadzenie do Modułu 3 CCNA-E Funkcje trzech wyższych warstw modelu OSI W jaki sposób ludzie wykorzystują
Bardziej szczegółowoMiddleware wprowadzenie października 2010
Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak/middleware
Bardziej szczegółowoBAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech
BAZY DANYCH Obsługa bazy z poziomu języka PHP opracowanie: Michał Lech Plan wykładu 1. PHP - co to jest? 2. Bazy danych obsługiwane przez PHP 3. Podstawowe polecenia 4. Sesje 5. Przykład - dodawanie towaru
Bardziej szczegółowoWywoływanie procedur zdalnych
Mechanizm wywołania Wywoływanie procedur zdalnych main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) int zabij_proces (int pid){ int stat; stat = kill(pid,
Bardziej szczegółowoMiddleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1
Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl poznan pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak/middleware
Bardziej szczegółowoBudowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG
Budowa aplikacji w technologii Enterprise JavaBeans Maciej Zakrzewicz PLOUG Plan prezentacji Przegląd architektur aplikacji rozproszonych: CORBA, SOAP, EJB Wprowadzenie do Enterprise JavaBeans (EJB) Budowa
Bardziej szczegółowoPlan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych
Plan prezentacji Budowa aplikacji w technologii Enterprise JavaBeans Przegląd architektur aplikacji rozproszonych: CORBA,, Wprowadzenie do Enterprise JavaBeans () Budowa komponentów sesyjnych Budowa komponentów
Bardziej szczegółowoWątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego
Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować
Bardziej szczegółowoKurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
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ółowoRozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury
Rozproszone systemy internetowe Wprowadzenie. Koncepcja zdalnego wywołania procedury Zakres tematyczny przedmiotu Aplikacje rozproszone Technologie /standardy internetowe Programowanie obiektowe 2 Co będzie
Bardziej szczegółowo5.14 JSP - Przykład z obiektami sesji... 83 5.15 Podsumowanie... 84 5.16 Słownik... 85 5.17 Zadanie... 86
Spis treści 1 Wprowadzenie - architektura, protokoły, system WWW... 1 1.1 Wstęp.................................................. 1 1.2 Ważniejsze daty......................................... 2 1.3 Protokoły
Bardziej szczegółowoRPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie: http://www.houp.info/rpc
RPC Remote Procedural Call Materiały do prezentacji można znaleźć na stronie: http://www.houp.info/rpc 1 Wprowadzenie Podstawowe założenia RPC: Program uruchamiany na maszynie A może wywołać procedurę
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ółowoRMI-2. Java Remote Method Invocation (RMI) na podstawie m.in. podręcznika firmy Sun Microsystems SYSTEMY ROZPROSZONE
Java Remote Method Invocation (RMI) na podstawie m.in. podręcznika firmy Sun Microsystems www.cs.agh.edu.pl/~slawek/zrodla_rmi2.zip Kilka pytań Co mamy? rok 2005-ty, gotową wersję 2 programu NoteBoard.
Bardziej szczegółowoProgramowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz
Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................
Bardziej szczegółowoSystemy Rozproszone Technologia ICE
Systemy Rozproszone Technologia ICE Zespół Systemów Rozproszonych () Katedra Informatyki AGH Kraków Kornel Skałkowski skalkow@agh.edu.pl Opracowano na podstawie książki: Henning M, Spruiell M. Distributed
Bardziej szczegółowoCzęść I -ebxml. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz
Część I -ebxml Po zrealizowaniu materiału student będzie w stanie omówić potrzeby rynku B2B w zakresie przeprowadzania transakcji przez Internet zaprezentować architekturę ebxml wskazać na wady i zalety
Bardziej szczegółowoProgramy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.
Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Schemat Internetu R R R R R R R 2 Model Internetu 3 Protokoły komunikacyjne stosowane w sieci Internet Protokoły warstwy
Bardziej szczegółowo