Curso: OSGi: Open Services Gateway Interface

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

Download "Curso: OSGi: Open Services Gateway Interface"

Transcripción

1 Curso: OSGi: Open Services Gateway Interface Dr. Diego Lz. de Ipiña Gz. de Artaza Contenido 1. Introducción a. Qué proporciona? b. Dónde se aplica? c. Especificaciones y Herramientas OSGi Arquitectura OSGi a. JVM, modularidad, gestión de ciclo de vida, seguridad b. Registro de Servicios c. Concepto de Bundle d. Servicios Estándar OSGi 3. Programando OSGi con Knopplerfish a. Instalación y configuración de plug-in para Eclipse b. Usando Ant para compilar código OSGi c. Desarrollando un primer bundle d. Fichero de manifesto e. Creación de la clase Activator f. Compilando e instalando un bundle g. Creando interfaces de servicio h. Usando el registro de servicios i. Usando los servicios avanzados de servicios: ServiceListener y ServiceTracker 2/142 1

2 Contenido 4. Desarrollo de un ejemplo complejo en OSGi a. Diseño de un Servicio de Descubrimiento de Servicios distribuidos b. Usando el LogService c. Implementando el servicio, bundle y activator d. Creación de Servicios Distribuidos descubribles mediante el Distributed Bundle Discoverer 5. Servicios Avanzados en OSGi a. Declarative Service b. Configuration Service c. Event Admin Service d. Wire Admin Service e. R-OSGi 6. Conclusión 3/142 OSGi en Pocas Palabras Una framework Java para el desarrollo de aplicaciones desplegables remotamente, que requieren: Robustez Elevada distribución Heterogeneidad (diferentes dispositivos) Colaboraciones Resuelve el problema de desplegar muchos programas independientes en grandes sistemas distribuidos, proveyendo: Un sistema operativo para programas Un formato para la descarga de código ejecutable Un mecanismo para descubrir otros programas Estandarización de APIs para promocionar la reutilización Gestión eficiente del ciclo de vida de las aplicaciones descargadas 4/142 2

3 OSGi (Open Services Gateway Initiative) Define una Arquitectura Centralizada Orientada a Servicios (SOA) dentro de una máquina virtual (JVM) Por qué se creo? Necesidad de crear herramientas que estandaricen los aspectos de integración del software de tal manera que la reutilización de componentes software sea más sencilla, fiable, robusta y de bajo coste. Qué aporta? OSGi aporta modularidad dinámica a Java y permite estandarizar la integración del software 5/142 OSGi (Open Services Gateway Initiative) OSGi define un entorno de ejecución estandarizado orientado a componentes que es la base de una arquitectura SOA. Proporciona una pequeña capa de software que permite la cooperación entre componentes Java en una única JVM. Gestiona dinámica del ciclo de vida de los componentes gestionados (instalación, actualización o eliminación) sin reinicio del dispositivo Múltiples dominios de aplicación: Pasarelas residenciales Dispositivos móviles de última generación Industria del automóvil Aplicaciones de sobremesa o Dispositivos electrónicos (Philips ipronto, Nokia N800 y E70 o NSLU2) Realmente una especificación, no un producto, en R4: r4.core.pdf (2.01 MB) -- R4 Core Specification r4.cmpn.pdf (4.55 MB) -- R4 Service Compendium 6/142 3

4 OSGi Alliance OSGi es gestionado por la OSGi Alliance: actualmente más de 30 empresas: Alpine Electronics Europe Gmbh, Aplix Corporation, BMW Group, Computer Associates, Deutsche Telekom AG, Echelon Corporation, Electricité de France (EDF), Ericsson Mobile Platforms AB, Esmertec, Espial Group, Inc., ETRI Electronics and Telecommunications Research Institute, France Telecom, Gatespace Telematics AB, Gemplus, Harman/Becker Automotive Systems GmbH, Hitachi, Ltd., IBM Corporation, Industrial Technology Research Institute, Insignia Solutions, Intel Corporation, KDDI R&D Laboratories, Inc., KT Corporation, Mitsubishi Electric Corporation, Motorola, Inc., NEC Corporation, Nokia Corporation, NTT, Oracle Corporation, Panasonic Technologies, Inc., ProSyst Software GmbH, Robert Bosch Gmbh, Samsung Electronics Co., Ltd., SavaJe Technologies, Inc., Sharp Corporation, Siemens AG, Sun Microsystems, Inc., Telcordia Technologies, Inc., Telefonica I+D, TeliaSonera, Vodafone Group Services Limited 7/142 Características Principales de OSGi 1. Gestión de componentes software Formato de empaquetamiento para aplicaciones (bundle) Instalar/Arrancar/Parar/Actualizar/Desinstalar un bundle Capacidad de recibir actualizaciones futuras de productos 2. Gestión de Componentes Remota Provee una API de gestión a utilizar por un bundle de gestión que mapea un protocolo a un conjunto de llamadas Hace frente a aspectos de heterogeneidad 3. Cooperación entre Aplicaciones Los bundles pueden contribuir tanto con código como servicios al entorno Contenedor abierto donde las aplicaciones no se ejecutan aisladas, comparten librerías El Registro de Servicios de OSGi ofrece modelo ligero para publicar, encontrar y asociar servicios dentro de una JVM Incluye un servicio de notificación para generar eventos de ciclo de vida 4. Naturaleza Dinámica La actualización de componentes no requiere el reinicio 5. Otras propiedades Despliegue simplificado Separación estricta de interfaz e implementación (enfoque SOA) Entorno de Ejecución Seguro Componentes Comerciales pueden Desplegarse Fácilmente 8/142 4

5 Qué proporciona OSGi? Framework de componentes software estándar y abierto para productores de dispositivos, proveedores de servicios y desarrolladores Modelo de coexistencia para permitir diferentes componentes dentro de una JVM Modelo cooperativo donde las aplicaciones pueden descubrir y usar servicios provistos por otras aplicaciones en la misma instancia de OSGi Arquitectura flexible de gestión remota: API de despliegue que controla ciclo de vida de aplicaciones: bundle + ciclo de vida de bundle Conjunto de servicios opcionales como HTTP, Wiring, IO o eventos Entorno de ejecución seguro 9/142 Complejidad del Software Service Oriented Programming Productivity Structured Programming Assembly Complexity and Size 10/142 5

6 Dónde se aplica? Pasarelas residenciales: Empresas como Siemens producen dispositivos para la automatización del hogar y sus componentes conectados por PLC o UPnP. Hace controlables remotamente a esos dispositivos. Aplicaciones de dektop: El popular entorno de desarrollo Eclipse está basado en OSGi (http://www.eclipse.org/osgi/) Dispositivos móviles de nueva generación: Los fabricantes de dispositivos móviles requieren una plataforma para el despliegue continuo de servicios escalable, flexible y de pequeño tamaño basada en OSGi y Java (JSR 232 y Automoción: Series 5 y 7 BMW incorporan OSGi para su plataforma de información y entretenimiento (AMI-C Próximamente en Servidores de Aplicaciones Empresariales Interface21, creadores de Spring, definiendo la nueva generación de servidor EE en OSGi (http://www.springframework.org/osgi/specification) Ultima versión de IBM WebSphere basada en OSGi 11/142 Ejemplo de Despliegue OSGi en el Hogar (1) Access from any Web Terminal Aggregation & Management Platform HomeControl Notification Server Home Office e.g. access from office or via PDA/WAP phone Subscriber, Service and Device Management Security Different Networks Internet Secure Tunnel Webpad Entertainment/ Gaming OSGi Service Gateway Firewall Access Gateway Service Offering Family Portal Internet Services Services Provider 12/142 6

7 Ejemplo de Despliegue OSGi en el Hogar (2) 13/142 Implementaciones OSGi R4 Comerciales Existen varias implementaciones de OSGi comerciales certificadas para la versión 4: Makewave Knopflerfish Pro 2.0 (www.makewave.com) comercial/libre ProSyst Software mbedded Server 6.0 (www.prosyst.com) Samsung OSGi R4 Solution (www.samsung.com) KT OSGi Service Platform (KOSP) 1.0 (http://www.kt.co.kr/) HitachiSoft SuperJ Engine Framework (http://hitachisoft.jp/) 14/142 7

8 Implementaciones OSGi R4 Libres Además, las siguientes implementaciones libres de R4 OSGi también existen: Eclipse Equinox (http://www.eclipse.org/equinox/) framework OSGi usada en Eclipse Makewave Knopflerfish (http://www.knopflerfish.org/) más usada y mejor documentada (elegida para este curso) Apache Felix (http://felix.apache.org/site/index.html) OSCAR 15/142 Aplicaciones Reales usando OSGi X-ray measurement Systems BMW 7 series Eclipse Siemens Medical Nokia E70 Siemens Gigaset SX765 Espial Set-top box VDO on-board computer Prosyst mbedded Server, Remote Manager and Builder Bosch and Siemens Home Appliances Philips ipronto Telefónica ehogar Websphere application server 16/142 8

9 Características Esenciales de OSGi Gestión de componentes software Gestión remota de componentes Cooperación entre componentes/aplicaciones Provisión de entorno de ejecución seguro 17/142 Gestión de Componentes Software OSGi provee las siguientes funciones para la gestión del ciclo de vida de aplicaciones: Bundles: formato de empaquetamiento para aplicaciones. Es un simple JAR compatible con mecanismos de compresión ZIP. Gestión de ciclo de vida de bundles: Instalar un bundle Arrancar/parar un bundle Actualizar un bundle Desinstalar un bundle Java VM OS CPU IO 18/142 9

10 Configuración Remota de Componentes OSGi está concebido para dispositivos que operan desatendidos o controlados por un operador de plataforma que requiera gestión remota El ciclo de vida del software no para cuando un dispositivo abandona la fábrica Es conveniente poder actualizar el software instalado una vez desplegado Para permitir gestión remota OSGi proporciona una API de gestión de bundles, donde algunos bundles autorizados actúan de puente entre cualquier protocolo y las llamadas de la API. 19/142 Cooperación entre Aplicaciones (1) OSGi es el único modelo de servidor de aplicaciones Java donde éstas pueden compartir código entre ellas y no se ejecutan aisladas unas de otras: A diferencia de MIDP, Java EE (librerías pero mucha replicación) OSGi aporta un modelo de servicios ligero que permite publicar, encontrar y asociar servicios dentro de una JVM a través del Registro de Servicios Servicio OSGi = objeto de un bundle disponible para su uso por otros bundles 20/142 10

11 Cooperación entre Aplicaciones (2) Arquitectura Orientada a Servicios (SOA): Separa el contrato de la implementación Permite implementaciones alternativas Descubre y asocia dinámicamente las aplicaciones Asociación basada en contratos (definiciones de interfaz) Reutilización de componentes Componentes desligados a los detalles de implementación de otros componentes, solamente sus interfaces tienen que conocerse Service Contract Component provides uses 21/142 Entorno de Ejecución Seguro OSGi ofrece un modelo de seguridad dividido en 4 niveles: Mecanismo de seguridad de la JVM: previene operaciones peligrosas como manipulación de punteros o acceso no restringido a arrays Seguridad del lenguaje Java: modificadores de acceso ( public, private, protected ) Seguridad proporcionada por la plataforma Java SE (http://java.sun.com/javase/technologies/security/ y java.security.permission.*) OSGi separa unos bundles de otros y comprueba que un bundle tiene permisos para interactuar con otro 22/142 11

12 Arquitectura OSGi (1) OSGi proporciona un entorno de computación para bundles que se ejecutan conjuntamente en una JVM. 23/142 Arquitectura OSGi (2) 24/142 12

13 Arquitectura OSGi (3) Permite a las aplicaciones compartir una única JVM. Gestiona la carga de clases en una manera mejor definida y eficiente que el estándar Java Soporta incluso versiones Provee aislamiento/seguridad entre aplicaciones Media permitiendo comunicación y colaboración entre aplicaciones Provee gestión del ciclo de vida (instalar, empezar, parar, actualizar) Libre de políticas Éstas son impuestas por los bundles 25/142 Capas de la Framework OSGi (1) Services Applications Life Cycle Module Security Execution Environment 26/142 13

14 Capas de la Framework OSGi (2) Entorno de ejecución Provee un contexto de ejecución bien definido a las aplicaciones, tal como J2SE, CDC, CLDC, MIDP Módulos Provee capacidades de carga y empaquetamiento de clases Facilita el lincado entre módulos Ciclo de Vida: Instalación, comienzo, parada, actualización y desinstalación dinámica de Bundles Mecanismos de dependencia para asegurar operación correcta del entorno Servicios: Modelo de cooperación entre bundles que tiene en cuenta el dinamismo Completo modelo para compartir objetos entre bundles. Provisión de un mecanismo de eventos para gestionar el dinamismo Seguridad Imbuida en todas las capas basada en Java y en el modelo de seguridad de Java 2 Añade gestión dinámica de permisos 27/142 Capas de la Framework OSGi: Entorno de Ejecución OSGi requiere un entorno de computación seguro, abierto, robusto, bien documentado, maduro, rico y portable Inspirado en Java porque en 1999 cuando se creó OSGi, Java ya contaba con uno Podrían realizarse implementaciones alternativas de OSGi en.net Las APIs de OSGi utilizan un subconjunto de las clases definidas por Java SE o Java ME CDC/CLDC CLDC/ MIDP OSGi Min. CDC/FP J2SE 28/142 14

15 Capas de la Framework OSGi: Modularidad (1) Un bundle es la unidad de ejecución en OSGi Compuesto principalmente de clases Java, librerías, recursos y manifest.mf Mejora la modularidad de las aplicaciones Java: Elimina dependencias en Classpath Protege quién accede a qué Soporta versiones 29/142 Capas de la Framework OSGi: Modularidad (2) Características: Compartición: OSGi promueve compartir las clases entre bundles Un bundle puede proveer librerías utilizadas por otros bundles reducción en necesidades de memoria Cada bundle puede exportar e importar paquetes (conjuntos de clases): Si múltiples bundles exportan el mismo paquete (con una versión diferente), la framework ha de seleccionar una versión apropiada por cada bundle Tras desinstalar un bundle los importadores son reiniciados para que se asocien a otro nuevo exportador de paquetes Gestión de interdependencias: los bundles pueden depender de funcionalidad ya alojada en un entorno Lazy loading: un bundle puede tener dependencias en bundles todavía no instalados Versionamiento: Diferentes bundles pueden utilizar diferentes versiones de la misma clase 30/142 15

16 Capas de la Framework OSGi: Modularidad (3) 31/142 Capas de la Framework OSGi: Ciclo de Vida (1) El bundle del sistema representa a la framework OSGi. Ofrece una API para gestionar bundles: Instalarlos Resolverlos Arrancar Parar Refrescar Actualizar Desinstalar Bundle X-v2 X System bundle State (active or not) Manages Bundle M Bundle A Bundle B 32/142 16

17 Capas de la Framework OSGi: Ciclo de Vida (2) Un bundle es iniciado por la clase BundleActivator Una cabecera en el fichero JAR que define un bundle hace referencia a esta clase La interfaz BundleActivator tiene dos métodos: Start() (): inicializa y retorna inmediatamente Stop(): limpia el bundle El BundleActivator recibe un BundleContext que provee acceso a las funciones de la framework OSGi La Framework provee el servicio Start Level que controla el inicio/parada de grupos de aplicaciones INSTALLED RESOLVED UNINSTALLED start STARTING ACTIVE stop STOPPING 33/142 Capas de la Framework OSGi: Servicios (1) Provee un modelo de servicios dentro de una JVM Descubrimiento (y notificación) de servicios basada en interfaces y propiedades, no requiere ningún protocolo Asociación a uno o varios servicios mediante: Control de programa Siguiendo ciertas reglas de la framework Configuración de despliegue Aclaración sobre Service Oriented Architectures (SOA) Los Servicios Web se asocian y descubren en la red En la plataforma OSGi lo hacen dentro de una Java VM La OSGi Alliance define un gran conjunto de servicios 34/142 17

18 Capas de la Framework OSGi: Servicios (2) 35/142 Capas de la Framework OSGi: Seguridad Basado en Seguridad de Java 2 Permisos Firma de bundles 36/142 18

19 Beneficios de la Plataforma OSGi Los componentes son pequeños Fáciles de hacer Los componentes están totalmente desacoplados unos de otros Aporta reusabilidad Modelo colaborativo Permite la reutilización de componentes para diferentes aplicaciones Gran aceptación Mercado grande, muchos componentes existentes Modelo dinámico para las personalización y variación continua de aplicaciones en los dispositivos actuales 37/142 Bundles: Infraestructura de Despliegue en OSGi Un bundle es una aplicación autocontenida ejecutable en diferentes implementaciones de OSGi Como si fuera un fichero EXE en Windows Contiene programas y recursos Registra cero o más servicios Un servicio se especifica como una interfaz Java y puede ser implementado por varios bundles Un mecanismo de búsqueda puede ser utilizado para encontrar servicios registrados por otros bundles Lenguaje de consultas (filtros) Recordemos que: La propia framework es un bundle (System Bundle) La especificación de OSGi define un conjunto de servicios estándar que las aplicaciones pueden cargar y utilizar Bundle Repository Oscar Bundel Repository: 38/142 19

20 Bundles: Contenido interno Un bundle es un fichero JAR que contiene: El fichero manifest.mf con los metadatos del bundle: Algunas cabeceras predefinidas por el formato JAR Otras definidas por la OSGi Alliance Código (las clases en paquetes) Recursos (otros ficheros dentro del.jar) Durante la instalación, la framework: Lee el manifesto del fichero Instala el código y los recursos Resuelve las dependencias Inicia el control del ciclo de vida del bundle Durante la ejecución, la framework: Invoca BundleActivator para iniciar gestión del ciclo de vida Gestiona el CLASSPATH del bundle como una red de classloaders Gestiona las dependencias entre servicios Invoca a BundleActivator para parar el bundle Elimina los recursos utilizados por el bundle cuando acaba Bundle A { 39/142 Modelo de Colaboración en OSGi OSGi es más que un entorno de ejecución de Applet, MIDlet o Xlet Los bundles, unidades de ejecución en OSGi, colaboran mediante: Objetos de servicios Compartiendo paquetes Un Registro de Servicios dinámico permite a un bundle encontrar y seguir el rastro de otros objetos de servicio La framework efectúa una gestión eficiente de esta colaboración Dependencias, seguridad 40/142 20

21 Modelo de Colaboración en OSGi: Servicios OSGi Framework = service, defined by java interface Bundle A { Bundle B { = bundle Bundle C { 41/142 Modelo de Colaboración en OSGi: Dependencias La especificacion OSGi soporta la declaración de dependencias mediante las cabeceras: Require-Bundle e Import-Package Require-Bundle crea una dependencia en un bundle completo Muy fácil de usar Importa paquetes que no son utilizados Import-Package crea una dependencia en un único paquete Los bundles solamente importan lo que necesitan Se recomienda usar Import-Package porque facilita el despliegue y la gestión de versiones Import-Package p q r s Require-Bundle r r 42/142 21

22 Modelo de Colaboración en OSGi: Servicios OSGi define una plataforma orientada a servicios con tres actores: Proveedores de Servicios, publican descripciones de servicios Consumidores de Servicios, descubren los servicios y se asocian a sus proveedores Pueden recibir notificaciones sobre cambios en el estado de servicios Registro de Servicios, permite a los consumidores de servicios descubrir otros servicios mediante consultas en sintaxis LDAP: "(&(" + Constants.OBJECTCLASS + "=Person)( (sn=jensen)(cn=babs J*)))" En OSGi, un servicio está compuesto de: Interfaz de Servicio, una clase o interfaz Java Propiedades del servicio, pares nombre-valor Los servicios se implementan como objetos dentro del bundle 43/142 Modelo de Colaboración en OSGi: Servicios 44/142 22

23 Modelo de Colaboración en OSGi: Servicios 45/142 Modelo de Colaboración en OSGi: Servicios Java Application Manager No management bundles Midlet, Xlet, or Applet Service registry packages packages Midlet, Xlet, or Applet No collaboration No package management (versions!) JAVA Operating System No native code Hardware 46/142 23

24 Ciclo de Vida de un Bundle en Detalle (1) Antes de poder arrancar un bundle instalado es necesario resolver sus dependencias Todo bundle arrancable debe implementar la interfaz BundleActivator con los métodos: a) start(bundlecontext) y b) stop(bundlecontext) La cabecera del manifestobundle-activator indica la clase que habrá que instanciar para arrancar o parar un bundle Durante la vida de un bundle varios eventos pueden ocurrir en la framework: Otros bundles son parados, actualizados, desinstalados, instalados, empezados, etc. Si se desinstala un bundle en el que otro tiene dependencias, el último accederá a los paquetes exportados anteriormente mientras no haya alternativas a esos paquetes exportados adoptados mediante un refresco del bundle El comienzo y fin de un bundle es grabado permanentemente, además existen start-levels que indican el orden de arranque de los bundles en la framework 47/142 Ciclo de Vida de un Bundle en Detalle (2) El objeto BundleContext provee una API para la instalación de bundles y su registro 48/142 24

25 Registro de Servicios en Detalle (1) La característica diferencial de OSGi frente a otros entornos Java es su naturaleza dinámica: Teléfono móvil es asociado a un nuevo dispositivo Pasarela residencial detecta nueva electrodoméstico conectado Coche detecta la presencia de un teléfono móvil a su alrededor El Registro de Servicios permite a los desarrolladores de aplicaciones construir pequeños y desacoplados componentes que pueden adaptarse al entorno cambiante en tiempo real Estos componentes pueden ser combinados para crear complejas aplicaciones 49/142 Registro de Servicios en Detalle (2) Un servicio se registra bajo un nombre de interfaz y un conjunto de propiedades Un lenguaje de filtrado sencillo basado en LDAP es utilizado para seleccionar los servicios necesarios. (&(sn=ipiña)(cn=diego)) La interfaz ServiceListener y la clase ServiceTracker permiten recibir notificaciones de eventos de ciclo de vida de servicios de interés La interfaz BundleContext permite la interacción con el Registro de Servicios: Registrar objetos (BundleContext.registerService()) Buscar otros objetos en el registro (BundleContext.getServiceReference()) Recibir notificaciones cuando servicios de interés son registrados o eliminados (BundleContext.addServiceListener()) 50/142 25

26 Detalles sobre Servicios Un servicio es un objeto registrado con el Framework por un bundle para su uso por otros bundles La semántica de un servicio es dada por su interfaz Java Un bundle puede registrar un servicio Un bundle puede usar un servicio (bind) con cierta cardinalidad 1..1, 0..1, 0..n Un servicio puede ser descubierto dinámicamente Búsqueda activa con filtro de consulta Interfaz listener Los servicios pueden acabar en cualquier momento! Todo es muy dinámico! bind listen service register package org.osgi.service.log; import org.osgi.framework.servicereference; public interface LogService { static final intlog_error= 1; static final intlog_warning= 2; static final intlog_info= 3; static final intlog_debug= 4; void log(int level, String message); void log(int level, String message, Throwable exception); void log(servicereference sr,int level, String message); void log(servicereference sr, int level, String message, Throwable exception); 51/142 Manipulación de Servicios La interfaz BundleContext facilita los métodos para manipular el registro de servicios Los registros de servicio son gestionados por objetos de tipo ServiceRegistration Pueden utilizarse para desregistrar un servicio o modificar sus propiedades Los objetos ServiceReference dan acceso al servicio así como a sus propiedades El acceso a un servicio es mediante el método getservice Los servicios se devuelven con el método ungetservice. ServiceRegistration registerservice( String clss, Object srvc, Dictionary prprts) ServiceReference[] getservicereferences( String clss, String fltr) Object getservice( ServiceReference reference) boolean ungetservice( ServiceReference rfrnc); 52/142 26

27 Seguridad en Detalle OSGi ejecuta aplicaciones de una variedad de fuentes bajo control estricto de un sistema de gestión: Seguridad de Código de Java 2: java.security.permission y sus subclases (FilePermission, SocketPermission) protegen el acceso a recursos del sistema Exposición de contenido de bundles mínima mediante modificadores de acceso de las clases Java o haciendo que los paquetes sean visibles sólo dentro de un bundle Permisos de paquete OSGi limitan quién puede importar o exportar paquetes o mediante org.osgi.framework.servicepermission 53/142 Servicios Estándar en OSGi (1) Servicios del Framework: Permission Admin: los permisos de bundles actuales o futuros pueden ser manipulados a través de este servicio Conditional Permission Admin: extiende el Permission Admin con permisos que son aplicados cuando ciertas condiciones son cumplidas Package Admin: provee información sobre el estado compartido por un paquete y permite refrescarlos Start Level: conjunto de bundles que deben ejecutarse conjuntamente precediendo o siguiendo a otros niveles de comienzo URL Handlers: permite a los bundles contribuir dinámicamente con nuevos gestores de contenidos a la clase URL 54/142 27

28 Servicios Estándar en OSGi (2) Servicios del Sistema: Log Service: trazado de información, advertencias, información de debug o errores es redireccionado a bundles subscritos con él Configuration Admin: modelo flexible y dinámico para obtener información de configuración Event Admin: mecanismo general y flexible de publicar y subscribirse a eventos Device Access: mecanismo para asociar un driver a un nuevo dispositivo y descargar automáticamente un bundle User Admin: BBDD con información de usuario con propósito de autenticación y autorización IO Conector: permite a los bundles proveer nuevos y alternativos protocolos para javax.microedition.io Preferences Service: provee acceso a base de datos jerárquica de propiedades. Similar al registro de Windows. 55/142 Servicios Estándar en OSGi (3) Servicios del Sistema: Servicio HTTP: este servicio ejecuta un contenedor de servlets, los bundles pueden proveer servlets que son accesibles mediante HTTP. Servicio UPnP: mapea dispositivos en una red UPnP al Registro de Servicios. Wire Admin: permite la composición de diferentes servicios de acuerdo a una conexión. 56/142 28

29 Servicios Estándar en OSGi (4) Soporte a la Programación: Service Tracker: simplifica la gestión de servicios proveyendo una clase que sigue la pista de los servicios de una aplicación Declarative Services: permite leer una configuración XML de un bundle con registro de servicios y dependencias. Será iniciado solamente cuando los servicios declarados sean realmente necesarios por otros bundles. 57/142 Knopflerfish Varias opciones de implementaciones open source Makewave Knopflerfish Equinox implementación de OSGi usada por Eclipse (http://www.eclipse.org/equinox/) Apache Felix (http://felix.apache.org) Knopflerfish ofrece la mejor documentación y acabado Muy sencilla de utilizar Provee herramienta de gestión de bundles fantástica Producida por Makewave (antes Gatespace Telematics) Una de las implementaciones de pago más utilizadas Para una comparativa entre las ventajas y desventajas de las diferentes implementaciones open source de OSGi visitar: 58/142 29

30 Instalación de Knoplerfish Prerrequisito: tener una versión de Java o superior en tu máquina Descargar knopflerfish_osgi_2.0.1.jar (11 MB) Framework completa, incluyendo código fuente, documentación, ejecutable autoextraíble: Instalar Knoplerfish con el siguiente comando: java -jar knopflerfish_osgi_<version>.jar Ejecutar Knoplerfish mediante: cd %KNOPFLERFISH_INTALL_DIR%/knopflerfish.org/osgi java jar framework.jar Abrirá el Knopplerfish OSGi Desktop 59/142 Knoplerfish OSGi Desktop 60/142 30

31 Instalación Plug-in Eclipse OSGi Pasos necesarios para su instalación: 1. Seleccionar la opción de menú en Eclipse Help Software Updates Find and Install Seleccionar Search for new features to install e introducir los detalles de un nuevo site remoto: Knopflerfish update site, y la URL 3. Hacer clic sobre la caja Knopflerfish update site y pulsar Finish. Documentado en: Pasos necesarios para su configuración: Seleccionar opción de menúwindow Preferences y en Framework añadir el directorio de instalación de Knopflerfish. Seleccionar Default JRE como el entorno de ejecución de bundles. Podrían seleccionarse otras opciones como CLDC u OSGi Minimum Asociar un Bunde repository donde Eclipse pueda resolver dependencias durante la compilación y ejecución de los bundles. Documentado en: 61/142 Configuración de un Proyecto Knopflerfish en Eclipse 1. Seleccionar la opción de menú File New Project Seleccionar la opción Bundle Project e introducir la información del proyecto. 3. Editar y compilar el proyecto creado. La primera vez que se vaya a compilar y ejecutar el proyecto habrá que introducir una nueva configuración de lanzamiento, yendo a la opción del menú Run: OSGi Knopflerfish. Documentación adicional en: 62/142 31

32 Usando Ant para Compilar Bundles Knopflerfish viene con un fichero build.xml preconfigurado que permite la generación y compilación de bundles en OSGi Pasos para configurar el proyecto: 1. Crear un nuevo directorio donde colocar el código del nuevo bundle. Por ejemplo, holamundobundle. 2. Copiar el fichero knopflerfish_osgi_2.0.1\knopflerfish.org\ant\bui ld_example.xml a holamundobundle\build.xml. 3. Configurar la plantilla de fichero build.xml a tu proyecto. Entre otras cosas deberás configurar las propiedades impl.pattern y api.pattern. 4. Invocar ant. 5. Instalar el bundle, bien usando la interfaz gráfica o bien los comandos de línea de comando provistos por Knopflerfish. 63/142 Nuestro Propio Fichero Ant Nosotros vamos a utilizar una versión simplificada del build.xml, no autogeneramanifest.mf, pero sí compila (compile), crea el.jar (jar) correspondiente al bundle y lo despliega en Knopflerfish (deploy) IMPORTANTE: hay que crear la variable de entorno OSGI_HOME para que apunte al directorio de instalación de Knopflerfish, por ejemplo: c:\knopflerfish_osgi_2.0.1\knopflerfish.org 64/142 32

Apéndice A: OSGi: Open Services Gateway Interface

Apéndice A: OSGi: Open Services Gateway Interface Apéndice A: OSGi: Open Services Gateway Interface Dr. Diego Lz. de Ipiña Gz. de Artaza http://paginaspesonales.deusto.es/dipina http://www.morelab.deusto.es http://www.ctmd.deusto.es dipina@eside.deusto.es

Más detalles

OSGI Roberto Montero Miguel

OSGI Roberto Montero Miguel 1 Roberto Montero Miguel 2 INDICE Modularidad en Java--------------------------------------------------------------------------- 3 1 Introducción a ----------------------------------------------------------------------

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

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

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

Entorno de desarrollo Instalación y configuración

Entorno de desarrollo Instalación y configuración Entorno de desarrollo Instalación y configuración GExCALL Formación http://gexcall.unex.es/formacion El plugin ADT (Android Development Tools) extiende al IDE Eclipse. Te permite crear y depurar aplicaciones

Más detalles

Desarrollo y servicios web Sesión 18

Desarrollo y servicios web Sesión 18 Desarrollo y servicios web Sesión 18 Luisa Fernanda Rincón Pérez 2014-2 Qué son los patrones arquitectónicos? Definen la estructura de la solución al mas alto nivel. Por esto es lo primero que se tiene

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

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Introducción a Java LSUB. 15 de enero de 2015 GSYC Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

Desarrollo de Aplicaciones Web con Eclipse

Desarrollo de Aplicaciones Web con Eclipse Desarrollo de Aplicaciones Web con Eclipse Oscar Gosdinski Software Services Representative Java Es un lenguaje de programación y una plataforma de desarrollo. 2 Lenguaje de alto nivel que puede ser caracterizado

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

Guía de instalación del software de la asignatura

Guía de instalación del software de la asignatura Guía de instalación del software de la asignatura Eclipse + Android SDK 1. La forma más sencilla de instalar Eclipse con el plugin ADT para desarrollo de aplicaciones Android es descargar el paquete preconfigurado

Más detalles

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

CREACIÓN DE WEBSERVICES

CREACIÓN DE WEBSERVICES CREACIÓN DE WEBSERVICES Versión 1.1 MARZO 2007 Página: 1 1 TABLA DE CONTENIDO 1 TABLA DE CONTENIDO... 2 2 INTRODUCCIÓN... 3 3 HERRAMIENTA DE DESARROLLO ANT... 3 4 CREACION SERVICIO WEB... 3 5 CREACIÓN

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

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

Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java

Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java Qué es? Introducción a es Un lenguaje de programación Un entorno de desarrollo Un entorno de ejecución de aplicaciones Un entorno de despliegue de aplicaciones Utilizado para desarrollar, tanto applets

Más detalles

CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET

CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET 3.1- ARQUITECTURA DE COMPONENTES GIS La presente tesis trata del diseño y desarrollo de una aplicación basado en el Web para servir datos geográficos

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

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid las RPC de Java. Parte I Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid de marzo de 006 RMI y RPC RPC: Remote Procedure Call. RMI y RPC RPC: Remote Procedure Call.

Más detalles

INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA

INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA Jaime Fernández ndez Mayo 2006 Índice Java Aplicaciones web Servlets JSP Servidores de aplicaciones IDE`s Ejemplo Historia Java Lenguaje orientado

Más detalles

Programación en Java. Temario. David Contreras Bárcena

Programación en Java. Temario. David Contreras Bárcena Programación en Java David Contreras Bárcena David Contreras Bárcena (ETSI) - Comillas 1 Temario 1. Introducción 1. Lenguaje java 2. Compilador SDK 1.4 3. Sintaxis 4. Tipos de datos 5. Estructuras de Control

Más detalles

J2ME ENTORNO DE EJECUCIÓN. Un entorno de ejecución determinado de J2ME se compone entonces de una selección de:

J2ME ENTORNO DE EJECUCIÓN. Un entorno de ejecución determinado de J2ME se compone entonces de una selección de: J2ME Esta versión de Java está enfocada a la aplicación de la tecnología Java en dispositivos electrónicos con capacidades computacionales y gráficas muy reducidas, tales como teléfonos móviles, PDAs o

Más detalles

Descarga, instalación y uso de herramientas:

Descarga, instalación y uso de herramientas: Descarga, instalación y uso de herramientas: Eclipse: Instalación de Eclipse (Más información en http://www.eclipse.org/) 1. Copiar, descomprimir e instalar si es necesario la última versión de Eclipse

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

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

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

Registro de traza en Java

Registro de traza en Java Registro de traza en Java javierj@us.es / jjgrodriguez@gmail.com y qué es la traza? Veremos dentro de poco como crear el objeto log. public int suma(int a, int b) { log.debug( Entrando en suma ); int sum;

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

Capítulo 5 Introducción al Desarrollo de Aplicaciones Móviles usando J2ME

Capítulo 5 Introducción al Desarrollo de Aplicaciones Móviles usando J2ME Telemática TEL-352 Seminario de Telemática II Introducción al Desarrollo de Aplicaciones Móviles usando J2ME CHM-2008 Seminario de Telemática II 1 Objetivos Introducir los principales conceptos de la plataforma

Más detalles

gvsig_des_2.x_d: Curso de desarrolladores de gvsig Desktop v 2.x Maven en gvsig Maven en gvsig Novedades de desarrollo en gvsig 2.

gvsig_des_2.x_d: Curso de desarrolladores de gvsig Desktop v 2.x Maven en gvsig Maven en gvsig Novedades de desarrollo en gvsig 2. Novedades de desarrollo en gvsig 2.0 http://www.gvsig.gva.es http://www.gvsig.org César Ordiñana Arquitecto Software gvsig DiSiD Technologies S.L. cordinyana@gvsig.org gvsig. Geographic Information System

Más detalles

Cookbook Creando un Proyecto Android (ADT-Eclipse)

Cookbook Creando un Proyecto Android (ADT-Eclipse) Cookbook Creando un Proyecto Android (ADT-Eclipse) ALONSO PARRA CESAR VIELMA FREDDY RONDON JOSE MARQUEZ Alienx9889 * cesarvielma * spantons * joseangel2212 * * @gmail.com Universidad de Los Andes Escuela

Más detalles

Sistemas Ubicuos 4. Descubrimiento de servicios

Sistemas Ubicuos 4. Descubrimiento de servicios Sistemas Ubicuos 4. Descubrimiento de servicios Departamento de Arquitectura y Tecnología de Computadores 1 Descubrimiento de servicios 1. Introducción 2. Protocolos de descubrimiento de servicios 3. Estructura

Más detalles

Generar Temas de Colores y Cambiarlos Dinámicamente en ZK

Generar Temas de Colores y Cambiarlos Dinámicamente en ZK Generar Temas de Colores y Cambiarlos Dinámicamente en ZK Hola, mi nombre es Manuel Martínez y soy de Colombia. Voy a explicarles desde cómo construir temas de colores para las interfaces graficas de ZK

Más detalles

1.1. Instalación del entorno de desarrollo

1.1. Instalación del entorno de desarrollo 1.1. Instalación del entorno de desarrollo Para el desarrollo de las aplicaciones vamos a poder utilizar un potente y moderno entorno de desarrollo. Al igual que Android, todas las herramientas están basadas

Más detalles

Toda la información de instalación se puede encontrar en el fichero "install.log".

Toda la información de instalación se puede encontrar en el fichero install.log. MAST STORAGE Instalación Linux 1. Descargue el archivo de instalación (obm-nix.tar.gz) y ejecútelo. 2. Descomprima el fichero de instalación en /usr/local/obm mkdir /usr/local/obm cd /usr/local/obm gunzip

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

J2ME (Java to Micro Edition)

J2ME (Java to Micro Edition) CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d Arquitectura de Computadors J2ME (Java to Micro Edition) (Seminaris de CASO) Autors José Antonio Carmona Gallardo Valentí Moncunill González Introducción

Más detalles

Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, 2006. ILI 258 Departamento de Informática Universidad Técnica Federico Santa María

Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, 2006. ILI 258 Departamento de Informática Universidad Técnica Federico Santa María Nicolás Troncoso Carrère ILI 258 Departamento de Informática Universidad Técnica Federico Santa María Valparaíso, 2006 1 2 3 Porqué paginas dinamicas? Confirmacion de suscripciones. Contenido generado

Más detalles

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010)

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010) Tecnologías de programación en la Web Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010) Jesús Arias Fisteus & Andrés Marín López jaf, amarin@it.uc3m.es Tecnologías de programación en la Web p.

Más detalles

Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages)

Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages) Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages) Autor: José Vicente Núñez Zuleta (jose@eud.com, josevnz@yahoo.com) Puntos a tratar Qué es JDBC? Arquitectura de un

Más detalles

Java y Herramientas de Desarrollo Sesión 1: Lenguaje Java y Entorno de Desarrollo

Java y Herramientas de Desarrollo Sesión 1: Lenguaje Java y Entorno de Desarrollo Especialista en Aplicaciones y Servicios Web con Java Enterprise Java y Herramientas de Desarrollo Sesión 1: Lenguaje Java y Entorno de Desarrollo Desarrollo-1 Índice! Introducción a Java! Entorno de desarrollo

Más detalles

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA José Luis Pastrana Brincones (pastrana@lcc.uma.es) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga

Más detalles

HTTP, CGI, Applets y Servlets

HTTP, CGI, Applets y Servlets HTTP, CGI, Applets y Servlets Sistemas de Operación II CI-4821 Sep-Dic 2006 Mercedes Martínez 00-33042 Aixbel Martínez 01-34114 Mario Felaco 02-34888 José Luís Castillo 01-33691 Yonathan Ledo 01-34033

Más detalles

https://developers.facebook.com/docs/unity/downloads/? campaign_id=282184128580929&placement=sdk_list

https://developers.facebook.com/docs/unity/downloads/? campaign_id=282184128580929&placement=sdk_list Facebook SDK para Unity El SDK de Facebook para Unity se emplea para publicar proyectos creados en Unity en apps de Facebook. Desde abril de 2014, las aplicaciones creadas para Facebook utilizan el API

Más detalles

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat 4.1.12.

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat 4.1.12. Unidad 7 Servlets 7.1 Marco teórico Lo que permite que ordenadores remotos con procesadores y sistemas operativos diferentes se entiendan y en definitiva que Internet funcione como lo hace en la actualidad,

Más detalles

Proyecto final de carrera

Proyecto final de carrera Proyecto final de carrera Extracción de datos web usando técnicas de screen-scraping. Autor: Javier Ibáñez Micó jaibmi@ei.upv.es Dirigido por: Joan Fons i Cors jjfons@dsic.upv.es 1 Índice Índice... 2 1.-

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

Hands-On Lab. Windows Azure: Java, Eclipse y Azure. Última Actualización: 16/12/2011

Hands-On Lab. Windows Azure: Java, Eclipse y Azure. Última Actualización: 16/12/2011 Hands-On Lab Windows Azure: Java, Eclipse y Azure Última Actualización: 16/12/2011 1 Contenido INTRODUCCIÓN... 3 Objetivos 3 Prerequisitos 4 PREPARANDO EL ENTORNO... 5 Instalar Windows Azure Toolkit para

Más detalles

J2ME Programando un cronómetro para nuestro celular

J2ME Programando un cronómetro para nuestro celular J2ME Programando un cronómetro para nuestro celular A lo largo de este apunte veremos como desarrollar una aplicación que sea capaz de correr en un teléfono celular (MIDlet). Para ello haremos uso del

Más detalles

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse Versión 3.0 02/12/2010 2 3 1 Control de versiones VERSIÓN AUTOR FECHA CAMBIO 1.0 SAIG, S.L. 22/03/2007

Más detalles

Middleware dotcms. Sara Estellés. José M. Gómez. Universidad de Alicante. Informe Técnico LegoLangUAge 02/2013

Middleware dotcms. Sara Estellés. José M. Gómez. Universidad de Alicante. Informe Técnico LegoLangUAge 02/2013 Informe Técnico LegoLangUAge 02/2013 Middleware dotcms Sara Estellés José M. Gómez Universidad de Alicante Grupo de Investigación en Procesamiento del Lenguaje Natural y Sistemas de Información Contenido

Más detalles

Visualización y modelado de elementos geográficos en dispositivos móviles. Capítulo 5: Aplicaciones cliente

Visualización y modelado de elementos geográficos en dispositivos móviles. Capítulo 5: Aplicaciones cliente Capítulo 5: Aplicaciones cliente 46 5.1 La aplicación cliente en la Pocket PC La aplicación desarrollada para el cliente en un dispositivo móvil como corresponde a la Pocket PC necesita una capa muy delgada

Más detalles

VACL para KDE3: Manual del desarrollador. Francisco José Calvo Fernández

VACL para KDE3: Manual del desarrollador. Francisco José Calvo Fernández VACL para KDE3: Manual del desarrollador Francisco José Calvo Fernández VACL para KDE3: Manual del desarrollador por Francisco José Calvo Fernández Este documento describe el proceso de construcción del

Más detalles

Desarrollo de. aplicaciones para. Black Berry

Desarrollo de. aplicaciones para. Black Berry Desarrollo de aplicaciones para Black Berry Índice Herramientas de Trabajo 3 Preparación del Ambiente 5 Primer Aplicación 9 Base de Datos: Perst 11 Web Services 16 2 Herramientas de Trabajo 1.1 - Las herramientas

Más detalles

'HVDUUROORGH$SOLFDFLRQHV

'HVDUUROORGH$SOLFDFLRQHV 'HVDUUROORGH$SOLFDFLRQHV FRQ-(( $SOLFDFLRQHV'LVWULEXLGDV0XOWLFDSD &RQWHQLGR Plataforma J2EE Aplicaciones Distribuidas multicapa Arquitectura Multicapa Componentes J2EE Componentes de Clientes: aplicaciones

Más detalles

Proyecto Fin de Carrera de Daniel Prado Rodríguez

Proyecto Fin de Carrera de Daniel Prado Rodríguez Marco Conceptual para la Gestión de Conocimiento de entornos de colaboración: aplicación a la creación 391 INDICE 7 Manual de Instalación...393 7.1 Introducción...393 7.2 J2SDK...393 7.3 Kawa...394 7.4

Más detalles

Tema: Introducción a Java y Netbeans

Tema: Introducción a Java y Netbeans 1 Tema: Introducción a Java y Netbeans Objetivo Especifico Conocer el uso básico del JDK para la compilación y ejecución de código java desde la linea de comando Conocer el entorno de desarrollo NetBeans

Más detalles

Proyecto de Grado 2010

Proyecto de Grado 2010 Proyecto de Grado 2010 CERTIFICACION DE IP4JVM Anexo III - Instalación de IP4JVM Autor: Daniel Enrique Rosano Lorenzo Tutores: Ariel Sabiguero Yawelak Leandro Scasso Instituto de Computación Facultad de

Más detalles

Arquitectura y Lenguaje Java

Arquitectura y Lenguaje Java Arquitectura y Lenguaje Java 1 Introducción El lenguaje de programación Java así como su arquitectura se diseñaron para resolver problemas que se presentan en la programación moderna. Se inició como parte

Más detalles

Introducción a los servlets

Introducción a los servlets Introducción a los servlets (Febrero de 2005) Introducción En breve: un servlet es un programa ejecutado en el servidor (a diferencia de los applets que se ejecutan en el cliente). Es un mecanismo para

Más detalles

PRÁCTICA 1 MANUAL BÁSICO DE ECLIPSE

PRÁCTICA 1 MANUAL BÁSICO DE ECLIPSE PRÁCTICA 1 MANUAL BÁSICO DE ECLIPSE Facilidades de eclipse para el uso de ant y JUnit Tabla de contenidos 1. Qué es Eclipse?... 2 2. Crear un proyecto en Eclipse... 2 3. Utilizar Ant en nuestro proyecto

Más detalles

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos. Threads Un thread es un flujo de control secuencial dentro de un programa. A los threads también se los conoce como procesos livianos ó contextos de ejecución. Un thread es similar a un programa secuencial:

Más detalles

INTRODUCCIÓN. paco@portadaalta.es

INTRODUCCIÓN. paco@portadaalta.es INTRODUCCIÓN paco@portadaalta.es Índice Entorno de desarrollo Estructura de un proyecto Android Componentes de una aplicación Android Ejemplos: Mi primera aplicación Divisas 2 actividades Contador de cafés

Más detalles

Capítulo 1: Consideraciones previas

Capítulo 1: Consideraciones previas Capítulo 1: Consideraciones previas En Windows Server 2008 R2 cambia el nombre del rol de Terminal Services a Remote Desktop Services, esto específicamente para abarcar todas las funcionalidades necesarias

Más detalles

ISJu: Técnicas de Programación Cartilla Teórica-Práctica 2014. Instalación del "Eclipse IDE for Java EE Developers" y el servidor "Apache Tomcat"

ISJu: Técnicas de Programación Cartilla Teórica-Práctica 2014. Instalación del Eclipse IDE for Java EE Developers y el servidor Apache Tomcat Unidad 6: Servlets Instalación del "Eclipse IDE for Java EE Developers" y el servidor "Apache Tomcat" "Eclipse IDE for Java EE Developers" Para desarrollar aplicaciones que se ejecuten en un servidor web

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

Práctica 2: Extensión de un servidor con servlets

Práctica 2: Extensión de un servidor con servlets Introducción Práctica 2: Extensión de un servidor con servlets ( 2 horas ) En esta práctica veremos otra forma de realizar aplicaciones semejantes a los CGIs, los servlets. El enfoque del diseño con servlets

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

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

Algunas características de los lenguajes de programación orientados a objetos son:

Algunas características de los lenguajes de programación orientados a objetos son: Programación Orientada a Objetos (POO) La programación orientada a objetos es un paradigma de programación que, como su nombre lo indica, se basa en el uso de objetos estructuras de datos que consisten

Más detalles

Manual de instalación del cliente JAVA-WS

Manual de instalación del cliente JAVA-WS Manual de instalación del cliente JAVA-WS 1 CONTROL DE CAMBIOS Versión Cambios realizados 1.0 Versión inicial 2 TABLA DE CONTENIDOS 1. Introducción... 4 2. Documentación relacionada... 4 3. Requisitos...

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

Laboratorio Prácticas Integración de Sistemas. Ant. Juan Raposo Santiago

Laboratorio Prácticas Integración de Sistemas. Ant. Juan Raposo Santiago Laboratorio Prácticas Integración de Sistemas Ant Juan Raposo Santiago Departamento de Tecnoloxías da Información e as Comunicacións Facultade de Informática Universidade da Coruña jrs@udc.es Ant Herramienta

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

Seminario de Java. Contenido

Seminario de Java. Contenido Seminario de Java Programación Orientada a Objetos Curso 2006/2007 Contenido 1. Introducción 2. Primeros pasos con Java. El entorno Eclipse 3. La sintaxis del lenguaje Java 4. Clases y objetos 5. Cadenas

Más detalles

Facultad de Ciencias de la Ingeniería Escuela de Ingeniería Civil en Informática

Facultad de Ciencias de la Ingeniería Escuela de Ingeniería Civil en Informática Facultad de Ciencias de la Ingeniería Escuela de Ingeniería Civil en Informática DISEÑO E IMPLEMENTACIÓN DE UN PROTOTIPO DE MEDIADOR DE RED DE MÚLTIPLES PROTOCOLOS CON COLA DE PRIORIDAD Proyecto para optar

Más detalles

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

USANDO SERVLETS EN UN SERVIDOR WEB RESIN USANDO SERVLETS EN UN SERVIDOR WEB RESIN Servidor Web Resin Resin es un servidor web que permite no solo despachar un página web, sino aplicaciones web construidos bajo la arquitectura J2EE, así como el

Más detalles

Guía de utilización del demostrador cliente de los servicios web de la Plataforma de Contratación del Estado

Guía de utilización del demostrador cliente de los servicios web de la Plataforma de Contratación del Estado Guía de utilización del demostrador cliente de los servicios web de la Plataforma de Contratación del Estado Dirección General del Patrimonio del Estado Subdirección General de Coordinación de la Contratación

Más detalles

Tema 2: La Tecnología Java

Tema 2: La Tecnología Java Tema 2: La Tecnología Java 0 La Tecnología de Java Es : Un lenguaje de programación Similar a C/C++ sin los problemas de manejo de memoria. Un ambiente de desarrollo Compilador, intérprete, generados de

Más detalles

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa vjsosa@tamps.cinvestav.mx

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa vjsosa@tamps.cinvestav.mx CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa vjsosa@tamps.cinvestav.mx En este documento explicaré brevemente cómo construir un servicio web con Java Axis2 y cómo invocarlo desde un cliente

Más detalles

James Gosling, creador de Java

James Gosling, creador de Java Lo que Java intenta hacer y lo hace con bastante éxito, es abarcar dominios diferentes. De esa forma le permite efectuar trabajos para de aplicaciones del lado del servidor, del lado del cliente, para

Más detalles

Guía de instalación del servidor

Guía de instalación del servidor Guía de instalación del servidor Autores: Versión: 1.0 Jesús Manuel Rodríguez Sánchez Miguel Ángel Lorente López Fecha: 22/01/2009 Tabla de contenido Manual de Instalación del Servidor 4 Paso 1) Instalar

Más detalles

Google Cloud EndPoints (Parte II)

Google Cloud EndPoints (Parte II) 1 Google Cloud EndPoints (Parte II) 1. Aplicaciones android con Google EndPoints. 1.1. Resumen en la creación de un cliente y un backend con Google endpoints. 1.2. Añadiendo autentificación a nuestra aplicación.

Más detalles

INFRAESTRUCTURA Y COMUNICACIONES DGA

INFRAESTRUCTURA Y COMUNICACIONES DGA INFRAESTRUCTURA Y COMUNICACIONES DGA Tema Descripción de la infraestructura y de las comunicaciones del SIDUNEA World para la parte del Cliente. Fecha 07/10/2009 Beneficiarios Archivo Cliente SIDUNEA World

Más detalles

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios Diplomado Java Descripción El lenguaje de programación Java es uno de los más utilizados hoy en día. Su potencia, simplicidad, funcionalidad y capacidad hacen que este lenguaje sea una de las herramientas

Más detalles

INTRODUCCIÓN A JAVA. Índice

INTRODUCCIÓN A JAVA. Índice INTRODUCCIÓN A JAVA Índice Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador? Bibliografía 2 1 Qué es Java? La tecnología Java

Más detalles

Práctica 5: Servidor web concurrente en Java

Práctica 5: Servidor web concurrente en Java Práctica 5: Servidor web concurrente en Java Esta práctica pretende familiarizar al alumno con la programación de servidores que emplean sockets TCP. Para ello partiremos del servidor web básico visto

Más detalles

Guía de Instalación Abril-2009

Guía de Instalación Abril-2009 Antes que empiece a copiar datos en el servidor de copia el servidor MBO (el servidor MBO), necesita instalar MBO Manager (MBO) en su ordenador. Instalar MBO en Windows Siga les instrucciones del asistent

Más detalles

Ejercicio 4. EJB Sesión - Sistema SGA. Java EE. Ejercicio 4. EJB Sesión Sistema SGA. Curso de Java EE

Ejercicio 4. EJB Sesión - Sistema SGA. Java EE. Ejercicio 4. EJB Sesión Sistema SGA. Curso de Java EE Java EE Ejercicio 4 EJB Sesión Sistema SGA Objetivo del Ejercicio El objetivo del ejercicio es agregar un EJB de Sesión a nuestro proyecto SGA (Sistema de Gestión de Alumnos), el cual desarrollaremos a

Más detalles

Sistema Integral Multicanal de Atención al Ciudadano. e-sirca- Manual_Consumo_Instrumentales_y_Verificación

Sistema Integral Multicanal de Atención al Ciudadano. e-sirca- Manual_Consumo_Instrumentales_y_Verificación Sistema Integral Multicanal de Atención al Ciudadano e-sirca- Manual_Consumo_Instrumentales_y_Verificación Versión 010 Febrero de 2015 Índice 1 Control del documento... 3 1.1 Información general... 3 1.2

Más detalles

Dinámica El framework RADical J2EE sin complicaciones. Biblioteca Técnica: audit logs Control declarativo de trazas de auditoria con Dinámica

Dinámica El framework RADical J2EE sin complicaciones. Biblioteca Técnica: audit logs Control declarativo de trazas de auditoria con Dinámica Biblioteca Técnica: audit logs Control declarativo de trazas de auditoria con Dinámica Última actualización: 2008-09-30 Requiere framework v2.1.4 release 2008/09 en adelante Contenido Sumario...2 Requerimientos...2

Más detalles

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB PARA PROYECTOS NEXUS

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB PARA PROYECTOS NEXUS ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB PARA PROYECTOS NEXUS Versión 1.1 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de

Más detalles

(http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=openesb-instalarintroduccion)

(http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=openesb-instalarintroduccion) Tutorial de BPEL con OpenESB (I) Indice 1. Tutorial de BPEL con OpenESB (I) 1. Introducción 2. El proceso de negocio 3. Identificar los servicios web requeridos 4. Modelar el proceso de negocio con BPEL

Más detalles

Framework ATLAS. Entorno de Desarrollo

Framework ATLAS. Entorno de Desarrollo Framework ATLAS Entorno de Desarrollo Febrero de 2011 Unidad de Arquitectura y Soporte de Aplicaciones Área de Aplicaciones Especiales y Arquitectura de Software DIAS Índice Introducción Visión general

Más detalles

DESPLIEGUE DE SENTINET

DESPLIEGUE DE SENTINET DESPLIEGUE DE SENTINET INTRODUCCIÓN Sentinet es una solución que proporciona gestión y gobierno de infraestructuras SOA desplegadas tanto on-premise, en la nube o en entornos híbridos. Sentinet está desarrollada

Más detalles

Tekla Structures Guía del Administrador de Licencias. Versión del producto 21.1 septiembre 2015. 2015 Tekla Corporation

Tekla Structures Guía del Administrador de Licencias. Versión del producto 21.1 septiembre 2015. 2015 Tekla Corporation Tekla Structures Guía del Administrador de Licencias Versión del producto 21.1 septiembre 2015 2015 Tekla Corporation Contenido 1 Sistema de licencias de Tekla Structures... 5 1.1 Lista de comprobación

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