Sunteți pe pagina 1din 29

Universitatea Politehnica

Facultatea: Automatica si Calculatoare


Master: Managementul si protectia informatiei,
Anul I , Sem. I

UTILIZAREA TEHNOLOGIILOR JAVA


SI SQL IN DEZVOLTAREA
ARHITECTURILOR MULTI-TIER
- Raport Cercetare -

Coordonator :
Sl.dr.ing. Mocanu Stefan Alexandru

Student :
Mincu Cristian Marian

Cuprins :

1. Limbajul de programare Java


2. Arhitectura Multi-tier

Bucuresti 2014

3. Tehnologiile Java utilizate


3.1. Swing framework
3.2. Spring & MVC framework
3.3. Server web java
3.4. Tehnologii web incorporate
4. Platforma Android
5. Protocoale de comunicare client-server

1. Limbajul de programare Java

Java este o tehnologie inovatoare lansat a de compania Sun Microsystems in


1995, care a avut un impact remarcabil asupra intregii comunitatii a dezvoltatorilor de
software, impunandu-se prin calitatii deosebite cum ar fi simplitate, robustete si nu in ultimul
rand portabilitate. Denumita initial OAK, tehnologia Java este formata dintr-un limbaj de
programare de nivel inalt pe baza caruia sunt construite o serie de platforme destinate
implementarii de aplicatii pentru toate segmentele industriei software.
2

Tehnologia Java este alcatuita dintr-un conglomerat de concepte dintre care amintim
:

limbajul de programare Java dezvoltat pe baza paradigmei obiect orientate;


platforma de dezvoltare Java consituita din masina virtuala Java JVM si setul de
pachete de dezvoltare oragnizate in Java Application Programming Interface.

Java este un limbaj de programare de nivel nalt, dezvoltat de JavaSoft, companie n


cadrul firmei Sun Microsystems. Dintre caracteristicile principale ale limbajului amintim:

simplitate Java este uor de nvat, caracteristicile complicate (suprancrcarea


operatorilor, motenirea multipl, abloane) ntlnite n alte limbaje de programare
sunt eliminate.
robustee, elimin sursele frecvente de erori ce apar n programare prin eliminarea
pointerilor, administrarea automat a memoriei i eliminarea fisurilor de memorie
printr-o procedur de colectare a 'gunoiului' care ruleaz n fundal. Un program
Java care a trecut de compilare are proprietatea c la execuia sa nu "crap
sistemul".
complet orientat pe obiecte - elimin complet stilul de programare procedural; se
bazeaz pe ncapsulare, motenire, polimorfism.
uurin n ceea ce privete programarea n reea
securitate, este cel mai sigur limbaj de programare disponibil n acest moment,
asigurnd mecanisme stricte de securitate a programelor concretizate prin:
verificarea dinamic a codului pentru detectarea secvenelor periculoase, impunerea
unor reguli stricte pentru rularea programelor lansate pe calculatoare aflate la
distanta, etc
este neutru din punct de vedere arhitectural
portabilitate, cu alte cuvinte Java este un limbaj independent de platforma de lucru,
aceeai aplicaie rulnd, fr nici o modificare, pe sisteme diferite cum ar fi
Windows, UNIX sau Macintosh, lucru care aduce economii substaniale firmelor
care dezvolt aplicaii pentru Internet. Sloganul de baz este: Write once, run
anywhere
compilat i interpretat
asigur o performan ridicat a codului de octei
conine o librrie de clase i interfee pentru domenii specifice cum ar fi
programarea interfeelor utilizator (JFC, AWT, Swing), programare distribuit
(comunicare TCP/IP, CORBA, RMI etc.)
permite programarea cu fire de execuie (multithreaded)
dinamicitate
este modelat dup C i C++, trecerea de la C / C++ la Java fcndu-se foarte uor.
face diferena ntre literele mici i mari (este case sensitive)
permite dezvoltarea aplicaiilor pentru Internet crearea unor documente Web
mbuntite cu animaie i multimedia.
Java Development Kit (JDK) este disponibil gratis
3

n funcie de modul de execuie al programelor, limbajele de programare se mpart n


dou categorii :
interpretate: instruciunile sunt citite linie cu linie de un program numit
interpretor i traduse n instruciuni main; avantaj: simplitate; dezavantaj: viteza
de execuie redus;
compilate: codul surs al programelor este transformat de compilator ntr-un cod
ce poate fi executat direct de procesor; avantaj: execuie rapid; dezavantaj: lipsa
portabilitii, codul compilat ntr-un format de nivel sczut nu poate fi rulat dect
pe platforma pe care a fost compilat.
Programele Java sunt att interpretate ct i compilate.
Codul de octei este diferit de codul main. Codul main este reprezentat de o
succesiune de 0 i 1; codurile de octei sunt seturi de instruciuni care seamn cu codul scris
n limbaj de asamblare. Codul main este executat direct de ctre procesor i poate fi folosit
numai pe platforma pe care a fost creat; codul de octei este interpretat de mediul Java i de
aceea poate fi rulat pe orice platform care folosete mediul de execuie Java.
Fazele prin care trece un program Java sunt:

Platforme de lucru Java


Limbajul de programare Java a fost folosit la dezvoltarea unor tehnologii dedicate
rezolvarii unor probleme din cele mai diverse domenii. Aceste tehnologii au fost grupate in
asa numitele platforme de lucru, ce reprezinta seturi de librarii scrise in limbajul Java, precum
si diverse programe utilitare, folosite pentru dezvoltarea de aplicatii sau componente destinate
unei anume categorii de utilizatori.

J2SE (Standard Edition)

Este platforma standard de lucru ce ofera suport pentru crearea de aplicatii


independente si appleturi. De asemenea, aici este inclusa si tehnologia Java Web Start ce
furnizeaza o modalitate extrem de facila pentru lansarea si instalarea locala a programelor
scrisa in Java direct de pe Web, oferind cea mai comoda solutie pentru distributia si
actualizarea aplicatiilor Java.

J2ME (Micro Edition)

Folosind Java, programarea dispozitivelor mobile este extrem de simpla,


platforma de lucru J2ME oferind suportul necesar scrierii de programe dedicate acestui scop.
4

J2EE (Enterprise Edition)

Aceasta platforma ofera API-ul necesar dezvoltarii de aplicatii complexe, formate


din componente ce trebuie sa ruleze in sisteme eterogene, cu informatiile memorate in baze de
date distribuite, etc.
Tot aici gasim si suportul necesar pentru crearea de aplicatii si servicii Web, bazate
pe componente cum ar fi servleturi, pagini JSP, etc.

Diagrama conceptuala a structurii Java developer Kit

2. Arhitectura multi-tier
Arhitectura multi-tier este o arhitectura client/server cu mai multe niveluri. n
acest arhitectur componenta server este la rndul ei client pentru o alt component
server.
Aplicaiile distribuite N-Tier se refer la folosirea oricrui numr de combinaii ntre
nivele Hardware i/sau nivele Software cu scopul de a furniza o colecie modularizat de
servicii de informaii. Pot exista astfel nivele de: client, interfa, agent, tranzacie, servere de
date etc. De asemenea, aceste nivele opereaz ca uniti logice, pe aceeai main sau pe un
5

numr oarecare de maini, acest lucru ducnd la o flexibilitate i scalabilitate crescute ale
sistemului.
O astfel de abordare a unei aplicaii permite:
tot mai mare parte a aplicaiei este eliminat din partea clientului, ducnd astfel la
situaia unui thin client;
deprtarea clientului de date i prelucrarea lor;
nivelul client are ca sarcin doar manevrarea interfeei grafice cu utilizatorul;
integrarea diverselor colecii de resurse ntr-un sistem unic.
Aplicaiile distribuite N-Tier pot fi create folosind o larg varietate de limbaje de
programare, sisteme de operare i platforme.
Scopul unei asemenea arhitecturi este acela de a permite fiecrui nivel al aplicaiei s
fie dezvoltat, dirijat, instalat, extins, absolut independent de celelalte nivele.
Java, ca limbaj i main virtual, este un nou tip de client n sistemele pe 2 sau mai multe
nivele. Deoarece noul client poate rula pe orice computer i sistem de operare, software-ul
ncepe s fie scris nu pentru aplicaii pe 2 sau 3 nivele ci pentru N nivele.

Arhitectura Middleware
Arhitectura Middleware reprezint o soluie software pe un nivel intermediar care
ofer servicii pentru dezvoltarea aplicaiilor distribuite.
Arhitectura Middleware simplifica constructia sistemelor distribuite:

rezolva problemele de eterogenitate


faciliteaza comunicatia si coordonarea componentelor distribuite
solutioneaza probleme de toleranta la defecte
rezolva probleme de securitate.

Diagrama arhitecturii multi-tier

3.Tehnologiile Java utilizate


De la aparitia limbajului Java, bibliotecile de clase care ofera servicii grafice au
suferit probabil cele mai mari schimbari in trecerea de la o versiune la alta. Acest lucru se
datoreaza, pe de o parte dificultatii legate de implementarea notiunii de portabilitate, pe de
alta parte nevoii de a integra mecanismele GUI cu tehnologii aparute si dezvoltate ulterior,
cum ar fi Java Beans.
Interfata grafica cu utilizatorul (GUI), este un termen cu inteles larg care se refera la
toate tipurile de comunicare vizuala intre un program si utilizatorii sai. Aceasta este o
particularizare a interfetei cu utilizatorul (UI), prin care vom intelege conceptul generic de
interactiune dintre program si utilizatori.
Limbajul Java pune la dispozitie numeroase clase pentru implementarea diverselor
functionalitati UI, insa ne vom ocupa in continuare de cele care permit realizarea intefetei
grafice cu utilizatorul (GUI).

3.1. Swing
Tehnologia Swing face parte dintr-un proiect mai amplu numit JFC (Java Foundation
Classes) care pune la dispozitie o serie intreaga de facilitati pentru scrierea de aplicatii cu o
interfata grafica mult imbogatita functional si
estetic fatta de vechiul model AWT. In JFC sunt incluse urmatoarele:
Componente Swing
Sunt componente ce inlocuiesc si in acelasi timp extind vechiul set oferit de modelul AWT.
Look-and-Feel
Permite schimbarea infatisarii si a modului de interactiune cu aplicatia
in functie de preferintele fiecaruia. Acelasi program poate utiliza diverse moduri Look-andFeel, cum ar fi cele standard Windows, Mac, Java, Motif sau altele oferite de diversi
dezvoltatori, acestea putand fi interschimbate de catre utilizator chiar la momentul executiei .
Accessibility API
Permite dezvoltarea de aplicatii care sa comunice cu dispozitive utilizate
de catre persoane cu diverse tipuri de handicap, cum ar fi cititoare
de ecran, dispozitive de recunoastere a vocii, ecrane Braille, etc.
Java 2D API
Folosind Java 2D pot fi create aplicatii care utilizeaza grafica la un
nivel avansat. Clasele puse la dispozitie permit crearea de desene complexe,
efectuarea de operatii geometrice (rotiri, scalari, translatii, etc.),
prelucrarea de imagini, tiparire, etc.
Drag-and-Drop
Ofera posibilitatea de a efectua operatii drag-and-drop ntre aplicatii
Java si aplicatii native.
Internat ionalizare
Internationalizarea si localizarea aplicatiilor sunt doua facilitati extrem
de importante care permit dezvoltarea de aplicatii care sa poata fi configurate
pentru exploatarea lor in diverse zone ale globului, utilizand
limba si particularitatile legate de formatarea datei, numerelor sau a
monedei din zona respectiva.

3.2. Spring MVC


Spring framewaork este o platform pentru dezvoltarea i rularea de aplicaii care poate fi
mprit n 2 moduri majore de funcionalitate. n centrul Spring se afl un Kernel care este
responsabil cu configurarea, administrarea i imbuntirea componentelor Spring n aplicaii.
Pe lang acesta, Enterprise Service Layer ofer funcionalitate i abstracii asupra
caracteristicilor enterprise cum ar fi tranzacii, acces de date, mesagerie, acces la distan i
altele.
Comparativ cu cadre similare bazate pe componente cum ar fi EJB, unul dintre difereniatorii
cheie al containerului de baza din Spring este acela c elementele administrate sunt de obicei
POJO-uri (Plain Old Java Object) care nu necesit implementarea de interfee speciale sau
cunotine despre ciclul de via al containerului. Aceste obiecte sunt configurate folosind
principiul Inversion of Control (IoC), principiu ce nseamn c dezvoltatorii nu leag direct
obiectele prin cod java, ci se bazeaz pe container pentru crearea, scrierea i administrarea
obiectelor.
Unele beneficii ale IoC, cnd sunt mbinate cu abstraciile enterprise Spring, includ:

Decuplarea componentelor de mediul de execuie;

Separarea datelor de configurare de codul aplicaiei;

Abilitate facil de a testa componentele n izolare folosind teste pe unitate, sau n


combinaie prin teste de integrare, far modificarea codului existent;

Abilitatea de a schimba POJO-urile existente printr-o modalitate transparent i


declarativ de injectare de funcionaliti n interiorul acestora, cum ar fi suport
transparent, securitate, audit, creare de loguri, cache i altele.

Toate caracteristicile spring pot fi instalate ntr-un singur container web free cum ar fi Tomcat,
ntruct facilitile containerului EJB sunt obionale. ntr-un scenariu web, gruparea clasic
este un fisier WAR coninnd fiierele JAR. Componentele majore ale unei aplicaii web
Spring clasice includ:

Componentele administrate spring: folosind facilitile de configurare n timpul


execuiei, orice obiect poate fi administrat de Spring i orchestrat de alte caracteristici
spring cum ar fi securitate, suport pentru tranzacii, loguri, i multe altele.
Complexitatea legrii componentelor este ridicat din componente i permite
dezvoltatorilor s se concentreze la scrierea aplicaiilor n sine.

API-urile i funcionalitatea serviciilor spring enterprise Funcionalitatea i


abstraciile oferite de Spring asupra variatelor servicii enterprise simplific
complexitatea aplicaiei i scade timpul de dezvoltare. Aceste servicii sunt accesibile
prin API-uri programatice, sau transparent n momentul n care componentele
administrate spring sunt grupate pentru a oferi aceast funcionalitate.
9

Componentele i codul care nu sunt administrat de Spring: Spring este folosit doar
pentru a lega i administra obiecte unde se adaug valori concrete. Unele clase de
obiecte nu sunt administrate, cum ar fi obiecte de transfer de date, obiecte de domeniu,
cod third-party, etc. Aceste obiecte nc mai pot folosi serviciile API enterprise Spring
ntr-o manier programatic.

Cadre web: MVC-ul Spring reprezint un cadru web integral care este cu uurin
legat la o aplicaie spring existent. Spring suport de asemenea orice alt cadru, i
include clase de integrare direct pentru Struts, JSF, i alte platforme gata fcute.

Orice container web standard poate susine o aplicaie web spring. SpringSource recomand
Apache Tomcat care s-a dovedit a fi popular, rentabil, fr cost, sau cu un cost mic de hostare
a aplicaiilor bazate pe spring.

Arhitectura spring
Spring const n 7 module bine definite:

Spring AOP Una dintre componentele cheie ale spring este cadrul AOP. Acesta este
folosit pentru a oferi servicii enterprise declarative, mai ales ca un nlocuitor pentru
serviciile EJB declarative. Cel mai important asemenea serviciu este managementul
tranzacional declarativ. Alt utilitate a AOP este de a permite utilizatorilor s
implementeze aspecte personalizate, completnd utilitatea OOP-ului cu AOP.

Spring ORM Pachetul ORM este legat de accesul la baza de date. Ofer niveluri de
integrare pentru mapri obiectual-relaionale populare, incluznd JDO, Hibernate i
IBatis.

Spring Web Acesta este o parte a modulului spring de dezoltare de aplicaii web
care include Spring MVC.

Spring DAO Suportul DAO (Data Access Object) n spring are ca rol principal
standardizarea accesului de date folosind tehnologii ca JDBC, Hibernate i JDO.

Spring Context Acest pachet este construit mprejurul pachetului beans pentru a
adauga suport pentru surse de mesaje i pentru ablonul Observer, i abilitatea
obiectelor aplicaiilor de a obine resurse folosind un API consistent.

Sproig Web MVC Ofer implementrile MVC pentru aplicaii web.

Spring Core Aceast component este cea mai important a cadrului spring. Suport
injecia de dependene. BeanFactory ofer un ablon de construcie care separ
dependenele ca iniializarea, creearea i accesarea obiectelor din logica programului
propriu.

10

3.3

Server web Java

Java Server Faces este un framework folosit pentru dezvoltarea de aplicatii web
gazduita in cadrul unui web server. A fost creat de Java Community Process (JPC) format
din experti in dezvoltarea de aplicatii web din diferite grupuri, ca: Jakarta Struts, Oracle,
Sun, IBM, ATG etc.

Nivel Browser / Client (HTML)


HTML
Nivel Web Server (Apache, PHP, TOMCAT)
XML
(parametrii)

URL (date)
Nivel Achiziie (Java)

XML
(parametrii)
Administrator
Arhitectura aplicaiei cu nivelele aferente: Achiziie Server - Client

JSF face parte din sabloanele Web bazate pe MVC (Model-View-Controller) design
pattern. Aplicatiile create folosind framework-ul JSF sunt usor de dezvoltat si de intretinut
comparativ cu alte aplicatii create folosind JSP si Servlet.
Ce ofera JSF:

permite crearea UI folosind componente standard, reutilizabile


11

permite accesarea si manipularea componentelor UI folosind taguri JSP

salveaza starea componentelor UI cnd clientul face o solicitare pentru o nou


pagin i o restaureaza cnd solicitarea este returnat (asigura persistenta starii
la nivel Web)

ofera un model de interactiune bazat pe evenimente

furnizeaza mecanisme pentru dezvoltarea de componente proprii

separa prezentarea componentelor de functionalitate, astfel incat acestea sa


poata fi utilizate in pagini HTML, WML, etc

simplifica modul de creare a IDE-urilor pentru dezvoltarea de aplicatii Web

Componente JSF:

Un set de API pentru reprezentarea componentelor interfeei utilizatorului (UI)


i administrarearea strii lor, tratarea evenimentelor i validarea intrrilor,
convetirea valorilor, definirea navigarii in pagini, i suport pentru
internationalizare i accesibilitate

Librarii de taguri JSP folosite la crearea componentelor UI

1. Caracteristi
JSF este un framework orientat pe partea de server, nu pe partea de client. Acest lucru
inseamna ca in arhitectura JSF, majoritatea evenimentelor legate de UI management sunt
tratate pe partea de server. Un exemplu de framework UI orientat pe partea de client este
Swing.
O caracteristica importanta a framework-ului JSF este faptul ca se separa tipurile de
activitati efectuate la crearea unei aplicatii web:

Design - editarea paginilor JSP, HTML

Dezvoltare - implementarea logicii aplicatiei

Crearea componentelor UI - componente ce vor fi utilizate de designeri


pentru realizarea UI

Arhitectura - asigurarea fluxului aplicatiei, a scalabilitatii, configurare, etc.

12

Caracteristici generale pe care functioneaza framework-ul:

Definirea regulilor de navigare ntre pagini JSF are propriile componente


care faciliteaza navigarea printe pagini si ofera posibilitatea controlului
navigarii.

Validator este componenta care se ocupa cu validarea datelor de intrare

Convertors - JSF converteste valori de tip date si numere in valori ce pot fi


afisate cu usurinta (strings)

Messages folosite pentru afisarea de mesaje de success/failure


utilizatorului

Beans se ocupa de logica aplicatie; sunt obiecte de pe partea de server


asociate unor UI components folosite in pagini web

Event handling JSF simplifica tratarea evenimentelor

Internationalizare

Custom GUI controls JSF ofera un set de API si taguri associate pentru a
crea forme HTML cu interfete complexe

Comparatii intre JSF si Struts:

Componente customizate JSF simplifica imbinarea unor componente


GUI complexe intr-o singura componenta flexibila; Struts nu ofera acest
avantaj

Suport mai bun pentru Ajax mai multe librarii third-party au support
pentru Ajax ( Apache Tomahawk, Jboss, RichFaces, Oracle ADF,
IceFaces).

Suport pentru alte tehnologii Struts este limitat doar la HTML si HTTP.

Accesarea componentelor beans dupa nume JSF ofera posibilitatea


asignarii de nume beans-urilor, iar apoi referirea acestora dupa nume.

Controller si bean definitions mai simple JSF nu necesita derivarea


claselor controller-ului sau a beans-urilor din anumite clase parinte (ex:
Action) sau folosirea anumitor metode (ex. execute)

Fisier de configurare mai simplu fisierul faces-config.xml este mai


simplu de folosit decat struts-config.xml

Foloseste componente, nu actiuni; asemanator cu Swing, diferit de Struts


13

3. Arhitectura framework-ului JSF


JSF este un User Interface framework orientat pe partea de server. In cazul in care un
client face o cerere, cererea ajunge prin intermediul retelei la server, unde framework-ul JSF
construieste o reprezentare UI si o afiseaza clientului in mark-up language-ul corespunzator
clientului. Userul interactioneaza cu pagina web si submite o cerere de procesare serverului.
Framework-ul JSF interpreteaza parametrii cererii, in decodeaza si ii converteste la
evenimente apoi le propaga catre logica de tratare a evenimentelor.
JSF este unul din framework-urile care se bazeaza pe structura Model-ViewController(MVC).
Ca orice alt framework bazat pe MVC, arhitectura JSF are propriul Front controller, numit
FacesServlet. Rolul acestui controller este de gatekeeper.
MVC este un model arhitectural folosit in ingineria software. El separa interfata
aplicatiilor web in trei parti: model, view si controller, rezultand astfel o aplicatie unde este
mai usor de modificat aspectul vizual sau nivelele inferioare ale regulilor de business fara a
afecta alte nivele.
Datele introduse de user, modelarea lumii externe si feedback-ul visual catre user sunt
tratate separat de fiecare componenta a modelului. Controlerul interpreteaza intrarile de la
mouse si tastatura si mapeaza aceste actiuni la comenzi care sunt trimise catre model sau/si
view pentru a efectua schimbarile corespunzatoare. Modelul prelucreaza unul sau mai multe
elemente, raspunde la interogari asupra starii lui si raspunde la instructiuni de schimbare a
starii. View-ul controleaza o zona din suprafata de afisat si este responsabil cu prezentarea
datelor catre user printr-o combinatie de grafica si text.
Model-ul este responsabil cu reprezentarea datelor si a actiunilor ce opereaza asupra
datelor de la nivelul Web al aplicatie. folosit pentru a controla informatiile si a notifica
observatorii cand aceastea se modifica. Pe langa controlarea informatiilor si notificarea
observatorilor cand starea acestora se modifica, modelul mai este folosit ca o abstractizare a
proceselor sau sistemelor din lumea reala. El surprinde nu numai starea unui proces sau a unui
sistem, ci si cum acesta functioneaza.

14

View-ul este reponsabil cu prezentarea rezultatelor catre utilizator. View-ul are o


relatie de corespondenta de 1 la 1 cu suprafata de afisare si stie cum sa afiseze continutul catre
utilizator. In plus, cand modelul se modifica, view-ul automat redeseneaza partea afectata
pentru a reflecta modificarile aparute. Componenta View este creata uzual folosind: pagini
JSP, taguri proprii, taguri definite de utilizator, JSTL, sabloane Velocity, Transformari XSLT.
Controler-ul reprezinta componenta prin care userul interactioneaza cu aplicatia.
Controller-ul primeste informatii de la user si instruieste model-ul si view-ul sa execute
actiuni bazate pe input-ul primit. In principiu, controller-ul este responsabil cu maparea
actiunilor efectuate de user la raspunsul care trebuie oferit de aplicatie. De exemplu, data
userul selecteaza un meniu item, controlerul trebuie sa determine cum ar trebui aplicatia sa
raspunda acestei actiuni.

Diagrama Model-View-Controller
Modelul, view-ul si controller-ul sunt strans legate intre ele si intr-un continuu contact.
Diagrama de mai sus ilustreaza modul de comunicare dintre cele trei componente. Modelul
comunica cu view-ul, fara sa stie informatii despre acesta, transmitandu-i notificari asupra
schimbarilor intamplate, iar view-ul comunica la randul lui cu modelul, dar acesta stie tipul
modelului observat, ceea ce ii ofera posibilitatea sa apeleze metodele modelului. View-ul
comunica deaseamenea si cu controlerul, dar acesta nu-i poate apela decat metodele din clasa
de baza. Controlerul comunica cu amandoua: model-ul si view-ul si stie tipul ambelor
componente, deoarece acesta trebuie sa stie sa raspunda corect la orice input primit de la user.
15

Arhitectura componentelor UI cuprinde cinci tipuri de modele:

Modelul claselor UI

Modelul de prezentare

Modelul de conversie

Modelul de tratare a evenimentelor

Modelul de validare

Modelul claselor UI

descriu functionalitatea componentelor UI prin extinderea clasei UIComponent


( ex. UICommand, UIForm, UIPanel, UIOutput, UIInput, UIMessage, UIColumn,
etc.)

Implementeaza interfete comportamentale precum: ActionSource, ValueHolder,


StateHolder, NamingContainer

Nu definesc reprezentarea grafica a componentelor

Modelul de prezentare:

Defineste reprezentarea grafica a componentelor UI prin folosirea de obiecte de tip


Renderer converteste componente din si in un limbaj markup specific

Claselor de tip UIComponent ii pot fi asociate mai multe tipuri de reprezentari

Modelul de conversie:

Componentele UI pot avea asociate date, memorate la nivelul serverului intr-un


bean

Datele componentelor sunt organizate astfel: - model: informatia propriu-zisa,


reprezentata printr-un tip de date Java (int, long, String); - prezentare:
reprezentarea la nivel de client astfel incat sa permita citirea/editarea informatiei

JSF va face automat conversia intre model si prezentare, si invers.

Modelul Event-Listener

Interactiunea utilizatorului cu componente UI genereaza evenimente

16

La aparitia unui eveniment, sunt notificate metodele claselor listener inregistrate


pentru componenta sursa a evenimentului

Modelul pentru validare:

Tipuri de validatori: -standard: referiti prin intermediul tagurilor de validare JSF,


include in corpul unui tag unei componente UI; -proprii: validarea din cadrul unei
componente bean

4. Limitele framework-ului

Documentatie limitata: in comparatie cu API-urile Servlet si JSP, JSF are foarte


putine resurse online, iar incepatori in domeniu considera ca documentatia JSP este
confuza si dezorganizata.

Mai putin transparenta: in aplicatiile JSF majoritatea activitatii se intampla in spate


in comparatie cu alte aplicatii Web bazate pe java

Nume de fisiere confuse paginile folosite in JSF se termina in .jsp, dar url-urile
folosite se termina in .faces sau .jsf, acestea pot cauza confuzii

Performanta scazuta - JSF nu poate fi folosit pentru aplicatii de mare performanta

Postback action - fiecare buton sau link activat va avea ca efect o actiune de
postback. Destul de problematic este exemplul in cazul in care sunt folosite
ferestre modale si o actiune de postback ca avea ca effect inchiderea respetivei
ferestre.

Componentele de tip dataTable solicita aceleasi date din bean la restore view
phase.Daca datele din bean sunt obtinute din baza de date, aceasta va avea impact
asupra performatei.

Nescalabil - foloseste obiecte de sesiune memoreaza starea componentei peste


request. Sunt cazuri in care este costisitoare replicarea variabilei de sesiune

5. Utilitatea framework-ului

17

Cand expertii JSF au inceput sa lucreze la specificatiile JSF, acestia vroiau sa creeze
un framework care sa indeplineasca anumite conditii.

Sa fie user-friendly sa ofere posibilitatea de a crea aplicatii web prin drag and
drop de componente UI (asemanator cu Swing)

Sa faca o distinctie clara intre UI component model si afisarea componentelor UI


folosind orice tip de client si orice protocol.

JSF sa lucreze cu JSP, dar si cu alte tehnologii

3.4 Tehnologii web incorporate


(HTML,CSS,Javascript,PHP,XML,SQL)

Limbajul de programare XML :


Rolul limbajului de programare n aplicaiile Android este acela de a crea interfee sau
un mijloc de interaciune a utilizatorului cu aplicaia devoltata n Java . Cu limbajul XML
se realizeaz layout-urile , meniurile , butoanele , afiarea textului dorit pe interfa grafic
a aplicaiei.
Extensible Markup Language, abreviat XML, descrie o clas de obiecte numite
documente XML i, parial, comportamentul unor programe de calculator care le proceseaz.
XML este o form restrnsa a SGML (Standard Generalized Markup Language). De
asemenea, XML poate fi considerat i un format de stocare a datelor.
Prin construcie, documentele XML sunt conforme cu documentele SGML.
Documentele XML sunt realizate din uniti de stocare, numite entiti. Un modul software
numit procesor XML este utilizat pentru a accesa structura i coninutul documentelor XML.
Procesorul XML ruleaz n spatele aplicaiilor care au ca facilitate
analizarea i accesarea con-tinutului documentelor XML. De aseme-nea, XML este
caracterizat de o specificaie care descrie comportamentul cerut unui procesor XML despre
cum trebuie s citeasc datele din documentele XML i ce informaii trebuie s furnizeze
aplicaiei n spatele creia ruleaz.
Origini i deziderate

18

XML a fost dezvoltat de ctre un grup de lucru (XML Working Grup - cunoscut la
nceput ca i SGML Editorial Review Board) format sub auspiciile Consoriului World Wide
Web (W3C), n anul 1996.
Scopurile proiectate pentru XML sunt:
Trebuie s fie simplu de utilizat pe Internet/Intranet;
Trebuie s suporte o mare varietate de aplicaii;
Trebuie s fie compatibil cu SGML;
Trebuie s fie uor de scris programecare vor procesa documente XML;
Numrul facilitilor opionale din XML sunt reduse la minimum, ideal, la zero;
Documentele XML trebuie s poat fi citite uor de ctre utilizatori;
Proiectarea XML ar trebui s fie pregtit rapid;
Designul XML trebuie s fie formal i concis;
Documentele XML trebuie s fie uor de creat.
Problemele apar atunci cnd dorim s schimbm date ntre aceste programe. Trebuie s
realizm programe de conversie care s transmit datele de la program la altul, ceea ce
nseamn timp, resurse i rata de erori mai mare. Mai mult, sunt cazuri n care datele
nu sunt portabile de pe o platform pe alta.
De aceea, s-a pus problema gsirii unui format comun de stocare a datelor care s poat fi
recunoscut de toate programele i care s fie portabil de pe platforma pe alta. Astfel, a aprut
ideea descrierii datelor cu marcaje, Tag-uri. Un exemplu de cod XML utilizat :
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

</TableLayout>

Structura logica a documentelor XML :


Prologul este primul element structural ntr-un document XML, optional. Prologul
consta din doua componente de baza, de asemenea optionale: declaratia XML si declaratia
tipului de document.
Declaratia XML identifica versiunea specificatiei XML cu care documentul va fi n
conformitate (versiunea analizorului care va parcurge documentul XML. De exemplu,
declaratia arata astfel:
<?xml version="1.0"?>
19

O declaratie XML poate contine de asemenea, specificarea setului de caractere utilizat n


documente.
<?xml version="1.0" encoding="UTF-8" ?>
n acest caz se utilizeaza setul de caractere UTF-8.
Declaratia tipului de document este alcatuita din meta-codul care indica regulile
gramaticale ale DTD (Document Type Definition) pentru o anumita clasa de documente.
Toate documentele din aceasta clasa, pentru a fi valide, trebuie sa respecte regulile impuse n
definirea tipului de document. Tipul de document poate, de asemenea, sa fie precizat ntr-un
fisier extern care contine toate partile DTD. Declaratia tipului de document trebuie sa apara
dupa declaratia XML si naintea elementului document. De exemplu:
<?xml version="1.0"?>
<!DOCTYPE Cont SYSTEM "cont.dtd">
Liniile de cod spun procesorului XML ca documentul este din clasa Cont si se conformeaza
regulilor stabilite n fisierul Cont.dtd

Limbajul SQL
SQL (Structured Query Language) este n prezent, unul din cele mai puternice
limbaje structurate pentru interogarea bazelor de date relaionale.
Este un limbaj neprocedural i declarativ, deoarece utilizatorul descrie ce date vrea
s obin, fr a fi nevoie s stabileasc modalitile de a ajunge la datele respective. Nu poate
fi considerat un limbaj de programare sau unul de sistem, ci mai degrab face parte din
categoria limbajelor de aplicaii, fiind orientat pe mulimi. Foarte frecvent, este utilizat n
administrarea bazelor de date client/server, aplicaia client fiind cea care genereaz
instruciunile SQL.
Lansat iniial de IBM. Standardizat prima dat de ANSI, apoi ISO. Actualmente, ISO
92. Pentru c exist o standardizare a limbajului SQL, multe SGBD (Oracle, Access, Sybase)
recunosc principalele instruciuni ale acestuia.
Caracteristicile adugate standardului se numesc extensii. De ex, n standard sunt
specificate 6 tipuri diferite de date pentru o BD SQL. n multe implementri, aceast list este
completat cu o diversitate de extensii. Fiecare implementare se numete dialect. Dialectul
ACCSES conine unele particulariti, fiind conceput mai mult pentru crearea interogrilor de
selecie.
Exist 3 metode de baz privind implementarea limbajului SQL:
apelare direct (Direct Invocation): const n introducerea instruciunilor direct de la
prompter
modular (Modul Language): folosete proceduri apelate de programele aplicaie
20

ncapsulat (Embedded SQL): conine instruciuni ncapsulate n codul de program


Instruciunile SQL pot fi grupate n:

instruciuni de definire a datelor, care permit descrierea structurii BD


instruciuni de manipulate a datelor: adaug, terge, modific nregistrri
instruciuni de selecie a datelor, care permit consultarea BD
instruciuni de procesare a tranzaciilor
instruciuni de control al cursorului
instruciuni pivind controlul accesului la date

n limbajul SQL standardizat de ISO nu se folosesc termenii formali de relaie, atribut,


tuplu, ci tabel, coloan, rnd.
Scrierea comenzilor SQL
O instruciuni SQL este format din cuvinte rezervate i cuvinte definite de utilizator.
Cuvintele rezervate constituie partea fix i se scriu exact cum este necesar. Cuvintele definite
de utilizator reprezint denumirile diverselor obiecte din BD.
Dei standardul nu o cere, majoritatea dialectelor cer terminator de instruciune (;).
Majoritatea componentelor nu sunt sensibile la tipul de litere (excepie important: cnd
datele au caracter literal.
Dei SQL este un limbaj cu format liber, o instruciune este mai lizibil dac se
utilizeaz indentarea i alinierea. De ex:

fiecare clauz dintr-o instruciune trebuie s nceap pe o linie nou


nceputul fiecrei clauze s fie aliniat cu nceputul celorlalte
dac o clauz are mai multe pri, fiecare parte trebuie s apar pe cte o linie separat
i trebuie indentat fa de nceputul clauzei

21

4. Platforma Android

Android este o platform software i un sistem de operare pentru dispozitive i


telefoanemobile bazat pe nucleul Linux, dezvoltat iniial de compania Google, iar mai
trziu deconsoriul comercial Open Handset Alliance. Android permite dezvoltatorilor s scrie
codgestionat n limbajul Java, controlnd dispozitivul prin intermediul bibliotecilor Java
dezvoltate de Google. Aplicaiile scrise n C i n alte limbaje pot fi compilate n cod ma in
ARM i executate, dar acest model de dezvoltare nu este sprijinit oficial de ctre Google.
Lansarea platformei Android la 5 noiembrie 2007 a fost anun at prin fondarea
OpenHandset Alliance, un consoriu de 48 de companii de hardware, software i
detelecomunicaii, consacrat dezvoltrii de standarde deschise pentru disp
ozitive mobile.
Google a lansat cea mai mare parte a codului Android sub licen a Apache, o licen de
tip free-software i open source.
Platforma este adaptabila la configuratii mai mari, VGA, biblioteci grafice 2D, biblioteci
grafice 3D bazate pe specificatia OpenGL ES 1.0 si configuratii traditionale smartphone.
Software-ul de baze de date SQLite este utilizat n scopul stocarii datelor
Android suporta tehnologii de conectivitate incluznd GSM/EDGE, CDMA, EV-DO,
UMTS, Bluetooth si Wi-Fi.
22

Navigatorul de web disponibil n Android este bazat pe platforma de aplicatii open


sourceWebKit.
Software-ul scris n Java poate fi compilat n cod masina Dalvik si executat de masina
virtuala Dalvik, care este o implementare specializata de masina virtuala conceputa pentru
utilizarea n dispozitivele mobile, desi teoretic nu este o Masina Virtuala Java standard.
Android accepta urmatoarele formate media audio/video/imagine: MPEG-4, H.264,
MP3,AAC, OGG, AMR, JPEG, PNG, GIF.
Android poate utiliza camere video/foto, touchscreen, GPS, accelerometru, si grafica
accelerata 3D.
Mediul de dezvoltare include un emulator de dispozitive, unelte de depanare, profilare de
memorie si deperformanta, un plug-in pentru mediul de dezvoltare Eclipse.
Similar cu App Store-ul de pe iPhone, Piata Android este un catalog de aplicatii care pot fi
descarcate si instalate pe hardware-ul tinta prin comunicatie fara fir, fara a se utiliza un PC.
Initial au fost acceptate doar aplicatii gratuite. Aplicatii contra cost sunt disponibile pe Piata
Android ncepnd cu 19 februarie 2009.
Android are suport nativ pentru multi-touch, dar aceasta functionalitate este dezactivata
(posibil pentru a se evita ncalcarea brevetelor Apple pe tehnologia touch-screen ).O
modificare neoficiala, care permite multi-touch a fost dezvoltata.
Android utilizeaz nucleul Linux, dar, conform Google, nu este sistem de operare Linux,
nu are nici un sistem de gestionare a ferestrelor nativ i nici nu suport ntregul set de
biblioteci standard Linux.
Android OS-Arhitectura

Arhitectura-stiva de layere, alcatuite din mai multe componente de program


Layerele sunt:

Applications layer

Framework services and libraries layer

Applications and most framework code executed in a virtual machine layer

Native libraries, daemons and services layer

Kernel-ul Linux, care include drivere pentru hardware, retea, accesul la fiierele din
sistem i comunicarea inter-proces.

23

SDK-ul Android include un set cuprinztor de instrumente de dezvoltare :program de


depanare, biblioteci, un emulator de receptor (bazat pe QEMU), documentaie,
mostre de cod, i tutoriale

Include, de asemenea, Java Development Kit, Apache Ant, i Python 2.2 sau o
versiune ulterioar.Mediul IDE este Eclipse (3.2 sau o versiune ulterioar);foloseste
Android Development Tools (ADT) Plugin.

Ce este Android OS-Arhitectura-Runtime si aplicatii framework-Dalvik

Runtime si aplicatii framework-Dalvik virtual machine si biblioteci Core Java.

Bibliotecile Core Java-reprezinta un subset derivat din implementarea Apache


Harmony Java.

Dalvik virtual machine- execut fiiere cu extensia .dex, provenite din fisiere cu
extensia .class.

permite crearea de instante multiple ale masinii virtuale simultan,oferind securitate ,


izolarea instantei, managementul memoriei si suport pentru threading.

Aplicatii Framework- gestioneaza funciile de baz ale telefonului, cum ar fi


managementul resurselor, managementul apelurilor de voce.Contine urmatoarele
blocuri:

Activity

Content Providers

Telephony

LocationManager

Resource Manager

Metode pentru thread-safe-mode :

Android ofer un mecanism pentru inter-comunicare (IPC), folosind Remote


Procedure Calls (RPC), n care o metod este apelata de ctre o activitate sau o
component a unei aplicaii, dar executata la distan (ntr-un alt proces), returnand
orice rezultat napoi la apelant.

Stocarea datelor la Android OS :

24

Baza de date - API-ul Android contine suport pentru crearea i utilizarea bazelor de
date SQLite. Fiecare baz de date este asociata aplicaiei care o creeaz.Obiectul
SQLiteDatabase reprezint o baz de date ce contine metode pentru a interaciona cu
acesta - de interogri i gestionarea a datelor. Pentru crearea unei baza de date, se
apeleaza
rutina
SQLiteDatabase.create()
i,
de
asemenea,
subclasa
SQLiteOpenHelper.

Tipuri de fisiere si preferences - Pentru a citi date dintr-un fiier, se apeleaza


Context.openFileInput () i se trece numele i pathul fiierului. Returneaz un
obiect standard Java FileInputStream.

Pentru a scrie ntr-un fiier, se apeleaza Context.openFileOutput () cu numele i


pathul fisierului. Returneaz un obiect FileOutputStream. Apelarea acestor metode nu
funcioneaza decat pentru fiierele locale
Programarea pentru Android

Aplicatiile standard pentru Android se scriu in limbaj Java si sunt compilate in


bytecode Dalvik, ceea ce le ofera o viteza medie de executie si acces la cele mai multe
biblioteci ale sistemului. Pentru dezvoltarea unor astfel de aplicatii este nevoie de
Android SDK. In urma compilarii rezulta pachete .apk care pot fi instalate de dispozitiv sau
pot fi rulate in dispozitive virtuale (AVD).
Aplicatii pot fi dezvoltate si folosind Android NDK (Native Development Kit), care este un
set de tooluri pentru crearea de biblioteci din cod C/C++ si pentru incorporarea acestora in
pachete .apk. Este recomandata utilizarea NDK nu doar pentru programatorul care are o
preferinta pentru C/C++, ci doar acolo unde APIul clasic nu ofera functionalitatile necesare.
O alta modalitate de a implementa aplicatii este suita HTML5 + AJAX + CSS.
Diversitatea platformelor mobile creste si crearea unei aplicatii presupune dezvoltarea pentru
mai multe platforme simultan. Rularea in browser a unei aplicatii AJAX este o forma de a
contracara aceasta fragmentare. Nu toate aplicatiile sunt insa potrivite pentru aceasta forma de
dezvoltare, fiind uneori limitata in termeni de functionalitate si performanta.

5.Protocoale de comunicare client-server


Web services descrie o metoda standard de a integra aplicatii de tip Web folosind
standardele XML (Extensible Markup Language), SOAP (Simple Object Access Protocol),
WSDL (Web Services Description Language) si UDDI (Universal Description, Discovery and
Integration) prin intermediul protocoalelor de Internet.
25

Un serviciu Web (Web Service) este o aplicatie Web de tip client-server, n care un server
furnizor de servicii (numit si "Service Endpoint") este accesibil unor aplicatii client (care nu
sunt de tip browser) pe baza adresei URL a serviciului. Serviciul Web si clientii si pot rula pe
platforme diferite si pot fi scrise n limbaje diferite,deoarece se comunic prin protocoale
standard HTTP, XML, SOAP, JSON, s.a. De aceea principalul merit al serviciilor Web este
acela c asigur interoperabilitatea unor aplicatii software implementate pe platforme diferite
si cu instrumente (framework-uri) diferite. In acelasi timp aplicatiile sunt slab cuplate
(loosely coupled), n sensul c mesajele schimbate sunt standard (self-contained) si
oricare dintre aplicatii nu presupune existenta la cellalt capt a altor facilitti dect cele
continute n standarde.
Furnizorul de servicii expune un API pe Internet, adic o serie de metode ce pot fi apelate
de clienti. Aplicatia client trebuie s cunoasc adresa URL a furnizorului de servicii si
metodele prin care are acces la serviciul oferit (nume, parametri, rezultat). Interfata API este
limitat la cteva operatii n cazul serviciilor de tip REST si nelimitat ca numr si ca
diversitate a operatiilor n cazul serviciilor de tip SOAP.
Diferenta dintre o aplicatie Web clasic si un serviciu Web const n principal n formatul
documentelor primite de client si a modului cum sunt ele folosite : ntr-o aplicatie Web
clientul primeste documente HTML transformate de un browser n pagini afisate, iar clientul
unui serviciu Web primeste un document XML (sau JSON) folosit de aplicatia client, dar care
nu se afiseaz direct pe ecran (dect n anumite programe de verificare a serviciilor Web).
Pentru comparatie vom folosi exemplul unui client care foloseste un browser pentru a intra
pe un site ca s afle rata de schimb ntre dou valute , dar o aplicatie de comert electronic va
apela un serviciu Web cu rate de schimb pentru a calcula si comunica clientilor suma de plata
n valuta local.
Din punct de vedere al tehnologiilor folosite exist dou tipuri de servicii Web:
- Servicii de tip REST ( RESTful Web Services), n care cererile de la client se exprim prin
comenzi HTTP (GET, PUT, POST,DELETE), iar rspunsurile sunt primite ca documente
XML sau JSON;
- Servicii de tip SOAP (Simple Object Access Protocol), n care cererile si rspunsurile au
forma unor mesaje SOAP (documente XML cu un anumit format) transmise tot peste HTTP.
In astfel de servicii furnizorul expune si o descriere a interfetei API sub forma unui document
WSDL (Web Service Description Language), care este tot XML si poate fi prelucrat de client.
Un client trebuie s cunoasc metodele oferite de ctre Service Endpoint, pe care le poate
afla din descrierea WSDL.
Serviciile de tip SOAP ofer mai mult flexibilitate, o mai bun calitate a serviciilor si
interoperabilitate dect serviciile REST si sunt recomandate pentru un API mai mare oferit
clientilor. Serviciile de tip SOAP pot fi combinate pentru realizarea de operatii complexe,
ceea ce a condus la o arhitectur orientat pe servicii (SOA=Service Oriented Architecture).
In JEE cele dou tipuri de servicii sunt numite JAS-RS (REST) si JAX-WS (SOAP),
iar JavaEE Tutorial contine o comparatie ntre avantajele si limitele fiecrei solutii si
recomandri privind alegerea uneia sau alteia.
Majoritatea serviciilor Web reale sunt de tip SOAP, dar exist si cteva servicii de tip
REST notabile : Amazon S3 (Simple Storage Service) pentru memorarea si regsirea de
obiecte, reteaua Twitter si alte site-uri de blog, n care se descarc fisiere XML n format RSS
sau Atom cu liste de legturi ctre alte resurse.
Ca exemple de servicii SOAP larg utilizate sunt servicii pentru rate de schimb ntre diferite
valute, servicii bancare pentru verificare si operare n conturi (de ctre aplicatii Web de
comert electronic, de exemplu), servicii de memorare si regsire date, s.a.
Exist mai multe instrumente software pentru dezvoltarea de servicii Web pe platforma
Java, dintre care mai cunoscute sunt:
26

CXF (fost XFire) (Apache)


Metro (Sun) pentru servicii SOAP
Axis (Apache)
Jersey (Sun) pentru servicii REST
SoapUI este cel mai cunoscut instrument pentru simularea unui client de servicii Web (prin
afisarea cererilor client si rspunsurilor primite), pentru testarea si dezvoltarea de servicii
SOAP si REST.
Site-ul Xmethod.com contine o lista de servicii Web (de tip SOAP) publice si gratuite, cu
adresele descrierilor WSDL, care pot fi folosite n SoapUI pentru exersarea metodelor oferite.
Servicii Web de tip SOAP
Un serviciu Web de tip SOAP este versiunea modern a unui apel de proceduri la
distant (numite RPC=Remote Procedure Call sau RMI=Remote Method Invocation), cu
diferenta c datele schimbate ntre client si server sunt documente XML n locul fisierelor
binare care respectau si ele anumite conventii (protocolul RMI-IIOP sau CORBA sau alt
protocol).
Ca si n orice apel de proceduri la distant, o functie (metod) dintr-un calculator (care
se execut ntr-o masin virtual Java) apeleaz o functie (o metod) aflat ntr-un alt
calculator (n alt masin virtual Java) folosind urmtoarele operatii:
- Un soft din masina client transform apelul si parametrii si ntr-un sir de octeti, deci face o
serializare a acelui apel (care poate necesita si serializarea parametrilor de un tip clas);
- Un alt soft din masina client (numit si proxy sau stub) transmite sirul de octeti rezultat
din serializare ctre masina server, folosind protocolul standard HTTP;
- Un soft din masina server (numit si ties) receptioneaz apelul serializat;
- Un alt soft din masina server transform sirul de octeti ntr-un apel efectiv de metod
Rezultatul apelului este si el serializat si trece prin aceleasi faze ca si apelul metodei.
Serviciile Web de tip SOAP folosesc pentru serializare fisiere text bazate pe XML.
XML este folosit pentru a pune tag pe informatii, SOAP este folosit pentru a
transfera datele, WSDL este folosit pentru a descrie serviciile si UDDI este folosit pentru
afisa servicii disponibile. Folosite in principal de catre business-uri pentru a comunica intre
ele si cu clientii, Web services permit organizatiilor sa comunice date fara a cunoaste
amanuntit sistemele IT din spatele firewall-ului.
Spre deosebire de modele client/server obisnuite, precum sistemul Web Server/Web
Client, Web services nu ofera utilizatorului un GUI. Web services furnizeaza date, procese si
business logic printr-o interfata programata. Dezvoltatorii pot adauga serviciile web la o GUI
(precum o pagina web sau un program executabil) pentru a oferi o functionalitate anume
pentru utilizatori.
Web services permit diferitelor aplicatii din diferite surse sa comunice intre ele fara cod
personalizat, si pentru ca modul de comunicare se face prin XML, Web Services nu sunt
independente de sistemul de operare si de limbajul de programare. Spre exemplu, Java poate
comunica cu Perl, aplicatii de Windows pot comunica cu aplicatii UNIX.
Web API

27

Web API este o extindere in Web Services, al carei scop este de a trece de la serviciile de
tip SOAP la comunicatiile de tip Representional State Transfer (REST). Serviciile de tip
REST nu necesita API-urile XML, SOAP sau WSDL.
Web API-urile permit combinarea mai multor Web Services in aplicatii noi cunoscute si ca
mashups.
Cand sunt folosite in cadrul Web development-ului, Web API este definit ca un set mesaje
HTTP impreuna cu o definitie a structurii mesajelor raspuns, de obicei sub forma de XML sau
de JSON (JavaScript Object Notation).
Utilizari
Cele mai folosite sunt RPC, SOA si REST.

Remote Procedure Calls (RPC)


Web Services prezinta o functie (sau metoda) de apel care este cunoscuta de catre majoritatea
programatorilor. De obicei, unitatea de baza a unui Web service de tip RPC este operatia de
tip WSDL.
Primele unelte Web services au fost focalizate pe RPC, si prin urmare este foarte raspandit.
Alte utilizari asemanatoare cu RPC sunt Object Management Groups (OMG), Common
Object Request Broker Arhitecture (CORBA), Distributed Component Object Model
(DCOM) sau Remote Method Invocation (RMI).

Service Oriented Arhitecture (SOA)


Web services pot fi folosite pentru a implemente o arhitectura in concordanta cu conceptul de
tip SOA, unde mijlocul de comunicare de baza este mesajul, in loc de metode. Se mai numesc
si message-oriented services.
Web Services de tip SOA sunt folosite de catre marii vanzatori de software si analistii de
industrie.

Representional State Transfer (REST)


REST incearca sa descrie arhitectura care foloseste HTTP sau protocoale asemanatoare prin
limitarea interfetei la un set bine cunoscut de operatii (precum GET, POST, PUT, DELETE
pentru HTTP). Aici, focalizarea se face pe interactiunea cu resursele de tip stateful, in loc de
mesaje sau metode.
O arhitectura bazata pe REST poate folosi WSDL pentru a descrie mesajele de tip
SOAP peste HTTP si poate fi implementata si fara SOAP.
Arhitectura care este utilizata in aplicatii depind de WSurile cu care interactioneaza

28

1.Daca cunoastem ca unica interfata la WS este prin SOAP, este natural ca arhitectura
aplicatiei sa fie definita ca urmarind SOA.
2.Daca WS este RESTful, construirea aplicatiei pentru a urmari principiile REST este
adecvat. Fiecare componenta a unei aplicatii poate fi construita intr-o modalitate, iar alta intro modalitate diferita .Aplicatia ca intreg orice stil arhitectural care este necesar pt. proiect
(client/server, Model-View- Controller MVC, etc.), pe cand componentele urmaresc
propriile modele pe cat ai eficient posibil

29

S-ar putea să vă placă și