Posted by: Moniqs on: February 22, 2008
Nu vreau sa scriu un post foarte tehnic, ci doar sa incerc sa explic in cuvinte cat mai simple si cat mai putine ce reprezinta aceasta solutie, cum poate ajuta o companie etc. Scuzati romgleza, dar asa ma manifest eu cand vorbesc despre IT
In primul rand, ce este SOA? Ca sa va scutesc de simpla cautare pe Gogoloi (asa il alint in momentele mele bune), va spun eu: Service-Oriented Architecture. Si acum… sa purcedem la lucruri mai serioase si mai complexe…
SOA este o infrastructura software care creeaza un layer intre resursele IT (server, sisteme de operare si mai ales aplicatii) si procesele de business. Cum? Pai… aplicatiile software sunt descompuse in componente mai mici care sunt recombinate si folosite ca servicii – componentele acestor servicii pot fi apoi recombinate pentru a raspunde la alte nevoi de business.
SOA este de fapt un stil de arhitectura, nu o arhitectura in sine. Intr-o arhitectura orientata pe servicii, datele sunt separate de procesarea lor, in contrast cu o arhitectura orientata pe obiecte, unde datele nu pot fi separate de procesarea lor. Un exemplu banal de orientare pe servicii este un CD player. Acelasi CD poate fi ascultat la un CD player portabil sau la CD playerul inclus in PC. In orientarea pe obiecte, fiecare CD ar trebui sa vina cu propriul CD player si nu ar putea fi separate.
De ce SOA? In primul rand, o companie are nevoie de suport IT pentru fiecare proces de business. Exista o cerere din ce in ce mai mare pentru tehnologii care sa fie destul de flexibile incat sa permita sharing-ul de informatii si resurse – SOA ofera aceasta flexibilitate prin faptul ca descompune orice aplicatie in blocuri mai mici care pot fi folosite independent de oamenii din interiorul sau din afara organizatiei.
Ce ar determina o companie sa aleaga SOA? Putem avea in vedere doua categorii:
1. Business drivers: conformitate cu legislatia (mai multa transparenta, mai multa flexibilitate – poate sa se adapteze usor la noi legislatii), ROI mare;
2. Technical drivers: service management, service lifecycle management (departamentul de IT isi da seama mai usor cand trebuie sa actualizeze serviciile sau sa le retraga).
Cat despre cerintele SOA, acestea sunt cat se poate de evidente:
a. Interoperabilitate – sa existe un protocol prin care aplicatiile sa comunice intre ele. Poate fi realizata prin intermediul serviciilor web;
b. Interfata sa fie clar definita;
c. Serviciile sa poata fi gasite si accesate usor.
Ce bine ar fi daca lucrurile ar fi atat de simple… dar de cele mai multe ori SOA aduce si unele dificultati: neintelegerea cerintelor de performanta specifice, lipsa unei fundatii bazate pe XML, lipsa unui plan de tranzitie la SOA, lipsa standardizarii, neintelegerea diferentelor dintre SOA si arhitecturile traditionale.
Sa revenim la lucruri realiste: pentru a folosi aplicatiile SOA e nevoie sa cumperi suficiente resurse hardware incat sa faci fata perioadelor foarte aglomerate. In afara acestor perioade, majoritatea resurselor raman nefolosite. Astfel, implementand SOA poti ajunge sa nu mai beneficiezi de economiile pe care le-ai putea obtine prin consolidare. Prin utility computing, de exemplu, poti folosi exact atatea resurse cate iti trebuie (mai multe in perioadele critice si mai putine in rest). Astfel, dupa ce implementeaza SOA, multe firme investesc in utility computing pentru a reduce costurile.
De ce este SOA atat de importanta? Aceasta solutie ne ofera posibilitatea de a alinia serviciile de IT la obiectivele strategice ale companiei.
Desi avantajele unei asemenea interfete intre backend implementation si un consumator de Service (client) sunt foarte clare, cred ca ar fi interesant sa aduci in discutie si cateva dintre provocarile/dezavantajele sale.
Ma gandesc aici de exemplu la unidirectionalitate. Consumatorul poate invoca o metoda business pusa la dispozitie de un serviciu, dar un serviciu nu poate contacta consumatorul sau (clientul). Ca sa exemplific, un event nu se poate propaga de la service spre client datorita acestei unidirectionalitati. In cazul exemplului de web service pe care l-ai dat tu, un web service nu poate emite un mesaj catre clientii sai, dimpotriva, clientii interesati trebuie sa verifice in permanenta prin apeluri repetate daca o anumita stare s-a schimbat la service provider. De aici deriva si alt dezavantaj al abordarii SOA: exception handling, care, desi realizabila, este o procedura anevoiasa de impachetare si despachetare si interpretare a exceptiei, mai ales daca serverul si clientul ruleaza pe platforme/tehnologii diferite. Multi implementatori au recurs la vechile coduri de eroare facand astfel un mic pas inapoi.
Si ar mai fi si altele. Totusi sunt de acord ca avantajele acestei abordari sunt prevalente in cazul unui sistem enterprise vast si eterogen; as inclina insa pentru o alta abordare in cazurile solutiilor mici (atomice).
In privinta revoltei tale interioare, iti recomand sa emigrezi, sunt atatea tari civilizate in lumea asta.
Mult succes.
Am citit cu interes acest subiect pentru ca fac documentatie intensa pentru lucrarea mea de licenta
Te rog ffff mult daca mi-ai mai putea recomanda ceva documentatie despre SOA ti-as fi recunoscatoare 4ever
SOA. Customer/service centric.
* “neintelegerea cerintelor de performanta specifice”
* “lipsa unei fundatii bazate pe XML”
* “lipsa unui plan de tranzitie la SOA”
* “lipsa standardizarii”
* “neintelegerea diferentelor dintre SOA si arhitecturile traditionale”
Toate acestea nu constituie o problema, din prisma unui integrator SOA/BPM. Nu am idee daca ai fost implicata in vreun proiect de orchestrare, insa te asigur ca toate nemultumirile tale se rezuma doar la integrator si competenta sa.
Lucrezi in domeniu?
Daca te pasioneaza subiectul, putem discuta. Imi face placere.
Nu prea gasesti analisti sau consultanti in domeniul asta. Cel putin, nu la noi.
Ok. Insa asta fac zi de zi. De aici si interesul.
February 22, 2008 at 10:57 pm
Perfect de acord…. Si chiar mai mult decat atat, s-a demonstrat clar ca in urma procesului metamorfozic de introspectie a luminii sub un unghi de refractie alfa, tendinta de inductie a campului electrostatic este afectata intr-o mare masura si fotosensibilitatea tubului cinescopic care se suprapune fasciculului convergent de lumina concava, rezultand astfel o vasta si infinita arie de retrospectie circulara! Esti de acord?