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="http://apps.bn.com/ns"> <bn:author>słowacki</bn:author> </bn:book> można także tworzyć przestrzenie nazw domyślne: <Book xmlns="http://apps.bn.com/ns"> <Author>Słowacki</Author> </Book> zarezerwowane: xml i xmlns 43

44 <xsl:stylesheet xmlns:xsl="http://www.w3.org/xslt/transform/1.0" xmlns:test="http://test.pop.pl"> <xsl:template match= przyklad > <test:template> <xsl:apply-templates/> </test:template> </xsl:template> </xsl:stylesheet> Domyślna przestrzeń nazw: <reln xmlns="http://www.w3.org/tr/rec-mathml/"> <eq/><cn>3</cn><cn>4</cn> </reln> Lokalna przestrzeń nazw: <reln xmlns="http://www.w3.org/tr/rec-mathml/"> <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" "http://www.cos.pl/katalog/test.dtd"> <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="http://www.example.org/xmlschema" targetnamespace="http://www.examples.com" xmlns="http://www.examples.com" 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ć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

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

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

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

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

Komponenty sterowane komunikatami

Komponenty sterowane komunikatami Komponenty sterowane komunikatami 1. Usługa JMS asynchroniczność, model przesyłania komunikatów, 2. Przykład wysyłanie wiadomości, odbieranie wiadomości, komponent sterowany komunikatami 3. Komponenty

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

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

Interfejs IUnknown. Każdy obiekt COM musi implementować interfejs IUnknown, który zawiera trzy metody:

Interfejs IUnknown. Każdy obiekt COM musi implementować interfejs IUnknown, który zawiera trzy metody: Plan wykładu 1. Technologia COM (DCOM) wprowadzenie, korzystanie z obiektu COM, program klienta, schemat programu serwera. 2. Porównanie DCOM, CORBA i RMI. Wprowadzenie Opracowana przez Microsoft technologia

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

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

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

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

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML Plan dzisiejszego wykładu Narzędzia informatyczne w językoznawstwie Perl - Wprowadzenie do XML Marcin Junczys-Dowmunt junczys@amu.edu.pl Zakład Logiki Stosowanej http://www.logic.amu.edu.pl 16. kwietnia

Bardziej szczegółowo

JAX-RS czyli REST w Javie. Adam Kędziora

JAX-RS czyli REST w Javie. Adam Kędziora JAX-RS czyli REST w Javie Adam Kędziora Webservice Usługa sieciowa (ang. web service) komponent programowy niezależny od platformy i implementacji, dostarczający określonej funkcjonalności. SOAP,UDDI,XML,WSDL

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

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

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Proxy (pełnomocnik) Cel: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Zastosowanie: Wszędzie tam, gdzie oczekujemy bardziej zaawansowanego odwołania do obiektu, niż zwykły

Bardziej szczegółowo

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

SOAP i alternatywy. 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift.

SOAP i alternatywy. 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift. SOAP i alternatywy 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift. 1 WSDL WSDL (Web Services Description Language) jest standardem

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

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

GML w praktyce geodezyjnej

GML w praktyce geodezyjnej GML w praktyce geodezyjnej Adam Iwaniak Kon-Dor s.c. Konferencja GML w praktyce, 12 kwietnia 2013, Warszawa SWING Rok 1995, standard de jure Wymiany danych pomiędzy bazami danych systemów informatycznych

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

Bardziej szczegółowo

Definiowanie własnych klas

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

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

Instrukcja laboratoryjna cz.3

Instrukcja laboratoryjna cz.3 Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

public interface TravelAgent { public void makereservation(int cruiseid, int cabinid, int customerid, double price); }

public interface TravelAgent { public void makereservation(int cruiseid, int cabinid, int customerid, double price); } Web Services 1. Podstawy usług sieciowych. SOAP, WSDL. 2. Usługi sieciowe w JAX-RPC. interfejs punktu końcowego, korzystanie z usługi z poziomu komponentu EJB, programy klienckie, narzędzia i deskryptory

Bardziej szczegółowo

SOAP. Autor: Piotr Sobczak

SOAP. Autor: Piotr Sobczak SOAP Autor: Piotr Sobczak AGENDA: Trochę o Web Services Wprowadzenie do SOAP Anatomia komunikatu SOAP Wysyłanie i otrzymywanie komunikatu SOAP oraz API Javy w przykładach SOAP z załącznikami SOAP-RPC Obsługa

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

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT Marek Wojciechowski marek@cs.put.poznan.pl http://www.cs.put.poznan.pl/~marek/ Formatowanie dokumentów XML Język XML opisuje strukturę i

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

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

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1. Wielowątkowość Programowanie w środowisku rozproszonym. Wykład 1. Informacje organizacyjne Wymiar godzin: W-30, LAB-15 Zaliczenie wykonanie kilku programów i ich zaliczenie (w trakcie zajęć laboratoryjnych)

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

METODY REPREZENTACJI INFORMACJI

METODY REPREZENTACJI INFORMACJI Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Magisterskie Studia Uzupełniające METODY REPREZENTACJI INFORMACJI Ćwiczenie 1: Budowa i rozbiór gramatyczny dokumentów XML Instrukcja

Bardziej szczegółowo

Spis treści. 1 Java T M

Spis treści. 1 Java T M Spis treści 1 Java T M 1 2 Co to jest Platforma Java T M 1 3 Przygotowanie komputera 2 4 Pierwszy program 2 5 Dokumentacja 3 6 Budowa aplikacji. Klasy. 3 7 Pola i metody 4 8 Konstruktory 5 9 Inne proste

Bardziej szczegółowo

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety i interfejsy. Tomasz Borzyszkowski Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji

Bardziej szczegół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

Języki programowania wysokiego poziomu WWW

Języki programowania wysokiego poziomu WWW Języki programowania wysokiego poziomu WWW Zawartość Protokół HTTP Języki HTML i XHTML Struktura dokumentu html: DTD i rodzaje html; xhtml Nagłówek html - kodowanie znaków, język Ciało html Sposób formatowania

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

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Wykład 12. Programowanie serwera MS SQL 2005 w C# Wykład 12 Programowanie serwera MS SQL 2005 w C# Budowa procedur składowanych w C# Budowa funkcji składowanych w C# Wykorzystanie funkcji składowanych w C# po stronie klienta Tworzenie typów definiowanych

Bardziej szczegółowo

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL Celem ćwiczenia jest stworzenie dokumentu XML, wyposażenie dokumentu w specyfikację struktury (przy użyciu DTD i XML Schema), oraz transformacja

Bardziej szczegółowo

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes) XPath XML Path Language XPath. XSLT część 1. Problem: jednoznaczne adresowanie fragmentów struktury dokumentu XML. Rozwiązanie: drzewiasty model struktury dokumentu, normalizacja zawartości dokumentu (ten

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

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

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Enterprise JavaBeans

Enterprise JavaBeans Enterprise JavaBeans 1. Wprowadzenie. 2. Przegląd komponentów EJB. komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 3. Kontener komponentów EJB: JBoss. 1 Enterprise JavaBeans

Bardziej szczegółowo

extensible Markup Language, cz. 4 Marcin Gryszkalis, mg@fork.pl

extensible Markup Language, cz. 4 Marcin Gryszkalis, mg@fork.pl extensible Markup Language, cz. 4 Marcin Gryszkalis, mg@fork.pl XML 5 XML Schema Projektowany jako rozszerzenie i uzupełnienie DTD Jest w stanie odwzorować dowolną definicję DTD (ale nie odwrotnie!) Bardzo

Bardziej szczegółowo

Programowanie obiektowe. Wprowadzenie

Programowanie obiektowe. Wprowadzenie 1 Programowanie obiektowe Wprowadzenie 2 Programowanie obiektowe Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

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

Oprogramowanie systemów równoległych i rozproszonych. Wykład 6 Wykład 6 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 6 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Wykład 6 p.

Bardziej szczegółowo

Katalog książek cz. 2

Katalog książek cz. 2 Katalog książek cz. 2 Odczytywanie danych z XML Do ćwiczenia dołączony jest plik books.xml zawierający pełen katalog książek. Poniższy listing zawiera przykładowy fragment danych w stosowanym formacie.

Bardziej szczegółowo

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ EMAIL DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ EMAIL DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ EMAIL DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP WERSJA 1 z 15 Spis treści 1. Kanał email dla podmiotów zewnętrznych...

Bardziej szczegółowo

Model semistrukturalny

Model semistrukturalny Model semistrukturalny standaryzacja danych z różnych źródeł realizacja złożonej struktury zależności, wielokrotne zagnieżdżania zobrazowane przez grafy skierowane model samoopisujący się wielkości i typy

Bardziej szczegółowo

Programowanie internetowe

Programowanie internetowe Programowanie internetowe Wykład 1 HTML mgr inż. Michał Wojtera email: mwojtera@dmcs.pl Plan wykładu Organizacja zajęć Zakres przedmiotu Literatura Zawartość wykładu Wprowadzenie AMP / LAMP Podstawy HTML

Bardziej szczegółowo

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa

Bardziej szczegółowo