Arquitectura de Software. Juan Bernardo Quintero

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

Download "Arquitectura de Software. Juan Bernardo Quintero"

Transcripción

1 Arquitectura de Software Juan Bernardo Quintero

2

3

4 Middleware Término usado para referirse a los componentes de software que actúan como intermediarios entre otros componentes de software, generalmente, en el marco de la interacción cliente/servidor. Ejemplos típicos son los programas desarrollados para ejecutar las consultas que diferentes usuarios de la red hacen a una base de datos central que está ubicada en el servidor.

5 Middleware Cliente/Servidor a dos capas Cliente (Front-end) Proceso Cliente Servicios del Sistema Hardware Petición Respuesta Proceso Servidor Usuario Servicios del Sistema Hardware Servidor (Back-end)

6 Middleware Cliente/Servidor a 3 o N capas Cliente (Front-end) Proceso Cliente Servicios del Sistema Hardware Petición Middleware Respuesta Proceso Servidor Usuario Servicios del Sistema Hardware Servidor (Back-end)

7 Middleware A distintos sistemas con diferentes arquitecturas les ha denominado Cliente/Servidor. Sin embargo se clasifican basándose en su funcionalidad: Servidores de Ficheros Servidores de Bases de Datos Servidores de Transacciones Servidores de Objetos Servidores de Web... Clasificación de servidores: Extraído de: R. Orfali, D.Harkey, J. Edwards. Cliente/Servidor y objetos: Guía de Supervivencia 3ra Edición McGraw-Hill Interamericana México, D.F

8 Clasificación de Middleware Propuesta de Clasificación de Middleware Se distinguen 2 niveles: Middleware de Bajo Nivel (Servicios Tecnológico) Se encargan del transito de servicios básicos hacia el cliente. Middleware de Alto Nivel (Servicios de Aplicación) Se encargan del manejo de servicios de infraestructura y de aplicación.

9 Clasificación de Middleware

10 Clasificación de Middleware Middleware de Bajo Nivel Middleware de Base Middleware de Comunicación Middleware de Base de Datos Middleware de Aplicación

11 Clasificación de Middleware Middleware de base: Middleware de Bajo Nivel Estándares y servicios asociados, que sirven de soporte para la construcción del resto del middleware. CORBA COM/COM+/DCOM EJB/J2EE.NET

12 Clasificación de Middleware Middleware de Bajo Nivel Middleware de comunicaciones: Proporciona el medio de comunicación para que las aplicaciones puedan conversar entre sí. HTTP RMI-IIOP SOAP RPC

13 Clasificación de Middleware Middleware de Bajo Nivel Middleware de base de datos: Enmascara las complejidades de acceso a la base de datos, escondiendo los detalles de implementación de cada uno. ODBC JDBC OCI

14 Clasificación de Middleware Middleware de Bajo Nivel Middleware de aplicación: Permite el arranque, extensión, e integración de otras aplicaciones. CGI Servlets/JSP PHP ASP ISAPI/NSAPI

15 Clasificación de Middleware Middleware de Alto Nivel Servidor Web Servidor de Componentes Servidor de Transacciones Servidor de Aplicaciones

16 Clasificación de Middleware Servidores Web: Middleware de Alto Nivel Servicios de publicación de contenidos Apache Netscape Server IIS OmmiHTTPD Sun Server Sambar Server Xitami iplanet Server

17 Clasificación de Middleware Middleware de Alto Nivel Servidores de transacciones: Garantiza transacciones ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad) en el procesamiento distribuido. BEA s Tuxedo IBM CICS Transarc s Encima MTS

18 Clasificación de Middleware Middleware de Alto Nivel Servidores de componentes: Contenedores de objetos que prestas servicios a través de una interface definida. Tomcat Microsoft Servidor de componentes COM.NET Remoting

19 Clasificación de Middleware Middleware de Alto Nivel Servidores de aplicaciones: Servicios de infraestructura y aplicación. Responden a una arquitectura lógica definida, por lo general J2EE. OAS (IAS) Websphere Jboss BEA-Weblogic Jonas Iplanet

20 Cuáles son los servicios de infraestructura? Los servicios de infraestructura típicos incluyen: Messaging (Mensajería y Notificaciones). Pooling. Caching. Clustering. Naming. Logging. etc.

21 Servicios de un servidor de aplicaciones Servicios que debe permiten: Gestión de transacciones. Modelo de interoperabilidad para componentes. Intercambio de datos. Colas de mensajes. Servidor HTTP para clientes Web y clientes móviles. Almacenamiento temporal de base de datos y web. Herramientas de administración.

22 Qué es un servidor de aplicaciones? Conjunto de programas y tecnologías que permiten: Creación de páginas Web dinámicas (ASP en Microsoft o JSP en Java) Componentes que pueden encapsular la lógica del negocio (COM en Microsoft o EJB en Java) Soporte de transacciones Acceso a la aplicación desde clientes HTTP Soporte para invocar métodos remotos Manejo de seguridad Uso de SSL y conexión con Bases de Datos (ODBC en Microsoft o JDBC en Java)

23 Qué es un servidor de aplicaciones? Todos estos servicios simplificarían el desarrollo de software que, en configuraciones distribuidas, se sitúa en la capa intermedia, entre los clientes o usuarios finales y el servidor de datos. Es lo que se conoce corrientemente como Middleware.

24 Características La mayoría de servidores de aplicaciones te permiten hacer algunas de las siguientes tareas. Presentar Contenido Dinámico Administrar Tu Sitio Web Construir un Sistema de Manejo de Contenidos Seguridad y Manejo Correcto Brindar Servicios de Red Integración de diversos sistemas Proveen Escalabilidad

25 Matriz de Servidores de Aplicación

26

27 Perspectivas de la Arquitectura de Referencia A continuación se analizan las más representativas de esas perspectivas: Aplicación Web (Web Application) Aplicaciones con Clientes Ricos (Rich Client Application) Aplicaciones Enriquecidas en Internet (Rich Internet Application) Aplicaciones de Servicios (Service Application) Aplicaciones Móviles (Mobile Application)

28 Web Application Definición: Su núcleo reside en lógica del lado del servidor, que se suele estructurar en varias capas; por ejemplo la arquitectura a tres capas: presentación, negocio y datos. Generalmente accede una base de datos remota y consume servicios expuestos por otras aplicaciones. Beneficios: Amplio alcance UI basada en estándares para múltiples plataformas. Facilidad de despliegue y gestión de cambios. Consideraciones: Dependencia de conectividad continua en la red. Dificultad para proveer una UI enriquecida. Basado en:

29 Web Application Extraído de:

30 Rich Client Application Definición: Puede proporcionar una experiencia de usuario altamente sensible, interactiva, y rica para las aplicaciones que deben funcionar en escenarios stand-alone, conectados, a veces conectado y desconectado. Una aplicación de cliente enriquecido normalmente se estructurará como una aplicación de varias capas: experiencia del usuario (la presentación), negocios y de datos. Beneficios: Potencian los recursos de los clientes. Provee mejor tiempo de respuesta y experiencia de usuario mejorada. Altamente dinámica. Consideraciones: Complejidad de despliegue. Desarrollos especifico de para la plataforma. El control de versiones puede ser complejo. Basado en:

31 Rich Client Application Extraído de:

32 Rich Internet Application Definición: Las aplicaciones de este tipo se pueden desarrollar para múltiples plataformas y múltiples navegadores, multimedia o mostrar contenido gráfico. Las aplicaciones dinámicas de Internet se ejecutan en un navegador lo que restringe el acceso a algunas de las características del cliente. Beneficios: Proveen las mismas características en la IU que los clientes enriquecidos. Soporte para la visualización de contenidos enriquecidos, streaming y gráfica. Actualización y control de versiones simple. Soporte multi-plataforma y multi-navegador. Consideraciones: Tiempo de carga mas lago comparado con las aplicaciones web. Mayor uso de recursos del cliente comparado con las aplicaciones web. Requiere compatibilidad de los motores de script en los clientes. Basado en:

33 Rich Internet Application Extraído de:

34 Service Application Definición: Expone en servicios compartidos, las funcionalidades del negocio y permiten a los clientes acceder a ellas desde un sistema local o remoto. Las operaciones de servicio se invocan usando mensajes, basados en esquemas XML, pasa sobre un canal de transporte. El objetivo de este tipo de aplicación es lograr acoplamiento flexible entre el cliente y el servidor. Beneficios: Provee bajo acoplamiento. Independencia de los consumidores. Soporta interoperabilidad. Consideraciones: No hay soporte de UI. Los clientes dependen de la conectividad de la red. Basado en:

35 Service Application Extraído de:

36 Mobile Application Definición: Pueden ser desarrolladas como cliente ligero o aplicaciones de cliente enriquecido. Las aplicaciones de cliente móvil enriquecido pueden apoyar escenarios desconectados o que se conectan ocasionalmente. Las aplicaciones de cliente ligero o web soportan solo escenarios conectados. Los recursos de los dispositivos puede llegar a ser una restricción al diseñar aplicaciones móviles. Beneficios: Soporta dispositivos portátiles (hand-held). Provee disponibilidad y facilidad de uso para usuarios por fuera de la oficina. Soporta escenarios desconectados y semiconectados. Consideraciones: Limitantes de entrada y navegación. Área de Pantalla limitada. Basado en:

37 Mobile Application Extraído de:

38

39 Según Microsoft Proceso de Desarrollo Arquitectónico Ejemplo actividad 3: Crear visión de la arquitectura Ejemplo actividad 4: Identificar asuntos claves (Seguridad)

40 Según SUN (Suntone) IBM (RUP) Proceso de Desarrollo Arquitectónico Tomado de: Suntone Architecture Methodology: a 3-dimensional approach to architectural design

41 Según el SEI (Software Engineering Institute) Proceso de Desarrollo Arquitectónico Tomado de: Bass, Len and Kazman, Rick. (1999). Architecture-Based Development. CMU/SEI-99-TR-007.

42 Métodos de Apoyo Arquitectónico (SEI) QAW: Quality Attribute Workshop. ATAM: Architecture Tradeoff Analysis Method. ADD: Attribute-Driven Design. ARID: Active Reviews for Intermediate Designs. CBAM: Cost-Benefit Analysis Method.

43 Métodos de Apoyo Arquitectónico (SEI)

44 Factores Claves del Desarrollo Arquitectónico En el Análisis de la Arquitectura: Drivers Arquitectónicos. Principios Arquitectónicos. En el Diseño de la Arquitectura: Patrones Arquitectónicos. Estilos Arquitectónicos.

45

46 Que son los Drivers Arquitectónicos? El proceso de obtención de requisitos se lleva a cabo por un equipo de recogida de requisitos, pero es trabajo del arquitecto evaluar el valor empresarial de los requisitos, para identificar los requisitos que son los más críticos para el éxito de un sistema. Estos requisitos críticos han sido etiquetados como los Drivers Arquitectónicos (Conductores de la Arquitectura), ya que definen la forma del diseño del sistema.

47 Que incluyen los Drivers Arquitectónicos? Una estructuración correcta del sistema permitirá satisfacer la mayoría de estos drivers. Los Drivers Arquitectónicos incluyen principalmente: Atributos de calidad. Un subconjunto de los casos de uso que se consideran como primarios. Los casos de uso primarios son aquellos de mayor importancia o de mayor complejidad para el negocio. Restricciones. El hecho de que los Drivers sean un subconjunto de todos los requerimientos del sistema puede verse como una ventaja, pues es posible comenzar a realizar el diseño de la arquitectura antes de haber terminado de documentar todos los requerimientos. Basado en: Requerimientos y Arquitectura, en

48 Que son los Drivers de Negocio? Los Driver de Negocio son los objetivos de negocio que están motivando el esfuerzo de desarrollo y por lo tanto lo que serán la fuerza motriz principal de arquitectura (por ejemplo: alta disponibilidad, tiempo de salida al mercado o seguridad alta). Típicamente describen: Sus requisitos funcionales más importantes. Sus limitaciones técnicas, administrativas, económicas o políticas. Sus objetivos de negocio y el contexto. Los stakeholders principales. Los Drivers Arquitectónicos (los principales objetivos de los atributo de calidad que dan forma a la arquitectura). Basado en: ATAM (Architecture Tradeoff Analysis Method)

49 Cómo definir los Drivers? El proceso de diferenciar entre los Drivers Arquitectónicos y otros requisitos no es sencillo, ya que requiere una comprensión completa de los objetivos de solución. Un árbol de utilidad, que forma parte ATAM (Architecture Tradeoff Analysis Method), ayuda con la creación de los Drivers Arquitectónicos a partir de los Drivers del Negocio. Según ATAM, un árbol de utilidad proporciona un mecanismo descendente para que de forma directa y eficaz se trasladen los driver de negocio de un sistema en escenarios concretos de los atributo de calidad.

50 Ejemplo de un Árbol de Utilidad Extraido de: ATAM (Architecture Tradeoff Analysis Method)

51 Ejemplo de decisiones basadas en Drivers 1. Por ejemplo, la decisión de utilizar una interfaz de usuario basada en AJAX dependerá de la necesidad de apoyar las conexiones de bajo ancho de banda (el desarrollador de aplicaciones de negocios, está menos interesado en la riqueza de AJAX y más en el hecho de como los datos se transportan por la red). 2. Por ejemplo, un caso de uso primario podría ser el realizar consultas del catálogo de productos. El criterio para elegir este caso de uso como primario es su importancia relativa a la satisfacción del objetivo de negocio y el hecho de que la consulta de catálogos involucra realizar conexiones hacia los sistemas de los fabricantes. 3. Una restricción para un sistema específico, podría ser que se usen librerías y herramientas open source. 2 y 3 basados en: Requerimientos y Arquitectura, en

52 Que son los Principios Arquitectónicos? Los principios son normas y directrices generales, destinados a ser duradera y rara vez modificado, que informan y apoyan la forma en que una organización se propone a cumplir su misión. A su vez, los principios pueden ser sólo un elemento en un conjunto estructurado de ideas que definen y orientan a la organización, a partir de valores a través de acciones y resultados.

53 Tipo de Principios Arquitectónicos Principios Empresariales: Ofrecen una base para la toma de decisiones en toda una empresa, e informar a cómo la organización se propone a cumplir su misión. Principios de TI: Proporcionar orientación sobre el uso y despliegue de todos los recursos de TI y sus activos en toda la empresa. Se desarrollan con el fin de hacer el entorno de la información lo más productiva y rentable como sea posible. Principios Arquitectónicos: Son un subconjunto de los principios de TI que corresponden a trabajos de arquitectura. Reflejan un nivel de consenso en toda la empresa, y encarnan el espíritu y el pensamiento de la arquitectura empresarial. Se dividen en: Principios que rigen el proceso de la arquitectura. Principios que rigen la aplicación de la arquitectura.

54 Ejemplos de Principios Arquitectónicos Ejemplos de Principios Empresariales: Madurez tecnológica. Soluciones a la medida vs genéricas. Grado de autonomía del proveedor. Ejemplos de Principios de TI: Un solo proveedor o varios. Soluciones Open vs Closed. Políticas de outsourcing. Ejemplos de Principios Arquitectónicos: Principios que rigen el proceso de la arquitectura: Todos los servicios y soluciones deben proveer una capa de seguridad. Principios que rigen la aplicación de la arquitectura: Autorización de uso de los servicios y aplicaciones.

55 Consideraciones para definir los Principios Se desarrollan por el arquitecto principal, junto con el CIO, Junta de Arquitectura, y los Stakeholders claves del negocio. Deben estar alineados con los principios de IT y de negocio. Deben estar influenciados por: Planes y misión organizacional. Iniciativas estratégicas organizacionales. Restricciones externas. Sistemas y tecnologías actuales. Tendencias tecnológicas.

56 Plantilla para definir los Principios Nombre: Debe representa la esencia de la norma, y ser fácil de recordar. plataformas específicas de la tecnología no debe ser mencionado en el nombre o la declaración. Declaración: Debe comunicar de manera sucinta y sin ambigüedades lo fundamental de la norma. En su mayor parte, las declaraciones de principios para la gestión de la información son similares de una organización a otra. Justificación: Se enfoca en mostrar los beneficios al negocio usando terminología del negocio. Describe la relación con otros principios y situaciones donde el principio tiene mas prevalencia sobre otros. Implicaciones: Recursos, costos, y las actividades o tareas

57 Ejemplo de definición de Principios Nombre: Cambios basados en requisitos Declaración: Se realizan cambios a aplicaciones y tecnología en respuesta a necesidades del negocio. Justificación: Este principio alentará un ambiente en el cual los cambios en IT se realizan con base a las necesidades del negocio y no permite que el negocio tenga que cambiar en respuesta a los cambios tecnológicos. Implicaciones: Cambios en implementación seguirán un examen detallado de los cambios propuestos usando la arquitectura empresarial. No se establece una mejora tecnológica a menos que exista una necesidad de negocio documentada. Se desarrollará e implementará un proceso de gestión de cambios acorde a este principio. Nombre: Facilidad de Uso Declaración: Las aplicaciones son fáciles de usar. La tecnologías sobre las cuales están soportadas son transparentes para el usuario, de esta manera ellos se concentran en su trabajo. Justificación: Entre mas tenga un usuario que entender la tecnología con la que trabaja, menos productivo será. La facilidad de uso es un incentivo positivo para el uso de aplicaciones. Alienta a los usuarios a trabajar con la información integrada en vez de desarrollar sistemas por fuera del entorno de TI de la organización. El entrenamiento se mantiene al mínimo y el riesgo de usar el sistema indebidamente es bajo. Implicaciones: Tener un look and feel común y soportar requisitos ergonómicos. Los lineamientos de UI no deben restringir los diferentes supuestos sobre ubicación, lenguaje o capacidades físicas.

58

59 Definición de Patrón Un patrón es una solución probada que se puede aplicar con éxito a un determinado tipo de problemas que aparece con frecuencia en un contexto específico. Esqueleto de aplicación básica que el diseñador ha de adaptar a sus necesidades. Un patrón de diseño en software es una colección de objetos que incluye: Relaciones entre estos objetos Desarrollados para resolver un problema concreto Se ha comprobado que funcionan bien (han sido testados).

60 Catálogos de Patrones Catalogo Nombre Uso Referencia POSA Pattern Oriented Software Architecture Definición de la arquitectura Buschmann, 1996 PEEA Pattern of Enterprise Application Architecture Definición de la arquitectura Fowler, 2003 GRASP General Responsability Assignment Software Patterns Paso del análisis al diseño Larman, 2004 GoF Design Patterns (Gang of Four) Diseño Gamma, 1995 J2EE J2EE Patterns 2 Edition. Diseño Alur, 2003 Idioms Patrones de Código Codificación Buschmann, 1996

61 POSA (Pattern-Oriented Software Architecture ) Propósito Del fango a la estructura Sistemas distribuidos Sistemas interactivos Sistemas adaptables Patrones Layers (Capas) Pipes and Filters (Tubería y Filtros) Blackboard (Pizarra) Broker (por ejemplo: CORBA, DCOM, Web Services, WWW) Model-View-Controller Presentation-Abstraction-Control Reflection: meta-nivel que hace al software consciente de sí mismo. Microkernel: núcleo de funcionalidad mínima.

62 Patrones POSA: 1. Layers Layers ayuda a estructurar las aplicaciones que se pueden descomponer en grupos de subtareas en la que cada grupo de subtareas se encuentra en un nivel particular de abstracción. [Buschmann, et al. 1996] Diagrama de Clases Esquemas de Funcionamiento

63 Patrones POSA: 2. Pipes and Filters Pipes and Filters proporciona una estructura para sistemas que procesan un flujo de datos. Cada paso del proceso se encapsula en un componente de filtro. Los datos se pasan a través de tubos entre filtros adyacentes. Recombinación de filtros permite crear familias de sistemas relacionados. [Buschmann, et al. 1996] Diagrama de Clases Esquemas de Funcionamiento

64 Patrones POSA: 3. Blackboard Blackboard es útil para los problemas en los que las estrategias de solución determinista no se conocen. En la Pizarra varios subsistemas especializados reúnen sus conocimientos para construir una posibilidad de solución parcial o aproximada. [Buschmann, et al. 1996] Diagrama de Clases Esquemas de Funcionamiento

65 Patrones POSA: 4. Broker Broker puede ser usado para estructurar sistemas de software distribuidos con componentes desacoplados que interactúan por invocaciones de servicios remotos. Un componente corredor es responsable de coordinar la comunicación, tales como solicitudes de expedición, así como para la transmisión de resultados y excepciones. [Buschmann, et al. 1996] Diagrama de Clases Esquemas de Funcionamiento

66 Patrones POSA: 5. MVC (Model-View-Controller ) MVC divide una aplicación interactiva en tres componentes. El modelo contiene la funcionalidad básica y los datos. Las vistas muestran la información al usuario. Los controladores manejan las entradas del usuario. Las vista y los controladores en conjunto constituyen la interfaz de usuario. Un mecanismo de propagación de cambios puede garantizar la coherencia entre la interfaz de usuario y el modelo. [Buschmann, et al. 1996] Diagrama de Clases Esquemas de Funcionamiento

67 Diagrama de Clases Patrones POSA: 6. PAC (Presentation-Abstraction-Control) PAC define una estructura para los sistemas interactivos en forma de una jerarquía de agentes cooperantes. Cada agente es responsable de un aspecto específico de la funcionalidad de las aplicaciones y consta de presentación, abstracción y control. Esta subdivisión separa los aspectos de la interacción humano-computadora del agente de su núcleo funcional y su comunicación con otros agentes. [Buschmann, et al. 1996] Esquemas de Funcionamiento

68 Patrones POSA: 7. Reflection Reflection provee un mecanismo para cambiar la estructura y el comportamiento de los sistemas de software de forma dinámica. Es compatible con la modificación de los aspectos fundamentales, tales como las estructuras y mecanismos de tipo de llamada a función. En este modelo, una aplicación se divide en dos partes: Un nivel meta proporciona información sobre las propiedades del sistema seleccionado y hace que el software auto-conocido. Un Nivel de base incluye la lógica de la aplicación. Su aplicación se basa en el nivel meta. Los cambios en la información guardada en el nivel meta influyen en el comportamiento posterior de nivel base. [Buschmann, et al. 1996] Diagrama de Clases Ejemplo de Funcionamiento (Patrón ActiveRecord)

69 Patrones POSA: 8. Microkernel Microkernel se aplica a los sistemas de software que debe ser capaz de adaptarse a los cambio en los requisitos del sistema. Separa un núcleo funcional mínimo de la funcionalidad extendida y partes específicas del cliente. El micronúcleo también sirve como un socket para conectar estas extensiones y coordinar su colaboración. [Buschmann, et al. 1996] Esquema de Funcionamiento Básico Diagrama de Clases Esquema de Funcionamiento con un Bus

70 Anti-Patrones Desarrollo de software Arquitectura Gestión The Blob Lava Flow Functional Decomposition Poltergeists Golden Hammer Spaghetti Code Cut and Paste Programming Mini Anti-Patrones Continuous Obsolescence Ambiguous Viewpoint Boat Anchor Dead End Input Kludge Walking through a Minefield Mushroom Management Stovepipe Enterprise Vendor Lock-in Architecture by Implication Design by Committee Reinvent the Wheel Mini Anti-Patrones Autogenerated Stovepipe Jumble Cover your Assets Wolf Ticket Warm Bodies Swiss Army Knife The Grand Old Duke of York Analysis Paralysis Death by Planning Corncob Irrational Management Project Missmanagement Mini Anti-Patrones Blowhard Jamboree Viewgraph Engineering Fear of Success Intellectual Violence Smoke and Mirrors Throw it over the wall Fire Drill The Feud is Dangerous

71 Que es un Estilo Arquitectónico? Una familia de sistemas en términos de un patrón de organización estructural. Más específicamente, un estilo arquitectónico determina el vocabulario de los componentes y conectores que se pueden utilizar en instancias de ese estilo, junto con un conjunto de restricciones sobre cómo pueden ser combinados. Estos pueden incluir restricciones topológicas en las descripciones arquitectónicas (por ejemplo, sin ciclos). Restricciones que tienen que ver con la semántica de la ejecución, también podría ser parte de la definición de estilo. [Garlan y Shaw, 1994]

72 Tipos de Estilos Arquitectónicos Categoría Comunicación Implementación Estilos Arquitectónicos Service-Oriented Architecture (SOA) Message Bus Client/Server 3-Tier / N-Tier Dominio Domain Driven Design Estructura Object-Oriented Component-Based Layered

73 Descripción de los Estilos Arquitectónicos Estilo SOA (Comunicación) Message Bus (Comunicación) Client/Server (Implementación) 3-Tiers / N-Tiers (Implementación) Domain Driven Design (Dominio) Object-Oriented (Estructura) Component-Based (Estructura) Layered (Estructura) Descripción Se refiere a las aplicaciones que exponen y consumen funcionalidad como un servicio a través de contratos y mensajes. Prescribe el uso de un sistema de software que puede recibir y enviar mensajes usando uno o más canales de comunicación, de modo que las aplicaciones puedan interactuar sin necesidad de conocer los detalles específicos de cada uno. Segrega el sistema en dos aplicaciones, donde el cliente realiza peticiones al servidor. En muchos casos, el servidor es una base de datos con la lógica de la aplicación representada en procedimientos almacenados. Segrega funcionalidad en segmentos separados en gran parte de la misma manera como el estilo de capa, pero con cada segmento que es un nivel situado en un equipo separado físicamente. Un estilo orientado a objetos que se centra en el modelado del dominio de negocio y en la definición de objetos de negocio basado en las entidades en el ámbito empresarial Basado en la división de responsabilidades para una aplicación o sistema en cada objetos reutilizables y autosuficientes, cada uno con los datos y el comportamiento de los relevantes para el objeto. Se descompone en el diseño de aplicaciones en funcionalidad reutilizable o componentes lógicos que expongan interfaces de comunicación bien definida. Partición de los asuntos de la aplicación en grupos apilados (capas).

74

75 Basado en: Bachmann, Felix et al.: Software Architecture Documentation in Practice: Documenting Architectural Layers. CMU/SEI-2000-SR Documento de Arquitectura (Definiciones) Un vehículo para comunicar el diseño del sistema a los stakeholders en cada etapa de su evolución. Una base para la realización del análisis por adelantado, para validar (o descubrir las deficiencias en) las decisiones de diseño arquitectónico y perfeccionar o modificar las decisiones cuando sea necesario. El primer artefacto utilizado para lograr la comprensión del sistema.

76 Basado en: Bachmann, Felix et al.: Software Architecture Documentation in Practice: Documenting Architectural Layers. CMU/SEI-2000-SR Documento de Arquitectura (Objetivos) Registrar las decisiones de los arquitectos. Para cumplir con este objetivo, la documentación debe ser completa y sin ambigüedades. Comunicar la arquitectura. Para cada una los stakeholders, considere: Que necesitan saber? Cual es la mejor forma de transmitirle lo que necesitan saber? Un documento único y exhaustivo de la especificación de arquitectura, probablemente va a convertirse en un costoso artefacto y no servirá al objetivo de la comunicación.

77 Basado en: Bachmann, Felix et al.: Software Architecture Documentation in Practice: Documenting Architectural Layers. CMU/SEI-2000-SR Documento de Arquitectura (Características) La documentación debe ser escrita desde el punto de vista del lector, no el escritor. Evite la repetición. Evite la ambigüedad. Utilice una esquema de organización estándar. Registre las justificaciones. Manténgala actualizada. Revisión de la documentación para el ajuste de su propósito.

78 Basado en: Bachmann, Felix et al.: Software Architecture Documentation in Practice: Documenting Architectural Layers. CMU/SEI-2000-SR Documento de Arquitectura (Stakeholders) Stakeholder Diseñadores de bajo nivel e implementadores Probadores e integradores Gerentes técnicos Gerentes de proyecto Diseñadores de sistemas con los que se debe interoperar Arquitectos y diseñadores por parte del cliente Soporte y mantenimiento Los nuevos miembros del proyecto Uso del Documento de Arquitectura "Órdenes de marcha, restricciones inviolables (más libertades explotables) en actividades de desarrollo. Para especificar el correcto comportamiento de caja negra de las piezas que se deben ajustar. Para armar los equipos de desarrollo acorde a las tareas identificadas. Base para una dividir el trabajo, planear, asignar recursos al proyecto y seguir progresos de los equipos. Para definir el conjunto de operaciones que son requeridas y provistas. Para negociar y hacer acuerdos entre requisitos que compiten. Para revelar áreas con cambios a futuro. Primer artefacto para familiarizarse con el diseño de un sistema.

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms Patrones Patrones Es una solución reusable de problemas comunes. Los patrones solucionan problemas que existen en muchos niveles de abstracción. desde el análisis hasta el diseño y desde la arquitectura

Más detalles

Documentando la arquitectura de software Principios básicos por Omar Gómez

Documentando la arquitectura de software Principios básicos por Omar Gómez Documentando la arquitectura de software Principios básicos por Omar Gómez En la actualidad, uno de los temas candentes que se habla dentro de la comunidad de desarrollo de software es el referente a las

Más detalles

Estilos Arquitectónicos

Estilos Arquitectónicos Estilos Arquitectónicos Ing. Ariel Cassan 2005 Agenda # Tema Duración 1 Que es un Patrón? 5 min 2 Introducción a estilos arquitectónicos 5 min 2.1 De Estructuración 20 min 2.2 Sistemas distribuidos 5 min

Más detalles

Desarrollo de una arquitectura orientada a servicios para un prototipo de una línea de productos de software

Desarrollo de una arquitectura orientada a servicios para un prototipo de una línea de productos de software Desarrollo de una arquitectura orientada a servicios para un prototipo de una línea de productos de software Ramón Gómez-Romero, Karen Cortés Verdin, Juan Carlos Pérez Arriaga, Ángeles Arenas Valdés Universidad

Más detalles

Estilos Arquitectónicos

Estilos Arquitectónicos Estilos Arquitectónicos Lic. Gastón Coco Ing. Gustavo A. Brey Ing. Juan M. Arias Ing. Jorge García Ing. Santiago Blanco Ing. Fabián Pezet Vila Ing. Ariel Cassan 2005 Agenda # Tema Duración 1 Que es un

Más detalles

Resumen. Introducción

Resumen. Introducción Arquitectura de software para Sistemas de Información Ambiental Urciuolo Adriana, Iturraspe Rodolfo, Parson Ariel, Esteban Natalia Universidad Nacional de la Patagonia San Juan Bosco Sede Ushuaia, Darwin

Más detalles

Introducción. http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art143.asp - Gráfica tomada del Artículo de José David Parra

Introducción. http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art143.asp - Gráfica tomada del Artículo de José David Parra Si en otros tiempos el factor decisivo de la producción era la tierra y luego lo fue el capital... hoy día el factor decisivo es cada vez más el hombre mismo, es decir, su conocimiento... Juan Pablo II

Más detalles

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS MISIÓN

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS MISIÓN UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS MISIÓN Formar profesionales altamente capacitados, desarrollar investigación y realizar actividades de extensión, en Matemáticas y Computación, así

Más detalles

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO Introducción:...1 Service Oriented Architecture...2 Elementos de una Service Oriented Architecture...2 Application frontends...2 Servicios...2 Contrato:...3

Más detalles

Guía docente de la asignatura

Guía docente de la asignatura Guía docente de la asignatura Asignatura Materia DISEÑO DE SOFTWARE DESARROLLO DE SOFTWARE Módulo Titulación Grado en INGENIERÍA INFORMÁTICA Plan 463 Código 45203 Periodo de impartición S5 Tipo/Carácter

Más detalles

Trabajo de Investigación

Trabajo de Investigación Escuela Técnica Superior de Ingeniería Informática Departamento: Ingeniería de Software y Sistemas Informáticos Trabajo de Investigación Arquitecturas Software: Gestión de los atributos de calidad de un

Más detalles

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el Capitulo II. Análisis de herramientas y tecnologías de desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el lenguaje de Modelo de Objetos llamado UML (Unified

Más detalles

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura Estilos de Arquitectura y Patrones de Diseño Arquitectónico Gastón Mousqués - AR 1 Patrones de Arquitectura Gastón Mousqués - AR 2 Principales Categorías de Patrones (Software) Patrones de Análisis Expresan

Más detalles

PROGRAMA DE LA ASIGNATURA CURSO BASICO: ARQUITECTURA DEL SOFTWARE

PROGRAMA DE LA ASIGNATURA CURSO BASICO: ARQUITECTURA DEL SOFTWARE UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS POSTGRADO EN CIENCIAS DE LA COMPUTACIÓN PROGRAMA DE LA ASIGNATURA CURSO BASICO: ARQUITECTURA DEL SOFTWARE INFORMACIÓN GENERAL Profesor: Francisca Losavio

Más detalles

Patrones de software y refactorización de código

Patrones de software y refactorización de código Patrones de software y refactorización de código Introducción y antecedentes de los patrones de software Los patrones permiten construir sobre la experiencia colectiva de ingenieros de software habilidosos.

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA... 7 Tarea DSI 1.1: Definición de Niveles de Arquitectura... 9 Tarea DSI

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS...2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA...7 Tarea DSI 1.1: Definición de Niveles de Arquitectura...9 Tarea DSI 1.2:

Más detalles

Estilos y Patrones Arquitectónicos

Estilos y Patrones Arquitectónicos Lic. Ariel Trellini Estilos y Patrones Arquitectónicos Llamando a las cosas por su nombre Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Arquitectura y Diseño de Sistemas

Más detalles

Tema 1. Arquitectura Cliente/Servidor

Tema 1. Arquitectura Cliente/Servidor Tema 1. Arquitectura Cliente/Servidor SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs 27 de septiembre de 2009 FJRP, FMBR [sistemas cliente-servidor] CCIA 1.1 Sistemas

Más detalles

Arquitectura de Software III: Elaboración. Contenido del curso. III: Elaboración

Arquitectura de Software III: Elaboración. Contenido del curso. III: Elaboración Arquitectura de Software III: Elaboración Hernán Astudillo Departamento de Informática Universidad Técnica Federico Santa María Contenido del curso Introducción, motivación y contexto

Más detalles

http://www.cem.itesm.mx/extension/ms

http://www.cem.itesm.mx/extension/ms Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos

Más detalles

Evolución de Plantillas Genéricas para la descripción de Casos de Uso a Plantillas Genéricas para Análisis y Diseño

Evolución de Plantillas Genéricas para la descripción de Casos de Uso a Plantillas Genéricas para Análisis y Diseño Evolución de Plantillas Genéricas para la descripción de Casos de Uso a Plantillas Genéricas para Análisis y Diseño Ing. Marcela Daniele AC. Daniel Romero Dpto. de Computación. Facultad: Ciencias Exactas,

Más detalles

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio). 1 GLOSARIO A continuación se definen, en orden alfabético, los conceptos básicos que se han abordado a lo largo del desarrollo de la metodología para la gestión de requisitos bajo la Arquitectura Orientada

Más detalles

Capítulo 2 : Marco Teórico

Capítulo 2 : Marco Teórico Capítulo 2 : Marco Teórico En este capítulo se darán a conocer algunos conceptos básicos del contexto de este trabajo, con la finalidad de situar al problema dentro de un conjunto de conocimientos. Dentro

Más detalles

Arquitecturas de Software

Arquitecturas de Software Arquitecturas de Software Ingeniería del Universidad Rey Juan Carlos César Javier Acuña cjacunia@escet.urjc.es Índice Introducción Motivación Definición Pipes and Filters Tipos abstractos de datos y OO

Más detalles

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado 1. Introducción Unified Modeling Languaje Fuente: Booch- Jacobson-Rumbauch y diversos sitios Internet, entre otros:

Más detalles

Tema 1: Introducción a Java EE

Tema 1: Introducción a Java EE Tema 1: Introducción a Java EE Índice Arquitecturas características de las aplicaciones empresariales Tecnologías J2EE Alternativas a J2EE Patrones arquitectónicos Model-View-Controller y Layers Recursos

Más detalles

Modelado y Diseño de Arquitectura de Software

Modelado y Diseño de Arquitectura de Software Modelado y Diseño de Arquitectura de Software CONCEPTOS DE MODELADO Fernando Barraza A. MS.c. fernando.barraza@gmail.com 2 Desarrollo de sistemas de software Requisitos funcionales del software Si todo

Más detalles

Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta

Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta (Business Process Management, BPM). La Gerencia de los Procesos del Negocio: Se define como: "integración

Más detalles

Diseño y Arquitectura de Sistemas de Computación Código: 28

Diseño y Arquitectura de Sistemas de Computación Código: 28 Programa de la Asignatura: Diseño y Arquitectura de Sistemas de Computación Código: 28 Carrera: Ingeniería en Computación Plan: 2013 Carácter: Obligatoria Unidad Académica: Secretaría Académica Curso:

Más detalles

Arquitectura de Software

Arquitectura de Software Arquitectura de Software (Estilos Arquitectónicos) Universidad de los Andes Demián Gutierrez Mayo 2011 1 Diseño Arquitectónico Diseño Arquitectónico Arquitectura del Software Estilos Arquitectónicos Frameworks

Más detalles

JAVA 2 ENTERPRISE EDITION

JAVA 2 ENTERPRISE EDITION JAVA 2 ENTERPRISE EDITION Jon Castro Jonathan Escolano Índice Arquitecturas características de las aplicaciones empresariales Tecnologías J2EE Alternativas a J2EE Tecnologías de integración de aplicaciones

Más detalles

TIPOS DE PATRONES. PATRONES DE DISEÑO: Las soluciones probadas para el diseño de software. En estas nos vamos a centrar.

TIPOS DE PATRONES. PATRONES DE DISEÑO: Las soluciones probadas para el diseño de software. En estas nos vamos a centrar. TIPOS DE PATRONES Hoy, podemos encontrar literalmente miles de patrones definidos. Resulta imposible para un programador conocerlos todos, ni mucho menos probarlos o valorarlos. Así que necesitamos una

Más detalles

SISTEMAS DE INFORMACIÓN II TEORÍA

SISTEMAS DE INFORMACIÓN II TEORÍA CONTENIDO: ARQUITECTURA DEL SISTEMA DE SOFTWARE NIVELES DE DISEÑO DE LOS SISTEMAS DE SOFTWARE CUALIDADES DE LAS ARQUITECTURAS ESTILOS Y PATRONES - ESTILOS ARQUITECTÓNICO - PATRÓN ARQUITECTÓNICO FRAMEWORK

Más detalles

Patrones y Antipatrones. Motivacio n

Patrones y Antipatrones. Motivacio n Patrones y Antipatrones Eva M Castro Motivacio n ñel diseno orientado a objetos es un arte mas que una ciencia. Habilidad, talento. Experiencia. Creatividad, imaginacio n. ñmuy poca experiencia en estos

Más detalles

Programación orientada a

Programación orientada a Programación orientada a objetos con Java Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos de la programación

Más detalles

Capítulo III. Análisis y diseño.

Capítulo III. Análisis y diseño. Capítulo III. Análisis y diseño. 3.1 Análisis. El análisis es el intermediario entre los requisitos del sistema y el diseño, esta sección definiremos el análisis con una serie de modelos técnicos del sistema,

Más detalles

Brindar al alumno un marco teórico y práctico para el desarrollo de software bajo estándares de calidad.

Brindar al alumno un marco teórico y práctico para el desarrollo de software bajo estándares de calidad. Universidad Católica San Pablo Facultad de Ingeniería y Computación Programa Profesional de Ciencia de la Computación SILABO CS290T. Ingeniería de Software I (Obligatorio) 2012-2 1. DATOS GENERALES 1.1

Más detalles

Carrera: IFM - 0410 3-2-8. Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Carrera: IFM - 0410 3-2-8. Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos. 1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Desarrollo de aplicaciones para ambientes distribuidos Licenciatura en Informática

Más detalles

Escuela Técnica Superior de Ingeniería. Informática. Grado en Ingeniería Informática

Escuela Técnica Superior de Ingeniería. Informática. Grado en Ingeniería Informática Escuela Técnica Superior de Ingeniería Informática Grado en Ingeniería Informática GUÍA DOCENTE DE LA ASIGNATURA: (Diseño Arquitectónico y Patrones) Curso Académico 2013/2014 Fecha: 24/05/2013 MODELO GUIA

Más detalles

Tema 5. Plataforma Java EE

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

Más detalles

Herramientas de Software que posibilitan el BPM

Herramientas de Software que posibilitan el BPM Qué es BPM? BPM (Business Process Management) no es solamente una tecnología, sino en términos generales, una disciplina gerencial que trata a los procesos como bienes tangibles que contribuyen al desempeño

Más detalles

Arquitectura cliente/servidor

Arquitectura cliente/servidor Departamento de Lenguajes y Sistemas Informáticos Arquitectura cliente/servidor Programación en Internet Curso 2007-2008 Índice Introducción Tipos de servidores Ventajas Desventajas Arquitectura de una

Más detalles

Panorámica de la asignatura

Panorámica de la asignatura Arquitecturas típicas. Mario Muñoz Organero Departamento de Ingeniería Telemática http://www.it.uc3m.es/mario Panorámica de la asignatura RED Comunicaciones Servidores información Intercambio de datos

Más detalles

Análisis del Sistema de Información

Análisis del Sistema de Información Análisis del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD ASI 1: DEFINICIÓN DEL SISTEMA... 6 Tarea ASI 1.1: Determinación del Alcance del Sistema... 6 Tarea ASI 1.2: Identificación

Más detalles

Resumen. Palabras clave: diseño, reuso, arquitectura, patrones, taller. Introducción

Resumen. Palabras clave: diseño, reuso, arquitectura, patrones, taller. Introducción TALLER: MECANISMOS DE REUSO EN OO ARQUITECTURA, PATRONES Y FRAMEWORKS Urciuolo Adriana, Sandoval Sandra Universidad Nacional de la Patagonia San Juan Bosco Sede Ushuaia, Darwin y Canga, (9410) Ushuaia

Más detalles

Historia de revisiones Fecha Versión Descripción Autor 12/11/2011 4.0 Versión final con cambios sobre extensión de ArcGIS Viewer y recorte de alcance

Historia de revisiones Fecha Versión Descripción Autor 12/11/2011 4.0 Versión final con cambios sobre extensión de ArcGIS Viewer y recorte de alcance EXAV Descripción de la Arquitectura Versión 4.0 Historia de revisiones Fecha Versión Descripción Autor 12/11/2011 4.0 Versión final con cambios sobre extensión de ArcGIS Viewer y recorte de alcance Enrique

Más detalles

ARQUITECTURA DE UN SISTEMA DE INFORMACIÓN

ARQUITECTURA DE UN SISTEMA DE INFORMACIÓN ARQUITECTURA DE UN SISTEMA DE INFORMACIÓN Maestría en Bioinformática Marzo 2010 Contenidos Qué es la Arquitectura de un Sistema? Patrones de Arquitectura Arquitectura de un Sistema de Información Ing.

Más detalles

TESIS DE INGENIERÍA EN SISTEMAS Y COMPUTACIÓN. 2010

TESIS DE INGENIERÍA EN SISTEMAS Y COMPUTACIÓN. 2010 Bibliográfica en las Bibliotecas de la UNACH TESIS DE INGENIERÍA EN SISTEMAS Y COMPUTACIÓN 2010 ESTUDIO COMPARATIVO DE ARQUITECTURAS N-CAPAS Y SOA CASO PRÁCTICO: SISTEMA DE CATALOGACIÓN Y ADMINISTRACIÓN

Más detalles

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA. 3.1. Características

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA. 3.1. Características SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA 3.1. Características La tendencia hacia el futuro es el de lograr la integración total de componentes realizados por terceras partes, para lo cual es necesario

Más detalles

Curso: El Proceso de Desarrollo de Software

Curso: El Proceso de Desarrollo de Software Curso: El Proceso de Desarrollo de Software EL PROCESO DE DESARROLLO DE SOFTWARE... 1 OBJETIVO...1 CONTENIDO...1 BIBLIOGRAFÍA...4 DOCENTE...4 MODALIDAD DEL DESARROLLO...4 El proceso de Desarrollo de Software

Más detalles

SIGPRE Sistema de Gestión Presupuestaria

SIGPRE Sistema de Gestión Presupuestaria SIGPRE Sistema de Gestión Presupuestaria Documento de Arquitectura UTN Histórico de Revisiones Fecha Versión Descripción Autor 11/17/2009 1.0 Borrador de la arquitectura Roberto López Hinojosa 12/14/2009

Más detalles

Arquitectura de Proyectos en IT

Arquitectura de Proyectos en IT Arquitectura de Proyectos en IT Estilos arquitectónicos Contenido: Introducción... 2 Estilos arquitectónicos... 2 Patrones de estructuración... 2 Sistemas de flujo de datos (Dataflow systems)... 3 Batch

Más detalles

Curso: Arquitectura de Software (201101-Nuevo Pensum) Profesor: Juan Bernardo Quintero Institución: Universidad de Antioquia

Curso: Arquitectura de Software (201101-Nuevo Pensum) Profesor: Juan Bernardo Quintero Institución: Universidad de Antioquia Curso: Arquitectura Software (201101-Nuevo Pensum) Profesor: Juan Bernardo Quintero Institución: Universidad Antioquia 1. Objetivo General Brindar a los estudiantes herramientas para facilitar el uso metodologías

Más detalles

Service Oriented Architecture

Service Oriented Architecture Service Oriented Architecture Isaac Gutiérrez Gómez, Salvador Otón Tortosa Universidad de Alcalá, Departamento de Ciencias de la Computación, 28871 Alcalá de Henares, Spain igutierrez09@yahoo.es, salvador.oton@uah.es

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

Modelado de tácticas de atributos de calidad para la generación de arquitecturas ejecutables.

Modelado de tácticas de atributos de calidad para la generación de arquitecturas ejecutables. Modelado de tácticas de atributos de calidad para la generación de arquitecturas ejecutables. Para obtener el grado de Maestro en Ciencias (Ciencias y Tecnologías de la Información) P R E S E N T A Lic.

Más detalles

SISTEMAS DE INFORMACIÓN

SISTEMAS DE INFORMACIÓN SISTEMAS DE INFORMACIÓN Tema 8 Arquitecturas de Capas JAVIER GARZÁS Arquitectura Software Organización de un sistema software Los elementos estructurales (componentes) y sus interfaces (conectores) en

Más detalles

Arquitectura Java para el Cuarto Ejercicio. José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático

Arquitectura Java para el Cuarto Ejercicio. José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático Arquitectura Java para el Cuarto Ejercicio José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático Sumario Introducción Arquitectura en n-capas Arquitectura y el Cuarto Examen Java y su modelo

Más detalles

Patrones de diseño. Programación III.I.T.I. de Sistemas. Contenidos. Información sobre patrones de diseño. Motivación.

Patrones de diseño. Programación III.I.T.I. de Sistemas. Contenidos. Información sobre patrones de diseño. Motivación. Departamento de Informática Universidad de Valladolid Programación III.I.T.I. de Sistemas Patrones 1 Contenidos Programación III.I.T.I. de Sistemas Patrones de diseño Patrones de diseño Introducción Conceptos

Más detalles

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML Diseño Diseño en el PUD Diseño de software Patrones arquitectónicos Diseño Orientado a Objetos en UML 1 Iteración en PUD Planificación de la Iteración Captura de requisitos: Modelo de casos de uso, Modelo

Más detalles

BASES DE DATOS. Ivon Tarazona Oriana Gomez

BASES DE DATOS. Ivon Tarazona Oriana Gomez BASES DE DATOS Ivon Tarazona Oriana Gomez Introducción Introducción Ventajas e (Unified Modeling Language) Es un lenguaje usado para especificar, visualizar y documentar los diferentes aspectos relativos

Más detalles

HISTORIAL DE CAMBIOS

HISTORIAL DE CAMBIOS HISTORIAL DE CAMBIOS VERSIÓN FECHA DESCRIPCIÓN ENCARGADO 0.0.1 25 de Julio de 2013 Creación de la sección 1 Jonathan León 0.0.2 27 de Julio de 2013 Creación de la sección 2 Jonathan León 0.1.0 30 de Julio

Más detalles

WebRatio. Otro camino para el BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8

WebRatio. Otro camino para el BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 WebRatio Otro camino para el BPM Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 El BPM El BPM (Business Process Management) no es solo una tecnología, además a grandes rasgos es una disciplina

Más detalles

Servicio Web. Estándares empleados. Ventajas de los servicios web. Inconvenientes de los servicios Web

Servicio Web. Estándares empleados. Ventajas de los servicios web. Inconvenientes de los servicios Web Servicio Web Un servicio web (en inglés, Web services) es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones

Más detalles

Guía Docente Curso 2012-2013

Guía Docente Curso 2012-2013 ESCUELA TÉCNIICA SUPERIIOR DE IINGENIIERÍÍA Guía Docente Curso 2012-2013 Titulación Ingeniería Informática DATOS DE LA ASIGNATURA * * Asignatura en experiencia piloto de implantación del sistema de créditos

Más detalles

Fundamentos de Ingeniería del Software. Capítulo 11. Reutilización del software

Fundamentos de Ingeniería del Software. Capítulo 11. Reutilización del software Fundamentos de Ingeniería del Software Capítulo 11. Reutilización del software Reutilización del software. Estructura 1. Reutilización del software 2. Beneficios de la reutilización 3. Dificultades para

Más detalles

Arquitectura de Aplicaciones Empresariales. Lic. Esteban Cesar Calabria 2007

Arquitectura de Aplicaciones Empresariales. Lic. Esteban Cesar Calabria 2007 Arquitectura de Aplicaciones Empresariales 2007 TEMARIO Introducción Aplicaciones Empresariales Introducción a la Arquitectura de Aplicaciones empresariales Layering Patrones Arquitecturas Empresariales

Más detalles

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes. SISTEMAS DISTRIBUIDOS DE REDES 2.- MODELOS ORIENTADOS A OBJETOS DISTRIBUIDOS 2.1. Tecnologías de sistemas distribuidos Para la implementación de sistemas distribuidos se requiere de tener bien identificados

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

Patrones. (Conceptos Generales)

Patrones. (Conceptos Generales) Patrones (Conceptos Generales) Agenda Motivación para los patrones Definiciones de patrones Tipos de patrones (Catálogos) De diseño (GoF) De arquitectura (POSA) De plataforma (J2EE) Ejemplo (Patrón DAO)

Más detalles

Anexo 4 Documento de Arquitectura

Anexo 4 Documento de Arquitectura Anexo 4 Documento de Arquitectura 1. Introducción El anexo se describe el propósito y alcance referentes al proyecto correspondiente al documento de arquitectura. 2. Propósito El propósito del anexo de

Más detalles

Introducción al Desarrollo de Aplicaciones Empresariales

Introducción al Desarrollo de Aplicaciones Empresariales Introducción al Desarrollo de Aplicaciones Empresariales Definición Java 2 Enterprise Edition: plataforma de desarrollo de aplicaciones para empresas, basado en EJBs. EJB (Enterprise Java Beans): especificación

Más detalles

Facultad de Sistemas e Informática

Facultad de Sistemas e Informática Escuela Politécnica del Ejército Sede Latacunga Facultad de Sistemas e Informática Galarza Maira Tapia Cevallos Paulina DESARROLLO DE APLICACIONES DISTRIBUIDAS UTILIZANDO PATRONES DE DISEÑO MODELO/VISTA

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software MSDN Ingeniería de Software...1 Ingeniería del Software_/_ Ingeniería y Programación...1 Análisis de Requerimientos...2 Especificación...3 Diseño...4 Desarrollo en Equipo...5 Mantenimiento...6

Más detalles

Jazmín Hernández jazminpalom@gmail.com. Technical Report COMP-029-2009. Abstract

Jazmín Hernández jazminpalom@gmail.com. Technical Report COMP-029-2009. Abstract Guía para la Documentación de Arquitecturas de Software Como Base Para el Desarrollo de Sistemas de Información en la Iglesia Adventista del Séptimo Día Jazmín Hernández jazminpalom@gmail.com Technical

Más detalles

Descripción de Arquitectura Repositorio de metadatos de componentes de software

Descripción de Arquitectura Repositorio de metadatos de componentes de software Descripción de Arquitectura Repositorio de metadatos de componentes de software 1. Introducción. 1.1. Propósito. 1.2. Alcance. 1.3. Definiciones. 1.4 Contexto. 1.5. Referencia. 2. Objetivos y restricciones

Más detalles

Tema 1. Introducción a Java EE

Tema 1. Introducción a Java EE Objetivos del tema Propiedades de las aplicaciones empresariales El Modelo Cliente/Servidor Presentar la Plataforma Java Presentar Java EE y otras tecnologías horizontales Tema 1. Introducción a Java EE

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 17 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

Componentes y Middleware. Arquitectura de Software Componentes y Middleware [1] Stakeholders. Sobre el informe. Calidad según los stakeholders

Componentes y Middleware. Arquitectura de Software Componentes y Middleware [1] Stakeholders. Sobre el informe. Calidad según los stakeholders sistema Componentes y Middleware Arquitectura de Software Componentes y Middleware [1] Componentes Middleware Políticas y mecanismos Ejemplo de notación ad-hoc Hernán Astudillo Departamento de Informática

Más detalles

JavaEE. www.javasoft.com

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

Más detalles

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Página 1 de 21 CUALIFICACIÓN DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC154_3 Versión 5 Situación RD 1087/2005 Actualización

Más detalles

Arquitectura de Software Componentes y Middleware [1] Componentes y Middleware. Sobre el informe

Arquitectura de Software Componentes y Middleware [1] Componentes y Middleware. Sobre el informe Arquitectura de Software Componentes y Middleware [1] Hernán Astudillo Departamento de Informática Universidad Técnica Federico Santa María Componentes y Middleware Componentes Middleware

Más detalles

Arquitectura cliente/servidor

Arquitectura cliente/servidor Departamento de Lenguajes y Sistemas Informáticos Arquitectura cliente/servidor Programación en Internet Curso 2004-2005 Índice Introducción Tipos de servidores Ventajas Separación de funciones Modelos

Más detalles

BOLETÍN DE NOVEDADES Barcelona, junio de 2006

BOLETÍN DE NOVEDADES Barcelona, junio de 2006 BOLETÍN DE NOVEDADES Barcelona, junio de 2006 Introducción El objeto de este documento es presentar y describir brevemente las principales actuaciones en los últimos meses de Carver en algunos de sus clientes,

Más detalles

Herramienta de Gestión Integral de E-Business

Herramienta de Gestión Integral de E-Business Herramienta de Gestión Integral de E-Business Ingeniería técnica de informática de sistemas Autor: David López Martín Tutor: Antoni Oller Arcas Índice Introducción Metodología Análisis Diseño Planificación

Más detalles

Arquitectura de Software

Arquitectura de Software Arquitectura de Software Deployment Viewpoint Departamento de Ingeniería de Sistemas y Computación Agenda del día 1. Deployment Viewpoint 2. Viewpoints / Views 3. Ejercicio 2 Usos Deployment Viewpoint

Más detalles

Plataforma de Administración Electrónica de la Comunidad Autónoma de la Región de

Plataforma de Administración Electrónica de la Comunidad Autónoma de la Región de Plataforma de Administración Electrónica de la Comunidad Autónoma de la Región de Murcia Director General de Informática Consejería de Economía y Hacienda Comunidad Autónoma de la Región de Murcia Jefe

Más detalles

Ingeniería de Software en SOA

Ingeniería de Software en SOA Ingeniería de Software en SOA ECSDI LSI-FIB-UPC cbea Curso 2014/2015 ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 1 / 51 Índice 1 Directrices para la IS en SOA 2 Modelo de referencia

Más detalles

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web Arquitectura 1.- Aplicaciones Web Definición Contenidos 1.- Aplicaciones Web 2.- Arquitectura de aplicaciones Web Lo que distingue una aplicación Web de una mero sitio Web reside en la posibilidad que

Más detalles

2.1 Compuertas para Bases de Datos

2.1 Compuertas para Bases de Datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Uno de los aspectos mas importantes en un sistema multibase de datos es la forma en como llevar a cabo la comunicación

Más detalles

TABLA DE CONTENIDO 1. REQUERIMIENTOS NO FUNCIONALES... 2

TABLA DE CONTENIDO 1. REQUERIMIENTOS NO FUNCIONALES... 2 TABLA DE CONTENIDO Pág. 1. REQUERIMIENTOS NO FUNCIONALES... 2 1.1 ATRIBUTOS DE CALIDAD DEL SISTEMA... 2 1.2 OTROS REQUERIMIENTOS NO FUNCIONALES... 4 1.3 REQUERIMIENTOS NO FUNCIONALES PARA HERRAMIENTAS

Más detalles

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez jimezam@gmail.com

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez jimezam@gmail.com Modelos de los sistemas distribuidos Jorge Iván Meza Martínez jimezam@gmail.com Especialización en Gestión de Redes de Datos Universidad Nacional de Colombia Sede Manizales 1/36 Contenidos Modelo arquitectónico

Más detalles

Arquitectura de aplicaciones

Arquitectura de aplicaciones Arquitectura de aplicaciones Arquitectura en capas API API dic-08 alb@uniovi.es 2 Layers y Tiers Layer: capa arquitectónica de la aplicación software Presentación, lógica, persistencia Tier: capa física

Más detalles

Antes de imprimir este documento piense en el medio ambiente!

Antes de imprimir este documento piense en el medio ambiente! Versión 1.0 Página 1 de 14 1. OBJETIVO: Suministrar la metodología que se aplicará para la estimación de esfuerzo para los desarrollos nuevos en el ICBF, para lo cual se detallan los aspectos a tener en

Más detalles

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1) TECNOLOGÍAS (1/2) (L1) EJB ( Enterprise Java Beans ) JSP ( Java Server Pages ) JNDI ( Java Naming and Directory Interface ) JDBC ( Java Data Base Connectivity ) Java Mail JSF ( Java Server Faces ) TECNOLOGÍAS

Más detalles

IBM Rational Asset Manager

IBM Rational Asset Manager Inteligencia comercial para sus activos de software IBM Rational Asset Manager Aspectos destacados Acelera la prestación de servicios y mejora la dirección general interna del ciclo de vida SOA Acorta

Más detalles

El Framework de desarrollo del Consejo

El Framework de desarrollo del Consejo El Framework de desarrollo del Consejo Superior de Investigaciones Científicas Director de la OPCSIC Centro Técnico de Informática (CSIC) Directora Centro Técnico de Informática (CSIC) Palabras clave Framework,

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

Arquitecturas de Integración

Arquitecturas de Integración Arquitecturas de Integración Ing. Gastón Escobar Ing. Nicolás Passerini Ing. Juan Arias Ing. Santiago Blanco 2006 Agenda Enterprise Architecture Integración de Sistemas Evolución histórica Métodos de integración

Más detalles