Budowa aplikacji sieciowych. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Budowa aplikacji sieciowych. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole."

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

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ółowo

dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl

dr 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ółowo

Common Object Request Broker Architecture (CORBA)

Common 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ółowo

Programowanie współbieżne i rozproszone

Programowanie 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ółowo

Komunikacja i wymiana danych

Komunikacja 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ółowo

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152

4 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ółowo

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html

Aplikacje 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ółowo

Protokoly 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 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ółowo

Programowanie obiektowe

Programowanie 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ółowo

Wywoływanie metod zdalnych

Wywoł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ółowo

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Wprowadzenie 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ółowo

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Spis 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ółowo

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Plan 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ółowo

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Typy 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ółowo

Wywoływanie metod zdalnych

Wywoł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ółowo

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Kurs 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ółowo

Programowanie Komponentowe WebAPI

Programowanie 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ółowo

Narzę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 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ółowo

1 Wprowadzenie do J2EE

1 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ółowo

76.Struktura oprogramowania rozproszonego.

76.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ółowo

Simple Object Access Protocol

Simple 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ółowo

Aplikacja Sieciowa. Najpierw tworzymy nowy projekt, tym razem pracować będziemy w konsoli, a zatem: File->New- >Project

Aplikacja 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ółowo

Dostęp do komponentów EJB przez usługi Web Services

Dostę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ółowo

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

RPC. 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ółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java 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ółowo

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

Web 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ółowo

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Obiektowe 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ółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejś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ółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java 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ółowo

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Informatyka 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ółowo

Wybrane działy Informatyki Stosowanej

Wybrane 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ółowo

Spis treci. Dzie 1. I Wprowadzenie (wersja 0911) II Dostp do danych biecych specyfikacja OPC Data Access (wersja 0911)

Spis 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ółowo

Interfejsy w Javie. Przykład zastosowania interfejsów:

Interfejsy 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ółowo

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne

Zdalne 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ółowo

Remote Method Invocation 17 listopada 2010

Remote 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ółowo

Zdalne 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. 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ółowo

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Remote 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ółowo

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Oprogramowanie 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ółowo

Rodzina protokołów TCP/IP. Aplikacja: ipconfig.

Rodzina 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ółowo

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Zdalne 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ółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejś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ółowo

Microsoft Interface Definition Language

Microsoft 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ółowo

Tworzenie i wykorzystanie usług sieciowych

Tworzenie 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ółowo

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Informatyka 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ółowo

Aplikacja Sieciowa wątki po stronie klienta

Aplikacja 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ółowo

MODEL WARSTWOWY PROTOKOŁY TCP/IP

MODEL 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ółowo

Aplikacje RMI Lab4

Aplikacje 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ółowo

Komunikator internetowy w C#

Komunikator 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ółowo

Klient-Serwer Komunikacja przy pomocy gniazd

Klient-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ółowo

Programowanie komponentowe

Programowanie 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ółowo

Mechanizmy pracy równoległej. Jarosław Kuchta

Mechanizmy 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ółowo

Zaawansowane aplikacje internetowe. Wykład 6. Wprowadzenie do Web Services. wykład prowadzi: Maciej Zakrzewicz. Web Services

Zaawansowane 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ółowo

Programowanie rozproszone w języku Java

Programowanie 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ółowo

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Wstę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ółowo

Tworzenie aplikacji rozproszonej w Sun RPC

Tworzenie 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ółowo

Ustawienia Zabezpieczeń

Ustawienia 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ółowo

Monitorowanie Sieci nonblocking content packet filtering

Monitorowanie 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ółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury 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ółowo

Obiekty w plikach wykonywalnych, marshaling

Obiekty 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ółowo

Programowanie współbieżne i rozproszone

Programowanie 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ółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie 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ółowo

Technologie COM i ActiveX COM - Component Object Model

Technologie 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ółowo

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Jarosł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ółowo

Wprowadzenie. Dariusz Wawrzyniak 1

Wprowadzenie. 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ółowo

Programowanie 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) 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ółowo

Wybrane działy Informatyki Stosowanej

Wybrane 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ółowo

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie 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ółowo

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Remote 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ółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz 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ółowo

ActiveX Data Objects (ADO) dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.

ActiveX 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ółowo

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

A 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ółowo

Wykład 6 Dziedziczenie cd., pliki

Wykł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ółowo

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

Java 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ółowo

Zaawansowane narzędzia programowania rozproszonego

Zaawansowane 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ółowo

Programowanie sieciowe

Programowanie 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ółowo

Zaawansowany kurs języka Python

Zaawansowany 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ółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym 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ółowo

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

1 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ółowo

Architektury usług internetowych. Tomasz Boiński Mariusz Matuszek

Architektury 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ółowo

PLAN 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 ), 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ółowo

Wielowarstwowe aplikacje internetowe. Web Services. Autorzy wykładu: Maciej Zakrzewicz Marek Wojciechowski. Web Services

Wielowarstwowe 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ółowo

Wykł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 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ółowo

Middleware wprowadzenie października 2010

Middleware 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ółowo

BAZY 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 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ółowo

Wywoływanie procedur zdalnych

Wywoł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ółowo

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

Middleware 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ółowo

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

Budowa 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ółowo

Plan 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: 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ółowo

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wą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ółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs 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ółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie 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ółowo

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Rozproszone 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ółowo

5.14 JSP - Przykład z obiektami sesji... 83 5.15 Podsumowanie... 84 5.16 Słownik... 85 5.17 Zadanie... 86

5.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ółowo

RPC 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 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ółowo

Web Services. Wojciech Mazur. 17 marca 2009. Politechnika Wrocławska Wydział Informatyki i Zarządzania

Web 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ółowo

RMI-2. Java Remote Method Invocation (RMI) na podstawie m.in. podręcznika firmy Sun Microsystems SYSTEMY ROZPROSZONE

RMI-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ółowo

Programowanie 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 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ółowo

Systemy Rozproszone Technologia ICE

Systemy 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ółowo

Część 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. 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ółowo

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

Programy 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