Zastosowanie informatyki w gospodarce Wykład 3

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

Download "Zastosowanie informatyki w gospodarce Wykład 3"

Transkrypt

1 Instytut Informatyki, Automatyki i Robotyki Zastosowanie informatyki w gospodarce Wykład 3 RMI i CORBA oraz XML i XSD dr inż. Tomasz Walkowiak

2 RMI remote method invocation RMI umożliwia zdalne wykonywanie metod czyli: Wysłanie przez klienta żądania wykonania metody do serwera Wykonanie zadania na serwerze Przesłanie wyniku do klienta 2

3 Odległe interfejsy W celu stworzenia odległego obiektu przykrywamy implementację, tworząc interfejs i w rezultacie klient otrzymuje referencje do interfejsu i odwołuje się do obiektu przez interfejs 1. Odległy interfejs musi być publiczny 2. Musi rozszerzać interfejs java.rmi.remote 3. Każda metoda musi deklarować java.rmi.remoteexception 3

4 Przykład odległego interfejsu import java.rmi.*; public interface Srednia extends Remote{ public Double policzsrednia(double tab[]) throws RemoteException; } 4

5 Implementacja odległego interfejsu Serwer musi zawierać klasę dziedziczącą z klasy UnicastRemoteObject implementującą odległy interfejs Klasa ta może zawierać więcej metod ale klient może wywoływać tylko te zawarte w interfejsie 5

6 Usługa - serwer import java.rmi.*; import java.rmi.server.*; import java.net.*; public class ObliczSrednia extends UnicastRemoteObject implements Srednia { public ObliczSrednia() throws RemoteException{ super(); } public Double policzsrednia(double tab[]) throws RemoteException{ double s=0.0; for (int j=0;j<tab.length;j++){ s=s+tab[j]; } return (new Double(s/tab.length)); } } 6

7 Serwer import java.rmi.*; import java.rmi.server.*; import java.net.*; public class Serwer { public static void main(string args[]){ if (System.getSecurityManager() == null) { System.setSecurityManager(new RMISecurityManager()); } try{ ObliczSrednia obiekt = new ObliczSrednia(); Naming.rebind("osrednia", obiekt); }catch (RemoteException e){ System.out.println("Wyjątek: "+e); }catch (MalformedURLException e){ System.out.println("Zly adres: "+e); 7

8 RmiRegistry Na hoście na którym mamy serwer (lub serwery) z rmi rmiregistry domyślnie na porcie 1099 lub na podanym jako parametr rmiregistry nr_port Do rejestru odwołują się metody klasy java.rmi.naming lookup() zwraca obiekt zdalny bind() wiąże obiekt zdalny z nazwą rebind() unbind() list() 8

9 Klient import java.rmi.*; import java.util.*; public class Client{ public static void main(string args[]){ System.setSecurityManager( new RMISecurityManager()); try{ Srednia s=(srednia)naming.lookup("rmi://localhost/osrednia"); double tab[]={10.0,11.1,12.3}; Double d = s.policzsrednia(tab); System.out.println("Srednia z kolejnych"+n+"wartości wynosi: "+d); }catch (Exception e){ System.out.println("Wystąpił wyjątek: "+ e); }}} java -Djava.rmi.server.codebase=file:/c:/users/2/ -Djava.security.policy=java.policy.txt Client 9

10 Sekwencja zdarzeń Remote Method Call Program Klienta Lookup Get Reference Serwer RMI zdalne metody Register Name RmiRegistry 10

11 Komunikacja 11 11

12 Komunikacja Stub czyli Namiastka: Klient używa obiektu stub w którym są zapisane sygnatury metod obiektu odległego Skeleton czyli szkielet: odpowiada stub po stronie serwera przypisuje odwołania do implementacji Jeżeli przekazujemy obiekt przez wartość, to klasa tego obiektu musi implementować interfejs Serializable. Jeśli przekazujemy obiekt przez referencja, to klasa tego obiektu musi implementować interfejs Remote. 12

13 Tworzenie namiastki i szkieletu rmic (RMI compiler) dla naszego przykładu niepotrzebne bo mamy interfejs, nie mam żadnej klasy rmic nazwa generuje pliki _stub.class Należy go przegrać do klienta Jest to konieczne gdy przesyła się obiekty np. 13

14 Przykład 2 public class Osoba implements java.io.serializable { private int id; private int wiek; private String nazwisko; public Osoba(int id, int wiek, String nazwisko) { this.id = id; this.wiek = wiek; this.nazwisko = nazwisko; } public void drukuj() { System.out.println("ID: " + id); System.out.println("Wiek: "+ wiek); System.out.println("Nazwisko: " + nazwisko); } } import java.rmi.*; public interface IOsoba extends Remote{ public Osoba pobierzosoba(int n) throws RemoteException; } 14

15 Przykład 2 cd.. public class POsoba extends UnicastRemoteObject implements IOsoba { Osoba tab[]=new Osoba[10]; public POsoba() throws RemoteException{ for (int i=0;i<tab.length;i++) tab[i]=new Osoba(i,10+i*2,"Nowak"+i); } public Osoba pobierzosoba(int n) throws RemoteException{ System.out.println("Pobiera sie osobe o id:"+n); return (tab[n]);}} odpalamy rmic i przegrywamy POsoba_Stub.class do klienta public class Client{ public static void main(string args[]){ System.setSecurityManager( new RMISecurityManager()); try{ IOsoba s=(iosoba)naming.lookup("rmi://localhost/posoba"); for (int i=0;i<9;i++) s.pobierzosoba(i).drukuj(); }catch (Exception e){system.out.println("wystąpił wyjątek: "+ e); }}} 15

16 Co to jest CORBA CORBA - Common Object Request Broker Architecture technologia zapewniająca komunikację pomiędzy obiektami pracującymi w heterogenicznych (różnorodnych) systemach komputerowych obiekty pełniące dowolne funkcje mogą być zaimplementowane w różnych językach programowania, na dowolnej platformie sprzętowej, pod kontrolą różnych systemów operacyjnych. Standard CORBA opracowany przez OMG (Object Management Group): aktualnie już jest trzecia wersja standardu stworzony według zasady najpierw standard, potem implementacja 16

17 Ważne skróty Stub Kod proxy (pieniek ) wygenerowany przez kompilator IDL, który wysyła żądanie do ORB. Inaczej jest to klasa która udaje, że jej metody są wykonywane lokalnie Skeleton szkielet interfejsu (klasy serwera wygenerowane przez kompilator IDL). BOA (ang. Basic Object Adapter) Interfejs którego serwer używa w celu połączenia się z ORB ORB (ang. Object Request BRoker) Pseudo-obiekt, który jest zawsze dostępny zarówno po stronie klienta jak i serwera. ORB jest zwykle aplikacją serwera kontrolującą odpowiedni port. Aplikacja klienta podłącza się do ORB, wysyła żądanie i odbiera od niego odpowiedzi. IDL (ang. Interface Definition Language). Język służący do opisu intefejsu komunikacyjnego pomiędzy klientem a serwerem. Marshaling (szeregowanie) proces konwersji danych z formatu zależnego od języka do formatu niezależnego od języka IIOP (Internet Inter-Orb Protocol) protokół wykorzystywany do komunikacji 17

18 Podstawowa struktura C C++ Java Ada Cobol IDL code Small talk Klient: pieńki Serwer: szkielety ORB IIOP(Internet Inter ORB protocol) ORB Klient jest zwolniony z rozpatrywania jakichkolwiek środków komunikacji pomiędzy klientem i serwerem. Z jego punktu widzenia obiekty znajdują się bezpośrednio (wirtualnie) w jego przestrzeni adresowej. 18

19 Interface Definition Language (IDL) Język opisu interfejsu Model klas oparty na C++ Typy danych oparte na C++ Wsparcie dla przestrzeni nazw czy pakietów Przykład: module Tutorial { module GettingStarted { }; }; interface Adder { }; double add(in double arg0,in double arg1 ); 19

20 Co nam daje CORBA Możliwość budowania wydajnych aplikacji rozproszonych Możliwość wywoływania zdalnych obiektów przez referencje Możliwość przesyłania obiektów przez wartość Wbudowane mapowanie podstawowych typów danych (łącznie z tablicami, kolekcjami) Niezależny od języka opis interfejsu (IDL) Wsparcie dla następujących języków C/C++,Java,.Net, Smalltalk, Lisp, Python, Cobol 20

21 Wielowarstowowy projekt w CORBIE ORB ORB DB ORB ORB ORB ORB Data Object DB TP Monitor ORB ORB ORB Warstwa klienta Warstwa biznesopwa (według: Orfali et al. Instatnt Corba ) Warstwa serwisowa 21

22 ORB co to jest? Biblioteka wykonywana w procesie Nasłuchuje na porcie TCP na połączenia Jeden port na każdy lokalny obiekt Otwiera porty TCP do innych obiektów N-portów: na każdą zdalną maszynę ORB jest samoopisujący: dostarcza metdane dla wszystkich obiektów i serwisów Aplikacje wyskorzystujące CORBę tworzą sieć ORB-ów komunikujących się za pomocą IIOP: Internet Inter-Orb Protocol na TCP Każdy klient może być jednocześnie i serwerem: Servant (ma IDL i szkielet) 22

23 Serwer nazw Name Server 2. Utrzymuje nazwy ORB 3.Resolve(name) 1. Bind(name) Klient Serwer ORB 4. Wywołanie serwisu ORB 23

24 CORBA problemy Nie do końca rozwiązany problem z komunikacją przez firewalle Brak uogólnionego modelu zabezpieczeń Konieczność opisania interfejsu w IDL 24 24

25 CORBA w Javie Wprowadzenie RMI over IIOP Możliwość wykorzystania protokołu IIOP zamiast JRMP (Java Remote Method Protocol ) do przekazywania obiektów w RMI Wersja 2.3 specyfikacji CORBA wprowadza: Możliwość przekazywania obiektów przez wartość Mapowanie z języka Java do IDL wspierające RMI Dzięki tym dwóm zamianom możliwe jest budowanie aplikacji rozproszonych opartych na interfejsie RMI wykorzystując jako kanał transportowy CORBA. Możliwe jest także wykorzystanie implementacji EJB nadbudowanej nad CORBA do bardziej rozbudowanych zastosowań. 25

26 CORBA -.Net przez IIOP Wywoływanie zdalnych obiektów JAVA w środowisku.net i odwrotnie Przekazywanie obiektów przez referencje Przekazywanie obiektów przez wartość Mapowanie podstawowych typów danych

27 Java CORBA -.Net Wnioski Możliwość budowania rozproszonych multiplatforomowych aplikacji Rozszerzanie istniejącej rozproszonej architektury bez konieczności większych zmian Jednak bez rozwiązanego problemu bezpieczeństwa i komunikacji przez firewalle zastosowanie CORBA w niektórych systemach jest problematyczne (prace na tym zagadnieniem trwają) 27 27

28 Komunikacja Java-.Net Co jest potrzebne: Bibliotek IIOPChannel (projekt IIOP.Net) Parser CLS do IDL (IIOP.Net) Parser IDL do CLS (IIOP.Net) ORB dla Java Sun ORB orbd dołączony do Javy JacORB rozbudowany ORB dla Java (open source) 28

29 Java Server -.Net Client 1. Stworzenie interfejsu Package Tutorial.Java2Net; import java.rmi.remote; import java.rmi.remoteexception; public interface ZrobCos extends Remote { public String Zrob(String arg) throws RemoteException; } 2. Implementacja klasy Package Tutorial.Java2Net; import java.rmi.remote; import java.rmi.remoteexception; import javax.rmi.portableremoteobject; public class ZrobCosImpl extends PortableRemoteObject implements ZrobCos { public ZrobCosImpl() throws java.rmi.remoteexception { super(); } public String Zrob(String arg) throws RemoteException { return Wywolenie metody zdalnej +arg; } } 29

30 Java Server -.Net Client 3. Implementacja Serwera import javax.naming.initialcontext; import javax.naming.context; import javax.rmi.portableremoteobject; import java.util.*; public class Server { public static void main(string[] args) { try{ Properties env = new Properties(); String ORBAdress = "localhost";//adres ip ORBa int ORBPort = 8087; env.put("java.naming.factory.initial","com.sun.jndi.cosnaming.cnctxfactory"); env.put("java.naming.provider.url","iiop://"+orbadress+":"+orbport); } ZrobCosImpl zdalnyobiekt = new ZrobCosImpl (); Context initialnamingcontext = new InitialContext(env); initialnamingcontext.rebind("zdalnyobiekt", zdalnyobiekt); System.out.println("Server Ready..."); }catch(exception e) { System.out.println("Error: "+e);} } 30

31 Java Server -.Net Client 4. Kompilacja javac -classpath. Server.java 5. Wytworzenie Stub i Skeleton rmic -classpath. -iiop Tutorial.GettingStarted.AdderImpl 6. Wygenerowanie IDL dla klienta rmic -classpath. -idl Tutorial.GettingStarted.AdderImpl Poniżej wygenerowany plik idl: #include "orb.idl" module Tutorial { module Java2Net { ::CORBA::WStringValue Zrob( in ::CORBA::WStringValue arg0 ); }; }; }; - Potrezba plików (do dalszej konwersji) orb.idl i rm.idl 31

32 Java Server -.Net Client 7. Mapowanie do CLS Korzystamy z narzedzia IDLToCLSCompliler IDLToClsCompiler ZrobCos.dll Tutorial\Java2Net\ZrobCos.idl Wynikiem będzie bibliotek ZrobCos.dll z stubem dla.net Bibliotekę tą należy dodać do projektu w.net 8. Implementacja Klienta //verte 32

33 Java Server -.Net Client using System; using System.Runtime.Remoting.Channels; using Ch.Elca.Iiop; using Ch.Elca.Iiop.Services; using omg.org.cosnaming; namespace Tutorial.Java2Net { public class NClient { [STAThread] public static void Main(string[] args) { try { string nameservicehost = "localhost"; int nameserviceport = 1050; IiopClientChannel channel = new IiopClientChannel(); ChannelServices.RegisterChannel(channel); CorbaInit init = CorbaInit.GetInit(); NamingContext nameservice = init.getnameservice(nameservicehost, nameserviceport); NameComponent[] name = new NameComponent[] { new NameComponent("adder", "") }; // get the reference to the remote object ZrobCos remobj = (ZrobCos)nameService.resolve(name); Console.WriteLine(remObj.Zrob( Test )); } catch (Exception e) {Console.WriteLine("exception: " + e);} }} 33

34 Java Server -.Net Client 9. Uruchomienie 1. Uruchomienie ORB (przy okazji pełni rolę nameserwera) start orbd -ORBInitialPort Uruchomienie Serwera java Server 3. Uruchomienie Klienta NClient.exe 34

35 XML wymiana 35

36 Geneza XML SGML powstał jako język znaczników do transferu dokumentów (1986) Lata 60: GML (IBM) oi GenCode (GCA) Jest podstawą dla wielu innych języków XML, HTML itp. Głównym celem jest unifikacja formatu transferu danych i dokumentów: XML jest standardem W3C Pochodzenie XML XML powstał jako standardowy język do reprezentowania danych SGML HTML XML CSS XSLT 36

37 Edytor tekstowy XML Notepad msdn.microsoft.com/xml/notepad/ ALTOV A XML Liquid XML studio Internet Explorer 5 Netscape Navigator 6 FireFox, Java Standard Extension for XML, java.sun.com/products/xml SAX: Simple API for XML, Xalan, Xerces XT, jawowska impl. XSLT MSXML 37

38 XML tworzy strukturę zawartości HTML: <P> Jan 15, 2000 </P> XML: <OrderDate> Jan 15, 2000 </OrderDate> XML nie wyświetla i nie przekształca danych XML oddziela dane od procesu formatowania i przekształceń HTML i XML wywodzą się od SGML XML składa się ze znaczników i atrybutów Znaczniki mogą być zagnieżdżane Reprezentują elementy, ich właściwości oraz hierarchię <ROOT> <Orders OrderID="10643" CustomerID="ALFKI" EmployeeID="6" OrderDate=" T00:00:00" RequiredDate=" T00:00:00" ShippedDate=" T00:00:00" /> </ROOT> 38

39 plik tekstowy znaczniki początkowy ujęty w znaki < > końcowe ujęte w </ > znaczniki puste <Ala ma="kota"/> rozróżniane małe i duże litery mogą występować atrybuty przy znaczniku, ale ujęte w cudzysłowia budowa dokumentu: prolog element główny elementy podrzędne <?xml version="1.0" encoding="iso "?> <note> <from>jani</from> <to>tove</to> <message type="text"> Remember me this weekend</message> </note> 39

40 Zagnieżdżanie znaczników Sekcja CDATA <i><u>ąę</i></u> - źle pozwala włączyć tekst, który ma być zignorowany przez parser parser przekazuje jej zawartość sekcji CDATA może zawierać nawiasy kątowe i znaki ampersand, które w zwykłej zawartości tekstowej są niedozwolone <![CDATA[Hej! to & jest <właśnie> sekcja cdata.]]> Instrukcje przetwarzania instrukcje dla procesora XML w obrębie <??>, ale nie instrukcja <?xml?> są poza specyfikacją XML mogą słuźyć do obsługi np. skryptów <?javascript alert("to jest <tylko> przykład.");?> Komentarze <!-- <bez> komentarza --> Znaki specjane (encje) < > &apos; " & P ñ 40

41 XML jest przekształcany do struktury drzewa Węzły drzewa zawierają dane Dokument Elementy Tekst... } Atrybuty Tekst Tekst 41

42 Przekształcanie XML do postaci węzłów Namespace uri= root Comment customer list customer id customer id name orders first last order date order date Jane Doe 07/16/98 07/23/98 42

43 Przestrzenie nazw pozwalają używać dowolnie wielu słowników znaczników w jednym dokumencie potrzebne w każdym dokumencie, który używa więcej niż jednego słownika znaczników (zbioru nazw znaczników) po co? <Author>Słowacki</Author> to autor rachunku, czy autor książki? Jak używać? atrybut xmlns:x nazwą-aliasem przestrzeni (prefiksem) wartość tego atrybutu jest jej właściwym identyfikatorem (URI) <bn:book xmlns:bn=" <bn:author>słowacki</bn:author> </bn:book> można także tworzyć przestrzenie nazw domyślne: <Book xmlns=" <Author>Słowacki</Author> </Book> zarezerwowane: xml i xmlns 43

44 <xsl:stylesheet xmlns:xsl=" xmlns:test=" <xsl:template match= przyklad > <test:template> <xsl:apply-templates/> </test:template> </xsl:template> </xsl:stylesheet> Domyślna przestrzeń nazw: <reln xmlns=" <eq/><cn>3</cn><cn>4</cn> </reln> Lokalna przestrzeń nazw: <reln xmlns=" <eq/><cn>3</cn><cn>5</cn> <notatka xmlns="">i jaki jest wynik?</notatka> </reln> 44

45 DTD - definicja typu dokumentu określa prawidłową składnię wywodzi się z SGML-a specyficzna składnia, 10 typów danych brak kontroli tekstowej zawartości elementów Przeniesienie zadania sprawdzania poprawności z tworzonej aplikacji na narzędzie walidujące daje spore oszczędności. Wg. Roger L. Costello, aż 60% tworzonego kodu dotyczy weryfikacji poprawności danych. Lista elementów: <!ELEMENT nazwa (opis_rodzaju_zawartości)>? 0 lub 1 wystąpienie, * 0 lub więcej wystąpień, + 1 lub więcej wystąpień,, sekwencja, alternatywa, () grupowanie, #PCDATA zawartość tekstowej, EMPTY zawartość pusta. 45

46 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE słownik PUBLIC "-//COS//DICTIONARY//PL" " <słownik> <hasło id= dom datazapisu= > <pojęcie>dom</pojęcie> <objaśnienie>obiekt mieszkalny</objaśnienie> </hasło> <hasło id= domek datazapisu= > <pojęcie>domek</pojęcie> <objaśnienie>forma zdrobniała od <link hasło= dom >dom</link> </objaśnienie> </hasło> </słownik> jedynie podstawowa kontrola nad strukturą dokumentów, zbyt wysokopoziomowe typy danych, bardzo ogólne metody definiowania częstości wystąpień, mało obiektowe, nierozszerzalne definicje, składnia różna od składni opisywanej zawartości, problemy z namespace. 46

47 Wprowadzenie do XML Schema XML Schema służy do definiowania struktury dokumentu XML (pełni podobną funkcję jak DTD). XML Schema pozwala na: zdefiniowanie elementów dokumentu zdefiniowanie atrybutów poszczególnych elementów Określenie, które elementy są zagnieżdżone (hierarchia elementów) określenie kolejności elementów zdefiniowanie wartości elementow (pusty czy zawiera tekst?) określenie typu wartości elementów i atrybutów zdefiniowanie domyślnych i stałych wartości elementów i atrybutów 47

48 Wprowadzenie do XML Schema Dokument XML note.xml : <?xml version="1.0"?> <note> <to>tove</to> <from>jani</from> <heading>reminder</heading> <body>don't forget me this weekend!</body> </note> 48

49 Wprowadzenie do XML Schema Dokument note.xsd, definiujący elementy w note.xml : <?xml version="1.0"?> <xs:schema xmlns:xs=" targetnamespace=" xmlns=" elementformdefault="qualified"> <xs:element name="note"> <xs:complextype> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> 49

50 Elementy typu prostego Elementy typu prostego, to elementy, które nie mogą zawierać atrybutów czy innych elementów. Niektóre z typów prostych są wbudowane w XML Schema. Najbardziej popularne typy wbudowane to: xs.integer xs.date xs.string xs.decimal xs.time xs.boolean Aby zdefiniować element typu prostego należy użyć składni : <xs:element name="xxx" type="yyy"/> gdzie xxx to nazwa elementu, a yyy to typ elementu. 50

51 Elementy typu prostego Przykład zdefiniowania elementu typu prostego Elementy w dokumencie XML <lastname>refsnes</lastname> <age>36</age> <dateborn> </dateborn> Zdefiniowane elementy typu prostego w XML Schema <xs:element name="lastname" type="xs:string"/> <xs:element name="age" type="xs:integer"/> <xs:element name="dateborn" type="xs:date"/> 51

52 Wyprowadzenie nowego typu prostego Nowe typy proste są definiowane przez wyporowadzane ich z już istniejących typów prostych (wbudowanych lub wyprowadzonych). Nowy typ prosty możemy wyprowadzić poprzez ograniczenie istniejącego typu prostego, co skutkuje ograniczeniem zbioru przyjmowanych wartości dla typu do jego podzbioru. Element simpletype służy do definiowania nazwy nowego typu prostego, element restriction do wskazania istniejącego (bazowego) typu prostego oraz do określenia aspektów (facets), które służą do ograniczenia zakresu wartości. <xs:simpletype name="myinteger"> <xs:restriction base="xs:integer"> <xs:mininclusive value="10000"/> <xs:maxinclusive value="99999"/> </xs:restriction> </xs:simpletype> 52

53 Atrybuty Wszystkie atrybuty są typu prostego. Aby zdefiniować atrybut należy użyc składni <xs:element name="xxx" type="yyy"/> gdzie xxx to nazwa atrybutu, a yyy to typ atrybutu. Przykład zdefiniowania atrybutu: Element XML zawierający atrybut <lastname lang="en">smith</lastname> Definicja atrybutu w XML Schema <xs:attribute name="lang" type="xs:string"/> 53

54 Elementy typu złożonego Elementy typu złożonego to takie, które mogą zawierać atrybuty bądź inne elementy. Nowe typy złożone są definiowane za pomocą elementu complextype i definicje te zazwyczaj zawierają zbiór deklaracji elementów, referencji do elementów oraz deklaracji atrybutów. Elementy typu złożonego można wyróżnić ze względu na zawartosć: pusta (elemnty złożone zawieraja tylko atrybuty) prosta ( elementy złożone zawieraja tylko elementy typu prostego i atrybuty) elementowa( elementy złożone zawierają tylko inne elementy) mieszana ( elementy złożone zawieraja inne elementy i atrybuty) 54

55 Elementy typu złożonego Przykład zdefiniowania typu złożonego: <xs:complextype name="usaddress" > <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="street" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="state" type="xs:string"/> <xs:element name="zip" type="xs:decimal"/> </xs:sequence> <xs:attribute name="country" type="xs:nmtoken" fixed="us"/> </xs:complextype> Każdy element pojawiający się w dokumencie instancji o typie zadeklarowanym jako USAddress musi składać się z pięciu elementów i jednego atrybutu. Te elementy muszą być nazwane name, street, city, state oraz zip i dodatkowo elementy te muszą pojawić się dokładnie w kolejności (sequence), w której zostały zadeklarowane. 55

56 Elementy typu złożonego Element simplecontent służy do definiowania elementów typu złożonego o zawartości prostej. Używając simplecontent należy ograniczyć (restriction) bądź rozszerzyć (extension) element. <xs:element name="shoesize" type="shoetype"/> <xs:complextype name="shoetype"> <xs:simplecontent> <xs:extension base="xs:integer"> <xs:attribute name="country" type="xs:string" /> </xs:extension> </xs:simplecontent> </xs:complextype> Deklarując element złożony o zawartości mieszanej atrybut mixed elementu comlextype musi mieć wartość true. <xs:complextype mixed="true"> 56

57 Element <any> Element <any> umożliwia rozszerzenie dokumentu XML o elementy, które nie są zdefiniowane w opisującym go dokumencie XML Schema Przykład użycia elementu <any> : <xs:element name="person"> <xs:complextype> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:any minoccurs="0"/> </xs:sequence> </xs:complextype> </xs:element> Wystąpienie <any> umożliwia rozszerzenie elementu person o jakikolwiek inny element. 57

58 Element <anyattribute> Element <anyattibute> umożliwia rozszerzenie dokumentu XML o atrybuty, które nie są zdefiniowane w dokumencie XML Schema Przykład użycia elementu <anyattribute>: <xs:element name="person"> <xs:complextype> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> <xs:anyattribute/> </xs:complextype> </xs:element> Wystąpienie <anyattribute> umożliwia dodanie jakiejkolwiek liczby atrybutów do elementu person. 58

59 Uniwersalny format danych proste reguły bazowanie na tekście zaakceptowany standard wspomaganie obsługi tego formatu Isniejące aplikacje MathML (Mathematical Markup Language) XHTML SMIL (Standardized Multimedia Integration Language) CML (Chemical Markup Language) umożliwia graficzne przedstawianie związków chemicznych AML (Astronomy Markup Language) BSML (Biosequence ML) genetyka XBRL (Extensible Business Reporting Language) promowany przez największe instytucje i firmy nowy standard wymiany danych finansowych w Internecie WML, VML, SVG 59

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Systemy Rozproszone - Ćwiczenie 6

Systemy Rozproszone - Ćwiczenie 6 Systemy Rozproszone - Ćwiczenie 6 1 Obiekty zdalne Celem ćwiczenia jest stworzenie obiektu zdalnego świadczącego prostą usługę nazewniczą. Nazwy i odpowiadające im punkty końcowe będą przechowywane przez

Bardziej szczegółowo

Systemy rozproszone. Dr inż. L. Miękina. Department of Robotics and Mechatronics AGH University of Science and Technology 1/1

Systemy rozproszone. Dr inż. L. Miękina. Department of Robotics and Mechatronics AGH University of Science and Technology 1/1 1/1 Systemy rozproszone Dr inż. L. Miękina Department of Robotics and Mechatronics AGH University of Science and Technology Marzec, 2013 RMI - zdalne wywołanie metod Rozproszone obiekty Stan obiektu składa

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

sieć 4) Mechanizm RMI jest zazwyczaj wykorzystywany w rozwiązaniach typu klient-serwer.

sieć 4) Mechanizm RMI jest zazwyczaj wykorzystywany w rozwiązaniach typu klient-serwer. RMI (Remote Method Invocation) zdalne wywołanie metod Część 1 1) RMI jest mechanizmem, który pozwala danej aplikacji: wywoływać metody obiektów zdalnych oraz uzyskać dostęp do obiektów zdalnych (np. w

Bardziej szczegółowo

WYKŁAD 2 DTD DOCUMENT TYPE DEFINITION CZĘŚĆ 1

WYKŁAD 2 DTD DOCUMENT TYPE DEFINITION CZĘŚĆ 1 WYKŁAD 2 DTD DOCUMENT TYPE DEFINITION CZĘŚĆ 1 XML (ang. Extensible Markup Language Rozszerzalny język znaczników) Oparty o SGML prosty, elastyczny format tekstowy opisujący klasę obiektów nazywanych dokumentami

Bardziej szczegółowo

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema XML Schema Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 19 listopada 2005 roku Wstęp XML Schema służy do definiowania struktury dokumentu XML (pełni podobną funkcję jak DTD).

Bardziej szczegółowo

XML extensible Markup Language. część 4

XML extensible Markup Language. część 4 XML extensible Markup Language część 4 XML Schema (Podobnie jak DTD) XML Schema to opracowany przez W3C standard służący do definiowania struktury dokumentu XML. (W przeciwieństwie do DTD) XML Schema jest

Bardziej szczegółowo

Kurs WWW Język XML, część I

Kurs WWW Język XML, część I Język XML, część I Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Zawartość modułu Wprowadzenie do XML Składnia Znaczniki i atrybuty DTD XML Schema Na podstawie kursu ze strony: http://www.w3schools.com/schema/default.asp

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

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

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

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Celem ćwiczenia jest przygotowanie prostej aplikacji wykorzystującej architekturę CORBA. Aplikacja składa się z usługodawcy (serwera)

Bardziej szczegółowo

Tworzenia aplikacji rozproszonej RMI

Tworzenia aplikacji rozproszonej RMI Tworzenia aplikacji rozproszonej RMI Mówiąc o aplikacjach RMI wyróżnia się w nich dwa typy obiektów: obiekty wywołujące metody zdalne (klienci) obiekty udostępniające metody zdalne (serwery) RMI dostarcza

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

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2. Aplikacje RMI Część 2 Budowa aplikacji rozproszonych http://java.sun.com/j2se/1.5.0/docs/guide/rmi/socketfactory/index.html I. Implementacja gniazd dziedziczących po Socket i ServerSocket oraz produkcji

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Celem ćwiczenia jest przygotowanie prostej aplikacji wykorzystującej architekturę CORBA. Aplikacja składa się z usługodawcy (serwera)

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami

Bardziej szczegółowo

Podstawy XML-a. Zaawansowane techniki programowania

Podstawy XML-a. Zaawansowane techniki programowania Podstawy XML-a Zaawansowane techniki programowania Dokumenty XML XML = ang. Extensible Markup Language rozszerzalny język znaczników

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

Wprowadzenie do XML schema

Wprowadzenie do XML schema Spis treści Tomasz Przechlewski 1. Podstawowe pojęcia. 1 2. Typy proste.. 3 3. Wzorzec regułowy 4 4. Typy złożone 5 5. Modele o prostej zawartości 5 6. Modele o złożonej zawartości. 6 7. Rozszerzanie modelu

Bardziej szczegółowo

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1 WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1 SGML (Standard Generalized Markup Language) Standardowy uogólniony język znaczników służący do ujednolicania struktury i formatu różnego typu informacji (danych). Twórcy

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

Tworzenie i wykorzystanie usług

Tworzenie i wykorzystanie usług Strona 1 Co to jest usługa w systemie Android? Usługi HTTP Obsługa wywołania HTTP GET Obsługa wywołania HTTP POST Obsługa wieloczęściowego wywołania HTTP POST Usługi lokalne Usługi zdalne Tworzenie usługi

Bardziej szczegółowo

Java programowanie w sieci. java.net RMI

Java programowanie w sieci. java.net RMI Java programowanie w sieci java.net RMI Programowanie sieciowe OSI WARSTWA APLIKACJI (7) WARSTWA PREZENTACJI(6) WARSTWA SESJI (5) WARSTWA TRANSPORTU (4) DoD Warstwa aplikacji (HTTP) Transport (gniazdka)

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

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

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej dr inż. Paweł Czarnul pczarnul@eti.pg.gda.pl Architektury usług internetowych laboratorium

Bardziej szczegółowo

Rola języka XML narzędziem

Rola języka XML narzędziem Wprowadzenie do XML dr inż. Adam Iwaniak Szkolenie w Luboradzy, ZCPWZ, 12-13.02.2009r. Rola języka XML narzędziem Pierwszą rewolucją internetową było dostarczenie ludziom informacji. Znajdujemy się teraz

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

Bardziej szczegółowo

Wprowadzenie do technologii XML

Wprowadzenie do technologii XML Katedra Mikroelektroniki i Technik Informatycznych Łódź, 6 października 2005 roku 1 Informacje organizacyjne Omówienie przedmiotu 2 vs HTML Struktura 3 Struktura Informacje o przedmiocie Informacje organizacyjne

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

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

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

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Wykorzystywanie parsera DOM w programach Java i PL/SQL Wykorzystywanie parsera DOM w programach Java i PL/SQL Maciej Zakrzewicz mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Parser DOM Aplikacja DOM API Parser DOM Dokument XML Drzewo DOM Parser

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

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT 1. Wstęp XML (Extensible Markup Language Rozszerzalny Język Znaczników) to język formalny przeznaczony do reprezentowania danych

Bardziej szczegółowo

XML extensible Markup Language. Paweł Chodkiewicz

XML extensible Markup Language. Paweł Chodkiewicz XML extensible Markup Language Paweł Chodkiewicz XML - extensible Markup Language Uniwersalny język znaczników przeznaczony do reprezentowania różnych danych w strukturalizowany sposób. Historia GML Projekt

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

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

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

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

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

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1) Instrukcja tworzenia aplikacji EE na podstawie aplikacji z dostępem do bazy danych, prezentowanej na zajęciach lab.5 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie

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

Remote Method Invocation

Remote Method Invocation Remote Method Invocation 1. Interfejsy w Javie. 2. Zdalne wywołanie metod (Remote Method Invocation). interfejsy w RMI, 3. Przykładowa aplikacja korzystająca z RMI, 4. Własne gniazda w RMI. 5. Dystrybucja

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

Michał Jankowski. Remoting w.net 2.0

Michał Jankowski. Remoting w.net 2.0 Michał Jankowski Remoting w.net 2.0 Co to jest? Remoting jest zbiorem funkcji pozwalającym na komunikacje miedzy aplikacjami zarówno w obrębie jednego komputera jak i poprzez sieć Pozwala na komunikację

Bardziej szczegółowo

Wykład 7: Pakiety i Interfejsy

Wykład 7: Pakiety i Interfejsy Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,

Bardziej szczegółowo

XML Schema. Typy proste, wyprowadzanie typów, modularyzacja schematu. Patryk Czarnik. Instytut Informatyki UW

XML Schema. Typy proste, wyprowadzanie typów, modularyzacja schematu. Patryk Czarnik. Instytut Informatyki UW XML Schema Typy proste, wyprowadzanie typów, modularyzacja schematu Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2007/08 Typy proste i złożone Typy złożone struktura

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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019 Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości

Bardziej szczegółowo

Przykładowy dokument XML

Przykładowy dokument XML Przykładowy dokument XML DTD - wady Ograniczona kontrola nad strukturą dokumentów. Zbyt wysokopoziomowe typy danych: liczby, daty są zawsze reprezentowane jako tekst! Bardzo ogólne metody definiowania

Bardziej szczegółowo

1 Atrybuty i metody klasowe

1 Atrybuty i metody klasowe 1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich

Bardziej szczegółowo

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW XML Schema Motywacja, struktura schematu, typy złożone Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2007/08 Dlaczego nie DTD? Zastosowania XML-a w elektronicznej

Bardziej szczegółowo

DTD - encje ogólne i parametryczne, przestrzenie nazw

DTD - encje ogólne i parametryczne, przestrzenie nazw DTD - encje ogólne i parametryczne, przestrzenie nazw Instytut Informatyki Encje Encja (ang.entity) - uogólnienie pojęcia makrodefinicji Encje to dogodny sposób reprezentacji danych które występują wielokrotnie,

Bardziej szczegółowo

Aplikacja wielowątkowa prosty komunikator

Aplikacja wielowątkowa prosty komunikator Aplikacja wielowątkowa prosty komunikator Klient 0 (host 1) Wątek 0 Komponent serwera Wątek pochodny 3.1 Klient 1 (host 2) Wątek 1 Komponent serwera Wątek pochodny 3.2 Host 4 Serwer Wątek 3 Klient 2 (host

Bardziej szczegółowo

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 7 XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML 1. Prosty dokument XML lab7_1.xml

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane. Definiowanie typów dokumentów Część 1. DTD, XML Schema Jak wygląda XML? st. asp. Jan Łapówka dołowice Górne wypadek

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

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium Aplikacje internetowe i rozproszone - laboratorium Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z technologią EJB w wersji 3.0, a w szczególności: implementacja komponentów sesyjnych,

Bardziej szczegółowo

Przykłady interfejsu TCP i UDP w Javie

Przykłady interfejsu TCP i UDP w Javie Przykłady interfejsu TCP i UDP w Javie W Javie interfejsy TCP i UDP znajdują się w pakiecie java.net http://docs.oracle.com/javase/6/docs/api/java/net/packagesummary.html 1 Przykład interfejsu UDP Protokół

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 9 Serializacja Przygotował: Jacek Sroka 2 Przypomnienie Abstrakcja strumienia hierarchia binarna InputStream/OutputStream hierarchia znakowa Reader/Writer

Bardziej szczegółowo

Stanowe komponenty sesyjne

Stanowe komponenty sesyjne Stanowe komponenty sesyjne 1. Porównanie komponentów stanowych i bezstanowych. 2. Cykl życia stanowego komponentu sesyjnego, 3. Komponenty sesyjne a kontekst utrwalania, 4. Zagnieżdżanie komponentów sesyjnych,

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium

Bardziej szczegółowo

Dziedziczenie. Tomasz Borzyszkowski

Dziedziczenie. Tomasz Borzyszkowski Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Klasy abstrakcyjne, interfejsy i polimorfizm

Klasy abstrakcyjne, interfejsy i polimorfizm Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane. Definiowanie typów dokumentów Część 1. DTD, XML Schema Jak wygląda XML? st. asp. Jan Łapówka dołowice Górne wypadek

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

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

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

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane Extensible Markup Language (XML) Wrocław, 15.03.2019 - Java - technologie zaawansowane Wprowadzenie XML jest językiem znaczników (ang. markup language) używanym do definiowania zbioru zasad rozmieszczenia

Bardziej szczegółowo

PRiR I. Programowanie Równoległe i Rozproszone. Wykład 1 Wstęp i RMI. Marek Kasztelnik WSZIB Krakow

PRiR I. Programowanie Równoległe i Rozproszone. Wykład 1 Wstęp i RMI. Marek Kasztelnik WSZIB Krakow PRiR I Programowanie Równoległe i Rozproszone Wykład 1 Wstęp i RMI Marek Kasztelnik WSZIB Krakow Wstep do PRiR + RMI O czym ten przedmiot? System rozproszony/distributed System Remote Procedure Call/RPC

Bardziej szczegółowo

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie materiałów dra inż. Juliusza Mikody Jak działa JDO Podstawowym zadaniem JDO jest umożliwienie aplikacjom Javy transparentnego umieszczenia

Bardziej szczegółowo

Wprowadzenie do technologii XML

Wprowadzenie do technologii XML Wprowadzenie do technologii Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 11 kwietnia 2010 Program wykładu Celem wykładu jest przedstawienie technologii i pokrewnych do niej

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