Webservices

Definición

Una Web Service es cualquier proceso que puede ser integrado entre sistemas externos a través de un documento XML válido, usando Internet y SOAP (Simple Object Access Protocol).

Características

  • Usa protocolos estándares HTTP, XML y SOAP.
  • Trabaja a través de proxies y firewalls.
  • Encriptación viene gratis al usar SSL.
  • Fácil incorporación con soluciones de mensajes XML existentes.
  • Aprovecha la flexibilidad de XML.
  • No tiene conflicto con soluciones propietarias como CORBA, COM, RMI, etc.
  • Combina los mejores aspectos del desarrollo basado en componentes.
  • Disponible para una variedad de clientes.

Open Internet Protocols

  • Provee un directorio de servicios disponibles en internet.
  • Permite definir el webservice en términos de formatos y ordenación de mensajes.
  • Consumidores de webservices pueden enviar y recibir mensajes usando XML.
  • Contruidos usando protocolos web estándar.

XML

Permite definir la estructura de tipos específicos de documentos electrónicos (o datos) por medio de Definiciones de Tipo de Documento (DTD o XML Schemas), definiendo conjuntos de etiquetas y atributos (vocabularios).

Características

  • Es un lenguaje de marcas (tags) diseñado para describir estructuras de datos.
    • No está centrado, como ocurre con HTML en cuestiones de presentación, sino en la estructura del documento.
  • Extensible, etiquetas no predefinidas.
  • Puede usarse para intercambiar o almacenar datos.

DTD y Esquemas

  • Los DTD no son muy potentes para definir gramáticas.
  • Otra forma de hacerlo es con Esquemas XML basados en el propio XML y que soportan más tipos de datos.
    • Un Esquema XML define:
      • Qué elementos contiene un XML.
      • Su organización.
      • Sus Atributos.
      • Tipos de elementos.

SOA

La Arquitectura Orientada a Servicios (en inglés Service-Oriented Architecture o SOA), es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requerimientos de software del usuario.

Conceptos de SOA

  • Servicio: Una función sin estado, auto-contenida, que acepta una(s) llamada(s) y devuelve una(s) respuesta(s) mediante una interfaz bien definida. Los servicios pueden también ejecutar unidades discretas de trabajo como serían editar y procesar una transacción. Los servicios no dependen del estado de otras funciones o procesos. La tecnología concreta utilizada para prestar el servicio no es parte de esta definición.
  • Orquestación: Secuenciar los servicios y proveer la lógica adicional para procesar datos. No incluye la presentación de los datos. Coordinación.
  • Sin estado: No mantiene ni depende de condición preexistente alguna. En una SOA los servicios no son dependientes de la condición de ningún otro servicio. Reciben en la llamada toda la información que necesitan para dar una respuesta. Debido a que los servicios son “sin estado”, pueden ser secuenciados (orquestados) en numerosas secuencias (algunas veces llamadas tuberías o pipelines) para realizar la lógica del negocio.
  • Proveedor: La función que brinda un servicio en respuesta a una llamada o petición desde un consumidor.
  • Consumidor: La función que consume el resultado del servicio provisto por un proveedor.

ASP

Definición y Características

Es una empresa que proporciona servicios de software a múltiples entidades desde un centro de cómputo a través de una red.

Características Principales

  • Amplia difusión de uso a través de Internet.
  • Capacidad de acelerar la puesta en marcha del servicio.
  • Bajos costos por software especializado.

Motivación de Modelo ASP

  • La principal motivación es el incremento del costo de construir o adquirir software especializado.
  • Por consiguiente, el aumento excesivo de precio del software para los medianos y pequeños empresarios.
  • Esto motivó el nacimiento del modelo ASP, en el cual el costo del software se divide en los múltiples clientes que necesitan el software.

Barrera Principal

La barrera principal para un ASP radica en convencer a sus clientes de que su información en manos de un tercero permanece segura.

Ventajas para el Cliente

  • Bajo costo mensual de software especializado y de alta calidad.
  • Posibilidad de operar 24×7.
  • Sin costos de Hosting.
  • Sin costos de mantención de software.

Desventajas

  • El cliente debe aceptar el 100% de la funcionalidad sin derecho a particularidades.
  • El nivel de servicio depende de la cantidad de clientes.
  • Se pierde el control de los datos corporativos.
  • Riesgo por viabilidad de empresa prestadora.

Como elegir un producto ASP

  • Características de la Aplicación
  • Características del Proveedor ASP
  • Calidad del servicio
    • Funcionalidad
    • Escalabilidad
    • Integrabilidad
    • Aseguramiento de la calidad

Set up fee
Se cobra por la implementación de la aplicación, y se establece en función de los siguientes parámetros:

  • Complejidad
  • Clientizaciones (Customizing) necesarias
  • Integración con otras aplicaciones enterprise y/o web based

Monthly fee

  • Se cobra mensualmente por el alquiler de la aplicación.
  • Normalmente se vincula con el número de usuarios.
  • Cubre los servicios de administración, operación, soporte técnico, upgrades y seguridad.

J2EE

Servlet:

  • Fueron la primera tecnología Java para generar contenido dinámico.
  • Utilizan Threads.
  • Portabilidad.

Java Server Pages JSPs:

  • Tecnología de scripting.
  • Se independiza la lógica de la presentación.

J2EE: Evolución de Desarrollo Web

Arquitectura J2EE:

  • Reagrupación de las tecnologías Java.
  • Aporta los EJB (Enterprise Java Beans).
  • Se transforma en estándar de la industria.

J2EE: Evolución de Kit Desarrollo Java

Java 2 Platform, Standard Edition J2SE (Aplicaciones Desktop)

  • Se recopila un conjunto de servicios: HTTP, JDBC, JavaMail, RMI/IIOP, JNDI, etc.

Java 2 Platform, Enterprise Edition J2EE (Tecnología Web)

  • Se expande la arquitectura hacia un esquema que permita construir aplicaciones enterprise.
  • Se plantea como una arquitectura distribuida multi-capas.

Java 2 Platform, Enterprise Edition J2ME (Wireless)

  • Genera un conjunto de paquetes de clases para programación web en dispositivos inalámbricos.

J2EE: Descripción de la Arquitectura

  • Establece un modelo para el desarrollo de aplicaciones distribuidas.
  • Este modelo se basa en componentes bien-definidas que pueden de manera automática, tomar ventaja de servicios sofisticados.
  • Estas componentes pueden ser desarrolladas de acuerdo a un conjunto de instrucciones estándar.
  • Estas componentes pueden ser instaladas y ejecutadas sobre una variedad de servidores de aplicaciones compatibles.
  • Estas componentes pueden ser reutilizadas para poder minimizar el trabajo de programación.

Administración de Componentes Basada en Contenedores:

  • Web Container, debe:
    • Responder a los requerimientos del cliente.
    • Procesar Páginas JSP o Servlets.
    • Retornar la respuesta al cliente.
  • EJB Container, debe:
    • Administrar la transaccionalidad de las componentes.
    • Proveer servicios de búsqueda de componentes.
    • Proveer otros Servicios: Conectividad con Bases de Datos, Mail, Comunicación Remota, etc.

J2EE: Deployment

  • Deployment
    • Consiste en empaquetar todos los archivos (JSP, .class, html, .js, etc) en las distintas aplicaciones (WAR, JAR, EAR) y llevarlos al servidor de aplicaciones.

Ventajas

  • Soporte de múltiples capas: J2EE provee una partición clara, lógica y física de las aplicaciones en varias capas.
  • Estándar Abierto: Es un estándar abierto soportado por la industria (IBM, Bea, Sun, Oracle, Macromedia).
  • Portabilidad de la aplicación: Las aplicaciones generadas son multiplataformas (VISTA, W7, UNIX, LINUX).
  • Elección del servidor: Los productos desarrollados pueden ser ejecutados sobre cualquier servidor que soporte el estándar (WebSphere, WebLogic, Iplanet, JRun).