wade 2014—2015 (03/12): arhitectura aplicaţiilor web orientate spre servicii

118
Dr. Sabin Buragawww.purl.org/net/busaco Dezvoltarea aplicațiilor Web servicii Web, API-uri & mashup-uri aspecte arhitecturale

Upload: sabin-buraga

Post on 15-Jul-2015

182 views

Category:

Technology


1 download

TRANSCRIPT

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Dezvoltarea aplicațiilor Web

⟛servicii Web, API-uri & mashup-uri

aspecte arhitecturale

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

“Fiecare vis începe cu un visător.”

Harriet Tubman

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Care sunt cele mai importante aspecteprivind ingineria Web?

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Aplicații Web sisteme software complexe,în evoluție permanentă

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Realitate

mijloace multiple de interacțiune Web cu utilizatorul

mobil laptop PC tabletă (smart) TV ecran urban

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Realitate

suportul privind dezvoltarea de aplicații(e.g., API-uri, SDK-uri, biblioteci, framework-uri,...)

oferit de platforma hardware/softwarela nivel de server(e) și/sau de client(i)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Realitate

creșterea masei de utilizatori,având așteptări tot mai mari din partea software-ului

de la conținut (hiper)textual la aplicații Web sociale + interacțiune naturală

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Realitate

neadaptare la cerințele de tip business

development vs. marketing vs. management

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Realitate

privind proiectele Web de anvergură

întârzieri în lansareneîncadrare în bugetlipsa funcționalității

calitatea precară a aplicației

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Crumlish & Malone, 2009

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Asigurarea calității aplicațiilor Web

corectitudine & robustețe (reliability) extindere + reutilizare (modularitate)

compatibilitateeficiență (asigurarea performanței)

portabilitate

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Asigurarea calității aplicațiilor Web

facilitarea interacțiunii cu utilizatorul (usability) funcționalitate

relevanța momentului lansării (timeliness)mentenabilitate

securitate

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Asigurarea calității aplicațiilor Web

alte aspecte de interes:integritate

reparabilitateverificabilitate – inclusiv monitorizare (logging)

economie

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Necesități

scopuri + cerințe clar specificate

dezvoltarea sistematică, în faze, a aplicațiilor Web

planificarea judicioasă a etapelor de dezvoltare

controlul permanent al întregului proces de dezvoltare

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Necesități

scopuri + cerințe clar specificate

dezvoltarea sistematică, în faze, a aplicațiilor Web

planificarea judicioasă a etapelor de dezvoltare

controlul permanent al întregului proces de dezvoltare

inginerie Web

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

În ce mod dezvoltăm o aplicație Web?

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

modelare

Uzual, se recurge la o metodologie

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

modelare

Uzual, se recurge la o metodologie

se preferă abordările conduse de modele(MDA – model-driven architecture)

www.omg.org/mda/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

modelare

Metodologii orientate spre modele referitoare la:date – RMM (Relationship Management Methodology),

Hera, WebML

interacțiune – HDM (Hypertext Design Model), WSDM (Web Site Design Method), UsiXML

obiecte – OOHDM (Object-Oriented HDM), UWE (UML-based Web Engineering),

OOWS (Object-Oriented Web Solutions)

software – WAE (Web Application Extension)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Robert Baxley

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Methodologies

Jesse Garrett, The Elements of User Experience (2nd Edition), New Riders, 2011

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

dezvoltarea aplicațiilor Web

Cerințe (requirements)Analiză & proiectare (software design)

Implementare (build)Testare (testing)

Exploatare (deployment)Mentenanță (maintenance)

Evoluție (evolution)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

dezvoltarea aplicațiilor Web

programare (server + client)

creare/adaptarede conținut

mentenanță

testaredocumen-

tare

arhitectura info+ navigarecerințe

public beta lansare

http://sixrevisions.com/web-development/agile/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

start with needsdo less

design with datado the hard work to make it simple

iterate. then iterate againbuild for inclusion

understand contextbuild digital services, not Websites

be consistent, not uniformmake things open; it makes things better

dezvoltarea aplicațiilor Web: principii

exemplu pentru gov.uk – Paul Downey & David Heath (2013)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Stabilirea standardelor de calitate

cerințe

context

con-tentusers

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Obținere / licitare / negocierea conținutului (datelor) și/sau codului-sursă

copyrightversus

cod deschis (Open Source Licenses)www.opensource.org/licenses/category

+date deschise

Creative Commons – www.creativecommons.org/licenses/

cerințe

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Documentare privind domeniul aplicației Web

cu atragerea experților în domeniul problemei

cerințe

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

cerințe

Aspecte specifice aplicațiilor Web

Lipsa unei structuri reale (tangibile)Multi-disciplinaritate

Necunoașterea publicului-țintă realVolatilitatea cerințelor & constrângerilor

Mediul de operare impredictibilImpactul sistemelor tradiționale (legacy)

Aspecte calitative diferiteInexperiența vizitatorilor

Termenul de lansare

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

cerințe: exemple

Viziune (big idea)

Basecamp: “project management is communication”

Flickr: “online photo management & sharing application”

Ta-da List: “competing with a post-it note”

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

cerințe: exemple

Punctele de plecare în dezvoltarea Flickr

presupuneri inițiale (assumptions):

oamenilor le place să-și împărtășească amintirile

folosirea succesului blogging-ului

partajarea nu doar a însemnărilor,ci și a fotografiilor (personale)

suport pentru realizarea de comentarii + tagging

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

noi tipuri de cerințe

Privitoare la conținut

audiență – e.g., internaționalizarecontext de navigare

preferințe ale utilizatoruluidisponibilitate permanentă (7 zile, 24 de ore/zi)

recurgerea la surse eterogene de datecăutare, filtrare, recomandare

etc.

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

noi tipuri de cerințe

Interacțiunea cu utilizatorul în contextul Web

inclusiv vizând Web-ul social

content mash-up

“it’s yours to take, re-arrange and re-use”

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

noi tipuri de cerințe

Calitative

funcționalitatefiabilitate

utilizabilitateeficiență (performanță)

mentenabilitateindependența de platformă

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

noi tipuri de cerințe

Privitoare la mediul de execuție

(in)dependența de navigatorul Web

wired vs. wirelesson-line vs. off-line

suport pentru diverse standarde HTML5responsive Web design

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

noi tipuri de cerințe

Referitoare la evoluție

utilizatorul final exploatează aplicația Webfără a trebui s-o (re)instaleze pe calculator

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

noi tipuri de cerințe: aspecte de interes

inițial:oferirea funcționalităților esențiale (less is more)

versiuni ulterioare:extinderea aplicației Web – pe baza unui API public –

ce încurajează dezvoltarea de soluții date de utilizatori

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

arhitecturi

Calitatea aplicatiilor Web este influențatăde arhitectura pe care se bazează

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

arhitecturi web: componente tipice

client(i)firewallproxy

middlewareserver(e) Web

server(e) de aplicațiiframework-uri, biblioteci, alte componente

server(e) de stocare persistentă – e.g., baze de dateserver(e) de conținut multimedia

server(e) de management al conținutului (CMS)aplicații/sisteme tradiționale

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

arhitecturi

Uzual, se adoptă arhitecturi stratificate(N-tier Web applications)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Câteva exemplificări privind arhitectura unor aplicații Web?

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

studiu de caz: Flickr

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

arhitecturi: exemplu – flickr

Scop: partajare on-line a conținutului grafic (fotografii)

aplicație reprezentativă a Web-ului social

agregare de comunități – imaginea ca obiect social

suport pentru adnotări via termeni de conținut (tagging)+ comentarii

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

arhitecturi: exemplu – flickr

PHP (procesare – application logic, acces la API,prezentare de conținut via Smarty, modul de e-mail)

Perl (validarea datelor)Java (managementul nodurilor de stocare)

MySQL (stocare în format InnoDB)ImageMagick (prelucrare de imagini)

Ajax (interacțiune asincronă)Linux (platformă de rulare)

alte detalii la http://highscalability.com/flickr-architecture

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

arhitectura inițială – conform (Cal Henderson, 2007)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

studiu de caz: flickr

interfețe de programare (API-uri)oferite de Flickr

www.flickr.com/services/api/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

studiu de caz: Lanyrd

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

arhitecturi: exemplu – lanyrd

Scop: descoperire & management online de evenimente(e.g., conferințe cu caracter tehnologic)

agregare de comunități – evenimentul ca obiect social

suport pentru vorbitori & audiență, slide-uri,… + calendare & locații geografice

concepte importante: conferences, user profiles, emails, dashboard, coverage, topics, guides

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Creat aproape complet în Python (folosind Django)și întreținut de 6 persoane

2.5 backend developers1.75 frontend developers0.5 mobile developers1.5 designers0.75 system administrators0.75 business operations

Andrew Godwin, Inside Lanyrd’s Architecture, QCon London, 2013http://www.infoq.com/presentations/lanyrd-architecture

arhitecturi: exemplu – lanyrd

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

arhitecturi: exemplu – lanyrd

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

studiu de caz: Wikipedia

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

arhitecturi: exemplu – wikipedia

Scop: oferirea de conținut deschisvia o suită de aplicații Web colaborative: wiki-uri

Wikipedia Foundationmenține și Wiktionary, Wikinews, Wikibooks, Wikiquote,

Wikisource, Wikiversity, Wikispecies, Wikimedia Commons, Wikidata, Wikivoyage

http://en.wikipedia.org/wiki/Wikimedia_Foundation

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

arhitecturi: exemplu – wikipedia

MediaWiki (sistemul wiki utilizat pentru toate serviciile)PHP (platforma pe care rulează MediaWiki)

MySQL (soluția principală de stocare)Apache Lucene (indexare textuală, facilitând căutarea)

ImageMagick, DjVu, TeX, rsvg, ploticus etc. (pentru procesare de conținuturi grafice în MediaWiki)

Linux (platforma de rulare)

detalii despre API: www.mediawiki.org/wiki/API:Main_page

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

studiu de caz: wikimedia

Wikipedia – arhitectura generală (Domas Mituzas, 2008)http://tinyurl.com/m9nlwvq

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Prin ce mijloace poate fi implementată o aplicație Web?

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

De la aplicații la API-uri & servere de aplicații

Brian Mulloy, Web API Design, Apigee, 2012http://offers.apigee.com/web-api-design-ebook/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

code repositoriesinstrumente de

dezvoltare (IDE)

runtime environment

dezvoltare

rulare

Development as a Service

A. I

qb

al, M

. Hau

nse

nb

las,

S. D

eck

er (

20

12

)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

code repositoriesinstrumente de

dezvoltare (IDE)

runtime environment

dezvoltare

rulare

Web: CodeRun, Cloud9, Koding, Ideonedesktop: Eclipse, <oXygen/>, Visual Studio

Google App Engine, Heroku,Jelastic, Windows Azure

BitBucket, GitHub,SourceForge, Unfuddle

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Server de aplicații Web

scop: eficientizarea proceselor de dezvoltarea aplicațiilor Web de anvergură

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Server de aplicații Web

se bazează pe interfețe de programare (API-uri)și/sau pe componente reutilizabile

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Server de aplicații Web

se integrează în unul/mai multe servere Web

de asemenea, poate oferi propriul server Web

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Server de aplicații Web

poate încuraja sau impune o viziune arhitecturalăprivind dezvoltarea de aplicații Web

principiu: separation of concerns

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Viewla nivel client(i) Web

Modelstocare persistentă

Controlleraplicație Web (la nivel de server)

HTML, CSS, SVG, WebGL etc.

(No)SQL, XML (XQuery), RDF (SPARQL),…

servere de aplicații, framework-uri

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Server de aplicații Web

încurajarea folosirii de machete de vizualizare (templates)pe baza unui procesor specific – Web template system

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Server de aplicații Web

încurajarea folosirii de machete de vizualizare (templates)pe baza unui procesor specific – Web template system

utilizând specificații de prezentare a conținutului(Web template), datele persistente

(e.g., preluate dintr-o bază de date) sunt folositede un procesor (template engine)

pentru a genera documente HTML ori alte formate

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Server de aplicații Web

încurajarea folosirii de machete de vizualizare (templates)pe baza unui procesor specific – Web template system

la nivel de server

Haml (Ruby), Mustache (C++, JS, PHP, Python, Scala,…), Smarty (PHP), Velocity (Java), XSLT (XML) etc.

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Server de aplicații Web

încurajarea folosirii de machete de vizualizare (templates)pe baza unui procesor specific – Web template system

la nivel de client

disponibile pentru JavaScript: Closure Templates, EJS, Mustache, Yeast,…

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Server de aplicații Web

poate include instrumente de generare de cod(scaffold generators)

+depanatoare (debuggers),

analizoare (profilers)și/sau optimizatoare de cod

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Framework (cadru de lucru)

facilitează dezvoltarea de aplicații Web complexe,simplificând unele operații uzuale

(e.g., acces la baze de date, caching, generare de cod, management de sesiuni, control al accesului,…)

și/sau încurajând reutilizarea codului-sursă

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Framework (cadru de lucru)

clasificare:

de uz general

management de conținut(CMS – Content Management System)

la nivel de intranet – e.g., portal organizațional

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Exemple de framework-uri care faciliteazădezvoltarea de aplicații Web la nivel de server

ASP.NET: ASP.NET MVC, Vici MVCJava: Play, Spring, Struts, Tapestry, WebObjects, Wicket

JavaScript (node.js): Express, Geddy, Locomotive, TowerPerl: Catalyst, CGI::Application, Jifty, WebGUI

PHP: CakePHP, CodeIgniter, Symfony, Yii, Zend FrameworkPython: Django, Grok, web2py, ZopeRuby: Camping, Nitro, Rails, Sinatra

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Web component

parte a unei aplicații Web

ce încapsulează o suită de funcții înrudite

e.g., calendar, cititor de fluxuri de știri,

buton de partajare a URL-ului în altă aplicație

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Web component

dezvoltare bazată pe o bibliotecă/framework

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Web component

dezvoltare bazată pe o bibliotecă/framework

soluții „tradiționale”:

Dojo Toolkit

jQuery UI

YUI

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Web component

dezvoltare bazată pe o bibliotecă/framework

cadrul general:

Web Components (în lucru la W3C, 2014)

cu implementări ca Polymer și X-Tag

http://webcomponents.org/

http://customelements.io/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Widget

aplicație – de sine-stătătoare sau

inclusă într-un container (e.g., o pagină Web) –

ce oferă o funcționalitate specifică

rulează la nivel de client (platformă oferită de

sistemul de operare și/sau navigator Web)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

Widget

uzual, implementare pe baza standardelor: HTML, CSS, JS

eventual, se poate recurge la un API

W3C Recommendation (2013)

www.w3.org/TR/widgets-apis/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Add-on

denumire generică a aplicațiilor asociate unui browser

(extensii, teme vizuale, dicționare,

maniere de căutare pe Web, plug-in-uri etc.)

exemplificare: addons.mozilla.org

implementare

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

(Web) App

o aplicație (Web) instalabilă

care folosește API-urile oferite de o platformă:

browser, server de aplicații, sistem de operare,…

implementare

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

(Web) App

a distributed computer software application designed for

optimal use on specific screen sizes and with particular

interface technologies

Robert Shilston, 2013

implementare

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

(Web) App

uzual, se poate obține via un app store(centralizat sau descentralizat)

exemple notabile: Chrome Apps

aplicații Windows 8 dezvoltate în JavaScript

aplicații Web mobile pentru Firefox OS, Kindle Fire,...

implementare

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

web browser

app store

single page app

platform(OS + device)

native app

HTTPWebSockets

adaptare după Adrian Colyer (2012)

aplicații Web

&servicii

(API-uri)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

API (Application Programming Interface)

“any well-defined interface that definesthe service that one component, module, or application

provides to other software elements”

detalii în Giovanni Asproni, “Writing usable APIs in practice”, SyncConf 2013

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

API „de succes” – adaptare după (Bloch, 2005)

ușor de învățatfacil de folosit, chiar și în lipsa documentației

previne utilizarea eronatăstabil și sigur

ușor de menținutsuficient de expresiv

facil de extins

implementare

vezi și S. Clarke, “Measuring API Usability”: http://drdobbs.com/windows/184405654

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

strategia API first adoptată de Twitter (van der Schee, 2013)www.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

diverse abordări vizând arhitectura aplicațiilor Webwww.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

API public (disponibil pe baza unei licențe de utilizare)

versus

API privat(pentru uz intern)

implementare

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

API (Application Programming Interface)

descriere (abstractă)

RAML (RESTful API Modeling Language) – http://raml.org/

Swagger – http://swagger.io/

comparații în prezentarea L. Heritage, “API Description Languages” (APIcon UK, 2014) – http://tinyurl.com/pkhheq3

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

testarea unui API public via Apigee Consolehttps://apigee.com/console/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

SoundCloud API

tipuri de resurse: tracks, users, utilizator curent (me),

playlists, groups, comments

http://developers.soundcloud.com/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Modele tradiționale de afaceri vizând API-urile

implementare

John Musser, “API business models”, API Strategy Conference, 2013

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Modele actuale de afaceri privind API-urile

John Musser, “API business models”, API Strategy Conference, 2013

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

John Musser, “API business models”, API Strategy Conference, 2013

Modele actuale de afaceri privind API-urile

CPA – cost per actionCPC – cost per click

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Modele actuale de afaceri privind API-urile

John Musser, “API business models”, API Strategy Conference, 2013

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

implementare

SDK (Software Development Kit)

încapsulează funcționalitățile API-ului într-o bibliotecă(implementată într-un anumit limbaj de programare,

pentru o platformă software/hardware specifică)

API façade pattern

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

privire pragmatica

exemplu: acces la API-uri în Python – www.pythonapi.com

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Cum se pot combina date oferitede mai multe servicii Web și/sau API-uri?

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

Combinarea – la nivel de client și/sau server –a datelor ce provin din surse (situri) multiple, oferindu-se o funcționalitate/experiență nouă

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

Exemplificare:

dorim să oferim o aplicație ce pune la dispozițieinformații din domeniul muzical (știri, liste de melodii, clip-uri,…)

recurgând la diverse servicii Web publice

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

http://www.last.fm/api/rest

http://developer.vimeo.com

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

acces la serviciile RESTdespre formații & albume

via o cheie de autentificare

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

răspunsul privitor la producții video oferit de un serviciu Web

poate adopta formate multiple

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

+ ViLaaplicație Web hibridă

http://www.last.fm/api/rest

http://developer.vimeo.com

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

Se bazează pe fluxuri RSS/Atom, servicii Web, API-uri publice,…

„curentul” SaaS (Software As A Service)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

Caracteristici:combinarevizualizare

agregare

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

Combinare

utilizarea de surse de date multiplepoate avea caracter multidimensional

de exemplu, subiect de interes + locație geografică + moment de timp

Yahoo! music search + Google maps + Eventful

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

Combinare

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

Vizualizare

pot fi adoptate diverse tehnici de vizualizare(prezentare) a datelor:

chart-uri, cartografică, tag cloud-uri, tridimensională,…

de (re)văzut “An Introduction to Data Vizualization”http://www.slideshare.net/busaco/hci08-data-visualization

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

proiectul DataEx (Andrei Cojocaru, 2013) – vizualizarea bazelorde cunoștințe de mari dimensiuni (în acest caz: Freebase)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

Agregare

gruparea datelor provenite din mai multe surse șianalizarea lor: statistici, clasificări, predicții,…

e.g., folosind data mining se pot relevaaspecte „ascunse” ale datelor procesate

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Zemanta – recomandare „inteligentă” de resurse

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

Surse de date(data feeds)

Atom, RSS, geoRSS, microdate HTML5, RDFa,…

Interfețe de programare(API-uri)

specifice serviciilor publiceși de procesare JSON/XML/RDF

Biblioteci/framework-uripentru dezvoltare

framework-uri Web genericesau oferite de organizații

Instrumente interactive(Web tools)

eventual, disponibile în cloude.g., Yahoo! Pipes

Platforme(Platform As A Service)

Heroku, Google App Engine, Nodejitsu, Windows Azure,…

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

Your Life on Earth (BBC, 2014)www.bbc.com/earth/story/20141016-your-life-on-earth

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups

lista mash-up-urilor existentewww.programmableweb.com/mashups/directory

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

mash-ups: aspecte de interes

performanță: scalabilitatea și latența

limite ale API-urilor + existența versiunilor multiple

drepturi de autor asupra datelor & licențiere

securitate: abuz, confidențialitate, încredere etc.

monetizare

lipsa unei interoperabilități reale între platforme

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

„concluzii”

Actualmente, aplicațiile Websunt exploatate și integrate continuu

(continuous integration & deployment)

fenomenul perpetual beta

a se vizita The Museum of Modern Betas: http://momb.socio-kybernetics.net/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

„concluzii”

Un număr tot mai mare de aplicații (servicii)populare disponibile on-line se bazează

pe conținut generat de utilizatori

de consultat statisticile oferite de Alexa:http://www.alexa.com/topsites

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

rezumat

⟛arhitectura și ingineria

aplicațiilor Web orientate spre servicii

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

episodul viitor: aspecte privind modelarea cunoștințelor

model de accesla date

Servicii Webmodel de calcul

Ofertantde servicii de

telefonie mobilă

mash-up-uri la nivelde dispozitiv mobil

model de implementaremodel de interacțiune

YQL

model de comunicare