Integrarea Aplicatiilor Prin Sercicii

Embed Size (px)

Citation preview

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    1/29

    INTEGRAREA APLICATIILOR PRIN SERCICII

    SOA şi Servicii Web

    Mul i cred că "SOA" i "Serviciile Web" sunt sinonime, iar SOA ar avea nevoie deț ș

    serviciile Web pentru a putea fi implementată. Această în elegere este total gre ită, SOA fiind oț ș

     paradigmă, iar serviciile Web reprezentând o tenologie de implementare !#$. %onfuzia apare

    deoarece serviciile Web sunt considerate standardul de-facto pentru realizarea SOA & urilor, dar 

    e'istă i alte posibilită i !()*$.ș ț

    +reptat, modelul de prelucrare clientserver, specific primelor aplica ii în re ea, a fost transformatț ț

    întrun model bazat pe niveluri de servicii !)#$. %onsiderate ca fiind viitorul -nternetului,

    serviciile Web sunt colec ii de standarde M/ care permit interac iunea între sisteme 0programe1,ț țindependente de platforma i tenologie. 2olul serviciilor Web este de a parta3a date i de aș ș

    accesa diverse servicii, oferind clien ilor o singură interfa ă publică !)4$.ț ț

    5rincipalele avanta3e ale serviciilor Web sunt legate de fle'ibilitate i versatilitateș 6 ele suportă o

    mul ime deț   aritecturi iș   sunt independente de platforme i modele.ș Serviciile Web sunt

    construite pe mai multe tenologii care lucrează în colaborare cu standardele în curs de

    dezvoltare pentru asigurarea securită iiț , precum iș  pentru a se asigura că pot fi combinate pentru a

    lucra independent de un furnizor. 7e asemenea, serviciile Web câ tigăș  pe u urin a dezvoltăriiș ț   i aș

    interoperabilită iiț . 8le oferă un cadru promi ător pentruț   dezvoltarea, integrarea iș

    interoperabilitatea aplica iilor soft9areț   distribuite. +enologia serviciilor Web permite

    interac iunea dintreț  componente soft9are aflate în afara grani elor ț  organiza ionaleț . :ntrun astfel

    de mediu distribuit este foarte important pentru a elimina erorile din faza de proiectare, înainte ca

    serviciile să fie implementate !#;#$, !#;4$, !#;;$.

    :n sec iunile următoare vom prezenta, pe scurt, câteva no iuni de bază ale ambelor concepteț ț

    0principii, beneficii, caracteristici, protocoale

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    2/29

    2.1. SOA

    8'istă mai multe defini ii ale SOA, iar în opinia organiza iei OAS-S 0ț ț Organization for the

     Advancement of Structured Information Standards1 reprezintă "o paradigmă pentru organizarea

    i utilizarea capabilită ilor distribuite care pot fi sub controlul diferitor domenii de proprietate.ș ț 

     Această paradigmă furnizează mijloace uniforme pentru a oferi, a descoperi, a interac iona i aț ș

     folosi capabilită ile cu scopul de a produce efectele dorite compatibile cu condi iile prealabile" ț ț 

    !(($, !#;=$. %onform +anenbaum, un  sistem distribuit este o colec ie de calculatoareț

    independente care reu esc să fie percepute de către utilizatorii umani ca un sistem unic i coerent.ș ș

    :n SOA, resursele sunt puse la dispozi ia altor participan i în re ea sub formă de serviciiț ț ț

    independente care sunt accesate întrun mod standardizat. Astfel, este furnizat un cupla3 mai

    fle'ibil al resurselor decât în aritecturile sistemelor tradi ionale !#;#$, !#;>$. ?nul dintreț

    obiectivele de bază al SOA este de a produce componente reutilizabile, fiecare dintre acestea

    încapsulând logica diferită. Orientarea pe servicii !# $ !usiness rocess #anagement, %AI -

     %nterprise Application Integration, AO - Aspect Oriented rogramming& are multe rădăcini în

    orientarea pe obiecte 'ezvoltare modulară, programare procedurală, () $ (emote rocedure

    )all&  i a fost influen ată de evolu ia sistemelor tradi ionale a a cum este redată în figura #.(.ș ț ț ț ș

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    3/29

    Figura 2.1 8volu ia de la sistemele tradi ionale la cele orientate pe servicii0prelucrare dupăț ț

    !(#4$1

    SOA este o formă a aritecturii sistemelor distribuite, iar mai multe organiza ii i corpora ii de laț ș ț

    nivel interna ional, printre care W*%, Microsoft, -@M -nternational @usiness Macines, OAS-Sț

    au publicat propriile lor principii cu privire la SOA !(=$, !=#$, !>$, !(#4$, !(($, !#;#$, !#;4$,

    dintre care amintim6

    Vedere logică. Serviciul este un abstract, o vedere logică de programe reale, baze de date,

     procese de afaceri etc., de obicei desfă oară opera ii la nivel de afaceri.ș ț Orientare spre mesaj . ormal, serviciul este definit în termeni de mesa3e scimbate între

    furnizor i solicitant, dar nu depinde de proprietă ile acestora.ș ț Orientare spre descriere. ?n serviciu este descris de o ma inăprocesabilă de metadate.ș

    7escrierea referă caracterul public al SOA6 doar acele detalii care sunt e'puse public iș

    care sunt importante pentru folosirea serviciului ar trebui să fie incluse în descriere.

    Semantica unui serviciu ar trebui să fie documentată, fie direct, fie indirect, prin

    descrierea sa.  Abstractizarea. %ontractele de servicii con in doar informa ii esen iale despre servicii iț ț ț ș

    informa iile despre servicii sunt limitate la ceea ce este publicat în contracte.ț Granularitate. Serviciile tind să folosească un număr mic de opera ii cu mesa3e relativț

    mari i comple'e.ș

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    4/29

    Orientare re eaț  .  Serviciile tind să fie orientate spre utilizarea printro re ea, de i acestț ș

    lucru nu este o cerin ă absolută.ț  Interoperabilitate / platforma neutră. Mesa3ele sunt trimise către o platformă neutră, într

    un format standardizat prin intermediul interfe elor publice. M/ este formatul cel maiț

    adecvat care îndepline te această constrângere.ș  Distributivitate. Serviciile componente pot fi consumate de aceea i ma ină sau distribuiteș ș

     pentru ma inile de la distan ă. -nterfa a serviciului i logica sunt independente deș ț ț ș

     protocoalele folosite pentru transport, respectiv acces la serviciu. Cutie neagră / ncapsularea. Serviciile sunt un fel de "cutie neagră" pentru consumatorii

    acestora, în sensul ca implementarea acestora este ascunsă de consumatorii finali.  Autonomia. Serviciile au control asupra logicii pe care o încapsulează, de la design-time

     până la run-time. Contractul. Serviciile î i e'pun interfe ele publice prin intermediul contractelor, astfel căș ț

    consumatorii de servicii au acces la acces la descrierile serviciilor prin contracte. Componen!ialitate. ?n serviciu poate fi la rândul său compus din mai multe componente,

    ciar i alte servicii, care pot fi versionate i administrate în mod independent.ș ș  Asamblarea. Serviciile pot fi asamblate de o aplica ie cu scopul de a efectua opera ii maiț ț

    comple'e sau să adopte un proces de afaceri. Cuplare slaba. Serviciile men in o rela ie care minimizează dependin ele de alte aplica iiț ț ț ț

    i necesită să men ină doar o rela ie de con tientizarea fa ă de celălalt.ș ț ț ș ț  Descoperirea. Serviciile î i publică metadatele pe bază deș  WS7/ uri prin care acestea

     pot fi descoperite i consumate în mod eficient.ș  "eutilizarea.  /ogica de business este împăr ită în servicii cu scopul de a promovaț

    reutilizarea acestora.

    5rincipiile care stau la baza SOA sunt ilustrate în figura #.#, de mai 3os.

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    5/29

    Figura 2.2 +riungiul SOA

    Modelul SOA tratează trei elemente principale care ac ionează ca un ciclu6ț  găsire # legare / 

    invocare $ nregistrare %find $ bind/invo&e # register'.

    urnizorul de servicii 0 (ervice )rovider 1 oferă un anumit serviciu i publică descriereaș

    serviciului 0 "egister 1 întrun registru de servicii 0 "egistr*1. Solicitantul de serviciu 0 (ervice "e+uester 1 interogează registrul de servicii pentru a găsi

    un anumit serviciu 0,ind 1. 7acă serviciul căutat va fi găsit în registrul de servicii 0 "egistr*1, atunci solicitantul de

    serviciu va regăsi loca ia serviciului i se va lega 0ț ș  -ind 1 la endpoint & ul acestuia, în final

     putând invoca 0 Invo&e1 opera iile serviciului.ț

    :n opinia noastră, comparativ cu modelul tradi ional client

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    6/29

    re ele sau, conform organiza iei World Wide Web %onsortium 0W*%1ț ț (  !(B$, "3n serviciu +eb

    este un sistem softare identificat printr-un 3(I 4()-56789 ale cărui interfe e publice iț ș

    legături sunt descrise folosind :#;. 'efinirea sa poate fi descoperită de alte sisteme softare.

     Aceste sisteme softare pot interac iona cu serviciul eb

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    7/29

    7intre principiile SOA descrise în sec iunea anterioară, autonomia, cuplarea slabă i contractulț ș

     pot fi considerate ca principii de bază ale serviciilor Web !(=$. Serviciile sunt autonome, în sensul

    că6

     Ar trebui să aibă controlul asupra propriilor date.

     Au control asupra logicii pe care o up ;anguage& !=($ , care are ca obiectiv principal definirea unui formalism care

    să permită scimbul u or al documentelor

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    8/29

    !istarea 2.1 8'emplu de structură M/

    :n e'emplul de mai sus, listarea #.(, am redat o structură M/ care con ine configura ia unuiț ț

    solicitant de serviciu specificat prin tagul clientB. 7atele pentru accesarea serviciului 0address -

    binding $ contract $ A!) - ul endpoint - ului 1 sunt specificate în tagul endpointB. Ealoarea

    atributului address, "" , reprezintă loca ia serviciuluiț )redit)ardService F valoarea atributului

    binding , Ls0ttp!indingL, ne arată modul în care se realizează legătura la serviciu, adică

    folosind protocolul 9eb C++5F valoarea atributului contract   specifică contractul serviciuluiF

    valoarea atributului name  identifică, în mod unic, în cadrul documentului M/, endpointul

    serviciuluiF valoarea atributului binding)onfiguration indică referin a către o altă structură M/ț

    în care sunt specificate anumite caracteristici ale legăturii s0ttp!inding . :n tagul identit*B

    este specificată identitatea serviciului 0certificat .;B identificat după valorile atributelor 

     store;ocation, store?ame, 2JG7ind1*pe, findKalue1 care urmează a fi accesat i identitatea peș

    care clientul o va prezenta la invocare.

    2egulile cu privire la structura unui document M/ 0elemente i atribute1, precum i laș ș

    loca ia unde acestea apar în document pot fi documentate întroț  schemă. O scemă poate fi

    ecivalată cu un tip de definire întrun limba3 de programare. 7e asemenea, scemele M/

    validează documentele M/. Au fost propuse mai multe sceme cu diferite niveluri de

    e'presivitate6 28/A !4>$, !#>B$, +28 !4)$, SO !#B;$. %ea mai sus inută scema M/ aț

    fost 7+7 07ocument +Gpe 7efinition1, definită doar de specifica iile M/. 7atorită limitărilor ț

    de sinta'ă ale 7+7, W*% a definit W*% M/ Scema /anguage !#;4$.M/ fiind independent de platformă i de limba3 este o alegere naturală pentru construirea unor ș

    sisteme interoperabile prin intermediul serviciilor 9eb. Astfel, el devine un  format universal 

     pentru interscimbarea datelor.

    O serie de informa ii cu privire la avanta3ele aduse de standardul M/ se pot găsi la !(;;$, !#;4$,ț

    !#*;$.

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    9/29

    2) Protocolul "##P

    CGperte't +ransfer 5rotocol 0C++51 este un protocol la nivel de aplica ie pentru sistemeț

    distribuite, colaborative i ipermedia !#B4$. 8l este folosit încă din anul (B la nivel de Worldș

    Wide Web ca i standard cerere

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    10/29

    de serviciu, numit  server SOA . 5rotocolul este folosit atât pentru a trimite, cât iș   pentru a

    recep iona mesa3e de laț  serviciul Web. ?n avanta3 este acela de a îngloba func ionalitateaț  25%

    ului 02emote 5rocedure %all1, folosind e'tensibilitatea iș  func ionalitat#eaț  M/.

    Modelul de procesare SOA5 asigură că un mesa3 SOA5 provine de la un e2peditor ini ial SOA ț 

    i este trimis la unș receptor final SOA  traversând zero sau mai multe noduri intermediare SOA .

    ?n mesaj SOA  este unitatea de bază pentru comunicarea între noduri SOA . 8l constă din patru

    elemente, ilustrate în figura #.; de mai 3os6

    Anvelopa 0 %nvelope1 & partea cea mai e'terioară a mesa3ului i îl identifică pe acesta caș

    fiind un mesa3 SOA5 i nu alt tip de mesa3. 8a con ine zero sau mai multe antete SOA5 iș ț ș

    corpul SOA5. Antetul 0 0eader 1 & oferă o modalitate de a adăuga e'tensii definite de utilizator la

    mesa3ul SOA5. 8l con ine informa ii generale cu privire la securitate & autentificare,ț țautorizare i sesiune 0sub forma deș to>en - uri1, precum i informa ii cu privire laș ț

     prelucrarea mesa3ului prin nodurile intermediare. 7atele referitoare la autentificare, de

    obicei sunt criptate folosind standardul +S-Securit* :#; %ncr*ption, :#; Signature&. %orpul 0 !od*1 & nu lipse te niciodată i con ine informa ii ce urmează a fi transferate întreș ș ț ț

    aplica ii.ț 7efect 0 ault 1 & este folosit pentru a raporta o eroare sau informa ii specifice erorii. aceț

     parte din elementul SOA bod*  i poate lipsi din cadrul elementului sau poate fi numaiș

    unul sigur 4.

    Figura 2.% Structura unui mesa3 SOA5 0prelucrare după !4*$1

    4 ttps6

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    11/29

    :n e'emplele următoare am redat două mesa3e SOA5, unul de tip cerere 0 SOA reNuest 1, iar altul

    de tip răspuns 0SOA response1.

    !istarea 2.2 8'emplu mesa3 SOA5 de tip cerere

    !istarea 2.3 8'emplu mesa3 SOA5 de tip raspuns

    %ele două e'emple anterioare reprezintă cererea, respectiv răspunsul serviciului la invocarea

    opera ieiț @et)redit)ardAmount  e'pusă de interfaKa contractului, I)redit)ard .

    Ealoarea atributului must3nderstand C H 1rue&  indică faptul că receptorul mesa3ului SOA5

    trebuie să în eleagă semantica antetului din mesa3 i săl proceseze corect. 8lementulț ș

    (elates1oB con ine identificatorul unui mesa3 la care acest mesa3 SOA5 se referă. :n corpulț

    mesa3ului SOA5 se găse te parametrul opera iei contractului,ș ț credit)ard?umber , pentru mesa3ul

    de tip cerere, respectiv rezultatul cererii către opera ia serviciului în cazul mesa3ului de tipț

    răspuns.

     sD%nvelope  2mlnsDsC" httpDEE.6.orgE5GG6EGJEsoap-envelope"   2mlnsDaC" httpDEE.6.orgE5GGJEGFEaddressing " B

       sD0eader B

      aDAction  sDmust3nderstand C" H" BhttpDEEtempuri.orgEI)redit)ardE@et)redit)ardAmount(esponse

      E aDActionB

      aD(elates1oBurnDuuidDeJ6dfe-78cJ-67F-b8cF-d5e5PaJGcFH6E aD(elates1oB

      E  sD0eader B

       sD!od*B

      @et)redit)ardAmount(esponse  2mlnsC" httpDEEtempuri.orgE " B  @et)redit)ardAmount(esult BJJG.GGE @et)redit)ardAmount(esult B

      E @et)redit)ardAmount(esponseB

      E  sD!od*B

    E  sD%nvelo eB

     sD%nvelope  2mlnsDaC" httpDEE.6.orgE5GGJEGFEaddressing "   2mlnsDsC" httpDEE.6.orgE5GG6EGJEsoap-envelope" B

       sD0eader B

      aDAction  sDmust3nderstand C" H" BhttpDEEtempuri.orgEI)redit)ardE@et)redit)ardAmount E aDActionB

      aD#essageI'BurnDuuidDcPeHcdHP-cec-6ba-a5G6-67dHHae6PH5JE aD#essageI'B  aD(epl*1oB

      aDAddressBhttpDEE.6.orgE5GGJEGFEaddressingEanon*mousE aDAddressB

      E aD(epl*1oB

      E  sD0eader B

       sD!od*B  @et)redit)ardAmount   2mlnsC" httpDEEtempuri.orgE " B

      credit)ard?umber BH56J8PF7HGE credit)ard?umber B

      E @et)redit)ardAmount B

      E  sD!od*B

    E  sD%nvelopeB

    http://tempuri.org/ICreditCard/GetCreditCardAmountResponsehttp://tempuri.org/ICreditCard/GetCreditCardAmountResponse

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    12/29

    O serie de specifica ii cu privire la protocolul SOA5 se găsesc la !#(;$, !#;#$, !#;4$.ț

    $) Standardul WS&!

    Web Services 7escription /anguage 0WS7/1 este un format M/ pentru descrierea de servicii

    9eb ca un set de endpoint  & uri , operând pe mesa3e care con in informa ii fie orientate peț ț

    documente, fie orientate pe proceduri !#B=$. Opera iile i mesa3ele sunt descrise abstract i apoiț ș ș

    sunt legate la un protocol concret de re ea i format de mesa3e pentru a defini unț ș endpoint . WS7/

     & ul este ecivalentul -7/ & ului 0-nterface 7escription /anguage1, bazat pe M/, din %O2@A

    0%ommon Ob3ect 2eLuest @roDer Arcitecture1 sau %OM 0%omponent Ob3ect Model1.

    WS7/ a a3uns la versiunea #.B, iar în versiunea (.(  D era acronimul de la  'efinition, i nuș

     'escription a a cum este în versiunea #.B. Eersiunea (.# de WS7/ a fost redenumită #.B dinș

    cauza diferen elor ma3ore dintre cele două versiuni !#B=$.ț

    O interfa ă WS7/ constă din două componente, a a cum este ilustrat în figura #.>6ț ș

    O parte abstractă 0definirea interfe ei serviciului Web1 & descrie opera iile suportate deț ț

    serviciul 9eb i tipurile de mesa3e care parametrizează aceste opera ii.ș ț O parte concretă 0implementarea serviciului Web1 & descrie modul în care opera iile dinț

     partea abstractă se leagă de un endpoint   i modul în care mesa3ele se mapează peș

     protocoalele de transport pe care endpoint  & urile le suportă.

    Figura 2.' Structura informa iilor din WS7/ 0prelucrare după !#4;$1ț

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    13/29

    8lementele componente ale unui document WS7/ sunt următoarele6

    Port(nd*oint $ define te adresa i modul în care se realizează cone'iunea la un serviciuș ș

    Web. 7e obicei adresa aceasta este reprezentată de un ?2/ simplu. Serviciu  & constă dintrun set de porturi

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    14/29

    !istarea 2.$ 8'emplu document WS7/

    :n e'emplul anterior, listarea #.4, am generat WS7/ & ul serviciului )redi)ardService . :n cadrul

    elementului sdlDport1*peB  este definită opera ia contractuluiț  I)redit)ard ,

    @et)redit)ardAmount   care la rândul ei con ine două mesa3e, unul de intrareț

    @et)redit)ardAmount(eNuest , în care este redată semnătura opera iei din punct de vedere alț

     parametrilor de intrare i unul de ie ire,ș ș @et)redit)ardAmount(esponse, în care este redat tipul

    rezultatului returnat de opera ia contractului. :n cadrul elementuluiț sdlDserviceB  este redată

    adresa endpoint & ului 0atributul Address1, referin a către legătura serviciului 0valoarea atributuluiț

    binding  din cadrul elementului sdlDportB1 i identitatea care trebuie prezentată la invocareaș

    opera iilor serviciului 0elementulț identit*B1.

    %) Standardul &&+

    ?niversal 7escription, 7iscoverG and -ntegration 0?77-1 reprezintă un frame9orD independent

    de platformă sub forma de repositor*  0registru1 unde pot fi înregistrate i unde se pot căutaș

    servicii Web, precum i descrierile pe care acestea le furnizează !(=$, !#B#$. %a i celelalteș ș

    Q 2ml  versionC" H.G"  encoding C" utf-F" QBsdlDdefinitions  2mlnsDs2C" httpDEEschemas.2mlsoap.orgEsE5GGEG7Eme2"  

     2mlnsD2sd C" httpDEE.6.orgE5GGHE:#;Schema"  

     2mlnsDsoapC" httpDEEschemas.2mlsoap.orgEsdlEsoapE "   2mlnsDsoapH5C" httpDEEschemas.2mlsoap.orgEsdlEsoapH5E "  

     2mlnsDsoapencC" httpDEEschemas.2mlsoap.orgEsoapEencodingE "  

    nameC" )redit)ardService"  

    target?amespaceC" httpDEEtempuri.orgE "  

     2mlnsDsdl C" httpDEEschemas.2mlsoap.orgEsdlE " B  sdlDimport  namespaceC" httpDEEschemas.microsoft.comEsE5GGFEG7"  

    locationC" httpDEEsdumitraEccServiceE)redit)ardServiceEQsdlCsdlG"  EB

      sdlDt*pesB

       2sdDschema ...B

      ...  E  2sdDschemaB

      E sdlDt*pesB

      sdlDmessage nameC" @et)redit)ardAmount(eNuest " B

      sdlDpart  nameC" credit)ard?umber " 

      t*peC"  2sdDstring "  EB  E sdlDmessageB

      sdlDmessage nameC" @et)redit)ardAmount(esponse" B

      sdlDpart  nameC" @et)redit)ardAmount(esponse" 

      t*peC"  2sdDdecimal "  EB

      E sdlDmessageB  sdlDport1*pe nameC" @et)redit)ardAmountort1*pe" B

      sdlDoperation nameC" @et)redit)ardAmount " B

      sdlDinput  messageC" @et)redit)ardAmount(eNuest "  EB

      sdlDoutput  messageC" @et)redit)ardAmount(esponse"  EB

      E sdlDoperationB  E sdlDport1*peB

      sdlDbinding  nameC" +S0ttp!indingI)redit)ard "  t*peC"  @et)redit)ardAmountort1*pe" B

      spDolic*(eference 3(I C" R+S0ttp!indingI)redit)ardpolic*"  EB

       soapH5Dbinding  transport C" httpDEEschemas.2mlsoap.orgEsoapEhttp"  EB

      sdlDoperation nameC" @et)redit)ardAmount " B   soapH5Doperation  soapActionC" httpDEEschemas.microsoft.comEsE5GGFEG7EI)redit)ardE@et)redit)ardAmount "   st*leC" document "  EB

      sdlDinput B

      spDolic*(eference 3(I C" R+S0ttp!indingI)redit)ard@et)redit)ardAmountInputpolic*"  EB

       soapH5Dbod* useC" literal "  EB

      E sdlDinput B  sdlDoutput B

      spDolic*(eference 3(I C" R+S0ttp!indingI)redit)ard@et)redit)ardAmountoutputpolic*"  EB

       soapH5Dbod* useC" literal "  EB

      E sdlDoutput B

      E sdlDoperationB  E sdlDbinding B

      sdlDservice nameC" )redit)ardService" B

      sdlDport  nameC" +S0ttp!indingI)redit)ard "  binding C" tnsD+S0ttp!indingI)redit)ard " B

       soapH5Daddress locationC" httpDEEsdumitraEccServiceE)redit)ardServiceE "  EB

      saHGD%ndpoint(eferenceB  saHGDAddressB httpDEEsdumitraEccServiceE)redit)ardServiceEE saHGDAddressB

       Identit*  2mlnsC" httpDEEschemas.2mlsoap.orgEsE5GG8EG5Eaddressingidentit*" B   'nsB sdumitraE  'nsB

      E  Identit*B

      E saHGD%ndpoint(eferenceB  E sdlDport B

      E sdlDserviceB

    E sdlDdefinitionsB

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    15/29

    standarde din aritectura serviciilor Web, ?77- are la baza o serie de standarde

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    16/29

     poate efectua o reautentificare. 8'istă situa ii când cererile de autentificare

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    17/29

    securiatate la nivelul transport SS/$, !(=$, !>;$. Securitatea la nivel transport 

    oferă criptare doar punct $ la $ punct , ceea ce duce la anumite dezavanta3e, datele putând

    fi citite

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    18/29

    Amenin ările cu privire la serviciile Web implică amenin ări ale sistemului gazdă,ț ț

    a aplica iilor i a infrastructurii din întreaga re ea. 5entru a asigura securitatea serviciilor 9eb,ț ș ț

    sunt necesare o serie de mecanisme de securizare pentru a rezolva probleme legate de

    autentificare, controlul accesului la date, aplicarea unei politici de securitate, protec iaț

    mesa3elor. O serie de standarde pentru securizarea serviciilor Web care vor fi prezentate în

    sec iunea următoare oferă solu ii pentru rezolvarea unor astfel de probleme.ț ț

    2.2.3. Standarde de securitate a serviciilor Web

    Standardele fundamentale ale serviciilor Web nu au ca obiectiv asigurarea securită iiț

    acestora, deoarece ele au fost concepute doar pentru a oferi conectivitate, ceea ce poate afecta

    considerabil securitatea sistemelor în care sunt integrate. Mai multe organiza iiț ; au contribuit la

    realizarea unor standarde pentru securitatea serviciilor Web, dar care nu oferă neapărat iș

    interoperabilitate !(=$. O solu ie în acest sens este folosirea profilului de securitateț +S-I 8  !asic

    Securit* rofile  !(()$. :n tabelul #.( de mai 3os sunt asociate standardele de securitate cu

    cerin ele fundamentale de securitate.ț

    #abelul 2.1 %erinte fundamentale de securitate si standarde asociate

    /erinta ,unda0entala de securitate Standarde *entru securitateAutentificare OAS+S  WSSecuritG, OAS+S  WS+rust, OAS+S  SAM/,

    OAS+S WSSecure%onversation, WSederation, W3/ M/

    NeG Management Specification 0NMS1Autorizare OAS+S A%M/, OAS+S SAM/, WSSecuritG%onfidentialitate W3/ M/ 8ncrGption, WSSecuritG-ntegritate W3/ M/ Signature, WSSecuritG

     on 2epudiere W3/ M/ Signature, WSSecuritG

    7upă cum se poate observa, standardul WSSecuritG 0WSS1 este asociat la toate cerin eleț

    fundamentale de securitate. Motivul este că acesta specifică e'tensii ale SOA5 & ului care permit

    criptarea sau semnarea totală

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    19/29

    confiden ialită ii mesa3elor esteț ț  :#; %ncr*ption, în timp ce standardul  :#; Signature  este

    folosit la asigurarea integrită ii mesa3elor.ț

    1) Se0natura X!

    Semnătura M/ 0 %astla>e, (eagle Mi Solo, 5GG51, realizată la propunerea W*% si -8+,

    reprezintă o semnătură digitală proiectată pentru a fi utilizată în tranzac iile M/.ț Semnătura

    M/ combină utilitatea iș   puterea tenologiei semnăturii digitale, cu puterea i fle'ibilitateaș

    M/ului !(=$, !(=B$, !#(*$. /a fel ca i în cazurile semnăturilor nonM/ 0e'. 5N%S1,ș

    "semnăturile :#; adaugă informa ii de autentificare, integritate i nerepudiere a datelor pe careț ș

    le semnează" !(;;$.

    Semnătura M/ specifică modul de reprezentare a semnăturii digitale ca i un element M/,ș

     precum i modul de creare i verificare ale acestui element M/. 8a se aplică atât datelor de tipș ș

    M/, cât i datelor de tip nonM/. O caracteristică importantă a semnăturii M/ se referă laș

     posibilitatea de a semna un întreg document M/, anumite por iuni dintrun document M/ț

    0elemente M/ & :#; tree1 sau fi iere care con in orice tipuri de date digitale. Semnătura M/ș ț

     permite semnarea mai multor date cu o singură semnătură.

    Atunci când semnătura M/ este folosită independent, asigură integritatea datelor, iar când este

    legată de identitatea semnatarului, ea furnizează nonrepudierea con inutului datelor i,ț ș

    de asemenea, poate furniza autentificarea semnatarului.:n listarea #.;, de mai 3os, am redat un e'emplu simplu de semnătură M/.

    !istarea 2.% 8'emplu semnătură M/

    Signature  2mlnsC" httpDEE.6.orgE5GGGEG7E2mldsigR " B

      SignedInfoB

      )anonicalization#ethod   AlgorithmC" httpDEE.6.orgE1(E5GGHE(%)-2ml-cHn-5GGHG6HJ"  EB  Signature#ethod   AlgorithmC" httpDEE.6.orgE5GGGEG7E2mldsigRrsa-shaH"  EB

       (eference 3(I C"" B

      1ransformsB

      1ransform  AlgorithmC" httpDEE.6.orgE5GGGEG7E2mldsigRenveloped-signature"  EB

      E 1ransformsB   'igest#ethod   AlgorithmC" httpDEE.6.orgE5GGGEG7E2mldsigRshaH"  EB

       'igestKalueBtog:?)Oz%dce3#p1lvu)iG@)CE  'igestKalueB

      E  (eferenceB

      E SignedInfoB

      SignatureKalueB (jad7HbAc1#bJiHm5AHPj2EluKobea7(jhsGmb0%J2(P(nSf1EEEhdh!nzAmrl8/zr+aOu?sK#5j#sah>Jv!2ugd7bzfp

    O:T6#uKje3S)v;H2Kr)pNd5vdfUb2IIrUHnV*z2()OPVJAcuO'cs20@lK))H6m7:a5j+5fTO@l%6:8z735*mlmzN

     saK8#Fh)s'ihbhVSeNg5v#duv?tS8I/*Nfbc7Ov;S63bJN+oSKHrH7aP7+1pi6ubH2r!(8r8+t%/VOAooFc

    7m8O8Ap()n538IJmcl2u:A*7sGa>(eN%(g+@U1sE8VCC

      E SignatureKalueBE SignatureB

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    20/29

    Semnifica ia elementelor din cadrul semnăturii M/ este următoarea6ț

    Signature este rădăcina semnăturii M/. Semnătura M/ este formată din patru blocuri

     principale, a a cum arată elementul sau rădăcinaș W%;%#%?1 Signature SignedInfo,

    SignatureKalue, Te*InfoQ, ObjectXB.

    SignedInfo con ine informa ia care se semnează i a cărei valoare finală se stocează înț ț ș

    elementul SignedKalue. )anonicalization#ethod   0codificare1 specifică algoritmul folosit

    la canonizarea 0pregătirea1 elementului SignedInfo înainte ca acestuia să i se aplice o

    func ie as ca parte a opera iei de semnare.ț ț Signature#ethod specifică algoritmul folosit

    la convertirea elementului canonizat SignedInfo în elementul SignatureKalue, adică la

    semnarea amprentei numerice a SignedInfo. Acest algoritm identifică toate func iileț

    criptografice implicate în procesul de semnare, de e'emplu, func ii as, algoritmi cu ceiț

     publice, MA% & uri, algoritmi de  padding   .a.m.d.. iecare element  (eference  con ineț

    algoritmul de as folosit i valoarea as a obiectului transformat. 7e asemenea, poateș

    con ine o listă a transformărilor produse de opera ia de semnare.ț ț

    SignedKalue  con ine valoarea semnăturii efectuate peț SignedInfo,  ob inută conformț

    directivelor de calcul indicate în Te*Info.  Te*Info con ine to i parametrii necesari verificării semnăturii. 8ste un element op ional,ț ț ț

    deoarece toate datele pot fi cunoscute din aplica ie.ț

    :ntro semnătură M/ numai datele semnate sunt sigure. 7e aceea trebuie să se facă o distinc ieț

    clară între datele semnate i cele care nu sunt semnate. Semnăturile M/ trebuie să fieș rezistente

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    21/29

    7atele care urmează a fi criptate pot fi date arbitrare, cum ar fi6 un document M/, un element

    M/ sau con inutul unui element M/. 2ezultatul criptării datelor este un element de criptareț

    M/ care con ine sau face referire la datele criptate.ț

    %riptarea M/ nu este un algoritm nou de criptare, ci o modalitate de a cripta elemente M/.

    2olul principal al criptării M/ este asigurarea confidentialitatii datelor , adică interzice accesul

    neautorizat al persoanelor la informa ia care nu le este destinată. :n cadrul criptării M/ dateleț

    sunt transformate în octe i serializaKi pentru opera ii de criptare i decriptare.ț ț ș

    7upă cum am prezentat anterior, protocoalele SS/en(eferenceB

      oD(eference Kalue1*peC" httpDEEschemas.2mlsoap.orgEsE5GGJEG5EscEd> "  EB

      E oDSecurit*1o>en(eferenceB

      E  Te*InfoB  eD)ipher'ataB

      eD)ipherKalueB/)5FOa!#EKIp207jcjofi2EHE E eD)ipherKalueB

      E eD)ipher'ataB

    E eD%ncr*pted'ataB

    eD%ncr*ptedTe*  Id C"  %ncTe*" B  eD%ncr*ption#ethod   AlgorithmC" httpDEE.6.orgE5GGHEGE2mlencRaesH5F-cbc"  EB

       Te*Info  2mlnsC" httpDEE.6.orgE5GGGEG7E2mldsigR " B

      ....

      E  Te*InfoB

      eD)ipher'ataB  eD)ipherKalueB/lpz12UarA%J!3drO)sh5vhe;E eD)ipherKalueB

      E eD)ipher'ataB

       (eference;ist B   'ata(eference 3(I C" R%nc'ata"  EB

      E  (eference;ist BE eD%ncr*pted'ataB

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    22/29

     %ncr*pted'ata $ este elementul rădăcină al datelor criptateF  %ncr*ption#ethod $ este un element op ional i este folosit pentru a specifica algoritmulț ș

    de criptare simetric folosit, sub forma unui ?2-, pentru criptarea datelor 0tripledes-cbc,

    aesH5F-cbc, aesH75-cbc, aes5J8-cbc etc.1F

     Te*Info & este elementul care furnizează informa ii cu privire la ceia secretă. Are aceea iț șsinta'ă ca i în cazulș  :#; Signature. -nforma iile cu privire la ceia de criptare folosităț

    sunt necesare pentru decriptarea la destinatarF )ipher'ata & este un element obligatoriu care furnizează informa ii cu privire la dateleț

    criptate. :n %iper7ata se găsesc fie datele criptate 0codificarea  !ase8 a elementului

    )ipherKalue1, fie o referin ă e'ternă la datele criptate furnizată de elementulț

    )ipher(eferenceF )ipherKalue & este un element obligatoriu i con ine datele criptateFș ț  %ncr*ptedTe*  & con ine ceia de criptare criptată care este folosită în bloculț

     %ncr*pted'ata. 8ste folosită la criptarea simetrică a mesa3ului 0par ial sau total1 i esteț ș

    criptată cu ceia publică a destinatarului. 8lementul con ine toate informa iile necesareț ț

     pentru decriptarea ceii simetrice la destinatar, împreună cu o serie de elemente care au

    fost criptate cu această ceie. Acest element este op ional în cazul în care păr ile au agreatț ț

    o anumită ceie.

    3) Standardul XS

    M/ NeG Management Standard 0NMS1 reprezintă "un set de protocoale pentru distribuirea iș

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    23/29

    $) Standardul SA!

    SecuritG Assertion MarDup /anguage 0SAM/1 E#.B 0 0ughes Y #aler, 5GGJ1, standard de

    specifica ii OAS-S aprobat la (; martie #BB;,ț "este un frameor> bazat pe :#; pentru

    comunicarea informa iilor cu privire la autentificarea utilizatorului, drepturi i atribute dintreț ș

     păr i de

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    24/29

    Figura 2. %omponentele SAM/

    5rofilul "eb broser SSO"  este cel mai relevant dintre profiluri, el permi ând scenarii în care unț

    utilizator care folose te 9eb & ul, fie accesează resursele de la un serviciu furnizor, fie acceseazăș

    un furnizor de identitate pentru autentificare !(B$. urnizorul de identitate generează aser iuniț

    care pot fi validate de serviciul furnizor i folosite la stabilirea unui conte't de securitate pentruș

    utilizator, conte't ce poate con ine permisiunile pentru accesul la resursele dorite 0pot fi subț

    forma de claim  uri1. Acest scenariu este ilustrat în figura #.=.

    Figura 2. Mecanismul conceptului SSO

    Aser iunile SAM/ pot fi folosite în cadrul mesa3elor SOA5 cu scopul de a transporta informa iiț ț

    de securitate i identitate între agen i 9eb. 5rofilulș ț SA#; 1o>en rofile al OASIS +S-Securit* 1) 

    specifică modul în care aser iunile SAM/ pot fi folosite în acest scop.ț  3ibert* Alliance folose teș

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    25/29

    frame9orD & ul  Identit* 4eb (ervice ,rame5or& %ID$4(,'  cu scopul de a folosi aser iuniț

    SAM/ sub forma de to>en & uri de securitate pentru accesul securizat la serviciile Web !(=>$.

    Microsoft oferă 4indo5s Card(pace  !#B($ iș 4indo5s Identit* ,oundation %4I,'  !#*#$ în

    acest scop.

    :n listarea #.) de mai 3os am redat un e'emplu simplu de aser iune SAM/, de autentificare peț

     bază de parolă.

    8lementul )onditions 4H9 specifică două condi ii pentru aser iune. -ntervalul de timp dintreț ț

    valorile atributelor ?ot!efore  iș  ?otOnOrAfter specifică perioada de validitate a aser iunii.ț

    8lementul AuthenticationStatement  459 con ine două atribute i un element copil. 5rimul atributț ș

     Authentication#ehod  specifică metoda de autentificare a aser iunii folosită.ț

    Singurul element copil Subject con ine informa ii despre subiectul autentificat6ț ț  ?ameIdentifier 

    con ine numele subiectului iț ș Subject)onfirmation  con ine rela ia dintre subiectul aser iunii iț ț ț ș

    autorul aser iunii.ț

    8lementul )onfirmation#ethod   45bH9  este un copil al elementului Subject)onfirmation  45b9.

    8'istă două profiluri SSO folosite pentru elementul Subject)onfirmationD @ro9ser

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    26/29

    !istarea 2. Aser iune SAM/ de autentificare pe bază de parolăț

    %) Standardul XA/!

    etensible Access %ontrol MarDup /anguage 0AM/1 este o specifica ie pentru reprezentareaț

     politicilor de autorizare i afirmare. OAS-S îl define te ca fiindș ș "un limbaj bazat pe :#; pentru

    controlul accesului"  !(=$. Standardul descrie două limba3e !(=$6 /imba3 pentru politicile de control al accesului & "este folosit pentru a e2prima politicile

    de control al accesului "cine poate face ce c=nd"&" F

    /imba3 %erere

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    27/29

    Figura 2.6 Modelul de securitate al serviciilor 9eb 0prelucrare dupa !(*4$1

    +rei mecanisme principale sunt definite de standard6 "abilitatea de a trimite to>en $ uri de

     securitate ca parte a unui mesaj, integritatea mesajului i confiden ialitatea mesajului" ș ț  .

    -ntegritatea mesa3ului este furnizată de semnătura M/, în timp de confiden ialitatea esteț

    asigurată de criptarea M/F ambele pot fi folosite în con3unc ie cuț to>en $ uri de securitate.?n to&en de securitate este o colec ie deț claim & uri, unde un claim reprezintă o afirma ie despreț

    o entitate 0e'. nume, identitate, privilegiu, email, ceie, capabilitate1. Standardul WSSecuritG

    este neutru la tipul de toDen folosit. Astfel, el suportă o serie de formate de toDenuri6

    usernameen & urile pe bază de certificate .;B i ticete Nerberos, careș

    nu sunt codificate în format M/, standardul WSSecuritG furnizează mecanisme pentru

    codificarea binară a acestora.

    :n listarea #.= am reprezentat includerea unei semnături M/ în antetul unui mesa3 SOA5.

    SD%nvelopeB

      SD0eader B  sseDSecurit*B

      sseD!inar*Securit*1o>en

      Kalue1*peC" sseD:JG7v6" 

       %ncoding1*peC" sseD!ase8!inar*" 

      suDId C"  :JG71o>en" B  Ig%z)(H%gI;!AgIV%mtcGrNrThJi...

      E sseD!inar*Securit*1o>enB

      dsDSignatureB

      dsDSignedInfoB

      dsD)anonicalization#ethod   AlgorithmC" httpDEE.6.orgE5GGHEHGE2ml-e2c-cHnR "  EB  dsDSignature#ethod   AlgorithmC" httpDEE.6.orgE5GGGEG7E2mldsigRrsa-shaH"  EB

      dsD(eference 3(I C" Rbod*" B

      dsD1ransformsB

      dsD1ransform  AlgorithmC" httpDEE.6.orgE5GGHEHGE2ml-e2c-cHnR "  EB

      E dsD1ransformsB  dsD'igest#ethod   AlgorithmC" httpDEE.6.orgE5GGGEG7E2mldsigRshaH"  EB

      dsD'igestKalueB %3;dd*tSoH...E dsD'igestKalueB  E dsD(eferenceB

      E dsDSignedInfoB

      dsDSignatureKalueB  :;d%(FC%r1o%bHlEv:c#??jOK...

      E dsDSignatureKalueB

      dsDTe*InfoB

      sseDSecurit*1o>en(eferenceB

      sseD(eference 3(I C" R:JG71o>en"  EB  E sseDSecurit*1o>en(eferenceB

      E dsDTe*InfoB

      E dsDSignatureB

      E sseDSecurit*B

      E SD0eader B  SD!od* suDId C" bod*" B

       2encD%ncr*pted'ata  Id C" bod*" B

      ...

      E 2encD%ncr*pted'ataB  E SD!od*B

    E SD%nvelo eB

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    28/29

    !istarea 2. -ncluderea unei semnături M/ în antetul unui mesa3 SOA5

    7upă cum se poate observa, elementele cu namespece & ul sse reprezintă e'tensii ale SOA5 & 

    ului definite de WSSecuritG. 8lementul !inar*Securit*1o>enB identifică ceia publică dintrun

    certificat .;B care este folosită la verificarea semnăturii. 8lementul Securit*1o>en(eferenceB

     pointează la to>en & ul de care este legată semnătura, care la rândul ei referenKiază elementul

    !od*B.

    ) Standardele WS4Polic57 WS4Polic5 Assertion7 WS4Polic5 Attac80ent si WS4

    Securit5 Polic5

    Standardul WS5olicG define te politica cerin elor de securitate pentru serviciile Web, descriindș ț

    diferite constrângeri 0politici1 de securitate cu privire la intermediari iș endpoint  & uri 0to>en & uri

    de securitate necesare, algoritmi de criptare folosi i, roluri privilegiate etc.1. WS5olicG Assertionț

    specifică aser iuni de securitate generice. WS5olicG Attacment i WSSecuritG 5olicG oferăț ș

    mecanisme pentru a reprezenta capabilită ile i cerin ele mesa3elor SOA5 ca i politici !#B$.ț ș ț ș

    ) Standardul WS4#rust

    Scopul acestei specifica ii este de a permite aplica iilor să participe la scimbul de mesa3e SOA5ț ț

    de încredere. Standardul define te e'tensii care se bazează pe WSSecuritG i se folosesc pentruș ș

    cererea, emiterea, reînnoirea i validareaș to>en & urilor de securitate, precum i la gestionareaș

    rela iilor de încredere dintre acestea !($.ț?n Securit* 1o>en Service S1S& este un serviciu 9eb responsabil pentru emiterea de to>en & uri

    de securitate i poate fi văzut ca unș bro>er  de încredere !($. %ând un solicitant de serviciu,

    dintrun domeniu diferit de încredere 0posibil necunoscut1, are nevoie de un to>en de securitate pe

    care trebuie săl prezinte serviciului furnizor îl poate ob ine făcând o cerere către S+S. :nț

    cazul în care to>en & ul a fost emis de către S+S, solicitantul de serviciu prezintă acest to>en

  • 8/16/2019 Integrarea Aplicatiilor Prin Sercicii

    29/29

    serviciului furnizor, acesta din urmă fiind cel care validează to>en & ul. 5entru a valida to>en & ul,

    între S+S i serviciul furnizor trebuie să e'iste o rela ie de încredere.ș ț

    6) Standardul WS4Secure/onversation

    Standardul WSSecure%onversation este construit deasupra standardelor WS+rust i WSș

    SecuritG i furnizează mecanisme pentru stabilirea i parta3area unui conte't de securitate,ș ș

     precum i a unei cei derivate de sesiune !(=$. WSSecuritG se concentrează pe autentificareaș

    unui singur mesa3 SOA5, în timp ce WSSecure%onversation este utilizat la stabilirea unui

    conte't de securitate între două păr i care permite autentificarea mai multor mesa3e SOA5 iț ș

    îmbunătă e te performan a de comunicare. ?n alt avanta3 îl reprezintă negocierea ceii 0lor1 deț ș ț

    sesiune, derivată 0e1 dintro ceie secretă parta3ată asociată cu conte'tul de securitate, ceie 0i1 de

    sesiune folosită 0e1 la criptarea