SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU            ELEKTROTEHNIČKI FAKULTET                  Krešimir PopovićPROGR...
PODACI O MAGISTARSKOM RADU                                              I. AutorIme i prezime                             ...
SADRŽAJ1.      UVOD .........................................................................................................
5.2. IZRADA IMENIKA PORUKA ...................................................................................... 62     5...
POPIS SLIKASlika 2.1: FIFO spremnik poruka ..................................................................................
POPIS TABLICATablica 2.1: Imenski prostor usluge Amazon SQS .................................................................
POPIS IZVORNOG KODA TANKOG KLIJENTAIzvorni kod tankog klijenta 5.1: Primjer korištenja akcije CreateQueue ...................
POPIS IZVORNOG JAVA KODAIzvorni Java kod 2.1: Sinkroni način rada primatelja poruka opisan izvornim Java kodom JMSsučelja ...
PRILOZISvi prilozi su računalni programi koji su pod stalnim promjenama vlasnika licence.Prilog 3.1: Izvorni kod AWSAdminT...
POPIS KRATICAPopis sadrži samo one kratice koje se općenito koriste u računarstvu, dok su specifične kratice,kao dio komer...
PaaS      Platform as a ServiceQoS       Quality of ServiceRAM       Random Access MemoryRESTful   Representational state ...
1. UVODU ovom poglavlju bit će razmotreni čimbenici i motivacija koji su utjecali na nastanak ovogarada te korisnost znans...
Također, u današnje doba širenja SOA usluga računalnih oblaka postavlja se nekolikozanimljivih pitanja vezano za oblačnu u...
informacijsku sigurnost ENISA [12], [13]; T. Mather, S. Kumaraswamy i S. Latif [14]; J. W.Rittinghouse i James F. Ransome ...
4. Izraditi klijentsku zbirku as3awsSDK.swc u Actionscript 3.0 objektno-orijentiranom       programskom jeziku zasnovanom ...
1.4.   Plan istraživanjaPlan istraživanja obuhvaća četiri radnje provedene u razdoblju od jedne godine:      Temeljen na ...
2. PREGLED SUSTAVA ZA RAZMJENU PORUKA2.1.   Pojam spremnik porukaSpremnikom poruka se smatra skup poruka koje čekaju u red...
pristupiti spremniku poruka. Znači, ne smije se dogoditi da neka računalna           komponenta nadoda dvije poruke, a odm...
proizvođač-potrošač omogućava da proizvođači i potrošači izvršavaju svoje zadatke       neovisno jedni o drugome.         ...
osmisliti i izraditi sustav sa visokom raspoloživošću koji može istovremeno poslužiti višepotrošača i proizvođača poruka p...
Slika 2.4: Arhitektura standardnog Java programskog sučelja za razmjenu poruka (JMS API)2.5.   Područje djelovanja sustava...
Slika 2.5: Područje djelovanja „Od točke do točke“Svojstva područja djelovanja „Od točke do točke“:   a) Svaka poruka ima ...
Slika 2.6: Područje djelovanja "Objavi-pretplati" (P1 – poruka; C1,C2,C3 – potvrda primitka poruke)Svojstva područja djelo...
a) Sinkroni način – sinkronim načinom prikupljanja poruka se smatra kada potrošač sam           izričito zatraži poruku od...
b) Asinkroni način – „Davatelj usluge JMS“ šalje poruku registriranom osluškivaču poruka.   Primitkom poruke pokreće se me...
public class AsyncReceiver implements MessageListener, ExceptionListener{  public static void main(String[] args) throws E...
2.6.   JBossMQ – primjer davatelja standardne usluge JMSU ovom podpoglavlju ukratko će biti predstavljen ne-komercijalni (...
2.7.   Spremnici poruka sa visokom dostupnošćuImati nedostupan spremnik poruka zbog pada sustava je najveći mogući problem...
Usluga Amazon SQS omogućava da bilo koje računalo, pametni telefon, dlanovnik, spojeno najavnu mrežu Internet uz pravilnu ...
koristiti deflate/inflate postupak za sažimanje podataka koji se navodi u RFC 1951 [30].       Podržan je u Javi, C#, Acti...
Slika 2.7: Pregled arhitekture usluge Amazon SQS2.8.3. Kako radi usluga Amazon SQS ?Korisnici usluge Amazon SQS moraju izr...
2.amazonaws.com)         The EU(Ireland)                                                                 http://sqs.eu-wes...
Slika 2.9: Prikupljanje poruka iz spremnika poruka (akcija ReceiveMessage)Za vrijeme prikupljanja poruke iz spremnika poru...
Slika 2.11: Vremensko ograničenje nevidljivosti poruke (akcija ChangeMessageVisibility)Kada komponeta n (potrošač) uspješn...
poruka može biti nedostupan nakon što potrošač (klijent) primi ili obriše poruku. Ako se todogodi, kopija poruke neće biti...
Napomena #1: SOAP zahtjevi koji                   ne koriste WS-Security ne smiju                   koristiti Expires, neg...
2.8.5. Izrada i sigurnost jednostavnog HTTP(s) zahtjeva upitaUsluga Amazon SQS podržava jednostavne RESTful zahtjeve upita...
b) Odredište usluge Amazon SQS – lista odredišta se može vidjeti u Tablica 2.1.            c) Identifikator - <broj korisn...
Tablica 2.3 i Tablica 2.4 prikazuju primjer zahtjeva/odgovora Amazon SQS poruke izvršene odstrane klijenta. Svaki HTTP(s) ...
<ResponseMetadata><RequestId>ee88379d-6f8d-45e5-a6ee- e9fc7abea128</RequestId></ResponseMetadata> </SendMessageResponse>Da...
Opis slike Slika 2.16:      Korak 1 – 2: Klijent 1           a) Korak 1 - zahtjev klijenta 1 je ispravan jer HTTP(s) zaht...
   Klijent 2 – nema ispravan parametar AWSAccessKeyId ili izrađen potpis uz pomoć tajnog    AWSSecretKey ključa. Daljnje ...
3. IZRADA UKUPNOG TROŠKA KORIŠTENJA USLUGE AMAZON SQS   I USPOREDBA SA UKUPNIM TROŠKOM ODRŽAVANJA   POSLUŽITELJA ORACLE WE...
odgovarali su na pitanja u vezi instalacije, općih promjeni postavki, grozd postavki, nadogradnje,izrade instanci, razmjen...
si najbolje komercijalne sustave male i srednje tvrtke ne mogu priuštiti. Jedino što im preostajeriskirati sa rješenjima o...
andauthentificationof third-partyusers)Protokoli          HTTP, HTTPS       HTTP, HTTPS, RMI, IIOP, t3, t3sTrajnost poruka...
Grafičko            DA                DA korisničko sučelje za izmjenu postavki Komercijalna        DA (pogledati     DA (...
Napomena: Cijene su izražene u američkim $ USD dolarima ovisno o regiji.Ukupna cijena korištenja usluge Amazon SQS sastoji...
Idućih 4 PB/mjesečno     Kontaktirati Amazon AWS.                                     Više od 5 PB/mjesečno               ...
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU
Upcoming SlideShare
Loading in …5
×

PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU

1,080 views

Published on

Magistarski rad se bavi problematikom razmjene asinkronih poruka između heterogenih sustava pomoću oblačne usluge Amazon SQS.

Predstavljena je Actionscript 3.0 API zbirka koja omogućava mobilnim aplikacijama izrađenim pomoću Adobe Flex alata da na jednostavan način koriste uslugu Amazon SQS.

Izvršeni su i prikazani klijentski testovi izvođenja (eng. performance) usluge Amazon SQS korištenjem kućne Internet veze.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,080
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

PROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU

  1. 1. SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU ELEKTROTEHNIČKI FAKULTET Krešimir PopovićPROGRAMSKI ALAT ZA ADMINISTRIRANJE MREŽNIH USLUGA OGLAŠAVANJA U OBLAČNOM RAČUNARSTVU Magistarski rad Osijek, 2012
  2. 2. PODACI O MAGISTARSKOM RADU I. AutorIme i prezime Krešimir PopovićDatum i mjesto rođenja 29. rujna 1980., Osijek Fakultet elektrotehnike i računarstva u Osijeku,Naziv fakulteta i datum diplomiranja 27. travnja 2005Sadašnje zaposlenje Stariji inženjer programske podrške. II. Magistarski radNaslov Programski alat za administriranje mrežnih usluga oglašavanja u oblačnom računarstvuBroj stranica, slika, tablica, izvorni kod, Prvih 11 nenumeriranih stranica, 103bibliografski podaci numerirane stranice, 35 slika, 27 tablica, 13 isječaka izvornog koda, 59 bibliografskih referenciZnanstveno područje, smjer i disciplina Tehničke znanosti, Procesno računarstvo,iz koje je postignut akademski stupanj RačunarstvoMentor ili voditelj rada prof.dr.sc. Željko HocenskiFakultet na kojem je rad obranjen Fakultet elektrotehnike i računarstva, OsijekOznaka i redni broj rada III. Ocjena i obranaDatum prihvaćanja teme od Znanstveno- 06.10.2010nastavnog vijećaDatum predaje radaDatum sjednice ZNV-a na kojoj jeprihvaćena pozitivna ocjena radaSastav Povjerenstva koje je rad ocijeniloDatum obrane radaSastav Povjerenstva pred kojim je rad obranjenDatum promocije
  3. 3. SADRŽAJ1. UVOD ...................................................................................................................................... 1 1.1. MOTIVACIJA .................................................................................................................. 1 1.2. DOSADAŠNJA ISTRAŽIVANJA ................................................................................... 2 1.3. CILJEVI RADA ............................................................................................................... 3 1.4. PLAN ISTRAŽIVANJA................................................................................................... 52. PREGLED SUSTAVA ZA RAZMJENU PORUKA .......................................................... 6 2.1. POJAM SPREMNIK PORUKA ....................................................................................... 6 2.2. SPREMNIK PORUKA KAO STRUKTURA PODATAKA ............................................ 6 2.3. SPREMNIK PORUKA KAO REPOZITORIJ .................................................................. 7 2.4. ARHITEKTURA STANDARDNOG JAVA PROGRAMSKOG SUČELJA ZA RAZMJENU PORUKA ............................................................................................................... 9 2.5. PODRUČJE DJELOVANJA SUSTAVA PORUKA ..................................................... 10 2.5.1. PODRUČJE DJELOVANJA “OD TOČKE DO TOČKE”..................................... 10 2.5.2. PODRUČJE DJELOVANJA „OBJAVI-PRETPLATI“ ......................................... 11 2.5.3. PRIKUPLJANJE PORUKA ................................................................................... 12 2.6. JBOSSMQ – PRIMJER DAVATELJA STANDARDNE USLUGE JMS ..................... 16 2.7. SPREMNICI PORUKA SA VISOKOM DOSTUPNOŠĆU .......................................... 17 2.8. USLUGA AMAZON SQS ZA RAZMJENU PORUKA ................................................ 17 2.8.1. SVOJSTVA USLUGE AMAZON SQS ................................................................. 18 2.8.2. OSNOVNI PREGLED ARHITEKTURE USLUGE AMAZON SQS ................... 19 2.8.3. KAKO RADI USLUGA AMAZON SQS ? ............................................................ 20 2.8.4. HTTP(S) ZAHTJEVI I ODGOVORI ..................................................................... 24 2.8.5. IZRADA I SIGURNOST JEDNOSTAVNOG HTTP(S) ZAHTJEVA UPITA ..... 263. IZRADA UKUPNOG TROŠKA KORIŠTENJA USLUGE AMAZON SQS IUSPOREDBA SA UKUPNIM TROŠKOM ODRŽAVANJA POSLUŽITELJA ORACLEWEBLOGIC – IBM WEBSPHERE .......................................................................................... 32 3.1. UKUPAN TROŠAK ODRŽAVANJA POSLUŽITELJA ORACLE WEBLOGIC - IBM WEBSPHERE ........................................................................................................................... 32 3.2. UKUPAN TROŠAK KORIŠTENJA USLUGE AMAZON SQS ................................... 36 3.3. USPOREDBA TROŠKOVA POSLUŽITELJA ORACLE WEBLOGIC I USLUGE AMAZON SQS.......................................................................................................................... 414. IZRADA ALATA ZA MJERENJE RADNIH SVOJSTAVA USLUGE AMAZON SQSI REZULTATI MJERENJA ...................................................................................................... 45 4.1. POSTAVKE PARAMETARA ALATA ZA MJERENJE RADNIH SVOJSTAVA USLUGE AMAZON SQS ......................................................................................................... 46 4.2. REZULTATI MJERENJA ............................................................................................. 495. IZRADA I NAČIN KORIŠTENJA MREŽNOG PROGRAMSKOG SUČELJAUSLUGE AMAZON SQS ZA TANKE KLIJENTE ................................................................ 54 5.1. ARHITEKTURA PROGRAMSKOG SUČELJA TANKOG KLIJENTA ..................... 60
  4. 4. 5.2. IZRADA IMENIKA PORUKA ...................................................................................... 62 5.3. BRISANJE IMENIKA PORUKA .................................................................................. 65 5.4. LISTA SVIH DOSTUPNIH IMENIKA PORUKA ........................................................ 67 5.5. PREGLED POSTAVKI IMENIKA PORUKA .............................................................. 69 5.6. IZMJENA POSTAVKI IMENIKA PORUKA ............................................................... 72 5.7. DAVANJE PRISTUPA VANJSKIM KORISNICIMA .................................................. 75 5.8. ODUZIMANJE PRAVA VANJSKIM KORISNICIMA ................................................ 78 5.9. SLANJE PORUKE ......................................................................................................... 80 5.10. PRIKUPLJANJE PORUKA ........................................................................................... 83 5.11. BRISANJE PORUKE ..................................................................................................... 87 5.12. IZMJENA VIDLJIVOSTI PORUKE ............................................................................. 89 5.13. USPOREDBA UKUPNOG BROJA LINIJA KODA IZMEĐU SLUŽBENIH PROGRAMSKIH ZBIRKI TVRTKE AMAZON I AS3AWSSDK.SWC ZBIRKE ................. 916. ZAKLJUČAK ...................................................................................................................... 937. LITERATURA ..................................................................................................................... 95SAŽETAK .................................................................................................................................. 100ABSTRACT ............................................................................................................................... 101ŽIVOTOPIS ............................................................................................................................... 102BIOGRAPHY ............................................................................................................................ 103
  5. 5. POPIS SLIKASlika 2.1: FIFO spremnik poruka .................................................................................................... 6Slika 2.2: Spremnik poruka sa dva kraja ......................................................................................... 7Slika 2.3: Izmjena poruka pomoću proizvođača – potrošača .......................................................... 8Slika 2.4: Arhitektura standardnog Java programskog sučelja za razmjenu poruka (JMS API) .. 10Slika 2.5: Područje djelovanja „Od točke do točke“ ..................................................................... 11Slika 2.6: Područje djelovanja "Objavi-pretplati" (P1 – poruka; C1,C2,C3 – potvrda primitkaporuke) .......................................................................................................................................... 12Slika 2.7: Pregled arhitekture usluge Amazon SQS ...................................................................... 20Slika 2.8: Slanje poruke u spremnik poruka (akcija SendMessage) ............................................. 21Slika 2.9: Prikupljanje poruka iz spremnika poruka (akcija ReceiveMessage)............................. 22Slika 2.10: Prikupljanje poruka A, B, C; D iz spremnika poruka (akcija ReceiveMessage) ........ 22Slika 2.11: Vremensko ograničenje nevidljivosti poruke (akcija ChangeMessageVisibility) ...... 23Slika 2.12: Brisanje poruke A iz spremnika poruka unutar vremenskog ograničenja nevidljivostiporuke (akcija DeleteMessage) ..................................................................................................... 23Slika 2.13: Niz koji treba biti potpisan .......................................................................................... 26Slika 2.14: Primjer niza koji je potrebno potpisati ........................................................................ 27Slika 2.15: Primjer potpisanog HTTP(s) zahtjeva ........................................................................ 27Slika 2.16: Odobrenje (autorizacija) i provjera valjanosti (autentifikacija) klijenata pomoćuusluge Amazon IAM ..................................................................................................................... 29Slika 2.17: Primjer postavki dozvole usluge Amazon SQS za spremnik poruka „Test“ .............. 30Slika 3.1: Ukupni troškovi posjedovanja poslužitelja WebLogic i WebSphere [41].................... 33Slika 3.2: Usporedba cjenika Oracle WebLogic-IBM WebSphere-Amazon SQS sustava zarazmjenu poruka ............................................................................................................................ 41Slika 3.3: Grafički alat AWSAdminTool 1.0.1 za promjenu postavki usluge Amazon SQS ....... 44Slika 4.1: Primjer međusobno povezanih heterogenih SOA sustava ............................................ 45Slika 4.2: Simulacija proizvođača (izvršena sa parametrom -p) ................................................... 49Slika 4.3: Simulacija potrošača (izvršena sa parametrom -c) ....................................................... 49Slika 4.4: Prikaz prikupljanja poruka u deset mjernih intervala ................................................... 52Slika 4.5: Prikaz slanja poruka u deset mjernih intervala ............................................................. 52Slika 5.1: Grafičko i programsko sučelje za upravljanje uslugom Amazon SQS ......................... 55Slika 5.2: Sigurnost Adobe Flash Playera (2007 / 2008 godina) [51]........................................... 56Slika 5.3: Globalna rasprostranjenost Adobe Flash Player na kućnim računalima [52] ............... 57Slika 5.4: Globalna rasprostranjenost Flash Playera na pametnim telefonima [53] ..................... 58Slika 5.5: Skup modela programskog sučelja Amazon SQS ........................................................ 60Slika 5.6: Primjer ListQueues parametara odgovora .................................................................... 68Slika 5.7: Primjer GetQueueAttributes parametara odgovora ...................................................... 72Slika 5.8: Akcija AddPermission daje ograničeni pristup vanjskim korisnicima (trećoj strani) .. 75Slika 5.9: Primjer GetQueueAttributes parametara odgovora ...................................................... 81Slika 5.10: Primjer ReceiveMessage parametara odgovora .......................................................... 85
  6. 6. POPIS TABLICATablica 2.1: Imenski prostor usluge Amazon SQS ....................................................................... 20Tablica 2.2: Lista obaveznih parametara za Amazon SQS HTTP(s) zahtjeve.............................. 24Tablica 2.3: Tijelo HTTP zahtjeva nadgledano od Wireshark alata za nadgledanje IP prometa .. 28Tablica 2.4: Tijelo HTTP odgovora nadgledano od Wireshark alata za nadgledanje IP prometa 28Tablica 3.1: Usporedba svojstava poslužitelja Oracle WebLogic i usluge Amazon SQS ............ 34Tablica 3.2: Cjenik izlaznog Internet prometa usluge Amazon SQS od 01.07.2011 [43] ............ 37Tablica 4.1: Popis računalnih komponenti korištenih za testiranje radnih svojstava uslugeAmazon SQS ................................................................................................................................. 46Tablica 4.2: Postavke parametara alata za mjerenje radnih svostava usluge Amazon SQS ......... 47Tablica 4.3: Rezultati mjerenja radnih svojstava usluge Amazon SQS ........................................ 50Tablica 5.1: CreateQueue parametri zahtjeva ............................................................................... 62Tablica 5.2: CreateQueue parametri odgovora ............................................................................. 62Tablica 5.3: Primjer CreateQueue zahtjeva i odgovora koristeći sučelje Wireshark za praćenjemrežnog prometa ........................................................................................................................... 64Tablica 5.4: DeleteQueue parametri zahtjeva ............................................................................... 65Tablica 5.5: ListQueues parametri zahtjeva .................................................................................. 67Tablica 5.6: ListQueues parametri odgovora ................................................................................ 67Tablica 5.7: GetQueueAttributes parametri zahtjeva .................................................................... 69Tablica 5.8: GetQueueAttributes parametri odgovora .................................................................. 70Tablica 5.9: SetQueueAttributes parametri zahtjeva..................................................................... 73Tablica 5.10: AddPermission parametri zahtjeva ......................................................................... 75Tablica 5.11: RemovePermission parametri zahtjeva ................................................................... 78Tablica 5.12: SendMessage parametri zahtjeva ............................................................................ 80Tablica 5.13: SendMessage parametri odgovora .......................................................................... 80Tablica 5.14: ReceiveMessage parametri zahtjeva ....................................................................... 83Tablica 5.15: ReceiveMessage parametri odgovora ..................................................................... 84Tablica 5.16: DeleteMessage parametri zahtjeva .......................................................................... 87Tablica 5.17: ChangeMessageVisibility parametri zahtjeva ......................................................... 89Tablica 5.18: Rezultat usporedbe SLOC metrike između programskih sučelja Amazon SDK ias3awsSDK. Usporedba se odnosi na izvorni kod prisutan u „com.amazonaws.services.sqs.*“paketu. Za mjerenje korišten je Apache CLOC 1.53. ................................................................... 91
  7. 7. POPIS IZVORNOG KODA TANKOG KLIJENTAIzvorni kod tankog klijenta 5.1: Primjer korištenja akcije CreateQueue ...................................... 63Izvorni kod tankog klijenta 5.2: Primjer korištenja akcije DeleteQueue ...................................... 66Izvorni kod tankog klijenta 5.3: Primjer korištenja akcije ListQueues ......................................... 68Izvorni kod tankog klijenta 5.4: Primjer korištenja akcije GetQueueAttributes ........................... 71Izvorni kod tankog klijenta 5.5: Primjer korištenja akcije SetQueueAttributes ........................... 74Izvorni kod tankog klijenta 5.6: Primjer korištenja akcije AddPermission .................................. 77Izvorni kod tankog klijenta 5.7: Primjer korištenja akcije RemovePermission ............................ 79Izvorni kod tankog klijenta 5.8: Primjer korištenja akcije SendMessage ..................................... 82Izvorni kod tankog klijenta 5.9: Primjer korištenja akcije ReceiveMessage ................................ 86Izvorni kod tankog klijenta 5.10: Primjer korištenja akcije DeleteMessage................................. 88Izvorni kod tankog klijenta 5.11: Primjer korištenja akcije ChangeMessageVisibility ................ 90
  8. 8. POPIS IZVORNOG JAVA KODAIzvorni Java kod 2.1: Sinkroni način rada primatelja poruka opisan izvornim Java kodom JMSsučelja ............................................................................................................................................ 13Izvorni Java kod 2.2: Asinkroni način rada primatelja poruka opisan izvornim Java kodom JMSsučelja ............................................................................................................................................ 15
  9. 9. PRILOZISvi prilozi su računalni programi koji su pod stalnim promjenama vlasnika licence.Prilog 3.1: Izvorni kod AWSAdminTool 1.0.1 grafičkog alata,https://bitbucket.org/Kresimir/awsadmintool/overviewPrilog 4.1: Izvorni kod Java alata za mjerenje radnih svojstava Amazon SQS usluge,https://bitbucket.org/Kresimir/awsproducerconsumertoolPrilog 5.1: Izvorni kod mrežnog programskog sučelja izrađenog u Actionscript 3.0 jeziku,https://bitbucket.org/Kresimir/as3awssdk/overview
  10. 10. POPIS KRATICAPopis sadrži samo one kratice koje se općenito koriste u računarstvu, dok su specifične kratice,kao dio komercijalnih naziva za različite tehnologije i proizvode objašnjene u tekstu rada. Amazon IAM AWS Identity and Access Management Amazon SQS Amazon Simple Queue Service API Application Programming Interface AWS Amazon Web Services CIO Chief Information Officer ENISA European Network and Information Security Agency EU European Union FIFO First in First Out HA High Availability HMAC Hash-based Message Authentication Code HTML HyperText Markup Language HTTP Hypertext Transfer Protocol HTTPS Hypetext Transfer Protocol Secure IIOP Internet Intert-ORB Protocol ISO International Organization for Standardization IT Information Technology JavaEE Java Enterprise Edition JMS Java Message Service JNDI Java Naming and Directory Interface JSR Java Specification Requests JVM Java Virtual Machine MD5 Message Digest Algorithm MOM Message Oriented Middleware
  11. 11. PaaS Platform as a ServiceQoS Quality of ServiceRAM Random Access MemoryRESTful Representational state transferRIA Rich Inaternet ApplicationRMI Remote Method InvocationSAML Security Assertion Markup LanguageSHA Secure Hash AlgorithmSLOC Source lines of codeSMS Short Message ServiceSOA Service oriented architectureSSO Singe Sign-onTCO Total Cost of OwnershipURL Uniform Resource LocatorUTC Coordinated Universal TimeUTF-8 Unicide Transformation Format
  12. 12. 1. UVODU ovom poglavlju bit će razmotreni čimbenici i motivacija koji su utjecali na nastanak ovogarada te korisnost znanstvenicima koji se bave ovom domenom, poslovnim stručnjacima iorganizacijama (malim i srednjim tvrtkama, javnim institucijama). Sadržaj poglavlja poslužiti ćekao uvod u uslugu oblačnog računarstva (Amazon SQS) – primarnu temu ovog rada – te će seokvirno opisati postavljeni ciljevi istraživanja. Važno je unaprijed naglasiti tri značajke ovogarada: 1. Tema rada je komercijani računalni oblak tvrtke Amazon, a ne privatni niti akademski računalni oblaci izvedeni na sveučilištima (samostalno ili u suradnji s privatnim sektorom). To znači da zaključci izvedeni u ovom radu, posebice oni vezani za ekonomiku i programsko sučelje sustava za razmjenu poruka vrijede prije svega za uslugu Amazon SQS. 2. Uglavnom će se uspoređivati način korištenja, složenost i ekonomičnost uporabe usluge oblačnog računarstva (Amazon SQS) u odnosu na postojeća rješenja unutar kuće (on- premise). 3. Izrađena je klijentska zbirka Amazon SQS u objektno-orijentiranom programskom jeziku Actionscript 3.0 zasnovanom na standardu ECMAScript ECMA-262. Zbirka se može iskoristiti kao univerzalno prenosivo programsko sučelje za više različitih vrsta klijentskih računalnih sustava.1.1. MotivacijaSmatra se da su računalni oblaci i SOA tehnološki komplementarni pojmovi u smislu daračunalni oblaci predstavljaju povoljnu platformu za pokretanje i izvođenje SOA usluga [1].SOA oblačni sustav za razmjenu poruka Amazon SQS [2] je relativno nova komponenta PaaSkoja je prvi puta predstavljena 2006 godine od strane tvrtke Amazon. Još uvijek je u faziinkrementalnog razvoja i poboljšanja. Omogućuje razvojnim inženjerima da povezuju (loosecoupling of services) različite SOA usluge koje mogu međusobno nezavisno rasti bez obzira naveličinu i postavke spremnika poruka. Budući da su istraživanja u ovome polju prilično skromna(a ovdje su opisana u potpoglavlju 1.2) ovim radom se želi dati odgovarajući doprinos na poljupovezivanja tankih klijenata [3] s konceptom računalnih oblaka. 1
  13. 13. Također, u današnje doba širenja SOA usluga računalnih oblaka postavlja se nekolikozanimljivih pitanja vezano za oblačnu uslugu razmjene poruka: 1. Može li uporaba oblačnog sustava za razmjenu poruka smanjiti troškove i vrijeme (Time to Market) izrade sustava sa visokom dostupnošću (high availabily systems)? 2. Kakva su radna svojstava oblačnog sustava za razmjenu poruka po pitanju latencije i količini poruka obrađenih u jedinici vremena? 3. Za sada je praksa da se za svaki računalni sustav (stacionarni ili mobilni) razvija posebni sustav koji funkcionira samo u svom (native) okolišu ili alternativno pomoću hipertekstualnog označnog jezika HTML5 [4]. U današnje doba širenja usluga računalnih oblaka na mobilne računalne sustave (pametni telefoni – „smarthphones“, dlanovnici – „tablets“) postoji potreba za univerzalno prenosivim klijentskim programskim sučeljem koje može pristupati programskom sučelju računalnog oblaka. Postoji li tehnologija koja omogućava izradu univerzalno prenosivog klijentskog programskog sučelja?1.2. Dosadašnja istraživanjaRijetko koje dosadašnje istraživanje je razmatralo uslužno orijentiranu arhitekturu u okviruračunalnih oblaka. Najznačajniji takav rad objavili su de Leusse i suradnici [5]. U tome raduraspravlja se o tehničkim gledištima smještaja (deployment) cjelokupnog rješenja uslužnoorijentirane programske podrške u oblaku. Međutim, autori se ne bave ekonomskom isplativošćutakvog poduhvata niti problematikom hibridnih arhitektura u kojima se neke usluge pokreću izoblaka, a neke na klasičan način, sa privatnih poslužitelja poslovnog sustava ili tankih klijenata.Općeniti pristup objedinjavanju SOA načela sa suvremenim informacijskim tehnologijamaistraživali su David S. Linthicum [6], K. Kontogiannis i suradnici [7] te Vitharana [8]. Noveparadigme razvoja i korištenja programske podrške kao usluge istraživali su A. Dan, R. Johnsoni A. Arsanjani u radu [9], gdje autori spominju kako su takva rješenja iznimno primjenjiva uokruženju računalnih oblaka. Općenitu problematiku prijelaza iz postojećih, naslijeđenih(legacy) sustava na SOA sustav razmatrali su L. OBrien, P. Breber i J. Gray [10], izloživšiglavnu ideju da je prijelaz na uslužno orijentiranu arhitekturu evolucijski proces koji neobezvređuje postojeća rješenja, nego ih potvrđuje i dopunjuje. Pregled nedostataka, pogodnosti iekonomiku računalnih oblaka izraživali su M. Armbrust, A. Fox, R. Griffith i suradnici [11]. Usvome istraživanju naveli su deset prepreka koje je potrebno imati u vidu za vrijeme izrade ipovezivanja oblačnih SOA usluga. Pitanje vezana uz sigurnost postavlja europska agencija za 2
  14. 14. informacijsku sigurnost ENISA [12], [13]; T. Mather, S. Kumaraswamy i S. Latif [14]; J. W.Rittinghouse i James F. Ransome [15]. Izrada i primjena univerzalnog prenosivog klijentskogprogramskog sučelja za razmjenu poruka do sada nije istraživana osim u ovome radu.SOA usluga za razmjenu poruka u oblaku nije dovoljno istražena, ali generalno ima za ciljukloniti potrebu da se razvojni inženjeri bave osmišljavanjem i izgradnjom tradicionalnih sustavaza razmjenu poruka:  Olakšati i ubrzati povezivanje heterogenih sustava uz što manje troškove i prepravke postojećih rješenja.  Ukloniti troškove održavanja (troškove održavanja sustava za razmjenu poruka istraživali su M. R. Selim, Y. Goto, and J. Cheng [16]) kupcima oblačnih resursa.  Omogućiti promjene postavki sustava pomoću grafičkog sučelja a da za to nije potrebno plaćati obuku razvojnim inženjerima i trošiti vrijeme na postavljanje i testiranje postavki.Na takav novi način promjene paradigme izbjegle bi se tradicionalne prepreke povezane saradom unutar vlastite infrastrukture sustava poruka [17].1.3. Ciljevi radaRad ima četiri glavna cilja: 1. Proučiti način korištenja oblačnog SOA sustava za razmjenu poruka (Amazon SQS) u svrhu povezivanja heterogenih SOA usluga radi povećanja raspoloživosti i sposobnosti rasta cjelokupnog sustava. 2. Napraviti izračun troškova sustava za razmjenu poruka Amazon SQS i usporediti ga sa tradicionalnim JMS sustavom; matematički opisati cjenik usluge Amazon SQS koji se može koristiti za provjeru trenutnog stanja potrošnje sustava poruka; izraditi grafički alat za provjeru i izmjenu postavki usluge Amazon SQS da se vidi koliko sati mjesečno je potrebno prosječnom korisniku za osnovnu uporabu. Na temelju mjesečnog rada može se izračunati mjesečna cijena rada jednog administratora. 3. Izraditi testni alat za mjerenje radnih svojstava usluge Amazon SQS. Svrha testa je da odgovori na pitanje mogućnosti uporabe na tisuće tankih Internet klijenata (npr. mobilni uređaji, dlanovnici) sa oblačnim sustavom za razmjenu poruka preko javne mreže Internet. 3
  15. 15. 4. Izraditi klijentsku zbirku as3awsSDK.swc u Actionscript 3.0 objektno-orijentiranom programskom jeziku zasnovanom na standardu ECMAScript ECMA-262. Svrha zbirke je da se iskoristi kao programsko sučelje za više različitih klijentskih računalnih sustava različitih operativnih sustava (Windows, Mac OS, Linux, Windows, Android OS, Apple iOS i BlackBerry OS).Smatra se da će od ostvarenja prvoga cilja posebnu korist imati arhitekti programske podrške irazvojni inženjeri jer će dobiti smjernice za upravljanje oblačnim SOA sustavom za razmjenuporuka.Ostvarenje drugoga i trećeg cilja od posebnog je interesa voditeljima informatike stoga što će,koristeći spomenute rezultate testa, moći donositi potkrijepljene odluke o angažmanu računalnihoblaka i načinu korištenja svih dostupnih resursa, privatnih ili oblačnih, za izvođenje usluga usloženom informacijskom sustavu, posebice onog izloženog vremenski promjenljivimzahtjevima za računalnom snagom.Ostvarenje četvrtog cilja je od posebnog značaja računalnim programerima jer im izrađenaklijentska zbirka Amazon SQS (as3awsSDK.swc, Prilog 5.1) kao alat omogućuje komunikacijusa oblačnim sustavom za razmjenu poruka na jednostavan i univerzalno prenosiv način. To značida je računalni kod Actionscript 3.0 dovoljno napisati jednom, prevesti ga pomoću Adobe FlexSDK prevodioca i pokrenuti ga na više operativnih sustava (Write once, run anywhere).Ovim radom će se razjasniti ekonomski troškovni održavanja i tehnička svojstva između nove itradicionalne paradigme povezivanja heterogenih SOA usluga.U drugom poglavlju napravljen je pregled tradicionalnog sustava za razmjenu poruka JMS iusluge Amazon SQS. U trećem poglavlju napravljena je usporedba ukupnog troška održavanjatradicionalnog sustava za razmjenu poruka sa troškovima korištenja usluge Amazon SQS. Učetvrtom poglavlju predstavljen je izrađeni alat za mjerenje radnih svojstava (ukupan broj HTTPzahtjeva/odgovora u jedinici vremena) usluge Amazon SQS. U petom poglavlju predstavljena jeizrađena klijentska zbirka Amazon SQS (as3awsSDK.swc, Prilog 5.1) koju krasi jednostavnostuporabe i univerzalna prenosivost na više računalnih sustava sa različitim operativnim sustava. 4
  16. 16. 1.4. Plan istraživanjaPlan istraživanja obuhvaća četiri radnje provedene u razdoblju od jedne godine:  Temeljen na spoznajama koje su proizašle iz eksperimentalnog istraživanja provedenog mjerenjem radnih svojstava usluge Amazon SQS pomoću posebnog alata izrađenog u Java programskog jeziku.  Također biti će predstavljena posebno izrađena klijentska zbirka Amazon SQS (as3awsSDK.swc, Prilog 5.1) koja omogućuje komunikaciju sa oblačnim sustavom za razmjenu poruka. Svaka akcija koja je podržana od klijentske zbirke biti će prikazana uz primjer tako da čitaoc ovoga rada dobije osjećaj koliko zapravo malo posla ima pri uspostavi komunikacije između tankog klijenta i usluge Amazon SQS.  Višemjesečnom usporedbom tradicionalnog komercijalnog proizvoda za razmjenu poruka sa uslugom Amazon SQS izrađen je jednostavan tablični prikaz razlika između standardnog sustava razmjena poruka i oblačnog sustava za razmjenu poruka. Tablični prikaz služi kao pokazatelj usporedbe koji može pomoći razvojnim inženjerima da na temelju tehničkih mogućnosti jednog i drugog sustava mogu donjeti odluku koji od sustava koristiti.  Ispitivanje i izračun strukture cijene usluge Amazon SQS radi objektivne procjene troškova uporabe korištenja sustava za razmjenu poruka u oblaku u odnosu na vlastite računalne, podatkovne resurse i vrijeme uloženo u promjene postavki.Cilj istraživanja je potvrditi da je korištenje oblačnog sustava za razmjenu poruka (AmazonSQS) ekonomski isplativije u odnosu na tradicionalni sustav u vlastitom vlasništvu i tehničkijednostavnije koristiti pri povezivanju heterogenih SOA usluga. 5
  17. 17. 2. PREGLED SUSTAVA ZA RAZMJENU PORUKA2.1. Pojam spremnik porukaSpremnikom poruka se smatra skup poruka koje čekaju u redu sve dok ih neki vanjski izvor nepokupi radi obrade podataka. Razvojni inženjeri su kroz vrijeme proširili osnovnu idejuspremnika poruka tako što su nadodali nova svojstva u svrhu rješavanja problema u izgradnjiprogramskog sustava. U idućim potpoglavljima raspravlja se o uporabi spremnika poruka uračunalnoj znanosti.2.2. Spremnik poruka kao struktura podatakaU računalnoj znanosti spremnikom poruka se smatra FIFO struktura koja čuva slijed poruka zakomunikacijske kanale. Poruke se nadodaju na kraj spremnika, a uzimaju se sa početkaspremnika. Spremnik poruka prikazan je na Slika 2.1. Slika 2.1: FIFO spremnik porukaU FIFO načinu rada [18] prva poruka koja se nadoda u spremnik poruka biti će prva i uklonjena.To je jednako zahtjevu da kada je poruka nadodana, sve poruke koje su bile nadodane prijemoraju se ukloniti prije nego što se nadoda nova poruka. Spremnik poruka je pravi primjerlinearne strukture podataka. U stvarnom životu može se usporediti sa plaćanjem računa našalteru. Prvi platiša koji uđe u red će biti prvi poslužen, dok idući platiša ide na kraj reda i čekada sve platiše ispred njega budu poslužene. Kod računalnih programa najbolje primjer se možepredočiti tipkanjem po tipkovnici gdje se svaki znak odabran preko tipki pohranjuje premaslijedu tipkanja u memoriju računala. Računalna znanost je s vremenom zbog zahtjevnijihpotreba računalnih programa proširila tipove spremnika poruka koji imaju poboljšan način rada: a) Poboljšani način rada jamči da se u jednom vremenskom intervalu može nadodati- ukloniti samo jedna poruka iz spremnika bez obzira na broj potrošača ili proizvođača poruka kada više proizvođača-potrošača (producer-consumer) pokuša istovremeno 6
  18. 18. pristupiti spremniku poruka. Znači, ne smije se dogoditi da neka računalna komponenta nadoda dvije poruke, a odmah nakon nje druga komponenta ukloni jednu. b) Spremnik sa dva kraja (deque) – omogućava nadodavanje i uklanjanje poruka sa obje strane spremnika. Slika 2.2: Spremnik poruka sa dva kraja c) Spremnik sa rasporedom prioriteta – poruka s višim prioritetom će biti prije pročitana nego poruka sa nižim prioritetom. d) Spremnik sa privremeno nevidljivim porukama – sprema poruke koje su nevidljive za potrošače spremnika određeni vremenski interval.2.3. Spremnik poruka kao repozitorijSpremnik poruka kao struktura podataka se najčešće koristi kao unutarnji pomoćni sustav zasamostalne programske komponente. Mrežni programi i mrežne usluge zahtjevaju drugačijipristup jer se sastoje od više komponenti koje obitavaju fizički na više različitih sustava iposlužuju na tisuće korisnika istovremeno. Mehanizmi koje posjeduje spremnik poruka moguposlužiti pri rješavanju problema sa kojima se mrežni programi susreću: a) Program ponekad nije u stanju obraditi sve zahtjeve koje prima u isto vrijeme. Jedno od rješenja bi bilo da se prvo poruke stave u spremnik poruka te nakon toga da se omogući njihova obrada. b) Programi ponekad moraju izvršiti zadatke u određeno vrijeme. Za to vrijeme zadaci se pohranjuju u spremnik za stalno i čekaju na izvršenje. Primjer takve uporabe može biti npr. slanje podsjetnika korisniku o nekoj pretplati putem SMS poruke u određeno doba dana. c) Najčešći primjer iz prakse koristi pristup proizvođač-potrošač. Radi na takav način da više proizvođača stavlja poruke u spremnik dok potrošači prikupljaju poruke. Pristup 7
  19. 19. proizvođač-potrošač omogućava da proizvođači i potrošači izvršavaju svoje zadatke neovisno jedni o drugome. Slika 2.3: Izmjena poruka pomoću proizvođača – potrošačaSpremnik poruka prikazan na Slika 2.3 može se smatrati kao privremeni repozitorij poruka koječekaju da ih netko pokupi. Privremeni repozitorij se koristi kao nezavisna programskakomponenta koju može koristiti više proizvođača i potrošača poruka istovremeno bez obzira gdjese fizički repozitorij nalazi. Repozitorij se može nalaziti na računalu na kojemu se isto takonalaze proizvođači i potrošači poruka ili na nekom udaljenom računalu. Može se reći daspremnik poruka točka razdvajanja između proizvođača i potrošača poruka. Spremnik porukamože biti neizdržljiv (poruke se čuvaju u memoriji) ili izdržljiv (poruke se čuvaju u bazipodataka ili direktno na tvrdom disku bez posredovanja baze podataka). a) Neizdržljiv način rada – poruke su spremljene na poslužitelju sve dok ima dovoljno računalnih resursa (dovoljna količina RAM memorije) da zadrži poruke. Spremnik poruka se može vrlo brzo napuniti ako potrošač nedovoljno brzo kupi poruke iz spremnika, odnosno da proizvođač poruka brže puni spremnik porukama nego što ih potrošač prikuplja i obrađuje. U tom slučaju može doći do pada sustava zbog nedostatka memorije, a sve poruke koje su se nalazile u spremniku će biti zauvijek izgubljene. b) Izdržljiv način rada – zahtjeva da se poruke iz spremnika pohranjuju direktno na tvrdi disk ili u bazu podataka. U slučaju pada sustava ili redovitog održavanja poruke unutar spremnika će uvijek biti očuvane. Ovakav način rada je više pouzdan i omogućava da se pohrani više poruka u spremnik nego kod neizdržljivog načina rada. Nedostatak ovog načina rada je da zahtjeva više računalne snage te vrijeme izvođena izmjene poruka između potrošača i proizvođača je veće.Spremnik poruka se može nalaziti na istom računalu gdje se nalaze proizvođači i potrošačiporuka. Ako se sustav na računalu sruši tada računalne komponente koje se služe uslugamaspremnika neće biti dostupne ili će imati otežan način obavljanja zadataka. Zato je potrebno 8
  20. 20. osmisliti i izraditi sustav sa visokom raspoloživošću koji može istovremeno poslužiti višepotrošača i proizvođača poruka pod bilo kojim okolnostima.2.4. Arhitektura standardnog Java programskog sučelja za razmjenu porukaPrije više od deset godina uz pomoć Java platforme izgrađena je sabirnica za razmjenu porukaMOM između dva ili više programskih komponenti. Za razmjenu poruka između programskihkomponenti koristi se programsko sučelje JMS API 1.1 koje je registrirano pod organizacijomJava Community Process JSR 914 [19]. Smatra se standardom za razmjenu poruka izmeđuprogramskih JavaEE komponenti koje se nalaze na udaljenim računalnim sustavima u svrhupružanja pouzdane, asinkrone i međusobno nezavisne razmjene poruka.Standardna JMS komponenta je građena od nekoliko osnovnih dijelova: 1. Davatelj JMS usluge – predstavlja izradu JMS sučelja i omogućava promjenu postavki sustava za razmjenu poruka. Najpoznatije izrade takvog sučelja su: JBoss Messaging [20], HornetQ [21], Apache ActiveMQ [22], IBM WebSphereMQ [23], Oracle WebLogic [24], Tibco EMS [25], RabbitMQ [26]. 2. JMS klijenti – proizvođači i potrošači poruka čiji je računalni kod napisan u Java programskom jeziku. 3. Poruke – predstavljaju objekte koji prenose informacije između klijenata. 4. Postavke JMS objekata – postavke odredišta JMS poruka koje će koristiti potrošači i proizvođači poruka. 5. Izvorni klijenti – programi koji koriste izvorno (native) klijentsko programsko sučelje umjesto JMS API-ja.Slika 2.4 prikazuje međudjelovanja između pojedinih dijelova JMS API arhitekture. Alat zapromjenu postavki sustava poruka omogućava korisnicima da povezuju odredišta i veze u JNDI[27] okoliš. JMS klijent tada može pogledati objekt s promjenjivim postavkama u JNDI okolišu ipokušati uspostaviti logičku vezu s njime preko davatelja JMS usluge. 9
  21. 21. Slika 2.4: Arhitektura standardnog Java programskog sučelja za razmjenu poruka (JMS API)2.5. Područje djelovanja sustava porukaPostoje dva pristupa koji se primjenjuju kod razmjene poruka između programskih komponentiproizvođač-potrošač. Prvi pristup se zove „Od točke do točke“, a drugi „Objavi-pretplati“. JMSpropisuje odvojeno područje djelovanja sustava poruka za svaki od navedenih pristupa i pravilaza svako područje djelovanja (opisano u potpoglavljima 2.5.1 i 2.5.2). Dužnost razvojnoginženjera (ili razvojne programske zajednice) je da tokom razvoja „Davatelja usluge JMS“razviju oba pristupa djelovanja i da omoguće klijentima po potrebi združivanje pristupa.2.5.1. Područje djelovanja “Od točke do točke”Slika 2.5 prikazuje način na koji područje djelovanja “Od točke do točke” djeluje. Adresaspremnika poruka se postavlja pomoću „Alata za promjenu postavki“ koji je sastavni dio„Davatelja usluge JMS“. Adresa spremnika poruka je poznata proizvođaču (Klijent 1) ipotrošaču (Klijent 2). Proizvođač poruka šalje poruke u spremnik, poruke u spremniku čekajusve dok ih potrošač ne pokupi ili dok ne istekne rok trajanja poruke u spremniku. Nakon štopotrošač pokupi poruku šalje potvrdu „Davatelju usluge JMS“ da je poruka uspješno primljena. 10
  22. 22. Slika 2.5: Područje djelovanja „Od točke do točke“Svojstva područja djelovanja „Od točke do točke“: a) Svaka poruka ima samo jednog potrošača. b) Proizvođač i potrošač poruka međusobno su vremenski nezavisni. c) Potrošač poruka uvijek može pokušati dohvaćati poruke bez obira da li proizvođač poruka proizvodi poruke ili ne. d) Potrošač uvijek šalje potvrdu „Davatelju usluge JMS“ da je poruka uspješno primljena, ali zato „Davatelj usluge JMS“ ne zna da li je poruka uspješno obrađena.2.5.2. Područje djelovanja „Objavi-pretplati“Područje djelovanja “Objavi-pretplati” radi prema načinu pretplate korisnika (potrošača) tako dase pretplatnici pretplate na određenu temu (topic). Kada proizvođač poruka pošalje poruku natemu, tada „Davatelj usluge JMS“ šalje tu istu poruku (P1) prema svim pretplatnicima.Najjednostavniji primjer usluge koja radi na takav način je elektronička pošta. U zahtjevu zadostavu elektroničke pošte moguće je postaviti više odredišta (imena osoba kojima se želi poslatielektronička pošta). Slika 2.6 prikazuje način na koji područje djelovanja „Objavi-pretplati”djeluje. Može se primjetiti da bez obzira na promjenjen broj potrošača (Klijent 1, Klijent 2, ...Klijent n) „Davatelj usluge JMS“ će uvijek slati poruke svim potrošačima transparentno prekoteme. To znači da proizvođač ne mora znati (niti biti obavješten) o promjeni liste pretplatnika. 11
  23. 23. Slika 2.6: Područje djelovanja "Objavi-pretplati" (P1 – poruka; C1,C2,C3 – potvrda primitka poruke)Svojstva područja djelovanja “Objavi-pretplati”: a) Tema je središnje mjesto područja djelovanja „Objavi-pretplati“. b) Više proizvođača poruku može staviti na temu. c) Dovoljno je jednom poslati poruku na temu, a „Davatelj usluge JMS“ će poslati tu istu poruku svim pretplatnicima unutar teme („one-to-many“ način slanja poruka). d) Proizvođač i potrošač poruka međusobno su vremenski zavisni (potrošač koji se pretplatio na temu može pokupiti poruke nakon što ih je proizvođač poslao. Potrošač mora biti aktivan da bi uspješno nastavio primati poruke).Vremenska zavisnost može predstavljati problem jer se može dogoditi da neki potrošači nedobiju poruke zbog kvara ili redovitog održavanja sustava. U tome slučaju može se reći daproizvođači poruka šalju poruke u prazno gdje se na takav način gube poruke. Da bi se riješio tajproblem uveden je pojam „Trajna lista pretplatnika“ za koje će tema (topic) trajno (iliprivremeno određeno vremensko razdoblje) čuvati poruke u slučaju da pretplatnici (klijenti) nisudostupni. Kada se pretplatnici (klijenti) ponovo osposobe za primanje poruka, „Davatelj uslugeJMS“ će im početi ponovo slati poruke, ali i one poruke koje su se skupile u razdoblju dok supretplatnici (klijenti) bili nedostupni.2.5.3. Prikupljanje porukaPrikupljanje (potrošnja) poruka je uobičajen postupak za računalne programske proizvode koji sebave dostavom poruka između računalnih sustava. JMS poslužitelj propisuje dva načinaprikupljanja poruka: asinkroni i sinkroni. 12
  24. 24. a) Sinkroni način – sinkronim načinom prikupljanja poruka se smatra kada potrošač sam izričito zatraži poruku od „Davatelja usluge JMS“. Za to vrijeme blokiran je poziv prema „Davatelju usluge JMS“ sve dok potrošač ne dobije odgovor ili ne istekne vrijeme čekanja. Izvorni kod sinkronog načina prikupljanja poruka prikazan je na Izvorni Java kod 2.1.public class Receiver{ public static void main(String[] args) throws Exception { // sadržaj Java okoliša InitialContext ctx = new InitialContext(); // povezivanje vrijednosti Queue queue = (Queue) ctx.lookup("queue/queue0"); // izrada objekta preko kojega će se veza sa "Davateljem usluge JMS" ostvariti QueueConnectionFactory connFactory = (QueueConnectionFactory) ctx. lookup("queue/connectionFactory"); // ostvarivanje veze sa "Davateljem usluge JMS" QueueConnection queueConn = connFactory.createQueueConnection(); // stvaranje sesije QueueSession queueSession = queueConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); // stvaranje potrošača QueueReceiver queueReceiver = queueSession.createReceiver(queue); // pokretanje veze prema spremniku queueConn.start(); // izričito traženje poruke iz spremnika TextMessage message = (TextMessage) queueReceiver.receive(); // ispis poruke System.out.println("received: " + message.getText()); // zatvaranje veze prema spremniku queueConn.close(); }} Izvorni Java kod 2.1: Sinkroni način rada primatelja poruka opisan izvornim Java kodom JMS sučelja 13
  25. 25. b) Asinkroni način – „Davatelj usluge JMS“ šalje poruku registriranom osluškivaču poruka. Primitkom poruke pokreće se metoda „onMessage“ iz koje se može pročitati sadržaj poruke. Izvorni kod asinkronog načina prikupljanja poruka prikazan je na Izvorni Java kod 2.2. 14
  26. 26. public class AsyncReceiver implements MessageListener, ExceptionListener{ public static void main(String[] args) throws Exception { // sadržaj Java okoliša InitialContext ctx = new InitialContext(); // povezivanje vrijednosti Queue queue = (Queue) ctx.lookup("queue/queue0"); // izrada objekta preko kojega će se veza sa "Davateljem usluge JMS" ostvariti QueueConnectionFactory connFactory = (QueueConnectionFactory) ctx. lookup("queue/connectionFactory"); // ostvarivanje veze sa "Davateljem usluge JMS" QueueConnection queueConn = connFactory.createQueueConnection(); // stvaranje sesije QueueSession queueSession = queueConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); // stvaranje potrošača QueueReceiver queueReceiver = queueSession.createReceiver(queue); // postavljanje prislušne komponente na potrošača poruka AsyncReceiver asyncReceiver = new AsyncReceiver(); queueReceiver.setMessageListener(asyncReceiver); // postavljanje prislušne komponente za hvatanje grešaka queueConn.setExceptionListener(asyncReceiver); // pokretanje veze prema spremniku poruka queueConn.start(); // čekanje primitka poruke... System.out.print("waiting for messages"); for (int i = 0; i < 10; i++) { Thread.sleep(1000); System.out.print("."); } System.out.println(); // zatvaranje veze prema spremniku poruka queueConn.close(); } /** Ova metoda je pozvana asinkrono od strane "Davatelja JMS usluge" svaki puta kada jeporuka poslana u Spremnik. @param message objekt JMS poruke. */ public void onMessage(Message message) { TextMessage msg = (TextMessage) message; try { System.out.println("received: " + msg.getText()); } catch (JMSException ex) { ex.printStackTrace(); } }Izvorni Java kod 2.2: Asinkroni način rada primatelja poruka opisan izvornim Java kodom JMS sučelja 15
  27. 27. 2.6. JBossMQ – primjer davatelja standardne usluge JMSU ovom podpoglavlju ukratko će biti predstavljen ne-komercijalni (pripadnik otvorenog koda)„Davatelj usluge JMS“ koji se naziva JBossMQ. JBossMQ je programska komponenta unutarJavaEE poslužitelja JBoss koji ima mogućnost pružanja usluge razmjene poruka između višeprogramskih komponenti. JBossMQ je temeljen na programskom sučelju JMS API 1.1 ipodržava oba područja djelovanja: „Od točke do točke“ i „Objavi-pretplati“.Svojstva JBossMQ kao davatelja usluge JMS: a) „Od točke do točke“ – proizvođač poruka dostavlja poruke u spremnik, a jedan potrošač kupi poruke. b) „Objavi-pretplati“ – ovaj model se još naziva i „Jedan prema više“. Kada pošalje poruku na Temu, tada „Davatelj usluge JMS“ pošalje tu istu poruku svim pretplatnicima teme. Pretplatnici koji nisu aktivni neće primiti poruku. c) „Trajne poruke“ – može se reći da je riječ o miješanom svojstvu „Od točke do točke“ i „Objavi-pretplati“. Ako pretplatnik nije bio aktivan za vrijeme kada su se poruke slale prema njemu tada ih može pročitati kasnije kada se uključi jer su se poruke spremale za vrijeme njegove neaktivnosti. d) Spremnici i teme u grozd okružju – nalaze se na svim računalima unutar grozda. JMS klijent koristi visokodostupni HA JNDI koji ima informacije o svim adresama spremnika i tema na računalima. Pri tome važno je napomenuti da algoritmi ravnoteže (weighted round-robin, round-robin-affinity, weight-based-affinity, random-affinity) [28] održavaju pravilan raspored veza između spremnika i tema tako da ne dođe do zagušenja prometa poruka.Svi „Davatelji usluge JMS“ (komercijalni i nekomercijalni) zahtjevaju predefiniranje postavkitako da programske komponente mogu ispravno komunicirati sa „Davateljem JMS usluge“. Touključuje instalaciju programskih komponenti, postavljanje sigurnosnih ograničenja, izrada JMSsučelja, postavke spremnika i teme u grozd okružju. Rad sa raspodjeljenim spremnicima itemama je danas među najvećim problema u raspodjeljenom računarstvu. Pravi izazov je izraditii koristiti takav sustav, ali u pojednostavljenom obliku tako da osobe koje su dužne mijenjatipostavke takvih sustava čine to jednostavnije, brže i bez posebne tehničke obuke. 16
  28. 28. 2.7. Spremnici poruka sa visokom dostupnošćuImati nedostupan spremnik poruka zbog pada sustava je najveći mogući problem s kojim sesusreću mrežne usluge. Spremnik poruka sa visokom dostupnošću je sustav razmjene poruka kojise nudi kao jedino logično rješenje za sigurnu i pouzdanu razmjenu poruka između programskihkomponenti. Problem koji se javlja je: kako postaviti postavke takvog sustava? - jer postavkesvih „Davatelja usluga JMS“ nisu jednake. Razlikuju se po broju parametara, vrsti parametara,grafičkom sučelju alata za promjenu postavki. Amazon AWS je zato ponudio vrlo interesantnorješenje kojim sakriva složenost sustava za razmjenu poruka, a da pri tome nudi visokudostupnost usluge, sigurnost, podesivost, jednostavno programsko i grafičko sučelje. Takavsustav nije potrebno održavati sa gledišta kupca – kupnja računalnih komponenti za nadogradnjupostojećeg sustava, potrošnju električne energije, sustav hlađenja, plaćanje licenci, certifikati,plaćanje obuke vlastitog osoblja kako se služiti grafičkim sučeljem. Iduće poglavlje raspravlja ouslugi Amazon SQS da bi se bolje razumio način na koji djeluje.2.8. Usluga Amazon SQS za razmjenu porukaTvrtka Amazon je izradila SOA oblačnu uslugu Amazon SQS za razmjenu poruka sa visokomdostupnosti, sigurnosti, pouzdanosti i podesivosti. Svrha usluge je da omogući jednostavnoasinkrono povezivanje ostalih geografski udaljenih heterogenih SOA usluga i uklanjanjenjihovih međuzavisnosti. Geografski udaljene heterogene SOA usluge ne moraju čak biti uvlasništvu istog kupca. Osnovni cilj je da bilo koja SOA usluga treće strane može pohraniti bilokoji tip podatka u sigurni i uvijek dostupni spremnik poruka uz pomoć posebnog programskogsučelja Amazon SQS API [29].Ovakav način obavljanja razmjene poruka između programskih komponenti rješava problemvremenske zavisnosti između proizvođača i potrošača poruka. Postaje nebitno kojom brzinomproizvođač puni spremnik poruka, ili kojom brzinom i kada potrošač prikuplja poruke.Usluga Amazon SQS se obvezuje dostaviti poruku barem jednom u sklopu svoje kvaliteteusluge, podržava više istovremenih proizvođača i potrošača poruka koji unose i čitaju poruke izspremnika poruka. Građena je na takav način da uvijek bude dostupna za dostavljanje poruka, alizato ne jamči FIFO načina dostavljanja poruke. U slučaju da je potrebno pratiti redoslijed porukatada je na razvojnom inženjeru da unutar svake poruke stavi informaciju o rednom broju poruke.Kada se poruka primi potrebno je samo provjeriti informaciju o rednom broju. 17
  29. 29. Usluga Amazon SQS omogućava da bilo koje računalo, pametni telefon, dlanovnik, spojeno najavnu mrežu Internet uz pravilnu provjeru valjanosti (authentication) i odobrenja (authorization)korisnika može nadodavati ili čitati poruke bez posebno instaliranog programa treće strane ilipostavki vatrozida.Velika prednost je što programske komponente koje koriste uslugu Amazon SQS radeneovisno jedna o drugoj, ne moraju biti na istoj mreži, ne moraju biti razvijene istimprogramskim jezikom te raditi u isto vrijeme.2.8.1. Svojstva usluge Amazon SQSUsluga Amazon SQS sadrži nekoliko korisnih svojstava koja olakšavaju rad razvojniminženjerima: a) Višestruka zalihost omogućava visoku dostupnost spremnika za primanje i slanje poruka. b) Obavezuje se dostaviti poruku barem jednom u sastavu svoje kvalitete usluge (QoS), istovremeno podržavati više proizvođača i potrošača poruka koji unose i čitaju poruke iz spremnika poruka. c) Građena je na takav način da uvijek bude dostupna za dostavljanje poruka, ali zato ne jamči FIFO načina dostavljanja poruke. U slučaju da je potrebno pratiti redoslijed poruka tada je na razvojnom inženjeru da unutar svake poruke stavi informaciju o rednom broju poruke. Kada se poruka primi na strani potrošača potrebno je samo provjeriti informaciju o rednom broju. d) Moguće je da više proizvođača i potrošača poruka istovremeno koriste isti spremnik poruka. e) Zaključavanje poruka unutar spremnika – poruka će biti zaključana (nevidljiva) određeno vrijeme od strane spremnika kada potrošač (klijent) pročita poruku. Npr. Kada Potrošač 1 pročita poruku P1 tada je ta poruka nevidljiva Potrošaču 2, Potrošaču 3, Potrošaču (n) određeno vremensko razdoblje. To je napravljeno da se spriječi višestruko čitanje poruke od strane više potrošača u istom vremenskom rezdoblju. f) Svakom spremniku poruka mogu se vrlo jednostavno promijeniti postavke, ali i provjeriti trenutne postavke. Npr. spremniku poruka se mogu postaviti postavke na takav način da uspori očitavanje poruka potrošačima tako da se poveća vrijeme nevidljivosti poruka. g) Najveća dopuštena veličina poruke je 64 kB. Naravno, to se može i povećati jer sadržaj poruke se može sažimati. Najjednostavnije i sukladno sa drugim programskim jezicima je 18
  30. 30. koristiti deflate/inflate postupak za sažimanje podataka koji se navodi u RFC 1951 [30]. Podržan je u Javi, C#, Actionscriptu 3.0 i ostalim programskim jezicima. h) Broj spremnika i količina poruka unutar spremnika je NEOGRANIČENA. i) Najdulje vrijeme života poruke unutar spremnika je 14 dana. Ako za to vrijeme potrošač ne pokupi poruku onda će poruka biti obrisana od strane usluge Amazon SQS. j) U slučaju da se spremnik poruka ne koristi (prikupljanje poruka, slanje poruka, brisanje poruka, dodavanje prava, oduzimanje prava, provjera stanja) dulje od 30 dana usluga Amazon SQS će ga zauvijek obrisati. k) Uslugi Amazon SQS moguće je pristupiti korištenjem programskog sučelje SOAP ili obični HTTP(s) zahtjev. U slučaju korištenja javne mreže Internet najpoželjnije je koristiti HTTPS koji koristi SSL/TLS protokol koji omogućava zaštićenu komunikaciju između klijenta i poslužitelja. Takav način komunikacije primjenjuje i bankarski sektor pri novčanim Internet transakcijama. l) Spremnici poruka mogu dijeliti svoje poruke između više različitih potrošača koji pripadaju različitim korisnicima AWS računa (npr. klijenti koji pripadaju različitim tvrtkama koji se spajaju na spremnik poruka). Da ne bi došlo do nedozvoljenih radnji mogu se ograničiti pristupna prava tako da se dodatno provjerava Internet adresa potrošača, zaglavlje HTTP(s) zahtjeva UserAgent i vrijeme pristupa uslugi.2.8.2. Osnovni pregled arhitekture usluge Amazon SQSUsluga Amazon SQS se sastoji od tri glavne komponente (Slika 2.7): a) Komponente udaljenih sustava – sustavi međusobno koriste uslugu Amazon SQS za primanje i slanje poruka. b) Spremnici poruka – svaki spremnik je kopiran na više poslužitelja radi pružanja veće dostupnosti poruka klijentima. c) Poruke – poruke se kopiraju više puta za svaku instancu spremnika. 19
  31. 31. Slika 2.7: Pregled arhitekture usluge Amazon SQS2.8.3. Kako radi usluga Amazon SQS ?Korisnici usluge Amazon SQS moraju izraditi Amazon AWS račun za koji im je potrebnavaljana kreditna kartica (American Express, Visa, Diners). Svaki Amazon AWS račun jeprepoznat prema jedinstvenom broju od dvanaest znamenki koji se pridodjeli korisniku računa zavrijeme izrade računa. Nakon završene prijave korisnika usluga Amazon SQS je potpunodostupna. Spremnik poruka se izrađuje pokretanjem SQS akcije CreateQueue kojoj mora bitipredano jedinstveno ime spremnika. Nakon uspješne izrade spremnika, usluga Amazon SQSizrađuje URL imenski prostor. Primjer oblika jednoga takvog imenskog prostora može sepredočiti ovako: http://<adresa usluge Amazon SQS>/<jedinstveni broj računa>/<imespremnika>. Error! Reference source not found.Tablica 2.1 prikazuje imenski prostor uslugeAmazon SQS u ovisnosti o geografskom položaju računalnog centra. Korisnik time dobivamogućnost da sam odluči u kojem računalnom centru želi imati spremnik poruka. Najlogičnije jeodabrati onaj računalni centar koji je najbliži klijentu u svrhu smanjenja vremena kašnjenja(latency issue) izmjene poruka između proizvođača i potrošača. Tablica 2.1: Imenski prostor usluge Amazon SQS Odredišta ovisno o Jedinstveni broj Imenski prostor geografskom položaju računa The US East (Northern Virginia) http://sqs.us-east- 012345678912 (http://sqs.us-east- 1.amazonaws.com/012345678912/Test 1.amazonaws.com) The US West (Northern California) http://sqs.us-west- 012345678912 (http://sqs.us-west- 1.amazonaws.com/012345678912/Test 1.amazonaws.com) US West (Oregon) http://sqs.us-west-2.amazonaws.com 012345678912 (http://sqs.us-west- /012345678912/Test 20
  32. 32. 2.amazonaws.com) The EU(Ireland) http://sqs.eu-west- (http://sqs.eu-west- 012345678912 1.amazonaws.com/012345678912/Test 1.amazonaws.com) The Asia Pacific (Singapore) http://sqs.ap-southeast- (http://sqs.ap- 012345678912 1.amazonaws.com/012345678912/Test southeast- 1.amazonaws.com) The Asia Pacific (Tokyo) (http://sqs.ap- http://sqs.ap-northeast- 012345678912 northeast- 1.amazonaws.com/012345678912/Test 1.amazonaws.com) The South America (Sao Paulo) (sqs.sa- http://sqs.sa-east-1.amazonaws.com 012345678912 east- /012345678912/Test 1.amazonaws.com)Nakon što je spremnik poruka izrađen usluga Amazon SQS je odmah spremna primati poruke izadržati ih dok ih potrošač ne pokupi i obriše. Proizvođač poruke šalje pomoću SQS akcijeSendMessage kao što je prikazano na Slika 2.8. Poruke se kopiraju na više poslužitelja radipružanja visoke dostupnosti tako što se čuvaju redundantne kopije. Slika 2.8: Slanje poruke u spremnik poruka (akcija SendMessage)Slika 2.9 prikazuje zahtjev akcije ReceiveMessage koji prikuplja poruke iz spremnika poruka isat koji mjeri vrijeme vidljivosti poruke unutar spremnika. 21
  33. 33. Slika 2.9: Prikupljanje poruka iz spremnika poruka (akcija ReceiveMessage)Za vrijeme prikupljanja poruke iz spremnika poruka zahtjev će biti usmjeren prema težinskojfunkciji raspodjele nekom od poslužitelja usluge Amazon SQS. To znači da se može dogoditi dapojedini SQS zahtjev neće vratiti nikakvu poruku iako poruke postoje na poslužiteljima ili ako ihje jako malo (npr. postoji manje od 1000 poruka unutar spremnika poruka). Zato je ponekadpotrebno (za male spremnike poruka) izvršiti više uzastopnih SQS zahtjeva da bi se porukeprikupile. Slika 2.10 prikazuje poruke A, B, C, D i E čije se kopije nalaze na više poslužiteljausluge Amazon SQS. Može se primjetiti da poruka E nije dohvaćena jer SQS zahtjev nijeobuhvatio poslužitelj na kojemu se poruka E nalazi. Slika 2.10: Prikupljanje poruka A, B, C; D iz spremnika poruka (akcija ReceiveMessage)Nakon što komponenta n primi poruku, poruka se i dalje nalazi u spremniku poruka. Ona nijeobrisana nego je sakrivana od ostalih komponenti određeno vrijeme. To znači da usluga AmazonSQS blokira druge komponente da prime istu poruku da bi se spriječila istovremena obrada jednete iste poruke od više komponenti. Slika 2.11 grafički prikazuje vremensko ograničenjenevidljivosti poruke. 22
  34. 34. Slika 2.11: Vremensko ograničenje nevidljivosti poruke (akcija ChangeMessageVisibility)Kada komponeta n (potrošač) uspješno pročita i obradi poruku tada mora pozvati akcijuDeleteMessage koja uklanja poruku iz spremnika poruka tako da je druge programskekomponente ne mogu više koristiti. DeleteMessage je potrebno pozvati unutar vremenskogograničenja nevidljivosti poruke kao što je prikazano na Slika 2.12. Ako komponenta ne uspijeobraditi i obrisati poruku tada će poruka ponovo biti pročitana od neke druge programskekomponente akcijom ReceiveMessage nakon što istekne vrijeme nevidljivosti poruke. Slika 2.12: Brisanje poruke A iz spremnika poruka unutar vremenskog ograničenja nevidljivosti poruke (akcija DeleteMessage)Usluga Amazon SQS pokušava održati redoslijed poruka unutar spremnika poruka, ali zbograspodjeljene prirode spremnika nemoguće je jamčiti da će strana koja prikuplja poruke dobitiporuke po redoslijedu slanja. Ako sustav zahtjeva da prima poruke po nekom zadanomredoslijedu tada je potrebno umetnuti informaciju o rednom broju poruke. Redni broj sepostavlja u tijelo poruke, a ne u zaglavlje. Poruke se kopiraju na više poslužitelja radi očuvanjazalihosti i visoke dostupnosti. U rijetkim slučajevima, jedan od poslužitelja koji čuva kopije 23
  35. 35. poruka može biti nedostupan nakon što potrošač (klijent) primi ili obriše poruku. Ako se todogodi, kopija poruke neće biti obrisana na tom nedostupnom poslužitelju i moguće je da će istipotrošač ponovo primiti tu istu poruku kasnije kada poslužitelj postane dostupan. Zbog togapotrebno je osmisliti i povezati heterogene SOA usluge da budu otporne na obradu jedne te isteporuke više puta - idempotentnost.2.8.4. HTTP(s) zahtjevi i odgovoriUsluga Amazon SQS propisuje posebna pravila kako napraviti ispravni SQS zahtjev i kakavoblik odgovora očekivati. U ovom podpoglavlju biti će objašnjeni različiti tipovi HTTP(s)zahtjeva i odgovora sa kojima će se razvojni inženjeri susretati. Postoji lista parametara (Tablica2.2) koju je potrebno primjenjivati da bi zahtjev za pokretanjem SQS akcije bio ispravan. Napomena: Programsko sučelje SOAP nije podržano od 31.12.2011. Razlog tome je što~0.3% razvojnih inženjera koristi programsko sučelje SOAP što ga čini nezanimljivim za daljneodržavanje pa zato i neće biti rasprave o njemu u ovom radu [31]. Tablica 2.2: Lista obaveznih parametara za Amazon SQS HTTP(s) zahtjeve Tko koristi parametar Jednostavni Naziv parametra Opis parametra zahtjev SOAP upita Naziv akcije koja se treba izvršiti DA NE Action unutar SQS usluge. Npr. CreateQueue. Korisnikov Amazon AWS javni ključ. DA DA AWSAccessKeyId Sastoji se od 20 alfanumeričkih znakova. Datum i vrijeme trajanja zahtjeva u DA DA formatu YYYY-MM- DDThh:mm:ssZ. Format je podržan Expires prema standardu ISO 8601 [32]. Preporučljivo je slati datum i vrijeme prema GMT vremenskoj zoni. 24
  36. 36. Napomena #1: SOAP zahtjevi koji ne koriste WS-Security ne smiju koristiti Expires, nego Timestamp. Napomena #2: Jednostavni upit zahtjeva ne smije koristiti Timestamp ako koristi Expires parametar. Potpis zahtjeva napravljen koristeći DA DA SHA1 ili SHA256 algoritam [33] pomoću tajnog AWS ključa (40 Signature alfanumeričkih znakova) koji je dodjeljen korisniku (prema standardu RFC 2104 [34]). Tajni ključ se NIKADA NE ŠALJE u zahtjevu. Način izrade potpisa zahtjeva. DA NE SignatureMethod=HmacSHA256SignatureMethod (preporučeno) SignatureMethod= HmacSHA1 (zastarjelo) SignatureVersion=1 (zastarjelo) DA NESignatureVersion SignatureVersion=2 (preporučeno) Datum i vrijeme kada je zahtjev upita DA DA nastao u formatu YYYY-MM- DDThh:mm:ssZ. Format je podržan prema standardu ISO 8601. Preporučljivo je slati datum i vrijeme prema GMT vremenskoj zoni. Timestamp Napomena #1: SOAP zahtjevi koji ne koriste WS-Security ne smiju koristiti Expires, nego Timestamp. Napomena #2: Jednostavni upit zahtjeva ne smije koristiti Timestamp ako koristi Expires parametar. Verzija programskog sučelja. DA NE Version Trenutna verzija: 2009-02-01. 25
  37. 37. 2.8.5. Izrada i sigurnost jednostavnog HTTP(s) zahtjeva upitaUsluga Amazon SQS podržava jednostavne RESTful zahtjeve upita [35] pozivajući SQS akcije.Zahtjevi upita su jednostavni HTTP(s) zahtjevi koji koriste GET i POST metode poziva. Zahtjeviupita obavezno moraju sadržavati parametre: Action, AWSAccessKeyId, Expires ili Timestamp,Signature, SignatureMethod i SignatureVersion. Mogu imati i dodatne parametre, ali njihovinazivi ovise o tipu akcije koje izvršavaju. U šest koraka objašnjeno je kako napraviti ispravanzahtjev upita [36]: 1. Izrada kanoničkog upita a) Poredati UTF-8 komponente upita po imenu parametra sa prirodnim byte redoslijedom. Parametri mogu doći od GET URI ili POST tijela poruke (kada je parametar HTTP(s) zaglavlja Content-Type=application/x-www-form- urlencoded). b) URL enkodirati imena i vrijednosti parametara prema slijedećim pravilima:  Ne smiju se enkodirati nerezervirani znakovi koje propisuje RFC 3986 [37]. Nerezervirani znakovi: A-Z, a-z, 0-9, crtica ( - ), donja crtica ( _ ), točka ( . ), and tilda ( ~ ).  Enkodirati sve ostale druge znakove sa %XY. X i Y predstavljaju heksadecimalne znakove: 0 - 9 i A – F.  Proširene znakove formata UTF-8 [38] enkodirati u formatu %XY%ZA....  Jedan razmak (ASCII kod 32) enkodirati kao %20. c) Odvojiti enkodirana imena parametara od njihovih enkodiranih vrijednosti sa znakom jednako ( = ) (ASCII kod 61) bez obzira da li je vrijednost parametra prazna ili ne. d) Odvojiti sve parove ime-vrijednost sa znakom & (ASCII kod 38). 2. Izrada niza koji treba biti potpisan prema slijedećoj pseudo gramatici („n“ predstavlja novi red – ASCII kod 13). Niz = HTTP(s) metoda + „n“ + odredište SQS usluge + identifikator + „n“ + kanonički upit iz prethodnog koraka Slika 2.13: Niz koji treba biti potpisan a) HTTP(s) metoda - POST (za izmjenu podataka) ili GET (za dohvaćanje podataka). 26
  38. 38. b) Odredište usluge Amazon SQS – lista odredišta se može vidjeti u Tablica 2.1. c) Identifikator - <broj korisnikovog Amazon AWS računa>/<ime spremnika> (ako ime spremnika nije potrebno slati u zahtjevu onda je kao identifikator potrebno postaviti znak „ / “) 3. Izračunati RFC 2104 HMAC potpis [34] (SHA1 ili SHA-256) za niz koji smo odredili, a kao ključ koristiti tajni ključ koji je korisnik dobio pri izradi Amazon AWS računa. 4. Prevesti HMAC potpis u Base 64 format [39]. 5. Potpis u formatu Base 64 spremiti u parametar Signature koji je dio HTTP(s) zahtjeva. POSTn sqs.us-east-1.amazonaws.comn 207121356507/Testn AWSAccessKeyId=< Korisnikov AWS Access Key ID> &Action=SetQueueAttributes &Attribute.Name=VisibilityTimeout &Attribute.Value=90 &Expires=2008-02-10T12%3A00%3A00Z &SignatureMethod=HmacSHA256 &SignatureVersion=2 &Version=2009-02-01 Slika 2.14: Primjer niza koji je potrebno potpisati POSTn sqs.us-east-1.amazonaws.comn 207121356507/Testn AWSAccessKeyId=<Korisnikov AWS Access Key ID> &Action=SetQueueAttributes &Attribute.Name=VisibilityTimeout &Attribute.Value=90 &Expires=2008-02-10T12%3A00%3A00Z &SignatureMethod=HmacSHA256 &SignatureVersion=2 &Version=2009-02-01 & Signature=jVJSWV50VWlN1CGU9wE1vS4UEikgz0E9W1BuEScyGOI%3D Slika 2.15: Primjer potpisanog HTTP(s) zahtjeva Napomena: Zaglavlje HTTP(s) zahtjeva mora obavezno sadržavati Content-Type:application/x-www-form-urlencoded; charset=utf-8. Charset=utf-8 je neobavezan parametar, alitrebalo bi ga uvijek postaviti radi višejezične podrške. 27
  39. 39. Tablica 2.3 i Tablica 2.4 prikazuju primjer zahtjeva/odgovora Amazon SQS poruke izvršene odstrane klijenta. Svaki HTTP(s) zahtjev sastoji se od zaglavlja i tijela. U zaglavlju su uvijekprisutni parametri POST (ili GET), Content-Type i User-Agent dok su ostali parametri zaglavljaautomatski nadodani od strane klijenta. POST predstavlja tip metode koja se izvršava, Content-Type predstavlja tip sadržaja (ako želimo imati podršku za dijakritičke znakove tada je potrebnoimati postavku charset=utf-8 u zaglavlju HTTP(s) zahtjeva), Host predstavlja odrediše regije ukojoj se usluga Amazon SQS nalazi dok ostali parametri zaglavlja nisu uzeti u obzir. Tablica 2.3: Tijelo HTTP zahtjeva nadgledano od Wireshark alata za nadgledanje IP prometa Zaglavlje HTTP zahtjeva POST http://sqs.us-east-1.amazonaws.com/207121356507/Test HTTP/1.1 Content-Type: application/x-www-form-urlencoded; charset=utf-8 User-Agent: aws-sdk-java/1.1.9 Windows_7/6.1 Java_HotSpot(TM)_Client_VM/14.2-b01 Host: sqs.us-east-1.amazonaws.com Proxy-Connection: Keep-Alive Content-Length: 291 Tablica 2.4: Tijelo HTTP odgovora nadgledano od Wireshark alata za nadgledanje IP prometa Tijelo HTTP odgovora MessageBody=%C5%BD%C5%BE%C4%90%C4%91%C5%A0%C5%A1%C4%8C%C 4%8D%C4%86%C4%87%21&Action=SendMessage&SignatureMethod=HmacSHA256 &AWSAccessKeyId=AKIAJ4E7FUK2P44ECKMA&SignatureVersion=2&Version=200 9-02- 01&Signature=jVJSWV50VWlN1CGU9wE1vS4UEikgz0E9W1BuEScyGOI%3D&Time stamp=2011-04-12T23%3A00%3A54.224ZHTTP/1.1 200 OK Content-Type: text/xml Server: AWS Simple Queue Service <?xml version="1.0"?> <SendMessageResponse xmlns="http://queue.amazonaws.com/doc/2009-02- 01/"><SendMessageResult> <MD5OfMessageBody>3d099411fec3af188f51efb884653c1c</MD5OfMessageBody> <MessageId>f599352c-ed31-4893-b2c2-163bdf2da5db</MessageId> </SendMessageResult> 28
  40. 40. <ResponseMetadata><RequestId>ee88379d-6f8d-45e5-a6ee- e9fc7abea128</RequestId></ResponseMetadata> </SendMessageResponse>Da bi se slanje poruka mrežom Internet odvijalo na siguran način potrebno je učiniti dva koraka:  Zahtjev je potrebno uputiti kao HTTPS zahtjev čiji se sadržaj (zaglavlje i tijelo) automatski enkriptira temeljem dogovora između klijenta i poslužitelja. Na taj način neovlaštena treća strana nema mogućnosti čitati sadržaj poruka osim IP adrese izvora i odredišta koje su ionako javno poznate. Takav način komunikacije koristi se i u bankarskom sektoru prilikom novčanih transakcija (npr. plaćanje i uplate na tekući račun).  Da bi se povećala sigurnost provjere valjanosti klijenata potrebno je izraditi javni i privatni ključ sa ograničenom odgovornošću. To se radi pomoću usluge Amazon IAM [40] što znači da se nekim klijentima može (a i ne mora) omogućiti izvršavanje određenih akcija usluge Amazon SQS. Slika 2.16: Odobrenje (autorizacija) i provjera valjanosti (autentifikacija) klijenata pomoću usluge Amazon IAM 29
  41. 41. Opis slike Slika 2.16:  Korak 1 – 2: Klijent 1 a) Korak 1 - zahtjev klijenta 1 je ispravan jer HTTP(s) zahtjev sadrži ispravan parametar AWSAccessKeyId i potpis koji je izrađen uz pomoć tajnog AWSSecretKey ključa. b) Korak 2 - Nakon provjere ispravnosti zahtjeva klijenata, usluga Amazon SQS provjerava akcije (Slika 2.17 - parametar Action: DeleteMessage, GetQueueAttributes, ReceiveMessage, SendMessage) koju su dozvoljene klijentu 1 izvršavati. Slika 2.17: Primjer postavki dozvole usluge Amazon SQS za spremnik poruka „Test“  Korak 3 – 4: Klijent 3 a) Korak 3 - zahtjev klijenta 1 za brisanjem spremnika poruka „Test“ je ispravan jer HTTP(s) zahtjev sadrži ispravan parametar AWSAccessKeyId i potpis koji je izrađen uz pomoć tajnog AWSSecretKey ključa. b) Korak 4 - Nakon provjere ispravnosti zahtjeva klijenta, usluga Amazon SQS provjerava akcije koje su dozvoljene klijentu 3 izvršavati. Unutar liste akcija (Slika 2.17) ne postoji akcija DeleteQueue što znači da je klijentu 3 zahtjev odbijen. 30
  42. 42.  Klijent 2 – nema ispravan parametar AWSAccessKeyId ili izrađen potpis uz pomoć tajnog AWSSecretKey ključa. Daljnje provjere neće biti izvršavane. 31
  43. 43. 3. IZRADA UKUPNOG TROŠKA KORIŠTENJA USLUGE AMAZON SQS I USPOREDBA SA UKUPNIM TROŠKOM ODRŽAVANJA POSLUŽITELJA ORACLE WEBLOGIC – IBM WEBSPHEREU današnje doba velikih tehnoloških i ekonomskih promjena, jedna stvar ostaje nepromjenjenaza organizaciju bilo koje veličine: poslovni pritisak za smanjenjem IT troškova i iskorištavanjenajvećih poslovnih vrijednosti iz postojećih i budućih investicija. Aplikacijski poslužitelji suključni u ovoj nakani, nudeći bolju uporabu i raspodjelu IT mogućnosti, povećanu agilnost iproširene vrijednosti za postojeća IT ulaganja. Mogu igrati i ključnu ulogu u rasterećenjuoblačnog modela usluga. Ali pod koju cijenu? U idućim podpoglavljima prikazani su troškoviulaganja u vlastiti sustav razmjena poruka i tehničke razlike između poslužitelja OracleWebLogic i usluge Amazon SQS u svrhu donošenja konačne odluke o isplativosti ulaganja uvlastiti sustav za razmjenu poruka naspram oblačnog modela.3.1. Ukupan trošak održavanja poslužitelja Oracle WebLogic - IBM WebSphereU ovome podpoglavlju prikazani su rezultati istraživanja Crimson Consulting Group tvrtke kojisu objavljeni u svibnju 2011 godine [41]. Istraživanje se bavilo izračunom ukupnih troškovaposlovanja (TCO) komercijanih poslužitelja Oracle WebLogic i IBM WebSphere. U izračuncijene uključeni su troškovi stjecanja (acquisition), razvoja aplikacija, testiranja, podrške ipromjene postavki. Cilj istraživanja je bio dokazati bolju ekonomsku isplativost korištenjaposlužitelja Oracle WebLogic u odnosu na poslužitelj IBM WebSphere. Naravno, treba imati naumu da je istraživanje naručeno zbog velikih tvrtki koje imaju dovoljno novca priuštiti si ovakvesustave.Osnovni model sustava koji se koristio u istraživanju sastojao se od pet poslužitelja (svakiposlužitelj ima dva procesora, a svaki procesor dvije jezgre). Na svakom poslužitelju radile sučetiri instance poslužitelja Oracle WebLogic ili poslužitelja IBM WebSphere. Svaki poslužiteljpokretao je četiri jedinstvene aplikacije.Istraživanje Crimson Consulting Group tvrtke je obuhvatilo trenutno važeće cjenike tvrtki Oraclei IBM, (cjenici od ožujka 2011 godine), politiku prodaje licenci, detaljne razgovore sa osobljemšesnaest organizacija koje koriste poslužitelje Oracle WebLogic i IBM WebSphere. Razgovaranoje i sa admnistratorima koji održavaju ovakav tip sustava. Na temelju vlastitog iskustva 32
  44. 44. odgovarali su na pitanja u vezi instalacije, općih promjeni postavki, grozd postavki, nadogradnje,izrade instanci, razmjene podataka, nadgledanja, održavanja baze podataka, alarma i prilagodbe.Dobiveni odgovori pomogli su u izradi modela troška za voditelje informatičkih odjeljenja ustvarnom okolišu.Slika 3.1 prikazuje ukupne troškove poslovanja koje kupac poslužitelja Oracle WebLogic iliposlužitelja IBM WebSphere mora imati na raspolaganju u razdoblju od pet godina. Iz dobivenihrezultata može se zaključiti da je poslužitelj Oracle WebLogic za razdoblje od pet godina jefinijiza 46% u odnosu na poslužitelj IBM WebSphere, dok početni troškovi za prvu godinu su jeftiniji88%. Napomena: Cijene su izražene u američkim $ USD dolarima. Slika 3.1: Ukupni troškovi posjedovanja poslužitelja WebLogic i WebSphere [41]Što to znači za male i srednje velike tvrtke (ili čak početnike na IT tržištu) koji žele pokušatiponuditi visoko pouzdani i podesiv sustav koji koristi sustav za razmjenu poruka za povezivanjeheterogenih SOA usluga? Iz rezultata istraživanja za tradicionalne sustave može se zaključiti da 33
  45. 45. si najbolje komercijalne sustave male i srednje tvrtke ne mogu priuštiti. Jedino što im preostajeriskirati sa rješenjima otvorenog koda (open source solution) koja tehnički ne moraju biti loša(npr. HornetQ, Apache MQ, Rabbit MQ, JBossMQ), ali cijena i uloženo vrijeme petogodišnjegodržavanja poslužitelja je nepoznata. Za pretpostaviti je da bi cijena rješenja otvorenog koda zarazmjenu poruka bila niža od komercijanog zbog besplatne licence, ali ostali troškovi održavanjamogu čak biti i isti. Kao drugo rješenje postoji mogućnost povezivanja heterogenih SOA uslugakorištenjem oblačnog sustava za razmjenu poruka Amazon SQS. Da bi usluga Amazon SQS bilaisplativa za korištenje mora imati gotovo podjednaka tehnička svojstva kao standardna uslugaJMS i biti financijski priuštiv. Kao rezultat višemjesečne faze istraživanja (uspoređivanjasvojstava poslužitelja Oracle WebLogic i usluge Amazon SQS) nastala je Tablica 3.1 kojaprikazuje najvažnija svojstva jedne i druge usluge. Tablica 3.1: Usporedba svojstava poslužitelja Oracle WebLogic i usluge Amazon SQS Usluga Poslužitelj Oracle WebLogic kao davatelj JMS Svojstvo Amazon SQS usluge Najveća Neograničen Ovisi o veličini JVM memorije, o količini i veličini dozvoljena broj poruka tvrdih diskova na kojima će se poruke pohranjivati veličina imenika unutar imenika poruka poruka Kvaliteta usluge Moguće je da Jamči da će poruka iz imenika biti dostavljena samo potrošač iz jednom na zahtjev potrošača (QoS) imenika poruka dohvati jednu te istu poruku više puta Podesiv broj NE DA dohvaćanja poruka Sigurnost X509 potvrda X509 potvrda, SSO, SAML Odobrenja i DA DA provjera valjanosti vanjskih korisnika (Authorization 34
  46. 46. andauthentificationof third-partyusers)Protokoli HTTP, HTTPS HTTP, HTTPS, RMI, IIOP, t3, t3sTrajnost poruka Uvijek Neobavezno prisutnoPodesivost Uvijek Samo u grozd-u prisutnoRaspoloživost Uvijek Da bi se postigla visoka raspoloživost potrebno je prisutno predvidjeti preseljenje postavki i podataka JMS poslužiteljaRedoslijed Nije Može se podesiti da bude zajamčeno, ali nije obaveznoporuka zajamčenoSlanje više DA NEporuka u jednomzahtjevuBrisanje više DA NEporuka u jednomzahtjevuPodesiva kontrola NE DAtokaPotvrda primitka NE DAporukeNajdulje 1 sat – 14 dana 1 ms ~ 2 milijuna godinadopuštenovrijeme životaporuke unutarspremnikaNajveća 65,536 byte; Neograničenodopuštena početnaveličina jedne vrijednost jeporuke 8192 byteSažimanje NE DAsadržaja poruke 35
  47. 47. Grafičko DA DA korisničko sučelje za izmjenu postavki Komercijalna DA (pogledati DA (10 000$ - 25 000$ po procesoru) [42] licenca Tablica 3.2 za detalje)Temeljem usporedbe svojstava može se zaključiti da je usluga Amazon SQS potpuno tehničkiuporabljiva za povezivanje sa heterogenim SOA uslugama. Jedini nedostaci usluge Amazon SQSsu: ograničena veličina poruke, najdulje dopušteno vrijeme života poruke unutar spremnika temogućnost primanja jedne te iste poruke više puta. Navedeni nedostaci se mogu nadomjestitikvalitetnijom i podesivom izradom svojstava potrošača-proizvođača poruka te višestrukeprovjere stanja spremnika poruka u pravilnim vremenskim radobljima (npr. provjeriti svakih 30minuta da li ima poruka u spremniku). Višestruke provjere stanja spremnika (kao i samo slanje iprimanje poruka) ima svoju ekonomsku cijenu jer se svaki zahtjev i vraćena količina podataka uodgovoru se naplaćuje pa je izračun troškova usluge Amazon SQS opisan u idućempodpoglavlju.3.2. Ukupan trošak korištenja usluge Amazon SQSU ovome podpoglavlju cilj je napraviti usporedbu i dokazati bolju ekonomsku isplativostkorištenja usluge Amazon SQS (namjerno je odabrana riječ korištenje a ne riječ održavanje jerkorisnik ne mora održavati infrastrukturu usluge Amazon SQS) u odnosu na ulaganje u vlastitisustav za razmjenu poruka. Prednost ne ulaganja u vlastitu infrastrukturu je u kraćem vremenupromjene postavki korištenjem grafičkog sučelja za upravljanje uslugom Amazon SQS, bržiizlazak proizvoda na tržište i manje razvojnih inženjera za održavanje sustava poruka.Osnovna vodilja poslovanja sa uslugom Amazon SQS je „Plati samo ono što si potrošio“. Nepostoje nikakve dodatne naplate ili pretplate za održavanje sustava razmjene poruka. Cjenik jetransparentan te se stanje novčanog duga može provjeriti svaki trenutak koristeći sustav zapraćanje stanja računa (Account Activity) tvrtke Amazon. 36
  48. 48. Napomena: Cijene su izražene u američkim $ USD dolarima ovisno o regiji.Ukupna cijena korištenja usluge Amazon SQS sastoji se od dvije stavke:  O broju HTTP(s) zahtjeva upućenih uslugi Amazon SQS (0.000001 $ po jednom zahtjevu. To znači da je cijena 1 milijun zahtjeva 1.00 $).  Izlazni promet - količina prometa usluge Amazon SQS prema potrošačima i proizvođačima poruka. Naplaćuje se samo ako se promet odvija preko javne mreže Internet, a ako se odvija unutar mreže tvrtke Amazon (lokalni promet) onda se ne naplaćuje. Tablica 3.2: Cjenik izlaznog Internet prometa usluge Amazon SQS od 01.07.2011 [43] Izlazni promet Regija Promet Cijena Prvi GB/mjesečno je 0.000 $/GB EU (Irska)/US East (Virginia)/US West besplatan Do 10 TB/mjesečno 0.120 $/GB (North Carolina, Oregon) Idućih 40 TB/mjesečno 0.090 $/GB Idućih 100 TB/mjesečno 0.070 $/GB Idućih 350 TB/mjesečno 0.050 $/GB Idućih 524 TB/mjesečno Kontaktirati Amazon AWS. Idućih 4 PB/mjesečno Kontaktirati Amazon AWS. Više od 5 PB/mjesečno Kontaktirati Amazon AWS. Prvi GB/mjesečno je 0.000 $/GB besplatan Asia Pacific (Singapure) Do 10 TB/mjesečno 0.190 $/GB Idućih 40 TB/mjesečno 0.150 $/GB Idućih 100 TB/mjesečno 0.130 $/GB Idućih 350 TB/mjesečno 0.120 $/GB Idućih 524 TB/mjesečno Kontaktirati Amazon AWS. 37
  49. 49. Idućih 4 PB/mjesečno Kontaktirati Amazon AWS. Više od 5 PB/mjesečno Kontaktirati Amazon AWS. Prvi GB/mjesečno je 0.000 $/GB besplatan Do 10 TB/mjesečno 0.201 $/GB Asia Pacific (Tokyo) Idućih 40 TB/mjesečno 0.158 $/GB Idućih 100 TB/mjesečno 0.137 $/GB Idućih 350 TB/mjesečno 0.127 $/GB Idućih 524 TB/mjesečno Kontaktirati Amazon AWS. Idućih 4 PB/mjesečno Kontaktirati Amazon AWS. Više od 5 PB/mjesečno Kontaktirati Amazon AWS. Prvi GB/mjesečno je 0.000 $/GB besplatan Do 10 TB/mjesečno 0.250 $/GB South America (Sao Paulo) Idućih 40 TB/mjesečno 0.230 $/GB Idućih 100 TB/mjesečno 0.210 $/GB Idućih 350 TB/mjesečno 0.190 $/GB Idućih 524 TB/mjesečno Kontaktirati Amazon AWS. Idućih 4 PB/mjesečno Kontaktirati Amazon AWS. Više od 5 PB/mjesečno Kontaktirati Amazon AWS.Uvjeti naplate usluge Amazon SQS su vrlo jednostavni i transparentni za korisnika što znači daje troškove usluge vrlo jednostavno izračunati. Najrazumljiviji prikaz troškova je najboljeprikazati kroz primjer. Kao primjer odabran je projekt Livemocha [44] koji je pokrenut unutarinfrastrukture Amazon AWS-a sa upogonjenim Amazon EC2 [45] virtualnim instancama.Livemocha je mrežna stranica sa besplatnim tečajevima učenja stranih jezika i broji više od trimilijuna korisnika (1.5 milijuna posjeta dnevno) u svijetu. Osmišljena je kao interaktivna 38

×