La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Web Services con GeneXus

Presentaciones similares


Presentación del tema: "Web Services con GeneXus"— Transcripción de la presentación:

1 Web Services con GeneXus
Portada Web Services con GeneXus Alejandro Blengio

2 Introducción a los Web Services Web Services en GX 7.5
Temario Introducción a los Web Services Web Services en GX 7.5 Web Services en GX 8.0 Ejemplos Futuro de Web Services con GX Se dara una breve introduccion a los ws y sus tecnologias y estandares asociados. Luego veremos las funcionalidades que ofrece GX al respecto. Vamos a ver las caracteristicas incluidas en la version 7.5, donde el foco se centró en poder proveer servicios, y luego veremos las nuevas funcionalidades de la version 8.0. Estaremos tambien mostrando algunos sencillos ejemplos de uso. Y finalmente veremos que funcionalidades relacionadas con ws se tienen pensado incluir en GX en el corto y mediano plazo.

3 Introducción ¿ Que es un web service ? Aplicación - Aplicación
Se comunica mediante mensajes Red -> Internet Un web service es una aplicación, un componente de software, que se comunica con otras aplicaciones mediante mensajes, enviados a traves de una red, generalmente Internet. Hasta ahora el uso de Internet ha sido fundamentalmente usuario-usuario (mensajeria instantanea, mail, etc), o usuario-aplicación (acceso a web sites). El uso aplicación-aplicación ha sido subutilizado, y es ahí a donde apuntan los web services. Se comunica con las aplicaciones que lo invocan a traves de mensajes con un determinado formato, que veremos mas adelante. Los web services tienen 1 o mas métodos, cada uno con sus corresondientes parámetros. Funcionan con un modelo request-response: la aplicación llamadora genera un mensaje en el que se indica que método del webservice se esta invocando, y con que parámetros (request). El web service recibe el mensaje, se ejecuta, y retorna al llamador un mensaje similar, con los parámetros de retorno. Estos mensajes viajan a traves de una red, generalmente Internet (HTTP).

4 Web Services - Arquitectura
Proveedor Invocar Publicar Corredor Consumidor Localizar La arquitectura básica del modelo de web services describe a un consumidor, un proveedor y ocasionalmente un corredor (broker). Relacionados con estos agentes están las operaciones de publicar, encontrar e invocar. La idea básica consiste en que un proveedor publica su servicios en un corredor, luego un consumidor se conecta el corredor para encontrar los servicios deseados y una vez que lo hace se realiza un lazo entre el consumidor y el proveedor. Cada entidad puede jugar alguno o todos los roles.

5 Web Services - Operaciones
Publicar WSDL Invocar SOAP Localizar Brokers UDDI Para cada una de las operaciones existen diferentes protocolos estandares, todos basados en XML. Para publicar, tenemos WSDL (Web Service Description Language), que describe el servicio, su localizacion, sus metodos, parámetros. O sea, describe la forma de invocar al servicio. Para invocar a un servicio se realiza a traves de SOAP, que es un protocolo de intercambio de mensajes. Se basa en un esquema de request-response, similar a HTTP. Funciona de la siguiente manera: la aplicacion llamadora envía un mensaje SOAP (request) al servicio, en el que se indica a que método se esta invocando, y los valores de los parametros correspondientes. El servicio recibe el mensaje, decodifica el mensaje SOAP, ejecuta el método correspondiente, y finalmente envia otro mensaje SOAP (response), con los parámetros de salida. Para la parte de localizacion de servicios, existen actualmente 2 formas: Por un lado existen Corredores (brokers) que publican servicios (ej.XMethods, SalCentral), son sitios web en los que puedo publicar y buscar servicios por nombre, etc. , ver la url del WSDL, descripcion del servicio, etc. Tambien existe un estandar (UDDI – Universal Description, Discovery and Integration) para la publicación y localización de servicios. La informacion base que se publica tambien esta definida en XML. Muestra la informacion del servicio y la empresa que lo provee y lo clasifica segun diferentes taxonomias. Existen nodos UDDI, y se replica la información automáticamente entre ellos (ejemplos: Microsoft, IBM, Ariba).

6 Web Services – Ventajas
BASADO EN ESTÁNDARES Indepte.de lenguajes y plataformas Integración de aplicaciones Dentro de la organización Con 3ros. Nuevas oportunidades de negocios La ventaja fundamental del modelo de web services, del que derivan todas las demas, es el hecho de estar basado en estándares abiertos, adoptados por la industria en su conjunto. Esto hace que con cualquier lenguaje y plataforma se pueda generar y consumir web services. No importa con que herramienta se generó, mientras provea la funcionalidad esperada. Lo que favorece tremendamente la integración de aplicaciones, tanto dentro de una misma organización, como con aplicaciones de terceros. Todo esto conlleva a una nueva oportunidad de negocios en Internet.Por un lado esta el tema de vender estos servicios ganando dinero o no, lo que representa una nueva oportunidad de negocios en Internet, y por el otro esta la utilizacion dentro de la propia organizacion, y entre empresas, dando una serie de ventajas: interoperabilidad, reusabilidad, etc. Un ejemplo de esto es la integración de GX con el ERP SAP, lo que podran ver en la charla ‘Integración GeneXus –SAP’ de Luis Murillo y Graciela Liston, que se va a realizar el miercoles a las 11:00 hs., en la sala Renoir (4to.piso).

7 Web Services con GeneXus
Proveer servicios Call Protocol = SOAP Proveer web services en GeneXus se realiza de una forma muy fácil. Basta con tener un procedimiento main, que implemente una funcionalidad que se desea publicar, y configurar la propiedad Call Protocol del mismo, con el valor SOAP. Esto es todo, ya generamos un web service con GeneXus !! Esto aumáticamente hace que el objeto pase a tener una interfase SOAP, o sea, va a esperar recibir sus parámetros a traves de un mensaje SOAP, y luego de ejecutarse va a devolver los parámetros de salida a traves de otro mensaje similar a la aplicación que lo invocó.

8 Web Services con GeneXus
Proveer servicios Generación automática de WSDL <url>?wsdl Ej: Web Service de Noticias de ARTech Al configurar un procedimento como web service, GeneXus automáticamente genera el WSDL, con la descripcion del mismo (métodos, parámetros, forma de invocarlo, etc). Este archivo se obtiene directamente agregando el parámetro wsdl en la url del servicio. Por ej: Este es el wsdl del web service que publica las noticias de ARTech, generado con GX. (aca lo que se puede hacer en vez de esto, es mostrar un ejemplo generando un proc.ya definido como proc.SOAP, y mostrar el WSDL generado).

9 Web Services con GeneXus
Proveer servicios Método ‘Execute’ Generadores Web A partir de GeneXus 7.5 El procedimiento o reporte pasa a ser un web service, con un solo método, de nombre ‘Execute’. La invocación al servicio se va a realizar a traves de HTTP, por lo que obviamente el objeto tiene que estar asociado a un generador Web. Esta funcionalidad esta disponible a partir de GeneXus 7.5.

10 Web Services con GeneXus
Consumir servicios – GeneXus 7.5 Web services GeneXus Web services no GeneXus Vamos a ver como invocamos a web services desde las aplicaciones GeneXus 7.5. Aca tenemos que diferenciar entre servicios desarrollados con Genexus, y aquellos desarrollados con otras herramientas, ya que la manera de invocarlos en GeneXus 7.5 es diferente.

11 Web Services con GeneXus
Consumir servicios – GeneXus 7.5 Web services GeneXus Un simple call()... Locations Para el caso de los web services desarrollados con GeneXus, la invocación se realiza con un simple comando call. En el caso de que el procedimiento SOAP invocado no este presente en la KB, es necesario crear uno con el mismo nombre y la misma definición de parámetros.

12 Web Services con GeneXus
Consumir servicios – GeneXus 7.5 Web services no GeneXus HTTPClient+XMLWriter+XMLReader Ej: GXTranslator Para el caso de web services no Genexus, en esta version es posible invocarlos de la siguiente forma. La idea es que tengo que poder enviar un mensaje con un determinado formato (SOAP, que es XML) a una aplicación a traves de Internet (o sea protocolo HTTP), la aplicación se va a ejecutar, y me va a devolver otro mensaje en un formato similar, que tengo que poder entender. Entonces puedo hacer esto utilizando los tipos de datos XMLWriter para grabar el mensaje SOAP a enviar, el tipo de datos HTTPClient para realizar el request a traves de Internet, y el tipo de datos XMLReader para decodificar el mensaje devuelto por el web service (response). Vamos a ver brevemente un ejemplo, el GXTranslator, que invoca al BabelFish, un servicio de traducción en línea de Altavista, utilizando este método. Sin dudas que esta forma de invocar web services es demasiado compleja. Tengo que conocer como armar el mensaje, como desarmar el mensaje que vuelve, tambien tengo que conocer el host en el que esta el servicio, el port, etc, etc. Vamos a ver a continuación como GeneXus 8.0 cambia radicalmente la forma de consumir web services.

13 Web Services con GeneXus
Consumir servicios – GeneXus 8.0 WSDL Inspector GeneXus 8.0 vino en nuestro auxilio, con una de sus principales caracteristicas: WSDL Inspector Es una herramienta que permite inspeccionar el WSDL de un web service, y adicionar una referencia en la base de conocimientos, para su posterior invocación. En el caso de que el ws publique datos complejos (estructuras), el WSDL Inspector crea automaticamente las mismas, las que se pueden ver en el nuevo editor de estructuras.

14 Web Services con GeneXus
Proveer servicios – GeneXus 8.0 Estructuras Colecciones Ejemplo: Servicio de Noticias GeneXus 8.0 tambien tiene presenta mejoras para la parte de proveer servicios, a traves de otras dos importantes features de la versión: estructuras y colecciones. Esto permite implementar web services mucho mas potentes, que reciban y retornen datos mas complejos. Podemos poner como ejemplo el servicio de las Noticias. (aca desarrollar un ejemplo mostrando una estructura que seria el resultado de las Noticias, y como consumirlo). En poco tiempo estaremos agregando nuevas interfases a los servicios ya publicados, utilizando estas nuevas posibilidades.

15 Ejemplos GXTranslator Consumir servicio externo Aca van los ejemplos:
Mostrar la KB 7.5 en que se consumia el servicio de BabelFish de Altavista, utilizando los tipos de datos HttpClient, XmlWriter y XmlReader. Ejemplo que esta disponible en GXOpen. Modificar la KB usando el WSDL Inspector: Importar el servicio con el WSDL Inspector Definir la variable ws y hacer la llamada, mostrandolo en ejecución Resaltar la diferencia sustancial entre la manera de consumir ws con la 8.0 con respecto a lo anterior.

16 Futuro de Web Services en GX
Repositorio de web services GX UDDI Servicios con n-métodos Actualmente existe en nuestro sitio tecnico un área en la que estan publicados algunos servicios de ARTech, como las Noticias, e informacion del Download Center. Estamos estudiando la posibilidad de ampliarlo y convertirlo en un repositorio de web services de la comunidad GeneXus, para que cualquiera pueda publicar y localizar servicios. Con respecto a la parte de Desarrollo de GeneXus propiamente dicho, algunas cosas que se estan pensando incluir en la proxima versión de GX, es alguna forma de publicar y localizar servicios a traves de UDDI. Actualmente solo proveemos servicios con un solo método. O sea, un procedimiento GX es un servicio. Seguramente existirá la posibilidad de agrupar varios procedimientos en un contenedor, y definirlos como un solo servicio, en el que cada procedimiento sería un método. Quiero aprovechar para invitar a todos aquellos que tengan interes, a una reunión que se va a realizar hoy en la tarde, Esta reunión va a ser a las 15:15, en la sala Picasso 2, en el 4to.piso.

17 Alejandro Blengio


Descargar ppt "Web Services con GeneXus"

Presentaciones similares


Anuncios Google