Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud)...

127
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Service Oriented Architectures sisteme Web: aspecte arhitecturale de la (micro-)servicii Web la aplicații Web hibride (mash-ups)

Transcript of Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud)...

Page 1: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/Service Oriented Architectures

sisteme Web: aspecte arhitecturale

↹de la (micro-)servicii Web la

aplicații Web hibride (mash-ups)

Page 2: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

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

Harriet Tubman

Page 3: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

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

Page 4: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Care sunt arhitecturile software tipice pe baza cărora sunt dezvoltate aplicațiile Web de anvergură?

Page 5: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi web

Stratificate (layered)Conduse de evenimente (event-driven)

Extensibile (microkernel / plug-in)Folosind microservicii (microservices)

„În nori” (space-based, cloud)

conform M. Richards, Software Architecture Patterns, O’Reilly, 2015 www.oreilly.com/programming/free/files/software-architecture-patterns.pdf

Page 6: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi webStratificate (layered)

N-tier architecture – abordare de facto

Page 7: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi web

Stratificate (layered)

separation of concerns

layers of isolation

architecture sinkhole anti-pattern

Page 8: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi webStratificate (layered)

separation of concernsfiecare strat are un rol bine-stabilit, componentele unui

strat vizând funcționalitățile acestuia

layers of isolationmodificările operate la un anumit strat nu au impact sau

nu afectează componentele din alt strat

architecture sinkhole anti-patternfluxul de cereri traversează fiecare strat, fără a se efectua

procesări semnificative în cadrul acestuia

Page 9: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi webStratificate (layered)

separation of concernsfiecare strat are un rol bine-stabilit, componentele unui

strat vizând funcționalitățile acestuia

layers of isolationmodificările operate la un anumit strat nu au impact sau

nu afectează componentele din alt strat

architecture sinkhole anti-patternfluxul de cereri traversează fiecare strat, fără a se efectua

procesări semnificative în cadrul acestuia

Page 10: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi webStratificate (layered)

separation of concernsfiecare strat are un rol bine-stabilit, componentele unui

strat vizând funcționalitățile acestuia

layers of isolationmodificările operate la un anumit strat nu au impact sau

nu afectează componentele din alt strat

architecture sinkhole anti-patternfluxul de cereri traversează fiecare strat, fără a se efectua

procesări semnificative în cadrul acestuia

Page 11: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi webarhitecturistratificate(N-tier Web

applications)

bazate pe servicii Web

M. Richards,Software

Architecture Patterns,

O’Reilly, 2015

Page 12: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi web

Conduse de evenimente (event-driven)

eventan action or occurrence recognized by a computing

system that may be handled by the software

event-driven programming a programming paradigm in which

the flow of the program is determined by events

Page 13: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi web

Conduse de evenimente (event-driven)

evenimente emise și/sau tratate de către…

sistem – hardware (e.g., conexiune activă la rețea) și/sau software (e.g., mesaje de la alte aplicații)

versusutilizator – uzual, în contextul interacțiunii om-calculator

(tastatură – keypressed; mouse – move; suprafață senzitivă – tap, swipe; alți senzori)

Page 14: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi web

Conduse de evenimente (event-driven)

uzual în contextul aplicațiilor distribuite asincronescalabilitate

topologii principale – recurg la software de tip:mediator (mijlocitor, intermediar)

sau broker (comisionar, samsar)

Page 15: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi webConduse de evenimente (event-driven)

mediatorevenimente procesate

în mai mulți pași, necesitând orchestrare

Page 16: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi webConduse de evenimente (event-driven)

broker – fluxul de mesaje este distribuit componentelor de procesare a evenimentelor

Page 17: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi web

Extensibile (microkernel / plug-in)

sistem principal (core system) +

module independente (extensii) de tip plug-in

o astfel de arhitectură poate fi inclusă/utilizată ca parte a altei abordări arhitecturale

Page 18: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi web

Extensibile (microkernel / plug-in)

plug-in-urile pot fi concepute via un API oferit de sistemul principalexemplu: modulele Apache – httpd.apache.org/docs/current/mod/

Page 19: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi webFolosind microservicii (microservices)

componente separate, distribuite (separately deployed units)decuplare maximă

Page 20: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi web

Folosind microservicii (microservices)

abordări:API-based

application REST-basedcentralized messaging

Page 21: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi webFolosind microservicii (microservices)

API-basedaplicația Web expune servicii individuale, punctuale,

de sine-stătătoare (self-contained) via un API

fine-grained service components

Page 22: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi webFolosind microservicii (microservices)

application REST-basedcererile sunt recepționate tradițional (nu prin API)

fiecare funcționalitate e accesată intern via REST

coarse-grained service components

Page 23: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi webFolosind microservicii (microservices)

centralized messagingaccesare a componentelor interne via un broker „ușor”

Page 24: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi web

„În nori” (space-based, cloud)consideră și rezolvă problemele vizând scalabilitatea și concurența unui volum impredictibil de mare de cereri

tuple spacedatele aplicației sunt păstrate în memorie și replicate

de toate unitățile de procesare active

fără stocare centralizatădistributed shared memory

http://wiki.c2.com/?TupleSpace

Page 25: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi web„În nori” (space-based, cloud)

middleware virtualizatinclude componente controlând sincronizarea datelor,

procesarea cererilor, accesul la platforma de execuție (deployment),…

Page 26: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi web„În nori” (space-based, cloud)

unitate de procesarereprezentată de un (micro-)serviciu Web

sau o componentă software tradițională la nivel de backend

Page 27: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi web

aspecte de interes: agilitate exploatare testabilitate performanță scalabilitate dezvoltare

Richards (2015)

Page 28: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

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

Page 29: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Soluții tradiționale:

server de aplicații Web

framework (cadru de lucru)

bibliotecă Web (library)

(re)vezi cursurile anterioare

Page 30: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Soluții moderne:

(micro-)serviciu Web

API (Application Programming Interface)

aplicații Web hibride (mash-ups)

Page 31: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

software – utilizat la distanță de alte aplicații/servicii –oferind o funcționalitate specifică,

a cărui implementare nu trebuie cunoscută de dezvoltator

detalii în cursurile precedente

Page 32: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

aspecte de interes – vizând, în special, SOA:tipul serviciului

rolul serviciului în cadrul arhitecturii software

Page 33: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

business service

“abstract, high-level, coarse-grained services that define the core business operations that are performed

at the enterprise level”

Mark Richards (2016)

Page 34: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

business service

independent de implementare

specifică numele operațiilor oferite, tipul parametrilor de intrare, tipul rezultatului

via WSDL – Web Service Description Language sau OAI – Open API Initiative: www.openapis.org

Page 35: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

business service

opțional, pot fi definite reguli de orchestrare (contextul execuției serviciului)

uzual via BPEL – Business Process Execution Language

Page 36: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

enterprise service

reprezintă un serviciu concret – e.g., componentă middleware –implementând funcționalitățile

definite de serviciul de tip business

abordare coarse-grained

Page 37: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

enterprise service

în relație one-to-one sau one-to-manycu serviciile abstracte de tip business

poate fi partajat la nivelul organizației

Page 38: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

application service

“fine-grained, application-specific servicethat is bound to a specific application context”

Page 39: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

application service

oferă funcționalități specifice, punctuale

apelabil via o interfață cu utilizatorul ori via un serviciu de tip enterprise

Page 40: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

infrastructure service

pune la dispoziție operații interne (private)

invocat de servicii disponibile la nivel de aplicație (application services) sau

organizațional (enterprise services)

Page 41: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

clasificare a serviciilor la care poate recurge o aplicație Web dezvoltată conform principiilor SOA M. Richards, Microservices vs. SOA, O’Reilly, 2016

Page 42: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

messaging middleware

folosit la coordonarea apelurilor de servicii

denumit și integration hub ori enterprise service bus (magistrală de servicii la nivel organizațional)

Page 43: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

messaging middleware

roluri: mediere (mediation)

și dirijare (routing)

Page 44: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

“the capability of the architecture to locate and invoke a service (or services) based on a specific business

or user request” (Richards, 2016)

existența unei componente de descoperire a serviciilor (service registry)

Page 45: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

messaging middleware

rol: message enhancement

Page 46: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

“the capability of the architecture to modify, remove, or augment the data portion of a request

before it reaches the service” (Richards, 2016)

exemple: conversii privind formatul, adăugarea unor date derivate/calculate ad-hoc etc.

Page 47: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Serviciu Web

messaging middleware

rol: transformare a mesajelor/protocoalelor

Page 48: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

message transformatione.g., JSON ↔ POJO (Plain Old Java Object)

Page 49: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

protocol transformationREST

cu HTTP RMI-IIOP

AMQP

RMI-IIOP (Java Remote Method Invocation over Internet Inter-ORB Protocol)

http://docs.oracle.com/javase/7/docs/technotes/guides/rmi-iiop/index.html

AMQP (Advanced Message Queuing Protocol)www.amqp.org

Page 50: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Microserviciu

implementează o funcționalitate specifică, oferită la nivel de unic proces

self-contained system

componentă la nivel de backend dezvoltată cu scopul de a fi înlocuită, nu de a fi reutilizată

Page 51: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

smalleach running in its own process

lightweight communication mechanisms (usual, HTTP)built around business capabilities

independently deployableminimum of centralized management

may be written in different programming languagesmay use different data storage mechanisms

caracteristici ale microserviciilor conformJames Lewis & Martin Fowler, Microservices (2014)

http://martinfowler.com/articles/microservices.html

Page 52: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

smalleach running in its own process

lightweight communication mechanisms (usual, HTTP)built around business capabilities

independently deployableminimum of centralized management

may be written in different programming languagesmay use different data storage mechanisms

caracteristici ale microserviciilor conformJames Lewis & Martin Fowler, Microservices (2014)

http://martinfowler.com/articles/microservices.html

Page 53: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

smalleach running in its own process

lightweight communication mechanisms (usual, HTTP)built around business capabilities

independently deployableminimum of centralized management

may be written in different programming languagesmay use different data storage mechanisms

caracteristici ale microserviciilor conformJames Lewis & Martin Fowler, Microservices (2014)

http://martinfowler.com/articles/microservices.html

Page 54: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

smalleach running in its own process

lightweight communication mechanisms (usual, HTTP)built around business capabilities

independently deployableminimum of centralized management

may be written in different programming languagesmay use different data storage mechanisms

caracteristici ale microserviciilor conformJames Lewis & Martin Fowler, Microservices (2014)

http://martinfowler.com/articles/microservices.html

Page 55: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

smalleach running in its own process

lightweight communication mechanisms (usual, HTTP)built around business capabilities

independently deployableminimum of centralized management

may be written in different programming languagesmay use different data storage mechanisms

caracteristici ale microserviciilor conformJames Lewis & Martin Fowler, Microservices (2014)

http://martinfowler.com/articles/microservices.html

Page 56: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

smalleach running in its own process

lightweight communication mechanisms (usual, HTTP)built around business capabilities

independently deployableminimum of centralized management

may be written in different programming languagesmay use different data storage mechanisms

caracteristici ale microserviciilor conformJames Lewis & Martin Fowler, Microservices (2014)

http://martinfowler.com/articles/microservices.html

Page 57: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

smalleach running in its own process

lightweight communication mechanisms (usual, HTTP)built around business capabilities

independently deployableminimum of centralized management

may be written in different programming languagesmay use different data storage mechanisms

caracteristici ale microserviciilor conformJames Lewis & Martin Fowler, Microservices (2014)

http://martinfowler.com/articles/microservices.html

Page 58: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

smalleach running in its own process

lightweight communication mechanisms (usual, HTTP)built around business capabilities

independently deployableminimum of centralized management

may be written in different programming languagesmay use different data storage mechanisms

caracteristici ale microserviciilor conformJames Lewis & Martin Fowler, Microservices (2014)

http://martinfowler.com/articles/microservices.html

Page 59: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

microserviciumodularitate, descentralizare și evoluție permanentă

exemple de bună practică: http://microservices.io/

Page 60: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Microserviciu

funcțional (functional service)

implementează funcționalități specifice (business operations)

Page 61: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Microserviciu

funcțional (functional service)

implementează funcționalități specifice (business operations)

expuse consumatorului de serviciiindependente (fără efecte colaterale – side effects)

nu sunt partajabile uzual

Page 62: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Microserviciu

control – infrastructură (infrastructure service)

implementează activități non-funcționale: autentificare, autorizare, jurnalizare, monitorizare,…

Page 63: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

Microserviciu

control – infrastructură (infrastructure service)

implementează activități non-funcționale: autentificare, autorizare, jurnalizare, monitorizare,…

nu sunt expuse în exterior (private)pot fi partajate la nivel de aplicație ori servicii interne

Page 64: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

de la cereri efectuate de client la obținerea răspunsului oferit de API via microservicii funcționale

bazate pe cele vizând infrastructura

M. Richards, Microservices vs. Service-Oriented Architecture, O’Reilly, 2016

Page 65: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

(Micro-)serviciu

aspecte de interes:

proprietar – ownership+

coordonare – coordination

Page 66: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

(Micro-)serviciu

context mai larg: necesitatea specificării provenienței (micro-)serviciilor

M. Richards (2016)

Page 67: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

(Micro-)serviciu

aspect de interes:

partajarea funcționalităților

share-as-much-as possible (cazul SOA clasic)versus

share-as-little-as possible (microservicii)

Page 68: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

(Micro-)serviciu

aspect de interes:

comunicarea – uzual, asincronă – între (micro-)servicii

abordări:point-to-point (P2P)

sau publish-subscribe

Page 69: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

intern, (micro-)serviciile pot comunica recurgând la publish-subscribe – www.w3.org/TR/pubsub/

simplificarea accesului clientului

via API

Jonas Bonér (2016)

Page 70: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

(Micro-)serviciu

uzual, arhitecturile ce recurg la microserviciinu includ componente middleware

și nu oferă suport pentru abstractizarea interacțiunii dintre producătorii și consumatorii de servicii

(contract decoupling)

Page 71: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitectură bazată pe servicii Web

arhitectură recurgând la microservicii

cazuri concrete: Amazon, Groupon, Netflix,…

de studiat prezentările lui Stefan Tilkov: https://speakerdeck.com/stilkov

Page 72: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~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”(de Souza et al., 2004)

Page 73: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~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

Page 74: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

browsermodern

prezen-tare

proce-sare

abstrac-tizaredate

recurgere la API

JSON, XML, CSV,…

server „slab” (thin)

client „puternic”(HTML5)

aplicație JavaScript(eventual, via app store)

arhitectura aplicațiilor Web:abordarea JavaScript via API

www.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/

Page 75: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

sistem de

operare

prezen-tare

proce-sare

abstrac-tizaredate

recurgere la API

JSON, XML, CSV,…

server „slab” (thin)

client „isteț”(smart device)

aplicație nativăC#, Java, Obj-C, Swift,…(uzual, via app store)

arhitectura aplicațiilor Web:aplicații native (desktop și/sau mobile, smart TV)

www.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/

Page 76: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

brow-ser

prezen-tare

proce-sare

abstrac-tizaredate

API

JSONet al.

server „slab” (thin)client Web

arhitectura aplicațiilor Web:abordarea hibridă (book reader, chioșc informativ)

server de prezentare

pagini

HTML

www.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/

Page 77: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

brow-ser

controlproce-

sare

client „puternic”și/sau „isteț”

arhitectura aplicațiilor Web:serverless – aplicația depinde semnificativ de componente

externe, disponibile în „nori” – (micro-)servicii

BaaS

Mike Roberts (2016) – http://martinfowler.com/articles/serverless.html

func-ționa-litate1

func-ționa-litate2

auten-tificare

BaaS = (Mobile) Backend As A Service FaaS = Functions As A Service

FaaS

căutare

procesarecomenzi

BaaS

comenzi

produse

acces la API

Page 78: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

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

versus

API privat(pentru uz intern)

implementare

Page 79: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

SoundCloud API

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

playlists, groups, comments

http://developers.soundcloud.com/

Page 80: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

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

implementare

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

Page 81: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Modele actuale de afaceri privind API-urile

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

Page 82: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~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

Page 83: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Modele actuale de afaceri privind API-urile

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

Page 84: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~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

Page 85: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare

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ă

Page 86: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Mash-ups

exemplificare:

dorim să oferim o aplicație ce pune la dispozițieinformații din domeniul muzical

în funcție de activitățile fizice ale utilizatorului,pe baza unor servicii Web publice

implementare

Page 87: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

mash-ups

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

https://wiki.fitbit.com/display/API/Fitbit+API

Page 88: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

mash-ups

acces la serviciile RESTdespre formații + albume

via o cheie de autentificare

Page 89: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

mash-ups

API-ul REST de la FitBit oferă date în formatele JSON și XML

Page 90: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

+ FiLaaplicație Web

de tip mash-up

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

https://dev.fitbit.com/

Page 91: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Mash-ups

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

„curentul” SaaS (Software As A Service)

implementare

Page 92: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Mash-ups

caracteristici:combinarevizualizare

agregare

implementare

Page 93: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Mash-ups

combinare

utilizarea de surse de date multiplepoate avea caracter multidimensional

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

Yahoo! Music Search + Google Maps + Eventful

implementare

Page 94: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

mash-ups

Combinare

Page 95: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Mash-ups

vizualizare

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

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

de studiat S. Buraga, “An Introduction to Data Visualization” (2016)http://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html#week11

implementare

Page 96: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Coinorama: metode diverse de vizualizare în timp-real a evoluției cursului monedelor virtuale

Page 97: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~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

implementare

Page 98: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Zemanta – recomandare „inteligentă” de resurse

Page 99: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

implementare: 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 cloud

Platforme(Platform As A Service)

Heroku, Google Cloud Platform, Nodejitsu, Windows Azure,…

Page 100: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

mash-ups

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

Page 101: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

mash-ups

lista mash-up-urilor: www.programmableweb.com/mashups/directory

Page 102: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

performanță: scalabilitatea și latența

limite ale API-urilor + existența versiunilor multiple

drepturi de autor asupra datelor și licențiere

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

monetizare

lipsa unei interoperabilități reale între platforme

implementare: mash-ups

Page 103: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

N-am putea accesa datele oferite de aplicațiile/serviciile Web pe baza unui limbaj de interogare?

Page 104: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

acces la date: yql

Yahoo! Query Language

abstractizează accesul la surse de date eterogenece pot fi obținute via servicii Web

https://developer.yahoo.com/yql/

Page 105: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

acces la date: yql

Permite – pe baza unui limbaj similar SQL –interogarea, filtrarea, combinarea datelor la nivel de Web

(suport pentru realizarea de mash-up-uri)

facilitează atașarea la aplicația Web dezvoltatăa surselor de date de interes:

fluxuri de știri, informații cartografice, resurse multimedia etc.

Page 106: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

acces la date: yql

Adoptă o sintaxă SQLshow, desc, select, use, insert, update, delete

răspunsul la o interogare ≡ rânduri (rows) de date

Page 107: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

acces la date: yql

Surse – modelate ca tabele – de date disponibileenumerate de http://www.datatables.org/

built-in tables – oferite de Yahoo!+

community tables – e.g., Amazon, Apple, Apigee, arXiv, BBC, Deviant Art, E-bay, Europarliament, Foursquare,

GitHub, HackerNews, Last.fm, Mendeley, Microsoft, PayPal, RottenTomatoes, SoundCloud, Spotify, Steam, Tumblr,

Twitter, Vimeo, WordPress, YouTube, Yelp,…

Page 108: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

acces la date: yql

cele mai recente fotografii stocate de Flickrselect * from flickr.photos.recent limit 7;

informații meteo despre localitatea Iașiselect * from weather.bylocation where location='Iasi';

cele mai recente evenimente ce vor avea loc în Europaselect start_date, description from upcoming.events

where woeid in (select woeid from geo.places

where text="Europe") | sort (field="start_date")

Page 109: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

creații muzicale oferite de iTunesselect * from apple.itunes where

term='Brain Damage' and media='music';

URL-ul corespunzător cererii

Page 110: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

acces la date: graphql

GraphQL – Graph Query Language

inițial, propus de Facebook

“a query language for APIs and a runtime for fulfilling those queries with your existing data”

declarativ, inspirat de JSON, strict (strong-typed)

http://graphql.org/

https://learngraphql.com/

Page 111: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

acces la date: graphql

GraphQL – Graph Query Language

implementare de referință în JavaScript: GraphQL.js

biblioteci disponibile pentru C, Go, Java, .NET, PHP, Python, Scala, Typescript,…

detalii în Vince Ling, State of GraphQL 2016https://scaphold.io/blog/2016/10/31/state-of-graphql.html

Page 112: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

model de acces la date: graphql

interogare interactivă cu GraphQLa API-ului vizând „Războiul Stelelor”

http://graphql-swapi.parseapp.com/

exemple de interogări via GraphQL ale unor API-uri publice (e.g., Github, Hacker News, Reddit, Twitter):

https://www.graphqlhub.com/

schemarezultateinterogare

Page 113: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

model de acces la dateServicii Web

model de calcul

Ofertantde servicii de

telefonie mobilă

mash-up-uri la nivelde dispozitiv mobil

model de implementaremodel de interacțiune

acces la date: mash-up – studiu de caz

adaptare după Tom Croucher

model de comunicare

model al fluxului

de date

⚙⚙

⚙⚙

GraphQLsau YQL

Page 114: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Exemple de arhitecturi de aplicații Web recurgând la (micro-)servicii?

Page 115: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

studiu de caz: Groupon

Page 116: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi: exemplu – groupon

Scop: prezentarea de oferte de bunuri de consum

de la o arhitectură monolitică la una adoptând (micro-)servicii

engineering.groupon.com/2013/misc/i-tier-dismantling-the-monoliths/

Page 117: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi: exemplu – groupon

arhitectură inițială MVC tradițional

asigurarea performanței scalabilitate cu CDN

(Content Distribution Network) și servicii de acces la date

Page 118: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi: exemplu – groupon

arhitectură eterogenăimplementări separate în funcție de zona geografică

Page 119: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi: exemplu – groupon

oferirea suportului pentru interacțiuni cu dispozitive mobile

API dedicat, accesul depinzând de localizarea utilizatorului

Page 120: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi: exemplu – grouponreproiectare

(~20 de aplicații Web separate, independente)

Page 121: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

studiu de caz: Netflix

Page 122: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

arhitecturi: exemplu – netflix

Scop: oferire de conținut video la cerere (streaming) + televiziune Web (Web TV)

servicii disponibile pe dispozitive/platforme multiple

exploatare „în nori”

recurge și la tehnologii deschise – netflix.github.io/

Page 123: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

procesare backend Java, Python, Node.js (JavaScript)

procesare frontend React (JavaScript)

sisteme de stocareMySQL, Apache Cassandra, Apache Hadoop, Apache Hive, Oracle DB

servicii în „nori”Amazon EC2 (procesare video)Amazon S3 (stocare)

servicii SQL Amazon RDS

servicii NoSQL Amazon DynamoDB

management de cod GitHub

integrare continuă Jenkins

gestionare servere Apache Mesos

distribuire de conținut(content distribution network)

Open Connect CDN (FreeBSD, Nginx), Akamai, Level 3, Limelight

monitorizare Apache Chukwa

highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html

Page 124: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

„concluzii”

Actualmente, aplicațiile Websunt exploatate și integrate continuu

(continuous integration & deployment)

fenomenul perpetual beta

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

Page 125: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~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: www.alexa.com/topsites

Page 126: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/rezumat

↹arhitectura și ingineria

aplicațiilor Web orientate spre servicii

Page 127: Service Oriented Architecturesbusaco/teach/courses/... · „În nori” (space-based, cloud) conform M. Richards, Software Architecture Patterns, ... Microservices vs. SOA, ... Serviciu

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Anca

Bogdan

relațiaknows

owns

proprie-tatea

givenName

album

photo

twitter.com/pinkfloyd

tag

clasa persoanelor

follows

owns

sameComposer

clasaalbumelormuzicale

episodul viitor: Web-ul datelor modelate semantic