1 / 27

Apache XML-RPC

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA. Apache XML-RPC. SEMINAR Programiranje u Javi. Autor: Siniša Pribil Voditelj: mr. sc. Marko Čupić. Zagreb, svibanj 2009. Sadržaj. Uvod Tehnologija RPC Jezik XML Tehnologija XML-RPC Biblioteka Apache XML-RPC Zaključak. 2.

Télécharger la présentation

Apache XML-RPC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Apache XML-RPC SEMINAR Programiranje u Javi Autor: Siniša Pribil Voditelj: mr. sc. Marko Čupić Zagreb, svibanj 2009.

  2. Sadržaj • Uvod • Tehnologija RPC • Jezik XML • Tehnologija XML-RPC • Biblioteka Apache XML-RPC • Zaključak 2

  3. Razvoj tehnologije • računalni resursi ograničeni,podaci na više lokacija • podjela zadataka • razmjena informacija • različita organizacija podataka • problemi pri razmjeni potreba za jedinstvenim sustavom razmjene računalnih resursa i informacija Uvod 3

  4. Način rada Tehnologija RPC 4

  5. Tehnologija RPC • engl. Remote procedure call • način dijeljenja računalnih resursa • pozivanje udaljenih procedura kao da su lokalne binarni prijenos parametara stvara probleme prikomunikaciji između različitih sustava Tehnologija RPC 5

  6. Jezik XML • engl. Extensible markup language • olakšava razmjenu podatakaizmeđu aplikacija i sustava • jednostavan za čitanje i uređivanje Jezik XML 6

  7. Sintaksa XML-a • prolog: <?xml version="1.0" encoding="UTF-8"?> • sadržaj: <tv_uredjaj> <proizvodjac>Sony</proizvodjac> <ekran> <tip>lcd</tip> <razlucivost>1080p</razlucivost> </ekran> </tv_uredjaj> Jezik XML 7

  8. Tehnologija XML-RPC Tehnologija XML-RPC 8

  9. XML-RPC zahtjev <?xml version="1.0"?> <methodCall> <methodName>primjer.vratiMjesto</methodName> <params> <param> <value><int>10000</int></value> </param> </params> </methodCall> Tehnologija XML-RPC 9

  10. XML-RPC odgovor <?xml version="1.0"?> <methodResponse> <params> <param> <value> <string>Zagreb</string> </value> </param> </params> </methodResponse> Tehnologija XML-RPC 10

  11. Tipovi podataka Tehnologija XML-RPC 11

  12. Polje <array> <data> <value><int>43000</int></value> <value><string>Bjelovar</string></value> <value><boolean>1</boolean></value> <value><i4>43</i4></value> </data> </array> Tehnologija XML-RPC 12

  13. Problemi • sustav ovisi o mrežnoj infrastrukturi • problemi na mreži izravno utječu na sustav • ponekad nije izvjesno je li prodecura uopće pokrenuta • problemi kod poziva procedura koje ne vraćaju uvijek isti rezultat Tehnologija XML-RPC 13

  14. Biblioteka Apache XML-RPC • implementacija protokola XML-RPC • napisana za programski jezik Java • Klijentski dio • Poslužiteljski dio funkcionalnost ne ovisi o operacijskom sustavu ili programskom okruženju Biblioteka Apache XML-RPC 14

  15. Klijent • pokretanje procedure: Object[] params = new Object[]{new Integer(33), new Integer(9)}; Integer result = (Integer) client.execute(“Kalkulator.zbroji", params); sa stajališta aplikacije, procedura se izvodi lokalno Biblioteka Apache XML-RPC 15

  16. Poslužitelj • potrebno je pokrenuti uslugukoja će čekati zahtjeve klijenta • pozivanjem unaprijed određene adrese na poslužitelju pokreće se aplikacija koja obrađuje zahtjev • aplikacija izvršava traženu procedru i vraća rezultat Biblioteka Apache XML-RPC 16

  17. Pisanje udaljenih procedura • metode organizirane u razredima package hr.fer.zemris.java.seminar; public class Kalkulator { public int zbroji(int i1, int i2) { return (i1 + i2); } public int oduzmi(int i1, int i2) { return (i1 - i2); } } Biblioteka Apache XML-RPC 17

  18. Karakteristike • razvoj jednostavan • poslužiteljski dio ne zahtjeva prilagodbu,dovoljno je samo pokrenuti uslugu • udaljene procedure pišu se kao jednostavne metode organizirane u razredima • datoteka s popisom razreda udaljenih procedura: Kalkulator=hr.fer.zemris.java.seminar.Kalkulator Utility=hr.fer.zemris.java.seminar.Utility Biblioteka Apache XML-RPC 18

  19. Zaključak • sve veća potreba za razmjenom računalnih resursa • XML-RPC sve poplarnija tehnologija • poziv udaljene procedure jednak lokalnom • Internet kao sredstvo prijenosa • mogućnost prijenosa složenih struktura • neovisnost o oberacijskom sustavu ili aplikacijskom okruženju • Apache XML-RPC • biblioteka za Javu • vrlo jednostavno korištenje Zaključak 19

  20. Hvala na pažnji!

  21. Sintaksa - elementi • sadržaj omeđen oznakama: <proizvodjac>Sony</proizvodjac> • opća struktura elementa: <element> Tekstualni sadržaj ili umetnuti element </element> • važan redoslijed zatvaranja oznaka: <tekst><redak>Neispravan element</tekst></redak> Jezik XML Dodatak 1

  22. Sintaksa - atributi <biljeska datum="05.02.2009."> <za>Lanu</za> <od>Domagoja</od> <tekst>Ne zaboravi prošetati psa!</tekst> </biljeska> • načini korištenja: • samo kao upute računalu • za bolju organizaciju koda Jezik XML Dodatak 2

  23. Struktura <struct> <member> <name>Vjerojatnost i statistika</name> <value><int>4</int></value> </member> <member> <name>Inženjerska ekonomika</name> <value><int>5</int></value> </member> </struct> Tehnologija XML-RPC Dodatak 3

  24. Ekvivalentni Java tipovi podataka Apache XML-RPC Dodatak 4

  25. Priprema klijenta URL url = new URL("http://neki_server"); XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); config.setServerURL(url); XmlRpcClient client = new XmlRpcClient(); client.setConfig(config); Apache XML-RPC Dodatak 5

  26. Interval čekanja • zbog problema na mreži moguće je da se odgovor uopće ne vrati • definiranje intervala čekanja Object[] rez = null; TimingOutCallback callback = new TimingOutCallback(10 * 1000); XmlRpcClient client = new XmlRpcClient(url); client.executeAsync("Utility.wait", arg, callback); try { rez = (Object[]) callback.waitForResponse(); } catch (TimeoutException e) { System.out.println("Poslužitelj ne odgovara"); } catch (Exception e) { System.out.println("Vraćena greška."); Apache XML-RPC Dodatak 6

  27. <?xml version="1.0"?> <methodResponse> <fault> <value> <struct> <member> <name>faultCode</name> <value><int>4</int></value> </member> <member> <name>faultString</name> <value> <string> Too many parameters. </string> </value> </member> </struct> </value> </fault> </methodResponse>

More Related