Comparteix:

Sobre SOA

Comparteix:

Què és SOA?

SOA són les sigles d'Arquitectura Orientada a Serveis (Service Oriented Architecture). Una Arquitectura Orientada a Serveis consta d’una cartera de serveis (catàleg de serveis) que s’utilitzen per a construir aplicacions orientades a serveis, implementar comunicacions entre aplicacions convencionals o per implementar BPM (Processos de negoci) entre d’altres.SOA augmenta la capacitat de resposta de les TIC en front al dinamisme del món del negoci en el que els requisits estan canviant constantment. Les organitzacions requereixen agilitat en el negoci per tal de respondre ràpid i eficientment al canvi. Per altra banda, és objectiu de SOA disposar d’un conjunt de serveis web que es poden combinar i modificar per tal de generar noves aplicacions.En aquest sentit existeix un compromís dels usuaris de la SOA pel tal que els serveis han de ser prou genèrics perquè puguin ser reutilitzables.Podem comparar SOA amb les construccions “LEGO”. Els serveis web serien les peces que es poden connectar fàcilment entre elles per formar una altra unitat que fàcilment es pot connectar amb una major per a poder formar ràpidament una construcció “LEGO” o aplicació SOA. 

Serveis web

Un servei web (també conegut com Web Service en anglès) és una col•lecció de protocols i estàndards que serveix per intercanviar dades entre aplicacions. Diferents aplicacions de programari desenvolupades en llenguatges de programació diferents i executades sobre qualsevol plataforma poden utilitzar els serveis web per l'intercanvi de dades en una xarxa com Internet. Aquesta gran interoperabilitat s'aconsegueix gràcies a l'adopció d'estàndards oberts. Les organitzacions OASIS i W3C són les responsables de l'arquitectura i reglamentació dels serveis web. Per garantir la interoperabilitat entre les diferents implementacions existeix un organisme, el WS-I, que és l'encarregat d'especificar de forma exhaustiva tots els aspectes d'aquests estàndards.

Subscriptors

són Són usuaris de les funcionalitats del serveis web que subscriuen. Com a tals han d’omplir un formulari responsabilitzant-se de l’ús que en fan.

Proveïdors

Ssón usuaris que ofereixen una funcionalitat a través d’un servei web (proveeixen un servei web). També omplen un formulari responsabilitzant-se d’uns acords de servei.

 

Principis de disseny

SOA es basa en els següents principis de disseny:
  • Poc acoblament: disseny dels serveis amb una interfície clara i ben definida que els aïlli de la seva lògica de negoci. Aquest principi és el que s’anomena el desacoblament dels serveis: definir els serveis físicament desacoblats de la seva implementació. D’aquesta manera, el proveïdor del negoci, en cas necessari, pot modificar la implementació del servei sense afectar als seus consumidors ja que es conserva la interfície.
  • Abstracte: els serveis s’especifiquen mitjançant una interfície que permet als consumidors accedir al servei i conèixer els detalls de com utilitzar-lo.
  • Autònom: els serveis no tenen dependències amb cap programa o software concret. Són cridats, mitjançant la seva interfície, directament des dels client per tal d’obtenir un resultat.
  • Sense estat: no hi ha cap estat associat al servei, s’executen i obtenen els resultat segons les seves especificacions.
  • Composable: és possible enllaçar els serveis   entre si per tal d’obtenir nous serveis.
  • Reusable: el disseny dels nous serveis s’ha d’orientar a la possible reutilització dels mateixos. En la mesura del que sigui possible cal evitar pensar en la resolució de necessitats molt específiques.
  • Amb la granuralitat adequada: els serveis amb una granularitat petita són poc útils per construir aplicacions amb ells i poden generar problemes de rendiment. Els serveis amb granularitat gran són poc flexibles i difícils de reutilitzar.
  • Fàcil de descobrir: mitjançant una eina de catàleg que permeti documentar, enregistrar, identificar i cercar els serveis. El Catàleg SOA conté tots els serveis i operacions de la UPC i les seves subscripcions. És l’eina bàsica pels subscriptors per a descobrir serveis i pels els proveïdors inspeccionar el conjunt de subscriptors dels seus serveis SOA. El  catàleg es troba disponible a: http://soa.upc.edu
  • Generació de nous serveis: dissenyar nous serveis en el cas que un servei modifiqui el seu comportament de manera important. És preferible crear nous serveis que generar noves versions d’un mateix servei amb comportaments molt diferents

Comparteix:

Funcionament SOA

Equip

La SOA a la UPC s’organitza amb una sèrie d’actors els quals disposen de mecanismes de comunicació per a un funcionament òptim.
El següent esquema mostra com s’engrana la SOA a la UPC:
• La direcció informàtica patrocina el projecte i proveeix els mecanismes necessaris per tal de dur-lo a terme.
• El govern SOA té la finalitat de vetllar per la qualitat, l’ús de la SOA i el bon funcionament de la SOA a la UPC, donar suport als usuaris de SOA i escoltar les seves necessitats. El govern SOA, amb col•laboració del grup de coordinació SOA, estableix polítiques i defineix processos per tal que el funcionament SOA sigui òptim. Per tal de portar a terme els seus objectius ofereix serveis molt diversos que a continuació detallarem:
• Documentar i enregistrar els serveis i subscripcions en el catàleg SOA.
• Realitzar anualment el “Programa d’adopció de SOA” per detectar noves necessitats SOA.
• Definir el model de dades de la UPC per tal d’identificar les principals entitats de dades així com els Sistemes d’informació encarregats de proveir-les.
• Validar i consensuar les polítiques, bones pràctiques i procediments de SOA.
• Gestionar el cicle de vida dels serveis.
• Suport tècnic a aquells Sistemes d’Informació de la UPC que ho requereixin.
• Formar a la comunitat SOA de la UPC.
• Accions de difusió per donar a conèixer SOA a la UPC, augmentar la seva utilització i aconseguir que tota l’organització pugui beneficiar-se dels seus avantatges.
• Posar els mitjans per informar als usuaris TIC
• Transformar missatges entre l’aplicació sol•licitant i el servei per tal de facilitar la integració entre sistemes.
• Implementar la seguretat entre client i proveïdor.
• Alertar d’incidències.
• Orquestrar serveis.
• El grup de coordinació SOA el formen representants dels Sistemes d’Informació corporatius de la UPC (responsables i arquitectes dels sistemes d’informació). El grup de coordinació SOA col•labora amb el govern i li dóna suport validant i ratificant les polítiques, processos i bones pràctiques proposades pel govern.
El govern SOA i el grup de Coordinació SOA es reuneixen bimestralment. El govern SOA presenta polítiques, processos i bones pràctiques i el grup les ratifica.
La SOA a la UPC s’organitza amb una sèrie d’actors els quals disposen de mecanismes de comunicació per a un funcionament òptim.
El següent esquema mostra com s’engrana la SOA a la UPC: 


  • La direcció informàtica patrocina el projecte i proveeix els mecanismes necessaris per tal de dur-lo a terme.
  • El govern SOA té la finalitat de vetllar per la qualitat, l’ús de la SOA i el bon funcionament de la SOA a la UPC, donar suport als usuaris de SOA i escoltar les seves necessitats. El govern SOA, amb col•laboració del grup de coordinació SOA, estableix polítiques i defineix processos per tal que el funcionament SOA sigui òptim. Per tal de portar a terme els seus objectius ofereix serveis molt diversos que a continuació detallarem:
  • Documentar i enregistrar els serveis i subscripcions en el catàleg SOA.
  • Realitzar anualment el “Programa d’adopció de SOA” per detectar noves necessitats SOA.
  • Definir el model de dades de la UPC per tal d’identificar les principals entitats de dades així com els Sistemes d’informació encarregats de proveir-les.
  • Validar i consensuar les polítiques, bones pràctiques i procediments de SOA.
  • Gestionar el cicle de vida dels serveis.
  • Suport tècnic a aquells Sistemes d’Informació de la UPC que ho requereixin.
  • Formar a la comunitat SOA de la UPC.
  • Accions de difusió per donar a conèixer SOA a la UPC, augmentar la seva utilització i aconseguir que tota l’organització pugui beneficiar-se dels seus avantatges.
  • Posar els mitjans per informar als usuaris TIC
  • Transformar missatges entre l’aplicació sol•licitant i el servei per tal de facilitar la integració entre sistemes.
  • Implementar la seguretat entre client i proveïdor.
  • Alertar d’incidències.
  • Orquestrar serveis.

El grup de coordinació SOA el formen representants dels Sistemes d’Informació corporatius de la UPC (responsables i arquitectes dels sistemes d’informació). El grup de coordinació SOA col•labora amb el govern i li dóna suport validant i ratificant les polítiques, processos i bones pràctiques proposades pel govern.
El govern SOA i el grup de Coordinació SOA es reuneixen bimestralment. El govern SOA presenta polítiques, processos i bones pràctiques i el grup les ratifica.

Polítiques

Entenem com a política un principi o regla per prendre decisions i arribar als resultats o objectius esperats de SOA a la UPC. El govern SOA estableix un seguit de polítiques per al bon funcionament de la SOA a la UPC i un mecanisme de revisió periòdica de les mateixes per tal d’adaptar-se a les necessitats canviants de SOA a la UPC així doncs les polítiques segueixen el cicle tancat de creació/tunning -> Desplegament -> Monitorització.
El govern SOA garanteix que tots els agents implicats de la UPC coneguin les polítiques SOA. És responsabilitat de cada agent aplicar aquestes polítiques. El grau d’aplicació de polítiques s’emprarà com a indicador del nivell de maduresa de SOA a la UPC.
Sempre que sigui possible, el govern oferirà eines per a l’aplicació automàtica de polítiques mitjançant una sèrie de punts de control.

Interoperabilitat, estàndards

És objectiu del govern SOA oferir interoperabilitat. Tots els SI Corporatius són compatibles amb SOA. La majoria de llenguatges de programació del mercat també ofereixen la possibilitat d’utilitzar serveis web (web Services). El govern SOA donarà suport als estàndards de serveis web existents a la xarxa. Actualment es dóna suport SOAP, HTTP i JSON.
L’estàndard seleccionat per treballar a la UPC és el SOAP, fent servir el WSDL per descriure els serveis i el SOAP fault les excepcions.
Els clients i proveïdors es poden programar en qualsevol llenguatge de programació. El govern SOA dóna suport per a la generar-los en JAVA, PHP, PERL i Python. Si us trobeu amb dificultats ja siguin per treballar en un altre llenguatge o per altres causes contacteu amb el govern SOA (govern.soa@upc.edu).
Qualitat
El govern SOA vetlla per la qualitat de la SOA a la UPC. Per aquesta raó ha creat una política de qualitat en la que:
El govern SOA garanteix:
  • Serveis disponibles.
  • Serveis segurs.
  • Monitorització de Serveis.
  • Logging de Serveis.
  • Notificació d’incidències.
  • Catàleg actualitzat.
  • Suport en l’ús de SOA.
El propietari o proveïdor del servei garanteix per mitjà d’un contracte:
Assegura un nivell de servei (SLA)
  • Informar al govern SOA i als subscriptors de qualsevol incidència en el servei
El subscriptor o consumidor del servei garanteix per mitjà d’una subscripció:
  • Bon ús del servei (SLA)
  • Notificar al proveïdor i al govern SOA de qualsevol canvi en l’ús del servei

Acords de servei (SLAs i mètriques)

Tant els proveïdors com els subscriptors pacten amb el govern SOA el que s’anomena un Acord de Servei o SLA (Service Level Agreement).
1. Els contractes entre el govern SOA i els proveïdors estipulen els següents SLA:
  • Percentatge de disponibilitat del servei (el percentatge de temps que el servei estarà disponible des del bus).
  • Temps mitjà de resposta del servei.
  • Temps màxim de resposta del servei.
  • Nombre màxim de peticions simultànies suportades.

2. Les subscripcions proveïdes en el catàleg estipulen:
  • Horari d’utilització del servei (24x7, de 8 a 18h, altres...)
  • Estimació d’ús (quantitat de sol•licituds prevista (crides al WS) per unitats de temps (mes, dia, hora, ...)

Periòdicament, el govern SOA informarà a proveïdors i consumidors de les mètriques per cada contracte i subscripció. En cas de no haver complert l’SLA se n’esbrinaran les causes i:
  • Es corregirà el servei
  • S’actualitzarà l’SLA

En cas de no acordar una solució, el govern SOA farà de mediador.

Seguretat

Aquest apartat tracta de la seguretat entre subscriptor i bus.
Hem explicat a l’apartat d’Infraestructura SOA que el bus es troba en un entorn segur i amb alta disponibilitat. A part, el bus disposa dels mecanismes per a garantir:
Explicar el bus públic i el bus privat, quina diferència hi ha. A nivell de seguretat
  • Autenticació: WS-Security (Tokens), OAuth (Tokens)
  • Autorització: Mitjançant l’usuari LDAP.
  • Confidencialitat: XML Encryption (WSS) o bé SSL
  • Integritat: XML Signature (WSS) o bé SSL
  • No repudi: XML Signature (WSS)

Segons el tipus de dades, el govern SOA disposa el nivell de seguretat mínim i posa els mitjans per complir-la:

 

MESURES DE SEGURETAT SUBSCRIPTORS

NIVELL DE SEGUERTAT OPERACIÓ

HTTPS

HTTPS

WSS

HTTPS

OAUTH

HTTPS

WS-SIGNATURE

Confidencialitat(NT)

Integritat (NT)

Confidencialitat(NT)

Integritat (NT)

Autenticació

Autorització usuari genèric

Confidencialitat(NT)

Integritat (NT)

Autenticació

Autorització usuari personal

Confidencialitat(NT)

Integritat (NT)

Autenticació

Autorització usuari personal

Integritat missatge

No repudi

ALT

 

MIG

 

 

BAIX

 

 

NM nivell de missatge, NT nivell de transport
Així per exemple, una operació que no requereix nivell de seguretat pot funcionar en qualsevol tipus de mesures. Una operació que requereix una seguretat baixa permetrem aquells accessos des de HTTPS, HTTPS+WSS i HTTPS+WS-SIGNATURE.

Testeig

El proveïdor d’un servei ha de proporcionar uns casos d’ús o jocs de proves. Aquest joc de proves s’inclou en el contracte d’un servei i l’utilitzen tan el govern SOA com els subscriptors del servei per validar que funciona correctament.

Nomenclatura

La Política de nomenclatura i versionat estableix com han de ser les URL de serveis, els noms de serveis i operacions, els paràmetres i dominis.

  • Nom del bus serà: bus-soa.upc.edu (entorn explotació) i bus-soades.upc.edu (entorn test). Aquests noms els estipula el govern SOA.
  • Domini: classifica als serveis dins el bus i el catàleg de serveis per sistema d’informació. Els noms dels dominis els estableix el govern SOA segons l’annex II Dominis.
  • Nom del servei i versió: al final del nom del servei s’indicarà el número de versió. Veure apartats 4.7.1 noms dels serveis, operacions i paràmetres i 4.7.2 Control de versions.

Nom dels serveis, operacions i paràmetres
  • Els noms han de ser un nom amb sentit, descriptiu del servei: fer servir noms que siguin fàcilment associables amb el seu propòsit.
  • Evitar noms llargs i evitar nom massa curts.
  • Evitar anomenar dos serveis, operacions o paràmetres igual.
  • El nom del servei ha de ser de la forma NomServei, NomOperació i nomParametre ("Camel case")
  • Al final del nom del servei es posarà la paraula Alta, Baixa, Modificació o Consulta segons sigui convenient.
  • El nom no contindrà les paraules WS, servei, servei web, operació, operation, parametre.

Específic de paràmetres

  • Pels paràmetres, es transferirà la informació el màxim de segregada. Per exemple, enviar nom, cognom 1, cognom 2. No enviar el nom complet.
  • Els valors dels paràmetres han d'estar tots en majúscules.
  • La codificació ha de ser UTF-8
  • El valor null s'haurà de passar utilitzant el XSI:null
  • El valor blanc es passarà com: <tag> </tag>

Control de versions

Hi ha dos tipus de versions: Les major version i les minor version. 

En la versió v1.2 (l'1 és la major version i el 2 és la minor version).
Les major version representa realitzar canvis en els SI subscriptors. Aquests canvis venen generats per:
  • Esborrar una operació.
  • Renombrar una operació.
  • Canviant els paràmetres (en tipus de dades o ordre) d’una operació.
  • Canviant l’estructura d’un tipus de dades complex.
Les minor version no representen canvis pels subscriptors. Són minor version:
  • Afegir noves operacions al WSDL
  • Afegir un nou tipus de dades dins de l’esquema XML
  • Al final del nom del servei s’hi posarà la versió major.
Per exemple: NomServeiAltav1.

  • La versió minor es passarà com a paràmetre. Per exemple:
<xs:schema xmlns=http://www.acme.com/types/pcconfig/NomServeiAltav1 
targetNamespace=http://www.acme.com/types/pcconfig/NomServeiAltav1 
version="1.2">
  • Només hi haurà una versió minor per cada versió major. Hi podrà haver paral•lelament tantes versions major com sigui necessari.
  • El govern SOA treballarà per unificar versions i convidar als subscriptors a que adoptin les noves versions.

Seguiment

El govern SOA facilita una sèrie de mecanismes de seguiment per tal que els diferents actors de la SOA a la UPC portin a terme un seguiment del projecte:
  • Les reunions de coordinació SOA: 5 reunions anuals amb l’objectiu de fer seguiment i evolucionar la SOA.
  • L’iespai SOA (http://iespaisoa.upc.edu) Els usuaris SOA poden consultar a la web el catàleg de serveis SOA, l’estat del SOA, també poden participar al SOA (subscriure’s al butlletí SOA, apuntar-se a les formacions esporàdiques que fem i al programa d’adopció SOA), llegir la documentació SOA, el llibre blanc i els processos (les instruccions) per poder subscriure o proveir un servei.
  • El butlletí SOA S’envia semestralment als usuaris que han sol•licitat l’alta a la llista butlletiSOA@llistes.upc.edu. Conté informació d’actualitat de la SOA a la UPC, una agenda i un tema que és tractat a fons (apartat “en detall”).
  • El llibre blanc de SOA Publicat a la web SOA, conté el detall del model SOA adoptat a la UPC amb l’objectiu que els usuaris SOA l’entenguin i el puguin posar en pràctica.
  • La pàgina SOA (http://soa.upc.edu) Aquesta pàgina es troba dins de la intranet de l’Oficina de Sistema d’Informació. És una pàgina que explica a el projecte i redirigeix als usuaris TIC a l’iespai SOA i la resta a posar-se en contacte amb el govern SOA.
  • L’adreça govern.soa@upc.edu s’usa com a únic canal de comunicació dels usuaris cap al govern SOA. A ell s’han de fer arribar totes les sol•licituds SOA, comentaris, propostes, queixes, incidències...
  • El programa d'adopció SOA s'executa anualment per conèixer l'estat de l'adopció de SOA a la UPC. En el programa hi participen més de 20 Sistemes d'Informació i està obert a tots els SI de la casa per a estudiar-ne l'ús de la SOA i intentar satisfer les seves necessitats SOA.
  • La formació SOA: facilita el coneixements teòrics-pràctics per utilitzar la SOA en temps de disseny i implementació dels sistemes. L’oferta formativa compren els programes de “Coneixements per a SOAlitzar un sistema d’informació” i “Eines per a SOAlitzar un sistema d’informació”.
  • Les alarmes SOA, alerten de possibles mal funcionaments en els serveis o les seves crides:
  • Alarma a proveïdor en cas que el Ràtio d’errors > 50% en els darrers 30 minuts.
  • Alarma a proveïdor i consumidor en cas que el temps de resposta > 3 seg en els darrers 30 minuts
  • Alarma a proveïdor i consumidor en cas que el Status del servei sigui offline.
  • Alarma a proveïdor en cas que #errors WSS > 5 en els darrers 10 minuts.

Comparteix:

Bones pràctiques SOA

Planteja’t l’ús de SOA
Estudia diverses possibilitats a l’hora d’implementar. Usa sempre SOA excepte en el cas que els nivells de servei que et proporciona SOA no siguin adequats pel teu projecte.

Prioritza els serveis amb major benefici per als teus usuaris 
Comença per algun projecte petit, que es pugui implementar en un temps reduït i el seu benefici sigui elevat.

Implementa serveis pensant en gran
A l’hora d’implementar serveis webs, fes-lo el més genèric possible. Tingues en compte que un servei pot contenir diverses operacions. La comunitat t’ho agrairà!

SOA és més que una iniciativa IT
SOA requereix d'un esforç conjunt del negoci i dels tècnics IT.

Fes comunitat
SOA el construïm entre tots, cada aportació és important. Participa en SOA! I avançarem més ràpidament.

Treu el suc de SOA
Al catàleg SOA hi ha molts serveis que pots utilitzar per al teu desenvolupament, d’una forma ràpida clara i que beneficiarà de ben segur els teus usuaris. Tot el que facis publica-ho i la comunitat SOA UPC t’ho agrairà.

Fes servir els estàndards
Utilitza els estàndards de serveis web (SOAP, REST, JSON, WSDL, FTP, connectors BD), si n’has de menester a d’altres contacta amb govern.soa@upc.edu.

Aprofita les eines del govern SOA
El govern et dóna suport a soa.osi@upc.edu i suport tècnic a soa.tec@upc.edu i et proporciona eines com el catàleg de serveis i exemples de codi
Aprofita els recusos SOA
SOA et proporciona la seguretat que desitgis pels teus serveis webs (certificats, https...), preocupat només d’establir un canal segur amb el bus.
SOA realitza un logging de les crides al teu servei. Demana el teu específic a govern.soa@upc.edu.
El govern SOA gestiona qualsevol adaptació que necessitis d’un servei existent ja sigui per estàndards o paràmetres.