Professional Documents
Culture Documents
Facultad de Ingeniera
Escuela de Ingeniera en Ciencias y Sistemas
FACULTAD DE INGENIERA
TRABAJO DE GRADUACIN
AL CONFERRSELE EL TTULO DE
Mis padres Por el magnfico ejemplo que me han dado, por ser la
luz que ha iluminado mi camino.
I
1.7.1. Servicios REST ........................................................ 9
1.7.1.1. Subcaptulo de tercera categora ........ 18
1.7.1.2. Subcaptulo de tercera categora. ....... 19
3. PATRONES .......................................................................................... 29
3.1. Vista general de los patrones .................................................. 29
3.1.1. Patrones ................................................................. 29
3.1.2. Resea histrica ..................................................... 30
3.1.3. Clasificacin de patrones ....................................... 31
3.2. Notacin de patrones .............................................................. 31
3.3. Perfiles. ................................................................................... 32
3.4. Consideraciones clave en el diseo. ....................................... 34
3.4.1. Principios de diseo ............................................... 34
3.5. Patrones de diseo. ................................................................ 35
3.5.1. Clasificacin de patrones ....................................... 36
3.5.1.1. Clasificacin de Gamma ..................... 38
3.5.1.2. Clasificacin de patrones de diseo
de Buschman ..................................... 41
3.5.2. Patrones implementados ........................................ 43
II
3.5.2.1. Enterprise Inventory ............................ 43
3.5.2.2. Domain Inventory ................................ 43
CONCLUSIONES ............................................................................................. 77
RECOMENDACIONES ..................................................................................... 79
BIBLIOGRAFA ................................................................................................. 81
III
IV
NDICE DE ILUSTRACIONES
FIGURAS
V
TABLAS
VI
GLOSARIO
VII
Infraestructura Se refiere al conjunto de equipos o hardware
destinado a ser la base sobre la que se
construya una solucin.
VIII
RESUMEN
IX
Resulta entonces posible y til combinar los patrones de diseo y la
arquitectura orientada a servicios.
X
OBJETIVOS
General
Especficos
XI
XII
INTRODUCCIN
XIII
XIV
1. ARQUITECTURA Y SERVICIOS
1
1.2.1. Tecnologas de arquitectura
Arquitectura de componentes
Arquitectura de aplicacin
Arquitectura de integracin
Arquitectura empresarial
Servidores
Estaciones de trabajo
Enrutadores
Cortafuegos
2
Sistemas Operativos
Agentes de servicio
1.2.3. Software
3
Existen diferentes estilos de arquitectura que se utilizan para soportar el
software. Un estilo de arquitectura es un conjunto de principios, que proveen
un marco de trabajo abstracto para una familia de sistemas, cada estilo define
un conjunto de reglas que especifican que clase de componentes se pueden
utilizar y los supuestos sobre cmo poner a trabajar juntos estos componentes.
Un estilo de arquitectura promueve la reutilizacin del diseo, brindando
soluciones a problemas frecuentemente recurrentes.
Estos son solo algunos de los estilos, incluso hay situaciones en las que
se pueden mezclar algunos estilos para ajustarse a los requerimientos. Sin
embargo, hay algunas que a esta fecha son claves y tienen un mayor auge.
4
Tabla II. Estilos de arquitectura compuestos
Estilo de Descripcin
arquitectura
Cliente servidor Divide el sistema en dos aplicaciones, donde el cliente hace una
peticin de servicio al servidor.
Arquitectura La ampliacin se disea en componentes funcionales o lgicos
basada en reutilizables que tienen interfaces de comunicacin bien
componentes definidas.
Arquitectura de Divide los objetivos de la aplicacin en grupos apilados (capas)
capas
Bus de Un software que puede recibir y enviar mensajes que estn
mensajes basados en un conjunto de formatos conocidos con antelacin de
manera que los sistemas pueden comunicarse unos con otros sin
necesidad de conocer al destinatario actual.
Modelo vista Separa la lgica del manejo e interaccin del usuario
controlador
N-tiers/3-tiers Separa la funcionalidad en segmentos muy parecido a la
arquitectura de capas, sin embargo, cada segmento aqu se
separa a una computadora diferente.
Orientada a Es una arquitectura basada en la divisin de tareas en objetos
objetos individuales y reutilizables que contienen la informacin y el
comportamiento ms relevante del objeto
Arquitectura Se refiere a las aplicaciones que exponen y consumen
Orientada a funcionalidad por medio de servicios y con el uso de contratos y
Servicios(SOA) mensajes.
5
1.3. Computacin orientada a servicios
6
Figura 1. Evolucin del paradigma orientado a objetos orientado a
servicios
7
Componente
Servicio web
Servicio REST
8
Figura 2. Arquitectura de un servicio web
9
GXA naci a partir de un artculo desarrollado conjuntamente entre IBM y
Microsoft, liberado en abril de 2001 en el taller sobre servicios web organizado
por el consorcio de la World Wide Web o W3C, el artculo nombrado Web
Services Framework, defini funciones especficas que deben ser
consideradas si la integracin de aplicaciones estar basada en servicios web.
10
Figura 3. Diagrama de arquitectura global de servicios web (GXA)
Entre los aspectos para los que se han definido estndares estn:
11
1.6.1. XML
XML Cannico
Internacionalizacin de XML
1.6.2. Protocolos
HTTP
SOAP
12
1.6.3. Descripcin del servicio
WSDL
1.6.4. Seguridad
13
Existen especificaciones disponibles para definir:
Encriptacin XML
Firmas XML
XKMS
1.6.5. Internacionalizacin
Cuando el servicio debe ser utilizado en distintas regiones del mundo con
distintas culturas o lenguajes, es necesario asegurar que el servicio funcionar
de la manera esperada, para esto existen especificaciones tales como:
Mapeo web
14
Especificacin de servicios web
Mensajera instantnea
Bsqueda instantnea
15
16
2. ARQUITECTURA ORIENTADA A SERVICIOS
18
Centrado en la empresa: al estar centrado en la empresa la arquitectura
alcanza la representacin significativa de un segmento de la empresa,
permitiendo la reutilizacin y composicin de servicios de esta manera se
permite tener soluciones orientadas a servicios.
Servicios simple
Composicin de servicios
Inventario de servicios
19
2.3.1. Arquitectura de servicio
20
Agentes de servicios: un aspecto importante en la infraestructura
relacionada con el diseo de servicios son las dependencias que pueden
haber con los agentes de servicio, por ejemplo en el manejo por eventos
los programas son capaces de interceptar y procesar mensajes enviados
hacia y desde el servicio de manera trasparente. Los agentes de servicio
pueden ser desarrollados a medida o provedos por el ambiente en el que
se consumen los servicios. Dentro de la arquitectura los agentes pueden
ser identificados por medio de la informacin de ejecucin. Los agentes
de servicio pueden tener su propia especificacin de arquitectura que
puede hacer referencia a la arquitectura de servicios.
21
2.3.2. Arquitectura composicin de servicios
22
2.3.3. Arquitectura inventario de servicios
23
La arquitectura orientada a servicios empresariales puede ir ms all de
establecer estndares y convenciones para todos los servicios y puede tambin
requerir ser referenciada en las especificaciones de arquitectura
correspondiente. Un punto relevante de adoptar SOA es que deben estar
sincronizados la tecnologa y la arquitectura del negocio de una empresa.
24
2.4. El resultado final de la orientacin a servicios
Los servicios deben tener fronteras claras: cuando una solucin est
compuesta por servicios distribuidos geogrficamente en distintas
ubicaciones, algo que no debe tomarse a la ligera es el costo de
desplazarse de un lugar a otro, por lo que este hecho debe reducirse
cuanto sea posible, como resultado de esta situacin, SOA se basa en un
modelo de intercambio de mensajes explcito que es til para mantener el
rea del servicio tan pequea como sea posible, por eso se puede
concluir que la simplicidad y generalizacin en los servicios no es un lujo
sino una caracterstica crtica del servicio.
Servicios autosuficientes: este punto tiene que ver con dos caractersticas
bsicas de los servicios la ubicuidad, que es la capacidad de cada
servicio de ser encontrado y explorado y el manejo de sus propias
funciones como en el caso de las excepciones y errores que debe
manejar el servicio.
25
Los servicios no comparten clases y tipos sino esquemas y contratos: a
diferencia de la programacin orientada a objetos SOA requiere que la
exposicin de la funcionalidad y la interaccin con los servicios se haga a
travs de esquemas que definen lo requerido y proporcionado por los
mismos as como contratos que delimiten el campo de accin de cada
servicio, para facilitar la interaccin entre servicios. Por regla general
resulta imposible propagar cambios en un esquema o contrato a todas las
partes que han consumido alguna vez un servicio, por esto generalmente
se extienden en vez de cambiarse las interfaces existentes.
26
La arquitectura orientada a servicios finalmente tendr como resultado
componentes y soluciones con las siguientes caractersticas:
Aumento de la interoperabilidad
Aumento de la federacin
27
28
3. PATRONES
3.1.1. Patrones
29
Por otro lado, el uso de los patrones de diseo no es obligatorio en el
diseo de una solucin, solo son una herramienta til que puede facilitar el
diseo, es importante remarcar que en el uso de los patrones de diseo como
en todo diseo en el que se involucra la abstraccin, el nivel en el que se dejen
de aplicar los patrones depende de la experiencia del arquitecto, esto debido a
que el abuso en el uso de los patrones de diseo puede tener un efecto
contrario al deseo convirtiendo una solucin en algo difcil o imprctico de
implementar.
Esta como muchas otras veces fue un enfoque tomado por la tecnologa
de la informacin y adaptado al desarrollo de software en 1987 Ward
Cunningham y Kent Beck usaron alguna de las ideas de Alexander y publicaron
un artculo con cinco patrones hombre-ordenador, sin embargo, fue hasta en los
noventas cuando los patrones de diseo tuvieron xito en la informtica luego
de la publicacin del libro Design Patterns escrito por el grupo autodenominado
Gang Of Four (GoF) formado por Richard Helm, Erick Gamma, Ralph Johnson y
John Visides, en el que se mostraban veintitrs patrones de diseo.
30
3.1.3. Clasificacin de patrones
Patrones de arquitectura
Patrones de arquitectura
31
UML: por sus siglas en ingls cuya traduccin al espaol es Lenguaje
Unificado de Modelado, es una familia de notaciones grficas que facilitan la
descripcin y diseo de los sistemas de software.
Grady Booch, Peter Coad, Ivar Jacobson, Jim Odell, Jim Rumbaugh son
algunos de los nombres de los principales directores de proyectos enfocados en
proyectos de este tipo que se desarrollaron entre 1988 y 1992. Todos los
mtodos eran similares y los mismos conceptos aparecan en diferentes
notaciones, durante este perodo de tiempo no haba un estndar. Cuando Jim
Rumbaugh se uni a Grady Booch de Rational, parte de IBM, esta alianza
pareca que podra tomar una porcin importante del mercado, lo que propici
algunas alianzas anti Rumbaugh-Booch en 1995 se les uni Ivar Jacobson, a
quienes se les otorga el crdito de la creacin de UML.
3.3. Perfiles
32
Requerimiento que atiende: el requerimiento consiste en una sentencia
simple que muestre el origen del patrn en forma de pregunta.
33
3.4. Consideraciones clave en el diseo
34
Formalidad contractual: los servicios deben definir contratos formales que
indiquen claramente la funcionalidad que ofrecen y la manera en la que
interactan.
Descubiertos: cada servicio debe descubrirse para ser utilizado con esto
se evitar duplicar servicios con la misma funcionalidad.
35
3.5.1. Clasificacin de patrones
36
Reflejar las propiedades de los patrones
37
3.5.1.1. Clasificacin de Gamma
Propsito
Alcance
Creacional
Estructural
Comportamiento
Clase
Objeto
38
Los patrones que pertenecen a la categora de objeto lidian con las
relaciones entre ellos, que pueden cambiar en tiempo de ejecucin y ser ms
dinmicos. Los patrones que pertenecen a la categora Clase les ataen las
relaciones entre clases y sus subclases. Estas relaciones son establecidas a
travs de herencia.
39
Tabla III. Clasificacin de patrones Gamma
Proposito
Template
method
Facade Observer
Flyweight State
Proxy Strategy
Visitor
Chain Of resp.
40
3.5.1.2. Clasificacin de patrones de diseo de
Buschman
Funcionalidad
Principios estructurales
Granularidad
Creacin
Comunicacin
Acceso
41
Los patrones de la categora de comunicacin, describen cmo organizar
la comunicacin entre un conjunto de objetos que colaboran entre s.
Abstraccin
Encapsulacin
Separacin de intereses
Acoplamiento y cohesin
42
Los patrones de la categora de separacin de intereses agrupan a
aquellos patrones que separan los objetos o componentes para resolver una
tarea en particular o servicio. Finalmente los patrones de la categora de
acoplamiento y cohesin remueven o suavizan las relaciones de estructura,
comunicacin y dependencias que en otro caso estaran fuertemente
acoplados.
Solucin: los servicios para mltiples soluciones pueden ser diseados para
implementarse en una arquitectura de inventario estandarizada en donde
puedan ser libremente y repetidamente recompuestos.
43
Impacto: un anlisis inicial significativo debe hacerse para definir un bosquejo
inicial del proyecto para evaluar el impacto organizacional de los subsecuentes
requerimientos para gobernar el inventario.
44
3.5.2.2. Domain Inventory
45
Figura 6. Modelo de patrn Domain Inventory
46
4. DESCRIPCIN DEL SISTEMA
Sistema de gasolinera
Sistema de compras
Sistema de contabilidad
Sistema de inventario
Sistema de bscula
47
Una vez generada la orden de compra se recibe el combustible enviado
por la petrolera, al llegar el combustible a la gasolinera el camin es
pasado por una bscula antes y despus de descargar la gasolina, lo que
genera una nota de peso.
48
Figura 7. Diagrama de arquitectura general
49
Figura 8. Arquitectura singular
50
4.2. Las capas con las que se estructurar el sistema
Las capas con las que se estructura el sistema estn definidas de acuerdo
al modelo de arquitectura elegido y representan la encapsulacin de
funcionalidades relacionadas, que solo tienen comunicacin con la capa
inmediata superior o inferior.
51
Facilidad de aprendizaje: es la facilidad con la que los nuevos usuarios
desarrollan una interaccin efectiva con el sistema o producto.
52
4.2.3. Capa de acceso a datos
La capa de acceso a datos es una capa lgica que suele ser encarga de
gestionar la informacin que el sistema requiera para operar. La informacin
puede provenir de sistemas de gestin de bases de datos, archivos, incluso de
otros sistemas, por ejemplo de servicios web.
Gestin de la comunicacin
53
Manejo de excepciones
Modos de conexin
54
La definicin de estas puede ir desde una clase que defina un objeto hasta
un archivo en XML con una estructura que permita envolver un conjunto de
caractersticas. El objetivo final de los elementos de interaccin ser permitir
que las capas interacten intercambiando entidades permitiendo as, hacer
cambios en el estado o en las propiedades mismas de un objeto y trasladar
esos cambios a la capa correspondiente.
55
56
5. PROTOTIPO DE ARQUITECTURA
57
Figura 9. Casos de uso bsico
Actores:
Receptor
Flujo bsico:
58
Se consulta la orden de compra que origina la recepcin;
Precondiciones:
Excepciones:
59
Actores:
Receptor
Flujo bsico:
Precondiciones:
Excepciones:
60
Caso de uso: anulacin de recepcin.
Actores:
Receptor
Flujo bsico:
Precondiciones:
Excepciones:
61
5.2. Diagrama de secuencia
62
Modificar recepcin de combustible
63
Anulacin de recepcin de combustible.
64
5.3. Diagrama de clases
65
Diagrama:
66
5.3.2. Diagrama de clases sistema de bscula
67
Figura 15. Diagrama de clases sistema de inventario
68
Figura 16. Diagrama de clases sistema de inventario
69
Figura 17. Diagrama de clases de sistema de contabilidad
70
5.4. Diagrama de implementacin
71
5.5. Implementacin de Enterprise Inventory
72
Figura 19. Implementacin de patrn Enterprise Service Inventory
73
No definir dominios diferentes para distintos equipos o departamentos de
TI.
74
Figura 20. Implementacin de patrn Domain Inventory
75
76
CONCLUSIONES
77
5. No existe un nmero de patrones mnimos ni mximos para aplicar en el
diseo de una solucin, el nmero adecuado es el que facilita la
implementacin de la solucin sin incrementar la dificultad en su
desarrollo y administracin del diseo.
78
RECOMENDACIONES
79
80
BIBLIOGRAFA
81
8. MICROSOFT. Arquitectura Global para Servicios Web XML GXA, [en
lnea]. Estados Unidos de Amrica: Disponible en Web:
<http://www.directionsonmicrosoft.com/sample/DOMIS/update/2002
/10oct/1002gdffws.htm>. [Consulta: en febrero 2011].
82