Índice. Introducción a SOAP JAX-WS

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Índice. Introducción a SOAP JAX-WS"

Transcripción

1 3.4 JAX-WS

2 Índice Introducción a SOAP JAX-WS

3 SOAP (1) SOAP es un protocolo basado en XML para el intercambio de mensajes en un entorno distribuido Originalmente acrónimo de Simple Object Access Protocol Hoy ya no se considera acrónimo Estandarizado por W3C Los mensajes SOAP se envían encapsulados en otros protocolos de nivel de aplicación (e.g. HTTP o SMTP) HTTP es el usado habitualmente (buena elección para atravesar firewalls) Con SOAP, un servicio se compone de puertos, y cada puerto ofrece un conjunto de operaciones Cada operación tiene: nombre, parámetros (entrada, salida, entrada/salida), valor de retorno y posibles faults (excepciones)

4 SOAP (2) Las operaciones pueden ser Síncronas (RPC): el cliente envía la petición y se queda bloqueado hasta que llegue la respuesta La alternativa síncrona es la más usada hoy en día Asíncronas: el cliente envía la petición, continúa con su ejecución, y más adelante puede comprobar si llegó la respuesta SOAP estandariza la manera de enviar un mensaje para invocar una operación del servicio y cómo enviar la respuesta Misma estructura de mensaje para petición y respuesta Envelope Elemento raíz de un mensaje SOAP Puede contener un elemento Header y otro Body Header (opcional) Permite pasar información extra a protocolos de nivel superior (e.g. tokens de seguridad, identificadores de transacción, etc.) Body (obligatorio) Contiene los datos del mensaje

5 SOAP (y 3) [Ejemplo (fuente Wikipedia): servicio con operación getproductdetails] <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body> <getproductdetails xmlns="http://warehouse.example.com/ws"> <productid>827635</productid> </getproductdetails> </soap:body> </soap:envelope> Cliente Servicio <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body> <getproductdetailsresponse xmlns="http://warehouse.example.com/ws"> <getproductdetailsresult> <productname>toptimate 3-Piece Set</productName> <productid>827635</productid> <description>3-piece luggage set. Black Polyester.</description> <price currency="nis">96.50</price> <instock>true</instock> </getproductdetailsresult> </getproductdetailsresponse> </soap:body> </soap:envelope>

6 WSDL y UDDI WSDL (Web Services Description Language) Permite especificar en XML la interfaz de un servicio (puertos, operaciones, tipos de datos, etc.) Estandarizado por el W3C UDDI (Universal Description, Discovery and Integration of Web Services) Interfaz SOAP de un servicio (registro UDDI) que proporciona operaciones registrar y buscar servicios Web Cada servicio Web se registra dando: su nombre, una descripción (e.g. la URL de su WSDL, una descripción textual, etc.), etc. Permite localizar servicios a partir de su nombre, descripción, etc. Estandarizado por OASIS (http://www.oasis-open.org) Registro UDDI SOAP Client e SOAP SOAP Servicio

7 De bajo nivel APIs de programación (1) Permiten explícitamente construir, enviar y recibir mensajes SOAP De alto nivel Disponen de un compilador de WSDL Para el cliente, por cada puerto, el compilador genera un interfaz, una clase (stub/proxy) que lo implementa y tipos de datos asociados El interfaz contiene una operación por cada operación del puerto El stub/proxy implementa cada operación Construye la petición SOAP (convierte los parámetros a XML) La envía Espera por la respuesta SOAP (si es una operación síncrona) Convierte el valor de retorno o fault (XML) a un objeto

8 APIs de programación (2) De alto nivel (cont) Para el servicio, por cada puerto, el compilador genera una clase skeleton y tipos de datos asociados El skeleton Recibe las peticiones SOAP Convierte los parámetros de XML a objetos Delega en una clase implementada por el desarrollador que proporciona una operación por cada operación del puerto Convierte el valor de retorno o excepción a XML Envía la respuesta SOAP También proporcionan un compilador desde interfaces o clases de implementación del servicio a WSDL Permite que el desarrollador del servicio especifique el interfaz del servicio en un lenguaje convencional (e.g. Java, C#, etc.) Genera el WSDL automáticamente

9 APIs de programación (y 3) De alto nivel (cont) Resto aplicación cliente getproductdetails <<interface>> ProductManager ProductManagerImpl getproductdetails Clase Proxy Skeleton Cliente Servicio

10 Índice Introducción a SOAP JAX-WS

11 Qué es JAX-WS? (1) JAX-WS es un API estándar en Java para implementar e invocar Servicios Web. Forma parte del API de Java SE. Usa anotaciones para facilitar el desarrollo. Permite invocar e implementar operaciones de servicios Web SOAP mediante el paradigma de RPC. Permite también operaciones asíncronas. En lugar de quedarse bloqueado esperando por respuesta,s e proporciona una operación de callback. Permite también cierto soporte para REST (aunque no es el objetivo principal). Como cualquier otro API de Java, está formada por un conjunto de interfaces Existen múltiples implementaciones (Metro, CXF, Axis 2, ) El código escrito por el desarrollador no depende de la implementación concreta de JAX-WS que se utilice Nosotros utilizaremos Metro.

12 Qué es JAX-WS? (2) Especifica un mapping de WSDL a Java Permite que las implementaciones de JAX-WS proporcionen un compilador de WSDL a Java, que genere stubs (proxies) para invocar servicios Web. Especifica un mapping de Java a WSDL Permite que las implementaciones de JAX-WS proporcionen un compilador de Java a WSDL, que genere el documento WSDL correspondiente a un interfaz o clase de implementación Java La definición del interfaz o clase de implementación Java está sujeta a ciertas restricciones El documento WSDL permite que un cliente (escrito sobre cualquier plataforma) pueda invocar el servicio Web Los mappings están basados en JAXB.

13 Qué es JAX-WS? (y 3) Proceso de desarrollo Interfaz Java Documento WSDL Compilador Java Compilador WSDL a Java Compilador WSDL Stubs, skeletons y tipos Java Documento WSDL

14 Qué es Metro? Una toolkit para construir Servicios Web que incluye la implementación de referencia de JAX-WS. A diferencia de otras implementaciones de referencia, es apta para producción) Permite implementar servicios SOAP en un servidor de aplicaciones Java EE Incluye Un conjunto de librerías Un compilador de Java a WSDL Un compilador de WSDL a Java Otras implementaciones de JAX-WS: Axis 2 (http://ws.apache.org/axis2/) CXF (http://cxf.apache.org/)

15 Ejemplo StockQuote Servicio Web que ofrece una interfaz con una operación que a partir de un conjunto de identificadores de valores bursátiles devuelve sus cotizaciones Cada cotización incluye Su identificador Su valor El número de segundos de antigüedad que tiene el valor (el valor real actual sería ligeramente distinto) Cliente SOAP/HTTP StockQuoteProvider El ejemplo permitirá aprender cómo en JAX-WS Se define y se implementa el interfaz de un servicio Web Se invoca un servicio Web desde un cliente

16 Definición de la interfaz del servicio Web (1) Puede definirse explícitamente o puede dejarse que JAX-WS la obtenga automáticamente desde una clase anotada de implementación del servicio. En el ejemplo hemos seguido la segunda aproximación. Definida en es.udc.ws.jaxwstutorial.service El paquete incluye StockQuoteProviderImpl: la implementación del servicio. Define la operación getlasttradeprices TradePrice: la clase que modela una cotización La operación getlasttradeprices devuelve los TradePrice correspondientes a un conjunto de identificadores de valores bursátiles. IncorrectTickerSymbolException La operación getlasttradeprices lanza esta excepción si alguno de los identificadores no existe

17 Definición de la interfaz del servicio Web (2) Método de trabajo Compilar las clases del paquete es.udc.ws.jaxwstutorial.service Utilizar el compilador de Java a WSDL sobre StockQuoteProviderImpl Genera StockQuoteProviderService.wsdl Usar el compilador de WSDL a Java sobre StockQuoteProviderService.wsdl El código generado incluirá Stub, y clases auxiliares, y Otra vez StockQuoteProvider, TradePrice e IncorrectTickerSymbolException (incluyen atributos y operaciones adicionales que necesitan el stub y el skeleton) El cliente del servicio Web usará estos tipos (paquete es.udc.ws.jaxwstutorial.wsdl)

18 Modelo de implementación de servicios Modelo basado en un servidor de aplicaciones Java EE con soporte para el API de Servlets Una aplicación Web puede incluir uno o varios servicios Web SOAP Es el modelo que estudiaremos Cliente SOAP/HTTP war Servidor de aplicaciones Aplicaciones Web (.war) Modelo basado en un servidor de aplicaciones Java EE con soporte para el API de EJB El servicio Web SOAP se implementa como un Stateless Sesion Bean, cuya interfaz remota es la del servicio Web Cliente SOAP/HTTP EJB Servidor de aplicaciones Componentes EJB (.jar)

19 Modelo basado en servidor de aplicaciones con soporte para Servlets (1) Requisitos de la clase de implementación Debe tener un constructor público. Debe estar anotada con javax.jws.webservice name: nombre del tipo de puerto en wsdl. servicename: nombre del servicio en wsdl. targetnamespace. Espacio de nombres en wsdl. endpointinterface. Si la interfaz se define separadamente, se indica en esta propiedad. Las operaciones del servicio deben ser públicas, usar tipos compatibles JAXB y declarar javax.jws.webmethod. name: nombre de la operación en wsdl exclude: valor booleano. Si true, la operación no se incluye en el wsdl. Las excepciones lanzadas deben usar la anotación javax.xml.ws.webfault name: nombre en wsdl. targetnamespace. Espacio de nombres en wsdl.

20 Modelo basado en servidor de aplicaciones con soporte para Servlets (2) Modelo de ejecución La implementación de JAX-WS tiene que incluir un servlet que Recibe las peticiones SOAP sobre HTTP que envían los clientes Invoca la operación correspondiente sobre el servicio Web Devuelve una respuesta SOAP sobre HTTP con el resultado de la operación Cliente SOAP/HTTP Servlet Skeleton Implementación del servicio Servidor de aplicaciones

21 Modelo basado en servidor de aplicaciones con soporte para Servlets (3) Modelo de ejecución (cont) El servlet crea un pool (conjunto) de instancias de la clase de implementación Por defecto, las instancias no pueden mantener estado específico para el cliente Pero pueden tener estado global, es decir, atributos típicamente inicializados al crear el servicio y que optimizan la ejecución de las operaciones del servicio (e.g. cachés de sólo lectura, una conexión a una BD, etc.) Cuidado con el estado global en entornos cluster (e.g. no usar atributos modificables que afecten a la funcionalidad del servicio) Cada vez que llega una petición, el servlet delega en una instancia que no se esté utilizando en ese momento Dada que el modelo de ejecución de servlets es multi-thread, se pueden atender múltiples peticiones SOAP concurrentemente (cada petición utiliza su propia instancia)

22 Modelo basado en servidor de aplicaciones con soporte para Servlets (y 4) Ciclo de vida Las anotaciones javax.annotation.postconstruct y import javax.annotation.predestroy permiten marcar métodos que se ejecutarán respectivamente tras la inicialización y antes de la destrucción de una instancia.

23 es.udc.ws.jaxwstutorial.service.stockquoteproviderimpl (1) package es.udc.ws.jaxwstutorial.service; import javax.jws.webmethod; import javax.jws.webservice; import javax.annotation.postconstruct; import java.util.arraylist; import java.util.hashmap; import java.util.list; import name="stockquoteprovider", servicename="stockquoteproviderservice", targetnamespace="http://ws.adoo.udc.es/" ) public class StockQuoteProviderImpl { private Map<String, TradePrice> tradeprices;

24 es.udc.ws.jaxwstutorial.service.stockquoteproviderimpl private void init() { TradePrice ibmtradeprice = new TradePrice(); ibmtradeprice.settickersymbol("ibm"); ibmtradeprice.setprice(10.5); ibmtradeprice.setelapsedseconds(60*20); TradePrice suntradeprice = new TradePrice(); suntradeprice.settickersymbol("sun"); suntradeprice.setprice(9.1); suntradeprice.setelapsedseconds(60*10); TradePrice mictradeprice = new TradePrice(); mictradeprice.settickersymbol("mic"); mictradeprice.setprice(20.3); mictradeprice.setelapsedseconds(60*5); } tradeprices = new HashMap<String, TradePrice>(); tradeprices.put(ibmtradeprice.gettickersymbol(),ibmtradeprice); tradeprices.put(suntradeprice.gettickersymbol(),suntradeprice); tradeprices.put(mictradeprice.gettickersymbol(),mictradeprice);

25 es.udc.ws.jaxwstutorial.service.stockquoteproviderimpl (3) public StockQuoteProviderImpl() { ) operationname="getlasttradeprices" public List<TradePrice> getlasttradeprices(list<string> tickersymbols) throws IncorrectTickerSymbolException { List requestedtradeprices = new ArrayList(); System.out.println("Requested " + tickersymbols.size() + " ticker simbol(s)"); for (int i=0; i<tickersymbols.size(); i++) { TradePrice tradeprice= tradeprices.get(tickersymbols.get(i));

26 es.udc.ws.jaxwstutorial.service.stockquoteproviderimpl (y 4) } if (tradeprice == null) { IncorrectTickerSymbolExceptionInfo info = new IncorrectTickerSymbolExceptionInfo(); } info.setincorrecttickersymbol(tickersymbols.get(i)); throw new IncorrectTickerSymbolException(info); requestedtradeprices.add(tradeprice); System.out.println("Successfully resolved " + requestedtradeprices.size() + " ticker simbol(s)"); return requestedtradeprices; } }

27 es.udc.ws.jaxwstutorial.servicedef.tradeprice (1) package es.udc.ws.jaxwstutorial.service; public class TradePrice { private String tickersymbol; private double price; private int elapsedseconds; public String gettickersymbol() { } return tickersymbol; public void settickersymbol(string tickersymbol) { } this.tickersymbol = tickersymbol; public double getprice() { } return price;

28 es.udc.ws.jaxwstutorial.service.tradeprice (y 2) public void setprice(double price) { } this.price = price; public int getelapsedseconds() { } return elapsedseconds; public void setelapsedseconds(int elapsedseconds) { } this.elapsedseconds = elapsedseconds; }

29 es.udc.ws.jaxwstutorial.service.incorrecttickersymbolexception package es.udc.ws.jaxwstutorial.service; import = "IncorrectTickerSymbolException", targetnamespace = "http://ws.adoo.udc.es/") public class IncorrectTickerSymbolException extends Exception { private IncorrectTickerSymbolExceptionInfo exceptioninfo; public IncorrectTickerSymbolException(IncorrectTickerSymbolExceptionInfo exceptioninfo) { } this.exceptioninfo = exceptioninfo; } public IncorrectTickerSymbolExceptionInfo getfaultinfo() { } return exceptioninfo;

30 es.udc.ws.jaxwstutorial.service.incorrecttickersymbolexceptioninfo package es.udc.ws.jaxwstutorial.service; public class IncorrectTickerSymbolExceptionInfo { protected String incorrecttickersymbol; public String getincorrecttickersymbol() { } return incorrecttickersymbol; } public void setincorrecttickersymbol(string value) { } this.incorrecttickersymbol = value;

31 Comentarios Por la forma en la que JAX-WS define el mapping de Exceptions java a WSDL y viceversa, es conveniente que las Excepciones utilizadas cumplan las siguientes reglas: La información encapsulada en la Excepción debe ir en un objeto separado IncorrectTickerSymbolExceptionInfo Este objeto debe ser obtenido a través del método getfaultinfo. De esta forma, las excepciones lanzadas por los stubs del cliente serán iguales que las usadas en el servicio. En algunas toolkits esto no es necesario.

32 Visión global de WSDL Dejaremos momentáneamente la explicación de los detalles de la definición del interfaz remoto StockQuoteProviderService y sus tipos asociados Una vez compilados los anteriores ficheros Java, se puede obtener el documento WSDL Un documento WSDL consta de varias partes Definición de tipos de datos Definición de mensajes Definición de tipos de puertos Definición de bindings Definición de servicios Vamos a echar un vistazo al fichero generado Objetivo: comprender el formato general de un documento WSDL

33 StockQuoteProviderService.wsdl (1) <?xml version="1.0" encoding="utf-8" standalone="yes"?> <definitions targetnamespace="http://ws.adoo.udc.es/" name="stockquoteproviderservice" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://ws.adoo.udc.es/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> <types> <xsd:schema> <xsd:import namespace="http://ws.adoo.udc.es/" schemalocation="stockquoteproviderservice_schema1.xsd"/> </xsd:schema> </types>

34 StockQuote schema1.xsd (1) <?xml version="1.0" encoding="utf-8" standalone="yes"?> <xs:schema version="1.0" targetnamespace="http://ws.adoo.udc.es/" xmlns:tns="http://ws.adoo.udc.es/" xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="incorrecttickersymbolexception" nillable="true" type="tns:incorrecttickersymbolexceptioninfo"/> <xs:element name="getlasttradeprices" type="tns:getlasttradeprices"/> <xs:element name="getlasttradepricesresponse" type="tns:getlasttradepricesresponse"/> <xs:complextype name="getlasttradeprices"> <xs:sequence> <xs:element name="arg0" type="xs:string" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> <xs:complextype name="getlasttradepricesresponse"> <xs:sequence> <xs:element name="return" type="tns:tradeprice" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype>

35 StockQuote schema1.xsd (y 2) <xs:complextype name="tradeprice"> <xs:sequence> <xs:element name="elapsedseconds" type="xs:int"/> <xs:element name="price" type="xs:double"/> <xs:element name="tickersymbol" type="xs:string" minoccurs="0"/> </xs:sequence> </xs:complextype> <xs:complextype name="incorrecttickersymbolexceptioninfo"> <xs:sequence> <xs:element name="incorrecttickersymbol" type="xs:string" minoccurs="0"/> </xs:sequence> </xs:complextype> </xs:schema>

36 Definición de tipos de datos - Comentarios Es posible usar varios sistemas de tipos El uso de un esquema XML es el más habitual También se pueden usar tipos SOAP. Metro genera las definiciones de tipos en un fichero aparte (no es necesario hacerlo así). En el ejemplo se definen El tipo complejo getlasttradeprices, que corresponde al tipo Java de entrada a la operación List<String> Se define como una secuencia de elementos xsd:string Los tipos complejos TradePrice e IncorrectTickerSymbolException que corresponden a los tipos Java con el mismo nombre. getlasttradepricesresponse representa el tipo de la respuesta de la operación List<TradePrice>. nillable=true especifica que el correspondiente elemento puede tomar el valor nil (null en Java)

37 StockQuoteProviderService.wsdl (2) <message name="getlasttradeprices"> <part name="parameters" element="tns:getlasttradeprices"/> </message> <message name="getlasttradepricesresponse"> <part name="parameters" element="tns:getlasttradepricesresponse"/> </message> <message name="incorrecttickersymbolexception"> <part name="fault" element="tns:incorrecttickersymbolexception"/> </message> <porttype name="stockquoteprovider"> <operation name="getlasttradeprices"> <input message="tns:getlasttradeprices"/> <output message="tns:getlasttradepricesresponse"/> <fault message="tns:incorrecttickersymbolexception" name="incorrecttickersymbolexception"/> </operation> </porttype>

38 Definición de mensajes y puertos Comentarios Definición de mensajes Especifica los mensajes que se pueden intercambiar clientes y servidores Cada mensaje consta de partes, donde cada parte especifica un parámetro del mensaje, un valor de retorno o una excepción (fault) Definición de tipos de puertos Un tipo de puerto especifica un conjunto de operaciones Cada operación especifica el orden de los parámetros, el mensaje de entrada (input), el de salida (output) y los posibles mensajes fault que puede devolver la operación Un mensaje fault sólo puede contener una parte

39 StockQuoteProviderService.wsdl (y 3) <binding name="stockquoteproviderportbinding" type="tns:stockquoteprovider"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="getlasttradeprices"> <soap:operation soapaction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> <fault name="incorrecttickersymbolexception"> <soap:fault name="incorrecttickersymbolexception" use="literal"/> </fault> </operation> </binding> <service name="stockquoteproviderservice"> <port name="stockquoteproviderport" binding="tns:stockquoteproviderportbinding"> <soap:address location="replace_with_actual_url"/> </port> </service> </definitions>

40 Definición de bindings y servicios Comentarios Definición de bindings Un binding especifica un protocolo y formato de datos para un tipo de puerto (e.g. SOAP sobre HTTP) Definición de servicios Un servicio especifica un conjunto de puertos (endpoints) Cada puerto está asociado a un binding particular y especifica su dirección de contacto REPLACE_WITH_ACTUAL_URL. Ahí debe indicarse la URL por defecto de acceso al servicio. En JAX-WS También puede indicarse al generar los stubs. Se usa el término service endpoint para referirse al puerto de un servicio Web Usaremos indistintamente los términos service endpoint y puerto

41 Mapping de Java a WSDL (1) No todos los tipos se pueden emplear en la definición de las operaciones de los Servicios Web. Tipos primitivos y sus contrapartidas objetuales Clases estándar Clases que sigan las convenciones de bean. Colecciones de tipos válidos Se utilizan los mappings de JAXB (Java Architecture for XML Binding). Define unos mappings por defecto. Pueden adaptarse mediante anotaciones.

42 Mapping de Java a WSDL (2) Tipos primitivos y sus contrapartidas objetuales Tipo Java boolean byte short int long float double Tipo WSDL xsd:boolean xsd:byte xsd:short xsd:int xsd:long xsd:float xsd:double En el caso de las contrapartidas objetuales, el correspondiente elemento lleva el atributo nillable a true

43 Mapping de Java a WSDL (3) Clases estándar Tipo Java java.lang.string java.math.biginteger java.math.bigdecimal java.util.calendar java.util.date Tipo WSDL xsd:string xsd:integer xsd:decimal xsd:datetime xsd:datetime Colecciones (e.g. Listas) de tipos válidos Se mapean a tipos complejos que son secuencias del tipo base.

44 Mapping de Java a WSDL (4) Objetos tipo bean : En general, estas clases deben tener atributos públicos de tipos válidos o usar las convenciones de nombrado de JavaBeans para sus atributos (métodos getxxx y setxxx) Pueden heredar de otras clases valor Se mapean a tipos WSDL complejos con compositor all o sequence En caso de herencia, el tipo complejo se define por derivación Ejemplo: TradePrice

45 Mapping de Java a WSDL (5) Definición de operaciones remotas Utilizan las tal y como ya hemos comentado. Cada interfaz se mapea a un puerto Dado que en WSDL no existe herencia entre puertos, si un interfaz deriva de otro, el puerto hijo incluye todas las operaciones del padre Una operación no puede recibir como parámetro o devolver como valor de retorno una referencia a un interfaz remoto Actualmente SOAP no ofrece soporte para ello Ejemplo: StockQuoteProviderImpl

46 Mapping de Java a WSDL (y 6) Excepciones Las excepciones se mapean a un wsdl:fault El objeto que contiene la información de la excepción se mapea a un tipo complejo. Dicho objeto ser accede mediante la operación getfaultinfo. Ejemplo: IncorrectTickerSymbolException

47 Mapping de WSDL a Java (1) Las reglas del mapping de Java a WSDL a la inversa xsd:datetime se mapea a javax.xml.datatype.xmlgregoriancalendar (y no a java.util.calendar) Los structs XML (con compositor all o sequence) se mapean a una clase Java con métodos getxxx/setxxx para cada campo del struct Además, necesitamos saber como se mapean algunas construcciones no existentes en JAVA (nuevamente, se usan las normas de JAXB): Cómo se traducen los parámetros out e inout? Parámetros de salida y de entrada/salida disponibles en otros lenguajes de programación.

48 Mapping de WSDL a Java (y 2) Parámetros out e inout Uso de clases Holder Son necesarias porque Java no tiene soporte directo (palabras reservadas en el lenguaje) para parámetros in/inout Son clases que contienen un valor, accesible mediante el atributo público value Ejemplo Supongamos un endpoint con la operación Nombre: add Parámetros: increment (in, double), amount (inout, double) Sin tipo de retorno La operación se mapearía a Java como void add(double increment, Holder<Double> amount) Uso Holder<Double> amount = new Holder(20); puerto.add(10, amount); System.out.println(amount.value); // 30

49 Modelos de implementación de clientes Modelo basado en Java SE Es el que usaremos. Modelo basado en Java EE El cliente corre dentro de un servidor de aplicaciones Java EE con soporte para JAX-WS.

50 es.udc.ws.jaxwstutorial.client.stockquoteproviderclient (1) package es.udc.ws.jaxwstutorial.client; import es.udc.ws.jaxwstutorial.wsdl.incorrecttickersymbolexception; import es.udc.ws.jaxwstutorial.wsdl.stockquoteprovider; import es.udc.ws.jaxwstutorial.wsdl.stockquoteproviderservice; import es.udc.ws.jaxwstutorial.wsdl.tradeprice; import javax.xml.ws.bindingprovider; import javax.xml.ws.webserviceref; import java.util.arraylist; import java.util.list; import java.text.messageformat; public class StockQuoteProviderClient { public static StockQuoteProviderService stockquoteproviderservice = new StockQuoteProviderService(); public static void main (String args[]) {

51 es.udc.ws.jaxwstutorial.client.stockquoteproviderclient (2) try { if (args.length < 2) { System.err.println(MessageFormat.format("Usage: {0} stockquoteproviderurl [tickersymbol1 tickersymbol2...]", } StockQuoteProviderClient.class.getName())); System.exit(-1); String stockquoteproviderurl = args[0]; List<String> tickersymbols = new ArrayList<String>(); for (int i=1; i < args.length; i++) { } tickersymbols.add(args[i]); StockQuoteProvider stockquoteprovider = stockquoteproviderservice.getstockquoteproviderport(); ((BindingProvider)stockQuoteProvider).getRequestContext().put( BindingProvider.ENDPOINT_ADDRESS_PROPERTY, stockquoteproviderurl);

52 es.udc.ws.jaxwstutorial.client.stockquoteproviderclient (y 3) List<TradePrice> tradeprices = // Show results stockquoteprovider.getlasttradeprices(tickersymbols); for (int i=0; i<tradeprices.size(); i++) { System.out.println( MessageFormat.format (, tradeprices.get(i).gettickersymbol(), )); } catch (IncorrectTickerSymbolException e) { System.out.println("Unable to get ticker symbol + e.getfaultinfo().getincorrecttickersymbol())); } } }

53 Comentarios (1) StockQuoteProviderService Interfaz del servicio Generada por el compilador de WSDL a Java Su nombre coincide con el nombre del servicio declarado en el fichero WSDL Proporciona métodos get<porttype> Devuelven una instancia del stub/proxy del puerto El proxy implementa el interfaz del puerto (StockQuoteProvider en el ejemplo, generado por el compilador de WSDL a Java). El ejemplo recibe la URL de invocación del servicio por línea de comandos y la fija modificando la propiedad ENDPOINT_ADDRESS_PROPERTY del contexto de la petición. Hay otras propiedades (e.g. autenticación).

54 Clientes Java EE Comentarios (2) Un cliente (e.g. una aplicación Web) que corra dentro de un servidor de aplicaciones Java EE puede obtener una referencia al servicio de una manera estándar. Anotación private static StockQuoteProvider service; Usando JNDI (Java Naming and Directory Interface) API incluida en Java SE (javax.naming) Entre otras cosas, es un API que permite acceder a información de configuración y recursos externos service/stockquoteproviderservice ) Private static StockQuoteProvider service;

55 Clientes Java EE (cont) Comentarios (y 3) Tiene que declarar en sus ficheros de configuración (web.xml o ejb-jar.xml) las referencias a los servicios Web que usa <service-ref> <service-ref-name>service/stockquoteproviderservice </service-ref-name> <service-interface>es.udc.ws.jaxwstutorial.wsdl. StockQuoteProviderService</service-interface> </service-ref> Las referencias se pueden localizar por JNDI en el contexto java:comp/env Se recomienda declarar las referencias a servicios Web debajo del subcontexto service Requiere configuración específica en el servidor de aplicaciones (e.g. especificar las URLs de contacto de los puertos)

56 Incluye ws-jaxwstutorialservice.war WEB-INF/lib Incluye las librerías (ficheros.jar) de Metro WEB-INF/classes Contiene las clases requeridas por el servicio (paquete es.udc.ws.jaxwstutorial.wsdl) WEB-INF/web.xml Fichero de configuración de la aplicación web. WEB-INF/sun-jaxws.xml Configuración de los Servicios Web de Metro.

57 web.xml (1) <?xml version="1.0" encoding="utf-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee <listener> <listener-class> com.sun.xml.ws.transport.http.servlet.wsservletcontextlistener </listener-class> </listener> <display-name>jaxwstutorial Web Service</display-name> <servlet> <servlet-name>wsservlet</servlet-name> <servlet-class>com.sun.xml.ws.transport.http.servlet.wsservlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet>

58 web.xml (y 2) <servlet-mapping> <servlet-name>wsservlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>

59 Comentarios (1) Se declara una clase Listener específica de Metro (las clases Listener son llamadas cuando una sesión se crea y se destruye). Se declara el servlet WSServlet Forma parte de las librerías de Metro WSServlet El servidor de aplicaciones Web le pasará todas las peticiones (tag servlet-mapping) dirigidas a las URLs <servlet-mapping> <servlet-name>wsservlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> En este caso, asumiendo que instalemos la aplicación Web con el nombre ws-jaxwstutorial-service, el cliente usará la URL para acceder al puerto StockQuoteProvider

Experto Universitario Java Enterprise Servicios Web

Experto Universitario Java Enterprise Servicios Web Servicios Web Sesión 2: Creación de servicios Web SOAP Puntos a tratar Introducción Servicios web desde la vista del servidor Implementación del servicio JAX-WS Pasos para crear un WS con JAX-WS Implementación

Más detalles

1. Introducción a los Servicios web

1. Introducción a los Servicios web 1. Introducción a los Servicios web Los servicios web son un tipo de middleware mediante el que pueden comunicarse aplicaciones remotas. En esencia, funciona como cualquier otro tipo de middleware (rmi,

Más detalles

Experto Universitario Java Enterprise Servicios Web

Experto Universitario Java Enterprise Servicios Web Servicios Web Sesión 1: Introducción. Invocación de Servicios Web SOAP Puntos a tratar Qué es un Servicio Web? Tipos de Servicios Web Arquitectura de los Servicios Web Tecnologías básicas para Servicios

Más detalles

Servicios web. Contenido. Programación en Internet Curso 2007-2008. Introducción Los pilares (SOAP, WSDL, UDDI) Desarrollo de un servicio web

Servicios web. Contenido. Programación en Internet Curso 2007-2008. Introducción Los pilares (SOAP, WSDL, UDDI) Desarrollo de un servicio web Departamento de Lenguajes y Sistemas Informáticos Servicios web Programación en Internet Curso 2007-2008 Contenido Introducción Los pilares (SOAP, WSDL, UDDI) Desarrollo de un servicio web DLSI - Universidad

Más detalles

4.5 APIs Java y Java EE para Servicios Web

4.5 APIs Java y Java EE para Servicios Web 4.5 APIs Java y Java EE para Servicios Web 4.5.1 JAXB (Java Architecture for XML Binding) APIs clásicas para procesamiento de documentos XML SAX (Simple API for XML): procesamiento de XML basado en eventos

Más detalles

Tema 4. Servicios WEB

Tema 4. Servicios WEB Tema 4. Servicios WEB SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs octubre 2008 FJRP, FMBR 2008/09 ccia SCS 4.1 Servicios WEB Un Servicio Web es un componente software

Más detalles

Servicios Web: Concepto

Servicios Web: Concepto Servicios Web y RMI http://www.it.uc3m.es/pedmume/ Servicios Web: Concepto Uso más habitual de un servidor es dar una respuesta al usuario de una determinada página (PHP, ASP, J2EE ). Las páginas están

Más detalles

Introducción a XML (III) - Web Services Huibert Aalbers Senior Certified Software IT Architect

Introducción a XML (III) - Web Services Huibert Aalbers Senior Certified Software IT Architect Introducción a XML (III) - Web Services Huibert Aalbers Senior Certified Software IT Architect IT Insight podcast Este podcast pertenece a la serie IT Insight Pueden suscribirse al podcast a través de

Más detalles

Modelo de Objetos Distribuidos

Modelo de Objetos Distribuidos Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo

Más detalles

Práctica 6. Servicios WEB (Java JAX-WS) SCS, 2009/10

Práctica 6. Servicios WEB (Java JAX-WS) SCS, 2009/10 Práctica 6. Servicios WEB (Java JAX-WS) SCS, 2009/10 12 de enero de 2010 Índice 1. Introducción 1 2. Ejercicio 1: Uso de Servicios Web ya publicados 2 2.1. Repositorio de servicios web............................................

Más detalles

5.1 Introducción a Servicios Web

5.1 Introducción a Servicios Web 5.1 Introducción a Servicios Web Introducción Continuando con el ejemplo de intercambio de información de películas... => Actualmente ya no es necesario implementar la solución sugerida a mano Se han estandarizado

Más detalles

Web Services. Introducción y Escenarios para su Uso. Moisés Daniel Díaz Toledano. www.moisesdaniel.com

Web Services. Introducción y Escenarios para su Uso. Moisés Daniel Díaz Toledano. www.moisesdaniel.com Web Services. Introducción y Escenarios para su Uso. Moisés Daniel Díaz Toledano. www.moisesdaniel.com 1.- Introducción a los WebServices. 1.1.- Definición de la W3C. 1.2.- Un poco de perspectiva. 1.3.-

Más detalles

CORPORACION UNIVERSITARIA AUTONOMA DEL CAUCA PROGRAMA DE INGENIERIA DE SISTEMAS 2o Periodo de 2014 MATERIA: ELECTIVA IV (MEJORAMIENTO DE PROCESOS)

CORPORACION UNIVERSITARIA AUTONOMA DEL CAUCA PROGRAMA DE INGENIERIA DE SISTEMAS 2o Periodo de 2014 MATERIA: ELECTIVA IV (MEJORAMIENTO DE PROCESOS) Servicios Web en PHP Contenido Configuración Web Services en PHP o Cliente o Servidor Generación del WSDL Web Services en PHP Configuración Se debe actualizar el archivo de configuración del servidor APACHE

Más detalles

Servicios Web. Andrés Pastorini. TRIA Tecnólogo Informático

Servicios Web. Andrés Pastorini. TRIA Tecnólogo Informático Andrés Pastorini TRIA Tecnólogo Informático Un servicio web expone un conjunto de servicios para ser consumidos a través de la red. En otras palabras, un servicio web especifica un conjunto de operación(funciones

Más detalles

Desarrollo de Sistemas Software Basados en Servicios y Componentes

Desarrollo de Sistemas Software Basados en Servicios y Componentes Desarrollo de Sistemas Software Basados en Servicios y Componentes Bloque Docente SERVICIOS WEB Parte 2 Portada Escuela Superior de Ingeniería (ESI) Universidad de Almería Índice Visualización WSDL (servicios

Más detalles

Biblioteca Técnica: SOAP Creando web services con el estándar JAX-WS 2.2 y Dinámica

Biblioteca Técnica: SOAP Creando web services con el estándar JAX-WS 2.2 y Dinámica Biblioteca Técnica: SOAP Creando web services con el estándar JAX-WS 2.2 y Dinámica Última actualización: 2010-01-22 Requiere framework v2.1.6 en adelante Contenido Sumario...2 Para aprender sobre SOAP

Más detalles

DESARROLLO WEB EN ENTORNO SERVIDOR

DESARROLLO WEB EN ENTORNO SERVIDOR DESARROLLO WEB EN ENTORNO SERVIDOR CAPÍTULO 7: Programación de servicios Web Marcos López Sanz Juan Manuel Vara Mesa Jenifer Verde Marín Diana Marcela Sánchez Fúquene Jesús Javier Jiménez Hernández Valeria

Más detalles

Sistemas Operativos Distribuidos. Introducción a los Servicios Web (Web Services)

Sistemas Operativos Distribuidos. Introducción a los Servicios Web (Web Services) Introducción a los Servicios Web (Web Services) 2 Evolución de la Web Pasado: Web de documentos Páginas estáticas Web como un enorme repositorio de información Tecnologías: HTTP + HTML Presente: Web de

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

Introducción a JAX-WS Web Services

Introducción a JAX-WS Web Services INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO ALUMNO: SANLUIS CASTILLO JOSE DAVID PROFESOR: CIFUENTES ALVAREZ ALEJANDRO SIGFRIDO MATERIA: WEB APPLICATION DEVEPLOMENT Introducción a JAX-WS

Más detalles

Tema VI. Servicios Web II. JAX-WS

Tema VI. Servicios Web II. JAX-WS Tema VI. Servicios Web II. JAX-WS Desarrollo de Aplicaciones para Internet Curso 12 13 Índice 1.Introducción 2.JAXB 3.JAX-WS i. Definición de Servicios ii. Anotaciones Principales iii.clases Principales

Más detalles

Curso SOA and Java Web Services with JAX-WS

Curso SOA and Java Web Services with JAX-WS Curso SOA and Java Web Services with JAX-WS Descripción: Los servicios Web están diseñados para permitir acceso basado en Web a software distribuido y servicios de negocio. Ofrecen un estándar y una arquitectura

Más detalles

JAVA RMI (REMOTE METHOD INVOCATION)

JAVA RMI (REMOTE METHOD INVOCATION) JAVA RMI (REMOTE METHOD INVOCATION) RMI RMI (Remote Method Invocation) Mecanismo RPC de Mecanismo mediante el cual los procesos cliente y servidor en una aplicación distribuida se comunican Una aplicación

Más detalles

1.9.- Descripción del servicio: WSDL (VI)... - 12 -

1.9.- Descripción del servicio: WSDL (VI)... - 12 - TEMA 6 Contenido 1.- Servicios web... - 2-1.1.- Características.... - 3-1.2.- Intercambio de información: SOAP.... - 4-1.3.- Intercambio de información: SOAP (II).... - 5-1.4.- Descripción del servicio:

Más detalles

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República Web Services en Java Taller de Programación Instituto de Computación Facultad de Ingeniería Universidad de la República Contenido Motivación y Conceptos Funcionamiento Annotations Desarrollando una aplicación

Más detalles

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB Existen varios tipos de tecnologías para los Servidores Web, estas tecnologías se pueden dividir en 4 grupos principales que son: Tecnologías al lado del cliente

Más detalles

Curso: Programación con JAVA SE Estándar Edition.

Curso: Programación con JAVA SE Estándar Edition. Curso: Programación con JAVA SE Estándar Edition. Código: 1062 Familia Profesional: Programación. Acreditación: Formación reconocida a través de vías no formales Modalidad: Distancia Duración: 150 horas

Más detalles

Sistemas de Información 12/13 Servlets y JSPs (Java Server Pages)

Sistemas de Información 12/13 Servlets y JSPs (Java Server Pages) 12/13 Servlets y JSPs (Java Server Pages) Departamento Informática e Ingeniería de Sistemas Universidad de Zaragoza (raqueltl@unizar.es) " Guión Introducción Servlets Introducción Clases e interfaces del

Más detalles

5.3.2 Java Server Faces (JSF)

5.3.2 Java Server Faces (JSF) 5.3.2 Java Server Faces (JSF) Framework que implementa el patrón MVC (Modelo-Vista-Controlador) Basado en componentes y eventos del lado del servidor Mantiene del lado del servidor una representación del

Más detalles

Cursos de Extensión Universitaria UNIVERSIDAD DE OVIEDO. Servicios Web (II)

Cursos de Extensión Universitaria UNIVERSIDAD DE OVIEDO. Servicios Web (II) Fernández Acebal acebal@ieee.org OOTLab PROGRAMACIÓN ORIENTADA A OBJETOS CON C# EN LA PLATAFORMA.NET (II) Dpto. de Informática Lab - Laboratorio de Tecnologías Orientadas a Objetos www.ootlab.uniovi.es

Más detalles

Técnico Superior en Programación con Java SE Standard Edition

Técnico Superior en Programación con Java SE Standard Edition Código: M087_04 Técnico Superior en Programación con Java SE Standard Edition Modalidad: Distancia Duración: 120 horas Objetivos: Este pack de materiales formativos proporcionará al alumnado la base que

Más detalles

Protocolo de intercambio de información (Web Services)

Protocolo de intercambio de información (Web Services) CMT Sistema de Gestión de Datos de Abonado (SGDA) Nº Proyecto: SAT2004-0419 Protocolo de intercambio de información (Web Services) Nivel de seguridad: N1 Versión: 1.5 17/06/2004 Autores Carlos Guardiola

Más detalles

Para crear un servicio puede utilizarse cualquiera de los lenguajes disponibles en la plataforma.net.

Para crear un servicio puede utilizarse cualquiera de los lenguajes disponibles en la plataforma.net. Web Services. Un servicio Web o WebService es un servicio ofrecido por una aplicación que expone su lógica a clientes de cualquier plataforma mediante una interfaz accesible a través de la red utilizando

Más detalles

Taller de Sistemas de Información 2

Taller de Sistemas de Información 2 Taller de Sistemas de Información 2 Web Services 11 de Setiembre de 2012 Instituto de Computación Facultad de Ingeniería Universidad de la República de Uruguay Instituto de Computación Facultad de Ingeniería

Más detalles

Cómo crear un cliente SOAP en Java sin usar AXIS paso a paso

Cómo crear un cliente SOAP en Java sin usar AXIS paso a paso Cómo crear un cliente SOAP en Java sin usar AXIS paso a paso Introducción Cuando nos encontramos ante la necesidad de desarrollar un cliente SOAP en Java, normalmente lo que se hace es generar las clases

Más detalles

Tema 5. Plataforma Java EE

Tema 5. Plataforma Java EE Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs enero 2009 FJRP, FMBR 2008/09 ccia SCS 5.1 Introducción a Java EE Java EE (Java Enterprise

Más detalles

TEMA 5. Otras arquitecturas distribuidas IV. Web Services

TEMA 5. Otras arquitecturas distribuidas IV. Web Services TEMA 5. Otras arquitecturas distribuidas IV. Web Services IV. Web Services 1. Qué son los Web Services? 2. Ejemplos de Web Services 3. Tecnologías y arquitectura 3.1. Arquitectura 3.2. Lenguaje de descripción:

Más detalles

GALA. Servicios WEB. Curso ASP.NET Desarrollo de Sitios y Servicios Web con Visual Basic 2010, 24 h. L25. Servicios Web en Integración

GALA. Servicios WEB. Curso ASP.NET Desarrollo de Sitios y Servicios Web con Visual Basic 2010, 24 h. L25. Servicios Web en Integración L25. Servicios Web en Integración L25. en ASP.NET Tipo de proyecto Archivos.ASMX Igual que los.aspx, UN URL Imports System Imports System.Web.Services

Más detalles

Requisitos. Universidad ORT Arquitectura de Software

Requisitos. Universidad ORT Arquitectura de Software Requisitos Java Development Kit (JDK) 1.5 o superior NetBeans IDE 6.5 o superior JBoss Application Server 4.2.x o 5.x.x Variable de entorno JAVA_HOME apuntando al directorio de instalación de la JDK 1

Más detalles

Construir RIA usando Flex. Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. Eduardo.Ostertag@obcom.cl

Construir RIA usando Flex. Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. Eduardo.Ostertag@obcom.cl Construir RIA usando Flex Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. Eduardo.Ostertag@obcom.cl Temario Arquitectura de un aplicación RIA Flex Servicios Web en VB.NET, C# y Java Descriptor WSDL

Más detalles

Desarrollo y servicios web

Desarrollo y servicios web Desarrollo y servicios web Luisa Fernanda Rincón Pérez 2014-2 Qué vimos la clase pasada? Introducción a Big Data Introducción a bases de datos NOSQL Características bases de datos NOSQL MongoDB como motor

Más detalles

Tema 5. Plataforma Java EE

Tema 5. Plataforma Java EE Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs septiembre 2011 FJRP, FMBR 2008-2011 ccia SCS 5.1 Introducción a Java EE Java EE (Java Enterprise

Más detalles

Capacitación Efectiva SOA y Web Services con Java

Capacitación Efectiva SOA y Web Services con Java Descripción: SOA es un paradigma de arquitectura para diseñar y desarrollar sistemas distribuidos. Las soluciones SOA han sido creadas para satisfacer los objetivos de negocio las cuales incluyen facilidad

Más detalles

Desarrollo de Servicios Web para la ETN

Desarrollo de Servicios Web para la ETN ........... Desarrollo de Servicios Web para la ETN Primer Informe de Avance JULIO, 2010 Primer Informe de Avance Desarrollo de Servicios Web para la ETN Crear Servicios Web que hagan disponible la información

Más detalles

WbS Web Services. Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez. Web Services

WbS Web Services. Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez. Web Services WbS Web Services Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez mx/rogomez Lámina 1 Web Services Servicios web. Interfaz red a una aplicación basada en tecnologías internet

Más detalles

JavaEE. www.javasoft.com

JavaEE. www.javasoft.com JavaEE Java Enterprise Edition www.javasoft.com Por qué Java en el servidor? Ventajas Independencia de la plataforma portabilidad Gran conjunto de APIs Reusabilidad y modularidad Seguro en la ejecución

Más detalles

Web Services. Richard Rossel rrossel@inf.utfsm.cl. 23 de noviembre de 2004. Web Services

Web Services. Richard Rossel rrossel@inf.utfsm.cl. 23 de noviembre de 2004. Web Services Richard Rossel rrossel@inf.utfsm.cl 23 de noviembre de 2004 JAVA2 TOC s JAVA2 JAVA2 Definición Aplicaciones Autocontenidas y Modulares Basado en estándares (XML,HTTP) Aplicaciones se anuncian por la red

Más detalles

Pasarela de pagos de la Administración Pública Vasca V2. Integración con Sistemas BackEnd de Administraciones

Pasarela de pagos de la Administración Pública Vasca V2. Integración con Sistemas BackEnd de Administraciones Pasarela de pagos de la Administración Pública Vasca V2 Integración con Sistemas BackEnd de Administraciones 06 de Febrero de 2007 Indice 1 Introducción...1 2 Módulos de la Pasarela de Pagos...2 3 Proceso

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2 Tema 9 Llamada a métodos remotos (RMI). Departament d Informàtica. Índice 1. Introducción 2 1.1. Cómo funciona RMI?.......................................... 2 2. Usando RMI 4 2.1. Fase de desarrollo:

Más detalles

Aplicaciones y Servicios Web (Web Services)

Aplicaciones y Servicios Web (Web Services) Aplicaciones y Servicios Web (Web Services) Joaquín Salvachúa DIT- jsalvachua@.upm.es -1- Internet NG Índice Problema a resolver Arquitectura SOAP WSDL UDDI Conclusiones -2- Internet NG Aplicaciones WEB

Más detalles

SOR -::- Prácticas -::- Curso 06/07

SOR -::- Prácticas -::- Curso 06/07 SOR Introducción a Se trata de un mecanismo relativamente nuevo que nos permite llamadas remotas a métodos a través de HTTP mediante el uso de protocolos y lenguajes basados en XML. Los nos ofrecen una

Más detalles

Servicios Web y SOA. Índice. Introducción a los Servicios Web. Invocación de servicios web SOAP... 4. Qué es un Servicio Web?... 4

Servicios Web y SOA. Índice. Introducción a los Servicios Web. Invocación de servicios web SOAP... 4. Qué es un Servicio Web?... 4 Índice 1 2 3 Introducción a los Servicios Web. Invocación de servicios web SOAP... 4 1.1 Qué es un Servicio Web?... 4 1.2 Características de los Servicios Web... 5 1.3 Tipos de servicios Web...5 1.4 Arquitectura

Más detalles

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la Servicios web Introducción Un servicio web es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes

Más detalles

WSDL (Web Services Description Language) Construcción de servicios web. Lourdes Tajes Martínez (tajes@uniovi.es)

WSDL (Web Services Description Language) Construcción de servicios web. Lourdes Tajes Martínez (tajes@uniovi.es) WSDL (Web Services Description Language) Construcción de servicios web Lourdes Tajes Martínez (tajes@uniovi.es) 1 En 5 minutos Un servicio web se define (en palabras del W3C) como una aplicación software,

Más detalles

Introducción a los servicios web 2012 Marcelino Rodríguez Suárez http://www.marce.com Un servicio web publica su descripción en un documento XML en

Introducción a los servicios web 2012 Marcelino Rodríguez Suárez http://www.marce.com Un servicio web publica su descripción en un documento XML en Introducción a los servicios web 2012 Marcelino Rodríguez Suárez http://www.marce.com Un servicio web publica su descripción en un documento XML en lenguaje WSDL. De esta forma es conocido y utilizado

Más detalles

AGESIC. Gerencia de Proyectos. Tutorial para Consumir un servicio sincrónico de la PGE sobre Plataforma Java

AGESIC. Gerencia de Proyectos. Tutorial para Consumir un servicio sincrónico de la PGE sobre Plataforma Java AGESIC Gerencia de Proyectos Tutorial para Consumir un servicio sincrónico de la PGE sobre Plataforma Java Historial de Revisiones Fecha Versión Descripción Autor Aprobado Por 08/11/2011 1.0 Versión inicial

Más detalles

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases Programación Avanzada para Sistemas de Telecomunicación Objetos y clases Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Concepto de objeto. Concepto de clase. Clases, objetos y programas. Clases

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Servicios web con SOAP y Eclipse

Servicios web con SOAP y Eclipse PRÁCTICA 8 Servicios web con SOAP y Eclipse E l objetivo de esta práctica es invocar e implementar servicios web en Java desde el entorno Eclipse. La práctica está estructurada en tres partes según se

Más detalles

FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información

FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información FSD Práctica Invocación Remota: JavaRMI Tipo de entrega: por grupos de prácticas Fecha límite: sesión de laboratorio Lugar: Campus Digital Comentario: No hay que entregar el estudio previo Objetivo de

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Un servicio Web para investigación operativa

Un servicio Web para investigación operativa VIII Congreso de Ingeniería de Organización Leganés, 9 y 10 de septiembre de 2004 Un servicio Web para investigación operativa Marcos Calle Suárez, Gabriel Villa Caro, José Manuel García Sánchez, Jesús

Más detalles

Servicios Web con.net

Servicios Web con.net 1. Introducción a los servicios Web Servicios Web con.net Básicamente un servicio Web es un clase que se publica en un servidor Web con soporte para ASP.NET (actualmente el único disponible es el Internet

Más detalles

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

Prueba de conectividad y soluciones de integración para sistemas de salud

Prueba de conectividad y soluciones de integración para sistemas de salud 4 CONGRESO IBEROAMERICANO DE INFORMÁTICA MÉDICA NORMALIZADA Foro de Conectividad Foro de Informática Normalizada para Enfermería Foro de Informática Normalizada en Registros Médicos Prueba de conectividad

Más detalles

Experto Universitario Java Enterprise Spring

Experto Universitario Java Enterprise Spring Spring Sesión 6: Acceso remoto. Pruebas Indice Spring para acceso remoto Spring vs. EJB Comparación de los protocolos disponibles Acceso remoto con HttpInvoker Pruebas Acceso remoto. Pruebas 2012-2013

Más detalles

WebService Presentación de DDJJ

WebService Presentación de DDJJ AFIP SDG SIT DI INTR WebService Presentación de DDJJ Perfil Organismo: presentacionprocessor Perfil Contribuyente: djprocessorcontribuyente Manual para el desarrollador Revisión correspondiente al 09/01/2014

Más detalles

Universidad ORT - Arquitectura de Software. Requisitos

Universidad ORT - Arquitectura de Software. Requisitos Requisitos Versión 1.5 (o superior) de la JDK de Java NetBeans 6.5 como IDE de desarrollo JBoss 4.2.x como Application Server Variable de entorno de Windows JAVA_HOME apuntando al directorio de instalación

Más detalles

Tema 8 Servicios web. F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García

Tema 8 Servicios web. F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Tema 8 Servicios web F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Sistemas Distribuidos Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenido

Más detalles

Especificación Técnica del Web Service de Autenticación y Autorización WSAA Para el desarrollo de Clientes de Entidades Externas

Especificación Técnica del Web Service de Autenticación y Autorización WSAA Para el desarrollo de Clientes de Entidades Externas Servicio Nacional de Aduanas Subdirección de Informática Departamento de Desarrollo de Sistemas Especificación Técnica del Web Service de Autenticación y Autorización WSAA Para el desarrollo de Clientes

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos Tema 3: Genericidad en Java Tema 3: Genericidad en Java Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Definición y Ventajas de la

Más detalles

en otra máquina exactamente de la misma manera que si se encontrará en la misma máquina

en otra máquina exactamente de la misma manera que si se encontrará en la misma máquina Máquina A Máquina B Máquina C Lo ideal sería tener un sistema distribuido orientado a objetos que permita: 1)Invocar un método de un objeto que se localiza en otra máquina exactamente de la misma manera

Más detalles

Taller de Sistemas de Información 2. Web Services en Java y Java EE

Taller de Sistemas de Información 2. Web Services en Java y Java EE Taller de Sistemas de Información 2 Web Services en Java y Java EE Plataformas de Web Services Las plataformas de Web Services son un conjunto de herramientas para un lenguaje de programación específico

Más detalles

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA II. Objetos distribuidos y CORBA 1. Objetos Distribuidos 2. CORBA 1. Características 2. Modelo de trabajo 3. ORB 4. Arquitectura

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

J2SE 6. 2007, Grupo Salenda, S.L.

J2SE 6. 2007, Grupo Salenda, S.L. J2SE 6 Novedades 2007, Grupo Salenda, S.L. Introducción Publicada en Noviembre de 2006. Primera versión de Java disponible durante su desarrollo. Han colaborado: 160 compañías. 330 desarrolladores de la

Más detalles

Un servlet es una clase java que implementa la Servlet interface. Un servlet corre dentro de un contexto denominado Servlet engine.

Un servlet es una clase java que implementa la Servlet interface. Un servlet corre dentro de un contexto denominado Servlet engine. Capítulo 6 Servlets En esta sección se va a tratar el primer componente que corre del lado del servidor, y es uno de los puntos fundamentales para la comunicación entre el cliente (browser) y el servidor.

Más detalles

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java. Práctica 3 mtp metodoloxía e tecnoloxía da programación Objetivos: Duración: Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java. 1 semana 1.- Identificadores Los identificadores

Más detalles

Servicios Web con Java EE

Servicios Web con Java EE Introducción Servicios Web con Java EE Daniel López Fuentes Laura Tolsada Bris Sergio Tejero López Irene Clemente Bueno Un servicio web es un conjunto de protocolos y estándares que sirven para intercambiar

Más detalles

Servicios Web con Java EE

Servicios Web con Java EE Servicios Web con Java EE Daniel López Fuentes Laura Tolsada Bris Sergio Tejero López Irene Clemente Bueno Departamento de Ingeniería Telemática Universidad Carlos III de Madrid 2 Introducción Un servicio

Más detalles

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente

Más detalles

Tema 18. Servicios Web.

Tema 18. Servicios Web. Tema 18. Servicios Web. Los web services son componentes software que permiten a los usuarios usar aplicaciones de negocio que comparten datos con otros programas modulares, vía Internet. Son aplicaciones

Más detalles

5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI

5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI 5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI Contenidos Tutorial de Java RMI Caso de estudio: diseño e implementación de la capa modelo de MiniBank con Java RMI Arquitectura

Más detalles

Contiene código HTML normal junto elementos especiales de JSP. Internamente, el servidor de aplicaciones las compilará a un servlet

Contiene código HTML normal junto elementos especiales de JSP. Internamente, el servidor de aplicaciones las compilará a un servlet JSP Java Server Pages cesaracebal.com acebal@uniovi.es Qué es JSP? Una tecnología para crear páginas Web dinámicas Contiene código HTML normal junto elementos especiales de JSP Están construidas sobre

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Práctica 2: Java Remote Method Invocation (RMI)

Práctica 2: Java Remote Method Invocation (RMI) Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es

Más detalles

Interacción entre Aplicaciones: objetos distribuidos e invocación remota

Interacción entre Aplicaciones: objetos distribuidos e invocación remota Interacción entre Aplicaciones: objetos distribuidos e invocación remota En la anterior práctica se ha visto cómo extender la funcionalidad de un servidor web incorporando servlets que atienden peticiones

Más detalles

Guías para la Práctica (3): Uso de ActiveBPEL y Eclipse BPEL Designer

Guías para la Práctica (3): Uso de ActiveBPEL y Eclipse BPEL Designer Guías para la Práctica (3): Uso de ActiveBPEL y Eclipse BPEL Designer Introducción ActiveBPEL es un motor open-source que implementa BPEL4WS 1.1 y WS-BPEL 2.0. Mantenido por la empresa Active Endpoints,

Más detalles

1. Visión general de RMI

1. Visión general de RMI 1. Visión general de RMI Java RMI permite al programador ejecutar métodos de objetos remotos utilizando la misma semántica que si fueran invocaciones locales (Véase Figura 1). Máquina Local (Cliente) Máquina

Más detalles

WebService: presentacionprocessor

WebService: presentacionprocessor AFIP SDG SIT DI INTR WebService: presentacionprocessor Presentación de DDJJ desde Organismos Externos Manual para el desarrollador Revisión correspondiente al 18/07/2013 Página 1 de 13 Revisión Histórica

Más detalles

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase Java: Clases y Objetos Clases La unidad fundamental de programación en Java es la clase Un programa Java está formado por un conjunto de clases Una clase es una plantilla que describe un conjunto de objetos

Más detalles

Visión general Infraestructura Desarrollo de un servicio Web Invocación de un servicio Web Bibliografía

Visión general Infraestructura Desarrollo de un servicio Web Invocación de un servicio Web Bibliografía CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d Arquitectura de Computadors (Seminaris de CASO) Autors Alberto Guirao Rico Jesús Barahona Esteve Agenda Visión general Infraestructura Desarrollo

Más detalles

Apéndice 1. SOAP 2 2. CORBA 4 3. JMS 6 4. RMI 8

Apéndice 1. SOAP 2 2. CORBA 4 3. JMS 6 4. RMI 8 Apéndice A Conectividad 1. OAP 2 2. CORBA 4 3. JM 6 4. RMI 8 OAP OAP (imple Object Access Protocol) es un protocolo basado en XML que permite comunicar componentes y aplicaciones mediante HTTP. Es como

Más detalles

Java RMI. Sistemas Distribuidos Rodrigo Santamaría

Java RMI. Sistemas Distribuidos Rodrigo Santamaría + Java RMI Sistemas Distribuidos Rodrigo Santamaría RMI Java RMI 2 + RMI 3 Remote Method Invocation: middleware para que un objeto que se ejecuta en una JVM use métodos de otro objeto que se ejecuta en

Más detalles

Especificación Técnica del WebService de Autenticación y Autorización

Especificación Técnica del WebService de Autenticación y Autorización Especificación Técnica del WebService de Autenticación y Autorización Índice de contenido Introducción...3 Propósito...3 Descripción General del Servicio...3 Referencias...4 Invocación del WSAA...4 Sincronización

Más detalles

1. Aplicaciones del J2SE SDK1.4.2 de Sun.

1. Aplicaciones del J2SE SDK1.4.2 de Sun. Dept Informatica Índice 1 Aplicaciones del J2SE SDK142 de Sun 1 11 javac 1 12 java 1 13 javadoc 2 14 Las que no se explican 3 2 Guía de estilo de Java 3 21 Clases 3 211 Nombres para las clases 3 212 Estructura

Más detalles

Servlets. Unidad: 4 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

Servlets. Unidad: 4 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Servlets Unidad: 4 Laboratorio de Programación Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos Indice Introducción CGI Servlets: concepto, caracteristicas Servlets Vs. CGI Ciclo

Más detalles