soa -arquitectura orientada a servicio sistema dual

15
1-7-2015 Ingeniería en Software Sistema Dual Materia: Arquitectura Orientada a Servicio Investigación: “SOA” Profesor: YADIRA KARINA FERNANDEZ CARDENAS Álvarez Cisneros Izyalyth Ernestina (No. Matricula 24120230099) Gustavo Sánchez Bello (No. Matricula 24120230122) Gonzalo Santiago Martínez (No. Matricula 24120230123) Israel Román Zapata (No. Matricula 54130430251) Sistema Dual 1915IS UNIVERSIDAD POLITECNICA DE TECAMAC Universidad Politécnica de Tecámac

Upload: iizyaalyth-alvaarez

Post on 04-Aug-2015

24 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: SOA -arquitectura orientada a servicio Sistema Dual

Ingeniería en Software

Sistema Dual

Materia: Arquitectura Orientada a Servicio

Investigación: “SOA”

Profesor: YADIRA KARINA FERNANDEZ CARDENAS

Álvarez Cisneros Izyalyth Ernestina (No. Matricula 24120230099) Gustavo Sánchez Bello (No. Matricula 24120230122)

Gonzalo Santiago Martínez (No. Matricula 24120230123) Israel Román Zapata (No. Matricula 54130430251)

1-7-2015

Sistema Dual 1915IS

Universidad Politécnica de Tecámac

Page 2: SOA -arquitectura orientada a servicio Sistema Dual

1

SD UPT {Investigación} SOA

Arquitectura Orientada a Servicio

1. Mencione algunos antecedentes históricos de Java

El lenguaje Java así como la máquina virtual, comenzaron como un proyecto interno de Sun Microsystems en 1990. Los ingenieros de Sun no estaban satisfechos con el rendimiento del lenguaje C++, por lo que James Gosling, Mike Sheridan y Patrick Naughton, junto con otros más, comenzaron a desarrollar un nuevo lenguaje, que en principio pensaron dedicar a la programación de todo tipo de aparatos, tales como microondas, neveras, teléfonos móviles, etc.. Ellos pensaban que éstos generarían muchas e importantes aplicaciones para la tecnología del futuro.

El lenguaje tendría que obviar problemas que presenta C++, en campos tales como la programación distribuída, las aplicaciones multihilo, el manejo de la memoria y ser más sencillo de manejar que C++. Finalmente se deseaba que los programas fueran portables a todo tipo de aparatos.

Inicialmente el lenguaje se llamó Oak (en español 'roble'), en honor de un roble que había frente a la oficina.

En 1992, se presentó como demostración una PDA con interface gráfica y un asistente inteligente representado mediante un muñeco llamado Duke.

Oak fue presentado a concurso, como solución tecnológica, en varios proyectos para la industria del cine y la televisión, pero no fue elegido. En 1994 John Gage, James Gosling, Bill Joy, Patrick Naughton, Wayne Rosing, y Eric Schmidt se se reunieron para reorientar Oak. Decidieron orientarlo hacia la tecnología de la Web, pues se pensaba que tras la aparición del navegador Mosaic, ésta evolucionaría hacia la misma clase de interactividad, que la televisión por cable, para la cual habían estado preparando Oak.

Fue asimismo en 1994 cuando se cambió el nombre de Oak a Java. Poco después, aún en 1994, la plataforma Java 1.0, estaba disponible para descarga en la Web.

En 1995 Netscape anunció que incluiría soporte para Java en sus navegadores, dando con esto un buen apoyo a Java.

2. Mencione el tipo de aplicaciones que se pueden desarrollar en Java.

Applets: Los applets son pequeños programas que se incorporan en una página Web y que por lo tanto, necesitan de un Navegador Web compatible con Java para poder ejecutarse. A menudo los applets se descargan junto con una página HTML desde un Servidor Web y se ejecutan en la máquina cliente. 

Aplicaciones: Las aplicaciones son programas standalone de propósito general que normalmente se ejecutan desde la línea de comandos del sistema operativo. Con Java se puede realizar cualquier programa que normalmente se crearía con algún otro lenguaje de programación.

Page 3: SOA -arquitectura orientada a servicio Sistema Dual

2

SD UPT {Investigación} SOA

Servlets: Los servlets al contrario de los applets son programas que están pensados para trabajar en el lado del servidor y desarrollar aplicaciones Web que interactúen con los clientes. Los servlets son una alternativa de la programación CGI tradicional.

3. A que se refiere el JDK

 Es un software que provee herramientas de desarrollo para la creación

de programas en Java. Puede instalarse en una computadora local o en una unidad de

red.

En la unidad de red se pueden tener las herramientas distribuidas en varias

computadoras y trabajar como una sola aplicación.

4.  Para que se utiliza el JDBC

Es usado para enviar comandos SQL hacia una base de datos relacional, que puede

ser Oracle, Infomix, SyBase, etc. Una integración de SQL hacia Java, es decir que las

sentencias SQL se puedan mezclar con Java, por ejemplo, que una variable de Java

pueda ser usada en una sentencia SQL para recibir o dar valores.

5. Que es un archivo .dll

Una biblioteca de enlace dinámico o más comúnmente DLL (sigla en inglés de dinamic-link library) es el término con el que se refiere a los archivos con código ejecutable que se cargan bajo demanda de un programa por parte del sistema operativo. Esta denominación es exclusiva a los sistemas operativos Windows siendo “.dll” la extensión con la que se identifican estos ficheros, aunque el concepto existe en prácticamente todos los sistemas operativos modernos.

6. Que es una librería

Es un conjunto de implementaciones funcionales, codificadas en un lenguaje de programación, que ofrece una interfaz bien definida para la funcionalidad que se invoca.

7. Que es una excepción y para que se utilizan

Son:

Mecanismo de control de errores en tiempo de ejecución Una forma de hacer que la aplicación continúe la ejecución si se produce un

error

Se Utilizan:

A veces se usan para detectar situaciones inusuales en la ejecución Si se controlan todos los posibles errores directamente, el código se puede

volver ilegible

Page 4: SOA -arquitectura orientada a servicio Sistema Dual

3

SD UPT {Investigación} SOA

Con las excepciones se separa el código de un método del código que controla los errores

8. Que es un pakage de java

Un package es una agrupación de clases afines. Equivale al concepto de librería existente en otros lenguajes o sistemas. Una clase puede definirse como perteneciente a un package y puede usar otras clases definidas en ese o en otros packages.

Los packages delimitan el espacio de nombres (space name). El nombre de una clase debe ser único dentro del package donde se define. Dos clases con el mismo nombre en dos packages distintos pueden coexistir e incluso pueden ser usadas en el mismo programa.

Una clase se declara perteneciente a un package con la cláusula package, cuya sintaxis es: package nombre_package;

9. Presentación en PowerPoint.

9.1. Actividad 1

Page 5: SOA -arquitectura orientada a servicio Sistema Dual

4

SD UPT {Investigación} SOA

9.2. Actividad 2

Investigar y elaborar un resumen de:

XML es un subconjunto de SGML(Estándar Generalised Mark-up Language),simplificado y adaptado a Internet

XML no es, como su nombre puede sugerir, un lenguaje de marcado.

XML es una meta-lenguaje que nos permite definir lenguajes de marcado adecuados a usos determinados.

Tipos de documentos XML

Los tipos en esquemas XML definen el tipo de datos válido que pueden contener los elementos o atributos, y pueden ser simples o complejos. Además, los tipos pueden ser con nombre o sin nombre. Para obtener más información, vea Comparación de tipos y grupos con nombre y sin nombre.

Tipos simples: Hay dos categorías principales de tipos simples:

Tipos integrados, que están definidos por la especificación de esquema XML del consorcio de World Wide Web, por ejemplo, string, boolean y float.Los tipos integrados incluyen tanto tipos primitivos como derivados.Los tipos de datos primitivos no provienen de otros tipos de datos. Por ejemplo, float es un concepto matemático que no proviene de otros tipos de datos. Para obtener más información, vea Tipos de datos XML primitivos. Los tipos de datos

Page 6: SOA -arquitectura orientada a servicio Sistema Dual

5

SD UPT {Investigación} SOA

derivados se definen en función de tipos de datos existentes. Por ejemplo, un entero es un caso especial derivado del tipo de datos decimal. Para obtener más información, vea Tipos de datos XML derivados.

Los tipos simples definidos por el usuario provienen de los tipos integrados de W3C mediante la aplicación de valores definidos por el usuario en elementos denominados aspectos. Para obtener más información, vea Tipos simples definidos por el usuario en esquemas XML.

Tipos complejos

Los tipos complejos son definiciones de elementos que puede incluir otros elementos, atributos y grupos. Una diferencia importante entre los tipos simples y complejos es que los complejos pueden incluir elementos y atributos declarados como tipos simples o complejos, mientras que los tipos simples no pueden incluir otros elementos, atributos o grupos, sino que sólo pueden incluir aspectos. Para obtener más información, vea Tipos complejos en esquemas XML.

XML Namespaces

Se utilizan para proporcionar un nombre único de elementos y atributos en un XML documento. Ellos se definen en un W3C   recomendación  .  Una instancia XML puede contener elemento o atributo nombres de más de un vocabulario XML. Si cada vocabulario se le da un espacio de nombres , la ambigüedad entre elementos o atributos con el mismo nombre se puede resolver.

Lenguajes basados en XML

SMIL (Synchronized Multimedia Integration Language) o Lenguaje de integración y sincronización de archivos multimedia es un lenguaje de marcas que se ha desarrollado como una extensión de XML para el tratamiento de la información multimedia. Este lenguaje permite la integración en los sitios web de sonidos, texto y presentaciones audiovisuales   interactivas . Se usa con las presentaciones multimedia que integran streaming de audio y video con imágenes, texto u otros tipos de media. La sintaxis y especificaciones de este lenguaje están recogidas en las recomendaciones del Consorcio de World Wide Web (W3C) como extensiones XML

El Scalable Vector Graphics (SVG) es también una Recomendación del W3C. Esta especificación define las característica y sintaxis de este lenguaje. Se trata de un lenguaje basado en XML y modularizado para describir y construir gráficos vectoriales 2D con multitud de efectos y características avanzadas.

VML es una aplicación de XML que define un formato para codificar la información vectorial, junto con marcado adicional para describir cómo puede

Page 7: SOA -arquitectura orientada a servicio Sistema Dual

6

SD UPT {Investigación} SOA

mostrarse y editarse esa información. La especificación muestra cómo está organizado VML y cómo interactúa con XML y HTML.

MathML es una aplicación XML para describir notaciones matemáticas y capturar su estructura y contenido. El objetivo de MathML es que las matemáticas puedan servirse, recibirse y procesarse en la Web, tal como HTML ha hecho posible esta funcionalidad para el texto.

Herramientas de XML

SoftQuad Xmetal. Está orientada al desarrollo de documentos validados que se van a ver en la red. Soporta el uso de CSS. Requiere que todos los documentos XML sean válido.

Adobe FrameMaker+SGML. Proporciona una GUI completa que manipula documentos SGML/XML. Permite abrir documentos no válidos y rectificarlos.

IBM Xeena. Herramienta desarrollada en Java. Proporciona una GUI para editar documentos válidos.

Bluestone Visual-XML. Herramienta de creación XML orientada a la creación de soluciones de bases de datos empresariales que incluyen XML. Posee un asistente para la publicación de B.B., que genera DTD y plantillas de documentos XML a partir de tablas de bases de datos.

XML Notepad. Se trata de una herramienta poco potente de Microsoft, que sirve para realizar tareas de creación sencillas. Para validar documentos requiere tener instalado el IE5.0.

XMLSPY 

XML WRITER 

10. El SOA y Java

La mayoría de los desarrolladores a menudo piensan servicios web y SOA son sinónimos. Muchos también creen que no es posible construir aplicaciones orientadas a servicios sin necesidad de utilizar los servicios web. Para aclarar, SOA es un principio de diseño, mientras que los servicios web es una tecnología de aplicación. Usted puede crear una aplicación orientada a servicios sin utilizar servicios web - por ejemplo, mediante el uso de otras tecnologías tradicionales como Java RMI.

El tema principal detrás de SOA es encontrar la modularidad adecuada y lograr la articulación flexible entre módulos. Usted puede construir una aplicación donde los módulos no tienen demasiado estrecho acoplamiento entre los componentes que interactúan, como una aplicación donde la capa de presentación JSP no está estrechamente integrado con el modelo de datos y accesos de manera apropiada a través de un EJB.

Page 8: SOA -arquitectura orientada a servicio Sistema Dual

7

SD UPT {Investigación} SOA

Vale la pena mencionar que Jini había establecido durante mucho tiempo el concepto de SOA antes del aumento de la popularidad de los servicios web. ¿Qué servicios web traer a la mesa son los estándares independientes de la plataforma, tales como HTTP, XML, SOAP y UDDI, permitiendo así la interoperabilidad entre tecnologías heterogéneas tales como J2EE y .NET. En este artículo, nos centraremos en los servicios web como la tecnología que permite la creación de aplicaciones orientadas a servicios.

Diferentes Capas de Aplicaciones Orientadas a Servicios

Como cualquier aplicación distribuida, aplicaciones orientadas a servicios son aplicaciones de varios niveles y tiene presentación, lógica de negocio, y las capas de persistencia. La figura 2 proporciona una arquitectura típica de una aplicación orientada a servicios. Los dos niveles clave de SOA son la capa de servicios y la capa de

procesos de negocio.

11. El SOA y Base de Datos.

Una opción que puede parecer atractiva a primera vista es utilizar XML para “trasladar” la información entre servicios. Sin embargo, como se sugiere en este enfoque resultaría en un modelo físico de datos demasiado acoplado con un modelo de más alto nivel como el de los servicios. Y este acoplamiento es una clara amenaza para una arquitectura SOA de calidad.

El camino es entonces encontrar la manera de incorporar bases de datos relacionales en el mundo SOA. Como medidas básicas, se deben considerar dos puntos:

1) Seguridad. Al estar disponible la información para muchos servicios, es fundamental no descuidar el aspecto de la seguridad e integridad de los datos.

Page 9: SOA -arquitectura orientada a servicio Sistema Dual

8

SD UPT {Investigación} SOA

2) Performance. Nuevamente, hay que evaluar que llegarán mucho pedidos provocando un alto flujo de información, al estar nuestros datos disponibles para potenciales miles de servicios.

Se describen pautas generales para una capa de acceso a datos embebida en una arquitectura SOA. Las mismas incluyen servicios reusables, con bajo acoplamiento, minimizar la necesidad de mantener la noción de estado, agrupados en jerarquías (al estilo herencia en POO), y de fácil descubrimiento (por ejemplo, habilitando un repositorio para registración de servicios).Estrategias posibles

SE plantea como primera opción utilizar herramientas para generación de servicios orientados a bases de datos para tener rápidamente un conjunto de servicios conocidos como CRUD (Create, Read, Update Delete) para cada una de las tablas. Dos herramientas conocidas son Jspresso (http://www.jspresso.org/) y RestfulX (http://restfulx.github.io/). Luego, el resto de la aplicación interactuará con estos servicios. Una contra importante de abusar de esta estrategia es que la funcionalidad de los servicios perderá cohesión, mezclando lógicas de negocios con accesos a base de datos.

La otra opción detallada es manualmente introducir funcionalidad para abstraer la interacción con la capa de datos, evitando entrecruzar código de negocio con accesos a datos. Sin embargo, muchas veces introducir este código manual lleva a cometer errores que luego son difíciles de detectar. Una tercera opción es combinar ambos enfoques de manera híbrida, seleccionado en qué casos utilizar cada uno.

12. El SOA y las aplicaciones de escritorio

Este es el entorno hacia donde están evolucionando ya muchas empresas. A medida crecen las aplicaciones que se desarrollan, especialmente en entorno web, aparece la necesidad de independizar los procesos de negocio de las aplicaciones con el objetivo de conseguir la reutilización futura de las funcionalidades.

Algunas soluciones que la división SAM de Abast Solutiions ha implementado teniendo en cuenta una arquitectura SOA son:

Plataformas de integración de servicios centralizados. Configuración de capas para la estandarización del acceso a los servicios. Portales de ventas: Capa de servicios para el acceso al ERP. Punto de venta: Capa de servicios para validar información online en los puntos

de venta.

Page 10: SOA -arquitectura orientada a servicio Sistema Dual

9

SD UPT {Investigación} SOA

Las principales tecnologías utilizadas por la división para el desarrollo de soluciones en este entorno son:

Oracle Microsoft Libre (J2EE, PHP) OpenSource

13. El SOA y las aplicaciones WEB

Hay que tener cuidado cuando se manejan estos términos y no confundirlos. Web

Services (WS) engloba varias tecnologías, incluyendo XML, SOAP, WSDL, UDDI…los

cuales permiten construir soluciones de programación para mensajes específicos y para

problemas de integración de aplicaciones.

En cambio SOA es una arquitectura de aplicación en la cual todas las funciones están

definidas como servicios independientes con interfaces invocables que pueden ser

llamados en secuencias bien definidas para formar los procesos de negocio.

En SOA la clave está en la interfaz puesto que define los parámetros requeridos y la

naturaleza del resultado. Esto significa que define la naturaleza del servicio y no la

Page 11: SOA -arquitectura orientada a servicio Sistema Dual

10

SD UPT {Investigación} SOA

tecnología utilizada. Esta función permite realizar dos de los puntos críticos: los

servicios son realmente independientes y pueden ser manejados.

14. El SOA y las app

Como pieza fundamental para implementar todo esto, se necesita una mediación de

canal ¿Qué es esto?.Una mediación es, si se quiere ver así, otro servicio que se

interpone entre el dispositivo móvil y el servicio de negocio de la empresa. Al servicio de

negocio acceden todo tipo de aplicaciones y canales como los B2B. Sin embargo, este

servicio de negocio necesita adaptarse a lo que necesita una app móvil. Por ejemplo:

Las pantallas de los móviles son mucho más sencillas que sus equivalentes en el

desktop, por lo que el móvil necesita enviar muchos menos parámetros. Es en

esta mediación donde se completan los parámetros que faltan (con parámetros

por defecto o configurados de cierta manera).

Es necesario reducir las comunicaciones entre el móvil y los sistemas de la

empresa (dependemos de las redes de datos móviles que son más lentas y tienen

menos disponibilidad). Por lo tanto, el grano de los servicios destinado a los

móviles será seguramente más grueso que los servicios de negocio. En esta

mediación se hará la integración de los servicios más básicos en un servicio

compuesto de alto nivel.

Es muy posible que la implementación de los servicios de negocio se base en

SOAP. Sin embargo, en los móviles la implementación que puede tenerse

como estándar de facto son los basados en REST. Esto es así por su mayor

Page 12: SOA -arquitectura orientada a servicio Sistema Dual

11

SD UPT {Investigación} SOA

sencillez y sobre todo, por su mayor rendimiento. Hay que tener en cuenta

que, al menos hasta ahora, los dispositivos móviles eran mucho menos

potentes que los ordenadores de sobremesa, con mucha menor capacidad de

proceso y de memoria. Por lo tanto, seguramente será necesario que esta

mediación transforme el servicio SOAP en un servicio REST.