36
Last Updated: Apr 2015 WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

  • Upload
    wso2

  • View
    452

  • Download
    6

Embed Size (px)

Citation preview

Page 1: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

Last Updated: Apr 2015

WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

Page 2: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

2

AGENDA

• Introducción• WSO2, Chakray

• Exponiendo Servicios Complejos del ESB en un API REST• Veremos un ejemplo y hablaremos del patrón de fachada API

• OAuth 2.0, su implementación en API Manager• Veremos su implementación y hablaremos de seguridad API

• Los 5 secretos mejor guardados del API Manager, que deberías conocer.• Relacionaremos 5 peculiaridades muy interesantes y poco conocidas.

• Velocidad y escalamiento / alta disponibilidad• Realizaremos alguna prueba en directo de velocidad.

• Preguntas y Respuestas.

Page 3: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

SanjivaWeerawarana

Hola? Somos

MMVenture Capital$30

3

Page 4: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

4

Una plataforma completa para crear negócios conectados

4

Page 5: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

Mountain View,

California, USA

BloomingtonIndiana, USA

London,United

Kingdom

Colombo,Sri Lanka

São Paulo,Brazil

Oficinas

5

Page 6: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

Equipo500+

6

Page 7: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

Publication Category WSO2 Year

Gartner Magic Quadrant for Enterprise Application Platform as a Service Visionary 2014

Gartner Magic Quadrant for Application Services Governance Visionary 2013

Gartner Magic Quadrant for On-Premises Application Integration Suites Visionary 2013

Gartner Magic Quadrant for On-Premises Application Platforms Visionary 2013

The Forrester Wave API Management Platforms, Q1 Leader 2013

Gartner Magic Quadrant for Systematic SOA Application Projects Visionary 2012

Gartner Magic Quadrant for Systematic Application Integration Projects Visionary 2012

Gartner Magic Quadrant for SOA Infrastructure Projects Visionary 2012

The Forrester Wave Integrated SOA Governance, Q1 Strong Performer 2012

The Forrester Wave SOA Service Life-Cycle Management, Q1 Strong Performer 2012

The Forrester Wave Standalone SOA Management Solutions, Q4 Strong Performer 2011

Gartner Magic Quadrant for SOA Governance Technologies Visionary 2011

The Forrester Wave Enterprise Service Bus, Q2 Leader 2011

Presencia en estudiosdel Mercado

7

Page 8: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

+ de 250 Clientes

8

Page 9: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

9

Page 10: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

• "Enfoque brillante, amor a la modularidad, lo que permite una gran flexibilidad. Estamos muy contentos de estar trabajando con WSO2 "- Jim Crabbe, Senior Product Manager, Boeing

• "La extrema capacidad de soporte, es lo que nos cautivó con WSO2" - Prakash Iyer, Vicepresidente del Software Arquitectura y Estrategia, CIO, Trimble.

• “Con el uso de WSO2 ESB, habíamos sido capaces de proporcionar a los clientes y nuestors socios la calidad y experiencia que esperan de eBay" -Abhinav Kumar, Gerente senior de Ingeniería de Sistemas en eBay.

¿Y los clientes, que dicen?

10

Page 11: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

Introducción

Jack A. RiderPrincipal Software Architect & Consultant

Integration, Open Source, BPM, ECM, Portals

jack.rider [at] chakray.com

España +34 667770067

UK +44 (0) 7474742263

11

Page 12: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

Introducción

• Grupo de consultores sénior enfocados en integración con WSO2

• Preferred Partner con presencia en Europa y Sudamérica.

• Especializado en servicios a integradoras.

• Suministra Training oficial on-line y presencial.

12

Page 13: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

Introducción

CHAKRAY : “Palabra Quechua que describe el buen uso que en el mundo Andino se le ha dado a la Tecnología para el trabajo con la tierra.”

Aportar la excelencia en la planificación, implantación , soporte y formación desistemas críticos WSO2

Misión:

Visión: • Ser una empresa de alta especialización sobre sistemas críticos WSO2.

• Sabemos que el principal activo es nuestro equipo.

• Sabemos colaborar con todos los “Stakeholders“ del proyecto dando soporte de muy alta calidad a los negocios de sus clientes, gestionando y evolucionando sus Sistemas de Información.

13

Page 14: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

Exponiendo Servicios del ESB en un API REST

• Breve Ejemplo de cómo exponer servicios

14

Page 15: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

Exponiendo Servicios del ESB en un API REST

• Patrón de Fachada• Las fachadas nos protegen de la complejidad de las implementaciones internas

• Nos proveen de interfaces mas simples

• Proporcionan una coherente y superior experiencia de usuario.

• En nuestro caso además libera al desarrollador de preocupaciones como

• Gestionar la autorización a los consumidores

• Controlar su monitorización, monetización.

• Control en la limitación de uso (throttling)

• Simplifica la gestión del versionado

• Etc. Etc.

Wikimedia Commons

WSO2 Blogs : A pragmatic approach to the API facade-patternWSO2 Blogs : implementing an api façade with the wso2 API management platform

15

Page 16: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

OAuth 2.0, implementación en API Manager

• La API es creada y publicada• Se crea la Aplicación• Se generan los Tokens• Las APIs son subscritas en la Aplicación• El consumidor obtiene el “Authorizacion Grant”• El consumidor obtiene el “Access Token”• El consumidor accede al recurso

OAuth (Open Authorization)

es un protocolo abierto,

propuesto por Blaine

Cook y Chris Messina, que

permite autorización segura

de una API de modo

estándar y simple para

aplicaciones de escritorio,

móviles y web.

Aplicación cliente

Dueño del Recurso

Servidor de Autorizaciones

Servidor de Recursos

Authorization Request

Authorization Grant

Authorization Grant

Access Token

Access Token

Resource

https://tools.ietf.org/html/rfc6749 http://es.wikipedia.org/wiki/OAuth

16

Page 17: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

OAuth 2.0, implementación en API Manager

Dueño del Recurso

Servidor de Autorizaciones

Servidor de Recursos

Authorization Request

Authorization Grant

Authorization Grant

Access Token

Access Token

Resource

Store y Key Manager

API Gateway

PublisherPublica APIs

Çheck Access Token

Crea Apps & Subscribe a APIs

Publish APIs

Resources

Publish APIs

Desarrollador

Aplicación cliente

17

Page 18: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

OAuth 2.0, implementación en API Manager

PublisherPublishes APIs

Desarrolador1.- Logarse al Publisher:

2.- Añadir API.

18

Page 19: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

19

OAuth 2.0, implementación en API Manager

Dueño del recurso Store y

Key Manager

Aplicación Cliente

Creates Apps & Subscribes

to APIs

1.- Logarse al Store

2.- Añadir/Crear Aplicación

3.- Generar Subscription Keys

Page 20: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

20

OAuth 2.0, implementación en API Manager

Dueño del Recurso Store y

Key Manager

Aplicación Cliente

Creates Apps & Subscribes

to APIs

1.- Seleccionar API

2.- Seleccionar Application

3.- Pulsar “Subscribe”

Page 21: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

21

OAuth 2.0, implementación en API Manager

Servidor de Autorizaciones

Store y Key

Manager

AplicaciónCliente

Authorization Grant

Authorization Token

1.- Codificar B64 “Consumer key : Secret”

2.- Enviar Solicitud de Autorizacion

Consumer Key Consumer Secret B64 Encoded (Consumer key:Consumer Secret)

cfB4G2UpNPXThsiPLWnj0iFdv8wa C8ygxh9d3qtTaaW2fhyAobWazY2ZCNEcyVXBOUFhUaHNpUExXbmowaUZkdjh3YTpDOHlneGg5ZDNxdFRhYVcyZmh5QW9iV2F6dElh

Request:

curl -k -v -d "grant_type=password&username=admin&password=admin" -H "Authorization: Basic Y2ZCNEcyVXBOUFhUaHNpUExXbmowaUZkdjh3YTpDOHlneGg5ZDNxdFRhYVcyZmh5QW9iV2F6dElh, Content-Type: application/x-www-form-urlencoded" https://localhost:8243/token

Response:{"scope":"default","token_type":"Bearer","expires_in":3299,"refresh_token":"35328bcc6b129e7c0d88b46fba0d7cd","access_token":"e6c0981142da2d806a8d397f9534a52"}

Page 22: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

22

OAuth 2.0, implementación en API Manager

1.- Enviar petición con Bearer Header

Access Token

C8ygxh9d3qtTaaW2fhyAobWaz

Request: curl -v -X GET -H "Authorization: Bearer e6c0981142da2d806a8d397f9534a52" "http://localhost:8280/return_json/red"

Response: { "color_response": { "name": "red" }}

Servidor de Recursos

API Gateway

Aplicación Cliente

Authorization

Request

Authorization Grant

Key Manager

Resources

Page 23: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

23

OAuth 2.0, implementación en API Manager

1.- Enviar petición con Bearer Header

Access Token

C8ygxh9d3qtTaaW2fhyAobWaz

Request: curl -v -X GET -H "Authorization: Bearer e6c0981142da2d806a8d397f9534a52" "http://localhost:8280/return_json/red"

Response: HTTP/1.1 401 Unauthorized <ams:message>Access Token Expired</ams:message>

Servidor de Recursos

API Gateway

Aplicación Cliente

Authorization

Request

Authorization Grant

Key Manager

Page 24: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

24

OAuth 2.0, implementación en API Manager

Servidor de Autorización

AplicaciónCliente

Store y Key

Manager

Authorization

Refresh

Authorization Token

New Refresh Token New Access Token

7b32865471a287a2a3ba8fd2220b1 c13e34f5acda279e862f4f6c7151f058

1.- Codificar B64 “Consumer key : Secret”

2.- Enviar petición Authorization Refresh.

Refresh Token B64 Encoded (Consumer key:Consumer Secret)

35328bcc6b129e7c0d88b46fba0d7cd Y2ZCNEcyVXBOUFhUaHNpUExXbmowaUZkdjh3YTpDOHlneGg5ZDNxdFRhYVcyZmh5QW9iV2F6dElh

Request:

curl -k -v -d "grant_type=refresh_token&refresh_token=35328bcc6b129e7c0d88b46fba0d7cd" -H "Authorization: Basic Y2ZCNEcyVXBOUFhUaHNpUExXbmowaUZkdjh3YTpDOHlneGg5ZDNxdFRhYVcyZmh5QW9iV2F6dElh, Content-Type: application/x-www-form-urlencoded" https://localhost:8243/token

Response:{"scope":"default","token_type":"Bearer","expires_in":3600,"refresh_token":"7b32865471a287a2a3ba8fd2220b1","access_token":"c13e34f5acda279e862f4f6c7151f058"}

Page 25: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

25

OAuth 2.0, implementación en API Manager

Servidor de Autorización

Store y Key

Manager

AplicaciónCliente

Authorization

Refresh

Authorization Token

1.- Codificar B64 “Consumer key : Secret”

2.- Enviar Petición “Token revoke”

Refreshed Access Token B64 Encoded (Consumer key:Consumer Secret)

c13e34f5acda279e862f4f6c7151f058 Y2ZCNEcyVXBOUFhUaHNpUExXbmowaUZkdjh3YTpDOHlneGg5ZDNxdFRhYVcyZmh5QW9iV2F6dElh

Request:

curl -k -d "token=c13e34f5acda279e862f4f6c7151f058" -H "Authorization: Basic Y2ZCNEcyVXBOUFhUaHNpUExXbmowaUZkdjh3YTpDOHlneGg5ZDNxdFRhYVcyZmh5QW9iV2F6dElh" https://localhost:8243/revoke

Response: NO RESPONSE

Page 26: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

26

Los 5 secretos mejor guardados del API Manager

• Templates• Los templates son las plantillas Velocity que se encargan de generar el código Synapse desde nuestras

definiciones en el Publisher.

• Respuesta Javascript• Podemos definir APIs que directamente ejecuten código javascript en vez de llamar a un EP.

• Los builders y los formatters• Esto son clases que se ejecutaran en el proceso de entrada y salida del mensaje dependiendo del

“contenType”. Sirven por ejemplo para validar el contenido de los mensajes antes de procesarlo.

• Servicios web nativos que expone el API Manager• Al igual que otros productos de WSO2, API Manager expone servicios web que pueden ser utilizados

desde herramientas externas. Por ejemplo podemos con “cURL” o “SoapUI” publicar un API.

• SoapUI Plugin • http://smartbear.com/news/news-releases/wso2-as-api-integration-partner/

Page 27: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

27

Los Templates

• Los Templates son las plantillas Velocity que se encargan de generar el código Synapse desde nuestras definiciones en el Publisher.

• Velocity (https://velocity.apache.org) es un sencillo motor de plantillas basado en Java

• Mediante su edición podemos automatizar la customización de nuestras APIs.

• Podemos añadir nuevos handlers.

• modificar comportamientos por defecto.

• En resumen tener control sobre la generación de nuevas APIs desde el Publisher.

• Veamos un template. [API-HOME]/repository/resources/api-templates

Page 28: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

28

Respuesta Javascript

• El API Publisher permite definir “in-line” una respuesta Javascript a las peticiones recibidas.

• Es una solución rápida, sencilla y elegante a funcionalidades básicas.

• Ejemplo de Javascript por defecto:

mc.setProperty('CONTENT_TYPE', 'application/json'); var body = mc.getProperty('uri.var.body');mc.setPayloadJSON('{ "data" : "sample JSON"}');

Page 29: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

29

Los builders y los formatters

•Clases que se ejecutaran en el proceso de entrada y salida del mensaje dependiendo del “contentType”.

• Nos permite validar los payload de entrada y formatear los de salida, dependiendo del “contentType” del mensaje.

• Son funcionalidades provistas por el motor de web services de AXIS2 que nos van proporcionar control sobre los tipos de payload que recibimos y emitimos.

• Ver:

• https://docs.wso2.com/display/ESB480/Working+with+Message+Builders+and+Formatters

• http://axis.apache.org

• Veamos como esta definido por defecto [AM-HOME]/repository/conf/axis2/axis2.xml

Page 30: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

30

Servicios web nativos del API Manager

•API Manager expone servicios web que pueden ser utilizados desde herramientas externas.

• Por ejemplo podemos con “cURL” o “SoapUI” publicar un API

• La plataforma Carbon, básicamente permite hacer cualquier operación que podamos realizar con la consola, a través de servicios web.

• Cambiar a “false” en carbon.xml el valor de “<HideAdminServiceWSDLs>”

• Acceder a: https://localhost:9443/services/UserAdmin?wsdl

• Y 15 servicios mas: ServerAdmin, LoginStatisticsAdmin, etc.

• En el caso del API Manager, además podemos acceder a los servicios que proporciona Jaggery (http://jaggeryjs.org), con los que están construidos el Publisher y el Store.

• Los ejemplos por excelencia, podemos encontrarlos en el paquete por defecto que nos descargamos de WSO2.

• [AM-HOME]/samples/YoutubeFeeds.jag

Page 31: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

31

API Plugin

•Smartbear, la compañía creadora de SoapUI, es desde marzo del 2015, WSO2 API Integration Partner.

•La compañia a desarrollado un Nuevo plugin quepermite a los usuarios importer APIs desde el WSO2 API Manager a su familia de productos, Ready! API.

• http://smartbear.com/news/news-releases/wso2-as-api-integration-partner/

• http://smartbear.com/product/ready-api-family/overview/

Page 32: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

32

Velocidad y escalamiento / alta disponibilidad

•Un mensaje en formato JSON/REST puede llegar al API Manager, ser despachado al ESB, transformarse en XML/SOAP y ser

devuelto en ¡¡menos de 4 milisegundos!!. (en mi portátil)

Page 33: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

33

Velocidad y escalamiento / alta disponibilidad

•Demostración.

• 2 Maquinas virtuales

• CentOS 6.5 Desktop 64 bit, RAM 3296m. 1 CPU

• 192.168.43.102 API Manager y Jmeter

• 192.168.43.101 ESB

Page 34: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

34

Velocidad y escalamiento / alta disponibilidad

•Resultados

•Tiempos bajos de respuesta sostenidos

• Insignificantes tiempos de latencia entre API M. y ESB

Page 35: WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios

35

Preguntas y Respuestas