Arhitectura Soa și Integrare de Aplicatii Web

Universitatea POLITEHNICA București

Facultatea Automatică și Calculatoare

Departamentul Automatică și Informatică Industrială

LUCRARE DE CERCETARE

Arhitectura SOA și integrare de aplicatii Web

Coordonator Absolvent

Sl.dr.ing. Munteanu Calin Nicolae Vasluian

Anul absolvirii, 2017

Cuprins

CAPITOLUL 6. Prezentarea instrumentelor de dezvoltare

6.1 IBM WebSphere ………………………………………………………………………………..

6.2 WebSphere MQ …………………………………………………………………

6.3 WebSphere Message Broker …………………………………………………………………

6.4 Aplicația în sine

CAPITOLUL 6 . Prezentarea instrumentelor de dezvoltare

6.1 IBM WebSphere

În contextul actual economic dur, companiile continuă să se uite la SOA ca la un fundament pentru agilitatea și alinierea IT- ului la obiectivele afacerii. Fie pornind de la un proiect SOA de bază sau de la un proiect mai cuprinzător și avansat la nivel de intreprindere, organizațiile găsesc conectivitatea și integrarea SOA fundamentale pentru orice legătură între procesele de afaceri, aplicații precum și informații. Deși fiecare proiect SOA are obiectivele și arhitectura sa, aproape fiecare se aliniază către una sau mai mult de trei dintre afacerile majore sau nevoile majore IT. Pentru furnizare rapidă, flexibilă, acces fiabil la informații în cadrul organizației, de cele mai multe ori companiile oferă pârghii la nivelul serviciilor intreprinderilor (ESB – enterprise service bus); permițând încrederea,

gestiunea și securitatea în cadrul aplicațiilor de afaceri ce necesită vizibilitate și conducere. Companiile își extind conectivitatea SOA către parteneri și clienți, ușurând activitatea

de afaceri a organizațiilor de clienți, parteneri și furnizori.

Software-ul IBM WebSphere oferă o abordare IBM Smart SOA care să ușureze complexitatea IT împovărătoare asociată cu conectivitatea punct la punct și integrarea, menținând în același timp cele mai înalte niveluri de fiabilitate. Drept urmare, departamentul IT este capabil să furnizeze la costuri eficiente aplicații pentru a îmbunătăți fluxul de informații în cadrul organizației, poziționând afacerea într-um mediu dinamic care se adaptează cerințelor și permite IT-ului să se conecteze la noile tehnologii care sunt la cerere în ziua de azi. Rezultatul final pentru afacere este suplimentarea veniturilor și

un mai mare randament al investițiilor.

Deci, de unde începem? Ca în cazul multor companii astăzi, această agilitate și economisire începe cu un model SOA denumit ESB care oferă un nivel fundamental de mesaje fiabile, în plus servicii cu valoare adăugată pentru conectarea inteligentă a serviciilor și sistemelor din întreaga intreprindere. Împreună, denumim acest ESB “mesagerie și îmbogățire”

IBM WebSphere oferă soluții universale și garantează livrarea serviciilor, mesajelor, procesul de acțiuni, fișierele și evenimentele care să ajute organizațiile să își reducă costurile și perturbările de proces asociate cu pierderea datelor, precum și cu adresele de securitateși respectarea obiectivelor. Mai multdecât atât, cu soluții pentru mesajele cu latență mică, clienții IBM WebSphere sunt capabili de a anunța date confidențiale senzitive care sunt critice în luarea deciziilor.

IBM WebSphere ajută organizațiile să reducă riscul pierderii de informații și de necesitatea de a reconcilia comunicațiile IT prin utilizarea de sisteme de tip Queing tranzacționale care să îi ajute să își păstreze integritatea mesajelor în rețea. Suportă o soluție unificată care este dovedită și fiabilă; organizațiile pot fi asigurate că nu există costuri inutile și că procesul de perturbări este minim. Soluțiile IBM WebSphere permit servicii de mediere și îmbunătățire a capabilitățior, ca un mijloc de a perfecta satisfacerea cererii crescânde de implementare: REST (Representional state transfer), Java Script și XML, HTTP, PHP sau alte tehnologii Web 2.0 ale sistemelor, multe dintre acestea nefiind vreodată concepute pentru acest tip de integrări. Această legătură permite deschiderea către noi oportunități, o gamă largă de servicii noi ale activelor deja existente, permițând afacerii să crească în valoare.

6.2 WebSphere MQ

Websphere MQ este o modalitate de tranzitie intre componentele unui SOA.

Un istoric al versiunilor de WebSphere MQ cu functionalitatile lor:

Figura 10 – Versiunile de Websphere MQ

Ce realizeaza un WebSphereMQ :

Ofera servicii de mesagerie pentru aplicații și servicii Web care au nevoie pentru a face schimb de date și evenimente cu urmatoarele avantaje/caracteristici:

fiabilitate

integritate tranzacțională

consistența

independent de timp

ușurință și viteză

flexibilitate

de înaltă performanță

securitate

scalabilitate

Figura 11 – Legatura din aplicatii si WebSphere MQ

Cum functioneaza WebSphereMQ:

Serviciile de mesagerie sunt bazate pe cozi(Queues) care stocheaza si trimit date pe baza unor comenzi simple de programare.

Utilizează tehnica de baze de date a comiterii în două faze a tranzactiilor pentru a se asigura ca mesajele nu se pierd si nu sunt duplicate.

Foloseste mecanismul “publish/subscribe” pentru a routa dinamic mesajele pe baza unor topicuri sau a lu unor cuvinte cheie.

Foloseste “multi-procesor threading si clustering” pentru a accelera debitul de mesaje.

Figura 12 – Legatura intre aplicatii facute prin cozi care stau pe un server MQ

Programele/aplicatiile comunica punand mesaje in cozi:

Figura 13 – Comunicare "One Way"

Figura 14 – Comunicare "Two ways"

Figura 15 – Relatie "One to many" Figura16 -Relatie”Many to one”

Ce este un mesaj:

● Un mesaj este considerat a fi unitatea de date care urmează să fie mutată de la o aplicație la alta

● Un mesaj este construit de către o aplicație

● Un mesaj este consumat de către o altă aplicație

● Mesajul poate conține orice tip de date:

 date binare

 un clip video, un cântec, o fotografie, etc …

 date de tip text

– Text brut

– XML

 date structurate (structuri C, COBOL , obiecte Java serializat)

 data sursă este alegerea aplicatiei

Figura 17 – Structura unui mesaj MQ

Structura unui mesaj MQ este formata din:

Message Headers

Un set de atribute ale mesajelor intelese si interpretate de Queue Manager(Manager al cozilor):

Unique Message Id

Correlation Id

Routing Information

Reply Routing Information

Message Priority

Message Persistence

 Persistent

 Non-persistent

Message Codepage

Message Format

Etc…

Message Properties

Valori arbitrare associate cu mesajul, dar nu o parte a corpului mesajului :

Proprietăți pot fi numere întregi, siruri de caractere, boolean, etc

Aplicațiile destinație nu le văd decat daca doresc asta

Permite declarația explicită a relațiilor dintre mesaje

de exemplu : Mesajul X este un raspuns la mesajul Y

Message Data

Orice secventa de bytes

definite în programul sursa

înțelese de către programul destinatie

nu este semnificativ pentru Queue Manager

Poate conține date

Structurate:

XML, Tagged, Delimitat Tagged, C sau Cobol definite, etc

Nestructurate

Binare – o înregistrare video, un imagine, etc

Orice conținut

Caracteristicile unei cozi(Queue):

Mesajele sunt livrate asincron catre o coada.

Un loc pentru a tine mesajele

Crearea cozilor se face:

Predefinite

Creare dinamica

Acesul la mesaje:

FIFO(First in first out)

Prioritate(Fifo in interiorul prioritatilor)

Direct

Acess distructiv si non distructiv

Accesate in paralel de catre aplicatii(gestionate de catre Queue Manager)

Figura 18 – Queue Design

Caracteristicile unui Queue Manager:

Figura 19 – Queue Manager

● Mesajele pot fi scrise in fișierele cozilor

● Mesajele persistente sunt logate

● Mesajele persistente sunt întotdeauna recuperabile

● Logarea are implicații asupra performanței

● Mesajele non-persistente au 2 clase de servicii:

Mesajele sunt păstrate pe toata durata vietii a Queue Managerului

Mesajele pot supraviețui unei opriri și reporniri al Queue Managerului

Figura20 – Persistarea Mesajelor

Caracteristicile unui canal(Channel):

● Queue Manager catre Queue Manager:

Uni-directional

De obicei definit în perechi, de exemplu un singur expeditor , un singur receptor

Asincron

● Client catre Queue Manager

Bi-directional

Definit ca un singur canal

Sincron

● Un element constitutiv pentru un ESB fiabil

Caracteristici:

WebSphere MQ suporta cea mai larga gama de API-uri , limbaje de programare si platforme OS

Ofera singurul motor JMS care poate fi implementat pe orice server JEE care respecta standardele

Ofera interfete ale web service-urilor imbogatite pentru clientii care au nevoie sa transporte mesajul de tipul SOAP

Ofeta o gama larga de calitati ale serviciilor si metodelor de mesagerie

Suporta monitorizatie tranzactiilor majore si gestionarea bazelor de date

Ofera sistemeul de mesagerie cel mai scalabil si usor de gestionat

Asigura transactionalitatea livrarii mesajului de la un capat la altul

Figura 22 – API-uri , limbaje de programare si sisteme de operare suportate

Imaginile de mai jos reprezinta GUI-ul , tool-ul cu care se realizeaza crearea canalelor , a cozilor si a Queue Managerilor

Figura23 – Pagina de start

Figura 24 – Consola de Administrare

6.2 WebSphere Message Broker

Notiuni de baza ale WebSphere Message Broker:

Flexibil , functionalitate inalta , motor puternic pentru ESB

Routare,tranformare,augmentare mesaje

Excelent,suporta integrarea cu baza de date

Suporta procesarea mesajelor si evenimentelor de la un punct la altul

Suportat pe o larga plansa de platforma hardware

Ofera suport pentru o multime de protocoale , precum si conversia intre aceste protocoale precum:

WebSphere MQ

Web Services

Files

JMS Queued,

JMS Non-Queued (TCP/IP)

Integrated WebSphere Adapter support for popular EIS systems

TCP/IP Sockets

GUI(Graphic User Interface) folosit pentru dezvoltarea integratii si administrarea sistemelor

Bazat/dezvoltat pe Eclipse

Ofera perspective variate pentru ca diferite taskuri sa fie realizate

Brokerul este un set de procese de aplicație care gazduiesc si pornesc fluxurile de mesaje.Când un mesaj ajunge la broker de la o aplicație de business, brokerul procesează mesajul înainte de al trimite la una sau mai multe aplicații.Brokerul routeaza , transforma si manipuleaza mesajele conform unei logici definite in flowuri. Brokerul foloseste WebSphereMQ ca mechanism de transport pentru comunicarea cu Configuration Manager de unde preia informatii despre configurari si comunica cu orice alt broker cu care este asociat.Fiecare broker are o baza de date unde stocheaza informatiile de care are nevoie sa proceseze mesajele la pornire.

Figura 25 – Privire de ansamblu a brokerului

O data ce mesajele sunt trimise catre broker, ele sunt tranformate, routate si trimise mai departe. Aceste operatii sunt realizate de catre un “Message Flow”.

Figura 26 – Traseul unui mesaj

Message Flows:

● Secvente de pasi procesati pentru a transforma/routa un mesaj pe parcursul trimiterii catre broker

● Compuse din noduri individuale care sunt legate intre ele

● Transactionale

● Reutilizabile

● Sofisticat create usor de folosit GUI-ul

Figura 27- Message Flow – exemplu

Figura 28 – Nod de transformare al mesajelor

Deploierea:

● Variatele obiecte dezvoltate trebuiesc grupate impreuna pentru a fi deploiate

● Pentru a fi deploiate se va creea o arhiva(Broker Archive file)

● Arhiva “.bar file” va fi creata, populata si apoi deploiata pe brokerul dorit

● Toolkit-ul trimite requestul de depoiere catre Config Manager care va comunica cu brokerul dorit

Figura 29 -Procesul de deploiere

Mesaje care vor fi folosite de flow se vor constitui in Message Set-uri. Se vor folosi urmatoarele metoda de parsare ale mesajelor:

● BLOB – fara structura , doar o secventa de bytes

● XMLNSC – mesaje XML

● SOAP – pentru mesaje SOAP si HTTP

● MRM

● DataObject

● MIME

● JMSMap, JMSStream

Figura 30 – Arborele logic al unui mesaj MQ

Figura 31 – Modele de mesaje

Websphere Message Broker ofera o varietate de noduri separate pe clase:

 Websphere MQ:

MQInput

MQOutput

MQReply

MQGet

 JMS(Java Message Service):

JMSInput

JMSOutput

 HTTP:

HTTPInput

HTTPOutput

SoapInput

SoapRequest

SoapReply

 Construction:

Mapping

Compute

.NetCompute

JavaCompute

PhpCompute

 Validation

Validation

 Database:

DatabaseInput

DatabaseRetrieve

Figura 32 – Totalitatea nodurilor continute de WebSphere Message Broker

Grupurile de executare(Execution Groups)

Acestea ofera posibilitatea ca flowurile din interiorul unui broker sa fie grupate impreuna. Fiecare broker contine un execution group ca default. Grupuri de executare aditionale pot fi create cate vreme au nume unice in interiorul unui broker. Fiecare grup este un proces separat al sistemului de operare iar fiecare continut al unui grup ramane separate de continutul unui alt grup in interiorul aceluiasi broker. Acest lucru este util pentru a izola informatiile pentru securitate deoarece flowurile se executa in spatii de memorie diferite.Pentru performanta este ideal ca fiecare flow sa fie in mai multe grupuri.

Similar Posts