sábado, 6 de diciembre de 2014

Acceso HTTP y servicios RESTful de DB2 : Presentación de las funciones definidas por el usuario REST para DB2






Con lo que el web en el mundo de los sistemas de bases de datos relacionales

Cada vez más, Transferencia de estado representacional ( REST) ​​se ha convertido en la forma preferida de comunicarse en entornos de arquitectura orientada a servicios de hoy en día . Hay muchos servicios y fuentes de información que pueden ser abordados a través de una URL y acceder mediante HTTP . Por otro lado , todavía hay una cantidad significativa de información almacenada en sistemas de gestión de base de datos relacionales (RDBMS ) - como DB2 . RDMSes modernos proporcionar potentes funciones de procesamiento de datos relacionales (a través de SQL ) y datos XML

Panorama
 
En este artículo se presenta un conjunto de funciones definidas por el usuario (UDF) de DB2 que permiten a las aplicaciones consumen servicios basados ​​en REST desde SQL . Los siguientes temas serán tratados :

introducción

Básico escalar RESTO UDF

El envío de valores de encabezado HTTP personalizados

Combinando funciones XML con la UDF REST mediante la recuperación de una fuente de noticias de la BBC

Unirse a los resultados RESTO UDF con una tabla relacional

Seguridad - autenticación y cifrado

Las funciones auxiliares

URL de codificación / decodificación

Codificación Base64 / decodificación

Introducción

Cual DB2?


La información de este artículo se aplica tanto a DB2 para Linux, UNIX y Windows , y para DB2 para z / OS .HTTP se definió hace más de 20 años cuando el último cambio importante (HTTP 1.1) se llevó a cabo en 1999 (véase RFC2616 ) . La longevidad de HTTP es una indicación de que está en un estado estable. HTTP es el protocolo más popular de la web . Con el tiempo , los protocolos adicionales y patrones de uso como REST o WebDAV se han construido en la cima de HTTP . Muchos sitios web y aplicaciones proporcionan interfaces basadas en HTTP para acceder a la información

Otros formatos usados en la Web :JSON


Hay muchos otros formatos de texto utilizados en la web hoy en día. JSON se ha vuelto muy popular en los últimos años . El artículo " Construir una aplicación pureXML y JSON , Parte 1 : Almacene y JSON consulta con DB2 pureXML " muestra una forma de que JSON puede procesarse en DB2 utilizando JSONx convertir JSON a XML y viceversa .
Varios formatos de mensaje (en su mayoría basados ​​en XML ) han evolucionado con el tiempo y se utilizan para el intercambio de datos en conjunto con HTTP como capa de transporte - SOAP, RSS o Atom , por ejemplo.
Sistemas de gestión de bases de datos relacionales ( RDBMS ) han evolucionado , también, la introducción procesamiento y funcionalidad de almacenamiento más allá de sólo datos relacionales y SQL , por ejemplo para apoyar XML de forma nativa .

presentamos extensiones a SQL en forma de funciones definidas por el usuario (UDF) que acceder a recursos con dirección URL a través de HTTP directamente desde sentencias SQL. Las UDF son llamadas REST UDF o funciones REST . Con las nuevas funciones , las capacidades adicionales, ya disponibles en el RDBMS - tales como la agregación de SQL o acceso XPath - se puede utilizar para manipular y almacenar datos recuperada de la web. Con las funciones REST , simple HTTP GET o peticiones POST se puede emitir .


Las funciones REST pueden tratar la información presentada a través de HTTP como datos binarios o de texto . Las versiones binarias acceso a la información como imágenes, sonidos y otros formatos de datos binarios , mientras que las versiones textuales ocupan de páginas HTML y otra información basada en texto mediante la conversión automática de datos desde / a la página de códigos de base de datos utilizada . Pruebas de datos en Internet se encuentra normalmente en Unicode , mientras que los datos en bases de datos relacionales son a menudo en otras codificaciones.

Funciones básicas escalares REST


Las funciones básicas escalares dan acceso a contenidos en la web . Funciones REST
disponible para los cuatro verbos HTTP más comunes : GET, POST, PUT y DELETE . Hay dos métodos disponibles: uno para manejar el contenido binario y una para contenido basado en texto . El esquema de DB2 para las funciones es DB2XML .
Todas las funciones básicas REST son funciones escalares que devuelven el contenido del mensaje de respuesta HTTP como BLOB (binario ) o CLOB ( textual) . Las firmas de función

 

Existe un método adicional disponible para realizar una petición HTTP HEAD. No envía o recuperar datos . Recuperar el sitio web de IBM a través de HTTP GET :

SELECT
DB2XML.HTTPGETCLOB('http://www.ibm.com','')
FROM SYSIBM.SYSDUMMY1


El resultado es la página web de texto HTML como datos de texto CLOB .

El envío de valores de encabezado HTTP personalizados

Por encima , proporcionamos una cadena vacía para los valores de encabezado HTTP , lo que significa que se están utilizando los valores predeterminados al emitir el mensaje de petición. Puede ser que sea necesario facilitar datos de encabezado personalizado con un pedido (por ejemplo , para cambiar el tipo de contenido o la creación de un campo de encabezado adicional " SOAPAction " al invocar un servicio web SOAP) .
Con cada método , un documento XML cabecera HTTP se puede especificar que permite el establecimiento de valores de encabezado HTTP adicionales. El documento encabezado XML debe cumplir con el siguiente formato:


Cada campo de encabezado personalizado está representado por un < header> elemento que tiene un nombre y valor del atributo. El < HTTPHeader > elemento raíz permite especificar algunas opciones de solicitud adicionales

El documento de encabezado XML se puede proporcionar como CLOB o XML nativo (sólo DB2 LUW ) valor .


Combinando funciones XML con la UDF REST mediante la recuperación de una fuente de noticias de la BBC

En primer lugar, echemos un vistazo a la alimentación BBC RSS mediante la siguiente declaración:.

 

El conjunto de resultados contiene cuatro columnas : Título que contiene el título del tema de alimentación , descripción con la descripción de alimentación , vínculo con una dirección URL para el documento de noticias reales y PUBDATE

Combinando funciones XML con la UDF REST mediante la recuperación de una fuente de noticias de la BBC
Web Services



Estándares de la industria de apalancamiento para abrir sus reuniones de negocios y de TI

Servicios web permiten el intercambio de lógica , datos y procesos a través de redes que utilizan una interfaz de programación .

Web Services son caracterizados por:
  • Extensible Markup Language (XML ) para describir los documentos en un formato legible por máquina.
  • Web Services Description Language ( WSDL ) ofrece una descripción ( en formato XML ) de cómo el servicio se puede llamar , qué parámetros que espera , y lo que las estructuras de datos que devuelve.

Servicios Web pueden utilizar diversas especificaciones de protocolo . Los más importantes son :
  • SOAP: un protocolo de mensajería que permite que dos programas para pasar información entre sí , independientemente del hardware o sistema operativo esos programas se están ejecutando . Servicios Web también pueden utilizar otros protocolos de mensajería , además de SOAP.
  • WS-Policy , WS- PolicyAssertions , y WS- PolicyAttachment : un marco para la comunicación de las necesidades políticas y restricciones.
  • WS -Security : describe los métodos de protección para los mensajes SOAP.

Los servicios Web proporcionan interoperabilidad

Mediante el uso de los servicios web , el valor se crea proporcionando interoperabilidad entre sistemas , en particular para plataformas heterogéneas , protocolos y canales. Esto se hace mediante la exposición de los negocios o la funcionalidad de TI como un "servicio " con un contrato interfaz estandarizada y Calidad de la información de servicio de acompañamiento
Además , la encapsulación de servicio de la funcionalidad contenida en sus sistemas heredados aísla los usuarios del servicio web de los cambios en los detalles de la implementación del servicio detrás del contrato.

Evolución de los Servicios Web

Hoy en día , los servicios web siguen evolucionando y proporcionar nuevas maneras de beneficiar a la empresa conectada . La convergencia de las fuerzas creadas por el móvil , social , nube, y análisis de datos grandes está causando una tendencia en la industria hacia el uso de REST ( Representational State Transfer ) servicios con formato JSON ( JavaScript Object Notation ) .

REST es un tipo de arquitectura de software con un / solicitud del servidor / estilo de respuesta del cliente y se ha convertido , junto con JSON , como un modelo de diseño web API predominante y funciona bien en un entorno SOA .




Normas y servicios web

Los servicios web son un conjunto de normas emergentes que permiten la integración interoperable entre los procesos y los sistemas de TI heterogéneos . Usted puede pensar en ellos como una nueva generación de aplicaciones web que es autónomo y auto -descripción , y que puede proporcionar la funcionalidad e interoperabilidad que van desde el básico hasta el más complicado de los procesos científicos y de negocios.

En resumen , los servicios web ofrecen la promesa de proporcionar un mecanismo estándar común para la integración interoperable entre sistemas dispares , y la clave de su utilidad es su normalización . Este mecanismo común para la entrega de un "servicio" hace ideales para la implementación de una arquitectura orientada a servicios (SOA ).

Además de utilizar la web común transporta , servicios web también requieren un lenguaje común para los datos intercambiados - Extensible Markup Language (XML ) . Por supuesto , XML es sólo el andamiaje para el intercambio real . Para los protocolos de servicios web sean interoperables a través de diversos sistemas y adecuado para aplicaciones serias , organismos de normalización , como W3C , OASIS , y WS- I, debe estandarizar formalmente estos protocolos. IBM® sigue siendo un líder y colaborador clave en ese proceso. Verás cómo esto es relevante para los servicios web cuando se mira a la ruptura de estas normas y especificaciones .


Especificaciones y estandares web

La siguiente imagen muestra una representación gráfica de cómo todas las categorías de normas y especificaciones encajan en el contexto de un marco de servicios web. A continuación es un desglose de las características individuales y cómo se relacionan con este marco.



Transportes

BEEP , el Protocolo de Intercambio Extensible Bl ocks ( anteriormente conocido como BXXP ) , es un marco para la construcción de protocolos de aplicación . Se ha estandarizado por IETF y lo hace para los protocolos de Internet lo XML ha hecho por los datos.
  • Blocks Extensible Exchange Protocol (BEEP).

Mensajería

Estos estándares de mensajería y especificaciones tienen por objeto dar un marco para el intercambio de información en un entorno descentralizado y distribuido .
  • MQTT V3.1 (Protocol Specification).
  • SOAP 1.1 (Note).
  • SOAP 1.2 (Specification)
  • Web Services Addressing
  • Web Services Notification (WS-BrokeredNotification, WS-BaseNotification, WS-Topics
  • Web Services Attachments Profile 1.0
  • MTOM Serialization Policy Assertion (WS-MTOMPolicy) Version 1.0

Descripción y descubrimiento

Servicios web sólo tienen sentido si los usuarios potenciales pueden encontrar información suficiente para permitir su ejecución. El enfoque de estas especificaciones y normas es la definición de un conjunto de servicios de apoyo a la descripción y el descubrimiento de las empresas , organizaciones y otros proveedores de servicios web ; los servicios web que ponen a disposición ; y las interfaces técnicas que pueden utilizarse para acceder a esos servicios.
  • UDDI 3.0
  • WSDL 1.1 (Note)
  • WSDL 1.2 (Working draft)
  • WSDL 2.0 (Working Group)
  • Web Services Semantics -- WSDL-S
  • Web Services Metadata Exchange
  • Web Services Policy Assertions Language 0
  • Web Services Policy Attachment
  • Web Services Policy Framework
  • Web Services Resource Framework

Confiabilidad

No es posible resolver los problemas de negocio si los participantes no pueden estar seguros de la realización de intercambios de mensajes . Mensajería fiable , que permite que los mensajes que se entregarán de forma fiable entre aplicaciones distribuidas en presencia del componente de software , sistema o fallas en la red , por lo tanto, es fundamental para los servicios web .
  • Web Services Reliable Messaging.
  • WS-RM Policy Assertion

Transacciones

Las transacciones son un concepto fundamental en la construcción de aplicaciones distribuidas fiables . Un entorno de servicio web requiere un comportamiento coordinación proporcionada por un mecanismo de transacción tradicional para controlar las operaciones y el resultado de una aplicación.
  • Web Services Atomic Transaction
  • Web Services Business Activity
  • Web Services Coordination

Seguridad

El uso de estas especificaciones de seguridad , las aplicaciones pueden entablar una comunicación segura diseñada para trabajar con el marco general de servicios web.
  • WS-Federation: Active Requester Profile
  • WS-Federation: Passive Requester Profile
  • Web Services Provisioning
  • Web Services Secure Conversation Language
  • Web Services Security 1.0y
  • Web Services Security Addendum
  • WS-Security Kerberos Binding
  • Web Services Security Policy
  • Web Services Trust
  • Security Assertion Markup Language (SAML)

Procesos del negocio

Un proceso de negocio especifica la orden de ejecución potencial de las operaciones de una colección de servicios web , los datos compartidos entre estos servicios web, que los socios están involucrados y cómo están involucrados en el proceso de negocio , manejo conjunto de las colecciones de los servicios web excepción, y otra cuestiones relacionadas con cómo participan múltiples servicios y organizaciones. BPEL especifica los procesos de negocio y cómo se relacionan con los servicios web .
  • WS-BPEL Extension for People
  • Business Process Execution Language for Web Services V1.1

Administración

Los servicios Web de administración se define como un conjunto de capacidades para el descubrimiento de la existencia , la disponibilidad , la salud , el rendimiento , el uso , así como el control y la configuración de un servicio web dentro de la arquitectura de servicios web . Como los servicios web se vuelven omnipresentes y crítica a las operaciones comerciales , la tarea de la gestión y ejecución de ellos es imprescindible para el éxito de las operaciones comerciales .
  • Web Services Distributed Management
  • Web Services Manageability
  • Web Services Manageability -- Concepts
  • Web Services Manageability -- Representation
  • WS-ResourceTransfer
  • Web Services Service Registry and Repository

Otros

Como el área de servicios web y SOA sigue evolucionando , hay una variedad de categorías para las que se están creando nuevas normas y especificaciones . Algunos no encajan lógicamente en las categorías típicas , así que les lista aquí.
  • ESB Interoperability Standards




viernes, 5 de diciembre de 2014

Arquitectura Orientada a Servicios(SOA): 



simplemente un buen diseño

Estructure y optimice sus soluciones de negocio y de TI con SOA

Arquitectura Orientada a Servicios (SOA) tiene varias ideas centrales que se deben abordar en el trayecto de SOA de su organización

  • Un conjunto de servicios que una empresa quiere ofrecer a sus clientes, socios, u otras áreas de una organización.
  • Un estilo arquitectónico que requiere un proveedor de servicios , mediación y solicitante del servicio con una descripción del servicio .
  • Un conjunto de principios arquitectónicos , modelos y criterios que abordan las características tales como la modularidad , la encapsulación , el acoplamiento débil , la separación de las preocupaciones , la reutilización y componibilidad .
  • Un modelo de programación completo con los estándares, herramientas y tecnologías que soporta servicios web, servicios REST u otros tipos de servicios .
  • Una solución de middleware optimizado para montaje Servicio , orquestación , monitoreo y gestión .

Con la convergencia de la telefonía móvil , social , nube, y análisis de datos grandes , SOA es más importante que nunca para ofrecer una visión e integración de sistemas de extremo a extremo. Mediante la aplicación de los principios de arquitectura orientada a servicios , una empresa puede gestionar y gobernar negocios y transformación de TI , apartándolos de sus competidores. Los beneficios van desde la integración sin fisuras, soluciones en la nube habilitado, la visión empresarial integral y agilidad a las API externalizados . SOA integra la oficina , back office y la Internet de las Cosas

Middleware, mejores prácticas y patrones de acelerar el Service Oriented Architecture viaje y amplifican el valor que crea. IBM tiene más de una década de experiencia en SOA y una amplia cartera de capacidades , la integración que abarca , procesos , control operacional y servicios. SOA es " simplemente un buen diseño " - que descansa sobre una base sólida de tecnología y prácticas que apoyan el viaje de su organización en el cambiante mundo de la telefonía móvil , social , nube y grandes datos
 

Que es SOA ?
 
 
Service Oriented Architecture (SOA) es un enfoque de TI centrada en el negocio de arquitectura que soporta la integración de su negocio como vinculados , tareas empresariales repetibles , o servicios


Cómo puedo empezar ?

SOA es mejor enfocarse como proyectos individuales - cada uno de los que traen su negocio una mayor flexibilidad y orientación al servicio . La adopción de SOA con éxito se hace hincapié de forma incremental la importancia de comenzar pequeño , y escalar apropiadamente

Se empieza por identificar qué proyectos SOA tienen más sentido para usted. Ya sea que usted está buscando para SOA para un proyecto a nivel de empresa , un proyecto a nivel de tecnología táctica o algo intermedio, esto puede ayudarle a diseñar un plan de trabajo que tenga sentido para usted


Necesito Gobernabilidad SOA para empezar ?

Un aspecto clave de las implementaciones de SOA con éxito es tener un negocio involucrado en el esfuerzo desde el principio. Uno de los valores de SOA que puede obtener de SOA se mejora Negocios / TI alineación

Gobernabilidad SOA suministra las decisiones de los derechos , procesos y políticas para los negocios y de TI para trabajar juntos . Después de implementar un servicio , debe haber aspectos de gestión en lugar de controlar y supervisar el servicio



Cuales son los beneficios de SOA ?

SOA ayuda a crear una mayor alineación entre TI y línea de negocio, mientras que la generación de más flexibilidad - la flexibilidad de TI para apoyar una mayor flexibilidad empresarial.Sus procesos de negocio están cambiando cada vez más rápido y la competencia global requiere la flexibilidad que SOA puede proporcionar. SOA puede ayudarle a obtener una mejor reutilización de sus inversiones en TI existentes, así como los nuevos servicios que está en desarrollo en la actualidad

SOA hace que la integración de sus inversiones en TI más fácil mediante el uso de interfaces bien definidas entre los servicios. SOA También proporciona un modelo de arquitectura para la integración de socios comerciales , clientes y proveedores de servicios en los procesos de negocio de una empresa. Esto reduce el costo y mejora la satisfacción del cliente

Por último , SOA reduce el riesgo empresarial y la exposición al ayudar a cumplir con la proliferación de regulaciones gubernamentales, tales como ( en Estados Unidos) la ley Sarbanes - Oxley , la Ley Patriótica de Estados Unidos , etc


Cuales son las desventajas de SOA ?

Las barreras más comunes que las empresas están viendo a la adopción de SOA es la escasez de habilidades y la dificultad de justificar el retorno de la inversión de los proyectos de SOA. IBM ayuda a descomponer estas y otras barreras. Podemos proporcionar las habilidades y mejores prácticas que hemos perfeccionado a través de más de miles de contratos de clientes en todo el mundo de SOA. Podemos ayudar a desarrollar habilidades dentro de su propia organización y suplementar con la experiencia que hemos perfeccionado . También podemos ayudar a identificar los proyectos de SOA adecuado para su organización a que continuara con muy atractivo retorno de la inversión



Puedo comprar un SOA o debo construir uno ?

Para mover su organización hacia una mayor orientación al servicio , es necesario adoptar un enfoque equilibrado para la construcción frente a la compra . Para crear la infraestructura para una SOA , necesitarás el software off- the-shelf derecho comercial que complementa (y no sustituye ) la infraestructura de TI existente. Esta es una declaración de comprar . Por el lado de construir , también puede optar por acceder a los conocimientos técnicos y la participación práctica de utilizar estos productos de software con eficacia y sacar el máximo provecho de ellos.

Esta infraestructura y las herramientas asociadas pueden ayudarle a crear los servicios de negocios que se ejecutan en su SOA . Una vez más , hay algo de construcción asociado a este. Así que la verdadera respuesta es que se necesita un cierto grado de edificación y de compra


Cómo se integra con mis aplicaciones heredadas ?

Las aplicaciones heredadas son frecuentes en el núcleo de su entorno de TI . Pero muchas veces , estas aplicaciones esenciales son aisladas y de difícil acceso para los conjuntos de habilidades comunes . Sin las habilidades y herramientas adecuadas , puede ser difícil de integrar estas inversiones básicas con el resto de su entorno de TI.
La ides es identificar elementos discretos dentro de sus aplicaciones heredadas y " envolver " en las interfaces basadas en estándares y utilizarlos como servicios dentro de su SOA . de esta manera se puede acelerar sus esfuerzos de integración a través de la utilización de aplicaciones y tecnología de adaptadores que se han desarrollado en cooperación con nuestros socios.


Cómo se relaciona el Enterprise Service Bus para SOA ?

El Enterprise Service Bus es un elemento central de cualquier SOA . ESB proporcionan la " cualquiera a cualquiera " conectividad entre servicios dentro de su propia empresa , y más allá de su negocio para conectar a sus socios comerciales . Pero SOA no se detiene justo en la implementación de un ESB . Dependiendo de cuáles son sus metas , es posible que desee utilizar un ESB para conectar otros servicios dentro de su SOA , tales como servicios de información, servicios de interacción y servicios de gestión de procesos de negocio . Además, usted tendrá que considerar los servicios de desarrollo y servicios de gestión de servicios de TI . La arquitectura de referencia SOA puede ayudar usted presenta un entorno SOA que cumpla con sus necesidades y prioridades.