cum se construiește o arhitectură orientată spre servicii (SOA)

Cum de a construi o arhitectură orientată spre servicii (SOA)

| Bakhtiar Zein

în acest articol ne concentrăm pe tema arhitecturii orientate spre servicii (SOA). Începem cu o scufundare profundă în 1) SOA: o descriere și mergem apoi să discutăm 2) construirea unei Arhitecturi orientate spre servicii.

arhitectura orientată spre servicii: o descriere

ce este SOA?

SOA sau arhitectura orientată spre servicii este o metodă prin care diferite tipuri de servicii pot interacționa între ele în mod independent. Un serviciu este o parte autonomă a funcționalității și mai multe servicii pot fi combinate pentru a oferi utilizarea și funcționalitatea unei aplicații software pe scară largă. Ceea ce face SOA este că simplifică interacțiunea și cooperarea pieselor software de pe PC-urile conectate la o rețea. Modelul de proiectare al SOA este de așa natură încât componentele aplicațiilor din it pot oferi servicii altor astfel de componente în cea mai mare parte printr-o rețea. Fiecare sistem informatic poate rula orice număr de servicii, fiecare dintre acestea fiind construit pentru a face schimb de informații cu orice alt serviciu diferit dintr-o rețea fără ajutor uman.

în terminologia de afaceri, SOA este un set de servicii IT aliniate la afaceri, care abordează împreună obiectivele și procesele companiei de afaceri. Proiectarea structurală a SOA se asigură că există o aliniere cu cerințele afacerii, precum și cu soluția tehnologică a acesteia.

elementele majore ale SOA

aici sunt elementele majore ale SOA:

  • drivere SOA – drivere SOA sau drivere de afaceri de întreprindere includ lucruri cum ar fi concurența, strategie, forțele de reglementare și forțele pieței. Toate aceste lucruri se reunesc pentru a conduce arhitectura de afaceri și pentru a da o formă managementului performanței la nivel de afaceri
  • SOA enablers-cele cinci principale SOA enablers sunt modelul de afaceri al întreprinderii, optimizarea performanței afacerii, raționalizarea portofoliului, definirea semanticii întreprinderii și indicatorii cheie de performanță. A avea un model de afaceri este important pentru alinierea corectă a serviciilor cu obiectivele și obiectivele afacerii. Modelul de informații semantice oferă informații comune și generale legate de afaceri pentru o anumită întreprindere. Indicatorii cheie de performanță sau indicatorii cheie de performanță fac posibilă evaluarea impactului SOA și facilitează măsurarea proceselor de afaceri. Pe de altă parte, raționalizarea portofoliului face posibilă consolidarea și simplificarea aplicațiilor, datelor și Infrastructurii.
  • implementarea SOA – în ceea ce privește implementarea, serviciile și procesele de afaceri sunt principalele aspecte. Procesele de afaceri sunt în mare parte asociate cu obiectivele de afaceri și obiectivele operațiunilor, în timp ce, pe de altă parte, Serviciile de afaceri trebuie să fie bine aliniate și sunt esențiale pentru implementarea SOA flexibilă și de succes. Unele dintre celelalte aspecte legate de implementarea SOA sunt depozitele de conținut pentru întreprinderi, mesageria semantică și serviciile de integrare. Informațiile reprezintă resursele de date ale companiei, iar aceste date sunt transmise sub formă de documente care oferă un fel de mesaje semantice între servicii și procese.
  • suport SOA – toate funcțiile și elementele din aplicațiile și sistemele existente sunt puse la dispoziție și utilizabile serviciilor cu sprijinul unor servicii de integrare care decolează capacele din funcțiile existente prin interfețe de servicii noi.

principiile principale ale SOA

următoarea este lista principiilor principale ale SOA:

  • arhitectura serviciului – aspectul fizic sau designul serviciilor individuale care depășesc toate resursele utilizate de un serviciu.
  • arhitectura compoziției serviciilor – toate serviciile dezvoltate folosind metode de proiectare orientate spre servicii sunt centrate pe compoziție, iar aceasta este caracteristica lor principală. Prin urmare, această arhitectură este compoziția arhitecturilor individuale ale diferitelor servicii.
  • arhitectura inventarului de Servicii – această arhitectură este formată din planul inventarului de servicii în care inventarul de servicii este alcătuit din servicii care automatizează procedurile întreprinderilor.
  • arhitectura de întreprindere orientată spre servicii – acest tip constituie compoziții, servicii, precum și arhitecturi de inventar.

evoluția conceptului SOA

  • Design monolitic – acest design a fost legat de codificarea procedurală relativ nestructurată
  • design orientat pe obiect și structură – acesta este designul care implică unități de program bazate pe funcționalități.
  • design Client-server (design pe două niveluri)-acesta este conceptul de design distribuit și este legat de gruparea funcționalităților în două niveluri.
  • Design obiect distribuit (design multitier) – acest design implică interacțiuni obiect într-un mediu eterogen și design obiect distribuit.
  • Component object Model architecture – acesta este un design în care există o agregare de elemente în părți bazate pe logică cu tipuri puternice, precum și o interfață bine definită.
  • arhitectura orientată spre servicii – acesta este un design care implică interacțiuni și comunicații între servicii cu granulație grosieră cu interfețe standard pentru o interoperare flexibilă.

SOA și JAVA

mulți dezvoltatori cred că SOA, precum și serviciile web, sunt sinonime între ele, dar acest lucru nu este adevărat. Ei pot crede, de asemenea, că nu este posibil să se construiască SOA fără a utiliza servicii web, dar în realitate, SOA este un principiu de proiectare, dar serviciile web sunt un fel de tehnologie de implementare. Aceasta înseamnă că SOA poate fi de fapt construit fără a utiliza tehnologia de implementare de un anumit tip. Dar Java este un alt tip de tehnologie tradițională care poate fi utilizată pentru a dezvolta sau construi arhitectura orientată spre servicii.

scopul principal al SOA este de a dezvolta o cuplare liberă între module și se poate construi o aplicație în care modulele nu sunt cuplate prea strâns. Acest tip de structură poate fi construit sau format cu ajutorul JAVA.

care sunt caracteristicile SOA?

  • conexiune liberă – serviciile din SOA sunt legate între ele pentru a forma o singură conexiune. Aceasta dă o presupoziție modicului interdependenței dintre fiecare serviciu. Ideea principală este de a reduce interdependența la nivelul în care compatibilitatea este încă menținută.
  • interfața serviciilor standardizate – o cerință de bază a SOA este necesitatea standardizării interfețelor, precum și a detaliilor. Detaliile trebuie să includă datele necesare, modul în care poate fi utilizat un serviciu și modul în care trebuie aplicate regulile.
  • reutilizare-în SOA, reutilizarea serviciilor este posibilă și de către alte părți, precum și pentru alte tipuri de scopuri.
  • Findability unui serviciu – o altă caracteristică este că un serviciu trebuie să fie ușor de găsit pentru a-l utiliza. Pentru toți consumatorii, depozitele de servicii sunt puse la dispoziție, iar aceste depozite constau în interfața și metoda de implementare a serviciului.
  • autonomia serviciului – fiecare serviciu trebuie să poată funcționa și funcționa independent. Acest termen indică acele servicii care sunt autosuficiente și sunt capabile să gestioneze resursele, logica și mediul pe cont propriu.
  • capacitatea de orchestrare a serviciilor – acesta este un proces în care un serviciu individual este combinat cu alte astfel de servicii pentru a avea ca rezultat procese sau Unități de afaceri mai mari. Aceasta este o caracteristică sau o cerință suplimentară pentru SOA.

avantajele și beneficiile SOA

  • randamente mai bune ale investiției – unul dintre cele mai mari beneficii ale SOA este că oferă o rentabilitate superbă a investiției. Deoarece procesul implică crearea de straturi robuste, fiecare dintre aceste straturi de servicii oferă o rentabilitate mai bună a investiției care a fost făcută pentru a crea software-ul.
  • code mobility – acesta este un alt beneficiu important al SOA și este posibil deoarece există o transparență a locației în arhitectura orientată spre servicii. Majoritatea clienților nu le pasă unde se află serviciile, deoarece există o legare dinamică, precum și căutarea serviciilor. Aceasta înseamnă că întreprinderile care utilizează SOA pot muta serviciile pe diferite mașini sau le pot muta către furnizori de servicii externi.
  • reutilizarea – un alt avantaj al SOA este că diferitele coduri și servicii pot fi utilizate din nou și din nou. Există comoditatea reutilizării serviciului în timpul rulării și este la fel de ușor ca găsirea unui serviciu în director și legarea la acesta. Dezvoltatorii nu trebuie să se îngrijoreze de platforme și alte incompatibilități.
  • suport pentru diferite tipuri de clienți – orice companie poate utiliza mai multe tipuri de clienți și mai mulți clienți pentru a accesa un serviciu în SOA. Acest lucru se datorează faptului că într-o astfel de structură sau concept, straturile au fost împărțite în servicii, iar straturile client și diferitele tipuri de clienți sunt mai simple de implementat.
  • un nivel mai ridicat de disponibilitate – mai multe servere au mai multe cazuri de servicii care le folosesc datorită faptului că SOA acceptă transparența locației. Aceasta înseamnă că disponibilitatea generală este foarte mare. De exemplu, dacă o mașină sau o parte a unei rețele nu mai funcționează sau are o problemă, cererile pot fi redirecționate către alte servicii fără ca clientul să știe sau să fie deranjat de aceasta.
  • mai puține defecte – acesta este un avantaj major al SOA. Probabilitatea defectelor este mult mai mică, iar testarea generală este mult mai bună datorită interfețelor publicate de servicii care pot fi testate cu ușurință. Mai multe teste se traduce la un nivel mai mare de precizie și mai puține defecte.

provocări SOA

  • lipsa spațiului de testare – una dintre cele mai mari provocări în SOA este lipsa spațiului de testare. Într-o arhitectură tipică, nu există instrumente sau metode bine formate sau sofisticate pentru a testa un serviciu fără cap, cum ar fi un serviciu de mesaje sau baze de date. Obiectivul principal al SOA este de a oferi agilitate companiilor și întreprinderilor. Dar, din cauza lipsei de încredere orizontală, trebuie să investim într-un cadru de testare care să faciliteze provocarea.
  • gestionați metadatele serviciilor – aceasta este o provocare comună și foarte evidentă a SOA. Gestionarea metadatelor serviciilor nu este doar dificilă, ci adesea foarte complicată. Un spațiu arhitectural bazat pe servicii implică servicii care interacționează între ele prin schimbul de mesaje. Într-un astfel de scenariu, un singur serviciu poate avea uneori milioane de mesaje generate. Gestionarea acestor numeroase servicii poate deveni foarte dificilă, mai ales atunci când serviciile sunt livrate de diferite companii și departamente din cadrul unei companii. Acest lucru creează multe probleme de încredere.
  • asigurarea nivelurilor corecte de securitate – o altă provocare a SOA este furnizarea unor niveluri adecvate de securitate. Securitatea gestionată de aplicație nu este metoda sau modelul corect pentru securizarea serviciilor, deoarece modelele de securitate proiectate în aplicații nu pot fi suficiente atunci când aplicația se arată altora.
  • interoperabilitate – acesta devine un aspect crucial al implementărilor SOA. Adesea, în încercarea de a reduce sau de a reduce interdependența serviciilor, compatibilitatea dintre ele se poate reduce, dar dependența trebuie redusă la un nivel care să permită menținerea compatibilității.
  • furnizor hype – există un hype furnizor semnificativ legate de SOA, iar acest lucru creează un anumit nivel de așteptări nejustificate. Deși există multe avantaje ale SOA, poate avea și mai multe dezavantaje. De exemplu, SOA nu garantează o reducere a costurilor IT și nici măcar nu promite îmbunătățirea agilității sistemelor. Astfel, ar fi mai bine dacă ar exista o distincție clară între hype și realitate.

construirea unei Arhitecturi orientate spre servicii

SOA Framework

pentru a înțelege cum este construit SOA, va trebui mai întâi să înțelegeți care este cadrul său.

SOA este privit ca 5 straturi orizontale diferite, care sunt:

  1. Consumer interface layer-acestea sunt aplicațiile care accesează interfețele de servicii sau aplicații.
  2. Business process layer-acesta este un strat care este un serviciu care reprezintă cazuri de utilizare în afaceri în ceea ce privește aplicațiile.
  3. Servicii – multe servicii sunt reunite pentru crearea unei întreprinderi întregi.
  4. componente de servicii – acestea sunt acele componente sau părți care sunt utilizate pentru a construi servicii precum interfețe tehnologice și biblioteci tehnice etc.
  5. sisteme operaționale – acesta este stratul care conține modele tehnice, modele de date și depozit de date etc.

următoarele sunt straturile verticale ale cadrului SOA care sunt aplicate și susținute de cele orizontale:

  1. strat de integrare – acest strat constă în suport de protocol sau integrare de platformă, integrare de date, integrare de aplicații și servicii etc.
  2. calitatea serviciului-factorii care compun calitatea serviciului includ disponibilitatea, securitatea, performanța și altele.
  3. Informațional – acest strat face în principal treaba de a furniza informații legate de afaceri.
  4. guvernare-acest strat sau strat de strategie IT este guvernat de straturi orizontale pentru a atinge capacitatea, precum și modelul de operare, după cum este necesar.

cadrul de implementare SOA (SOAIF)

implementarea SOA are nevoie și necesită software de infrastructură în timp de rulare, precum și instrumente. Acest lucru poate fi denumit colectiv cadru de implementare a arhitecturii orientate spre servicii sau SOAIF. Acest concept vizează un cadru cuprinzător care oferă tot felul de tehnologii pe care o afacere le poate solicita nu numai pentru a construi, ci și pentru a rula SOA. Un SOAIF constă și include atât capabilități de execuție, cât și de proiectare. De asemenea, include funcționalități software de care o companie ar putea avea nevoie pentru a rula un SOA și, de asemenea, pentru a-l construi, inclusiv orientate spre servicii:

  • modelare
  • integrare
  • instrumente
  • Management
  • securitate
  • procese

abordări ale SOA

există trei tipuri sau metode sau abordări majore care au apărut pentru informații despre cluburi, disparate și sisteme într-o afacere. Pe măsură ce diferiți furnizori de servicii și întreprinderi se îndreaptă spre furnizarea de soluții Clienților și consumatorilor, aceste abordări ajută la îndeplinirea cerințelor pentru servicii cu granulație grosieră, slab clubbed și asincron.

1. Enterprise Service Bus

prima abordare care ajută la construirea și implementarea unui SOA optim este enterprise service bus sau ESB. Această abordare ajută la coordonarea și aranjarea diferitelor elemente care sunt sub formă de servicii distribuite într-o rețea. Această abordare consideră că sistemele sunt servicii discrete și distribuite care se conectează între ele printr-o infrastructură orientată spre mesaje care este asincronă. Acest tip de infrastructură orientată spre mesaj face posibilă existența unor conexiuni vag cuplate între servicii sau module independente.

2. Managementul proceselor de afaceri

multe companii, de mulți ani, au încercat să rezolve problemele procesului de afaceri prin implementarea abordării de gestionare a proceselor de afaceri. Această abordare ia în considerare activele și sistemele IT ca activități sau sarcini care participă la proceduri de afaceri bine sincronizate și bine orchestrate. Instrumentele BPM sunt utilizate în principal în momentul modelării și proiectării procedurilor, mai degrabă decât să le folosească pentru a construi procese care pot atinge obiectivele de integrare. Aceasta este principala provocare a BPM. Soluțiile BPM pe cont propriu sunt suficiente pentru a îndeplini cerințele SOA, deoarece nu constau în mediul de rulare necesar pentru modulele cuplate slab.

3. Integrare orientată spre servicii

a treia și ultima abordare a implementării corecte a SOA este abordarea de integrare orientată spre servicii. Această abordare specială folosește regulile sau principiile directoare arhitecturale pentru a construi un mediu sau un ecosistem de servicii pe care întreprinderile le pot combina dinamic și pot crea procese de nivel superior care pot satisface cerințele în continuă schimbare și evoluție. Această abordare trece peste modulele strâns cuplate și fragile, creând o distincție între consumatorul și producătorul unui serviciu. Astfel, impune aspectul cuplării libere care este necesar pentru a implementa SOA în mod corespunzător pentru a îndeplini cerințele de afaceri. Chiar și această abordare în sine nu este suficientă pentru a garanta interacțiuni de lungă durată între servicii.

cele mai bune practici pentru construirea unui SOA

în timp ce construiți un SOA, trebuie să urmați unele dintre cele mai bune și mai avantajoase practici. Aceste practici sunt date după cum urmează:

  1. tehnologiile de implementare sunt mult exagerate și trebuie să ne amintim să nu le sărim din cauza popularității lor. Unul trebuie să ia în considerare cu atenție sau nu Servicii web face mai mult sens pentru cerința și nevoia lor. Este important să ne amintim că construirea aplicațiilor orientate spre servicii prin utilizarea tehnologiilor precum RMI poate fi mai potrivită pentru cazul unei afaceri decât pentru serviciile web.
  2. trebuie să ne amintim să nu creăm sau să construim module foarte strâns legate sau cuplate, deoarece acest lucru duce la o instalare sau infrastructură fragilă.
  3. este important să se mențină interoperabilitatea și, pentru acestea, trebuie respectate cele mai bune practici WS-I.
  4. dacă nu vedeți nici un sens în utilizarea serviciilor web, atunci există multe alte opțiuni alternative, precum și care pot fi alese.
55 acțiuni

Leave a Reply

Adresa ta de email nu va fi publicată.