Ingeniería de Software. Hernán Astudillo Departamento de Informática Universidad Técnica Federico Santa María <hernan at acm.org>

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

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

Arquitectura de Software V: Prácticas. Contenido del curso

TEMA 5. Otras arquitecturas distribuidas III. Otros entornos de objetos distribuidos

CURSO. Programación web JAVA JEE. Civil, sistemas, diseño

Guía del Curso Analista Programador Java: Business Apps Expert

Java EE 6: Desarrollo de componentes de negocio con JMS y EJBs

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

Desarrollo de Componentes de Negocio con Tecnología

Sistemas Distribuidos Orientados a Objetos

Ingeniería de Software Arquitectura y Diseño [2]

Tema 1. Introducción a Java EE

Introducción al Desarrollo de Aplicaciones Empresariales

Unidad de Competencia I Elementos de Competencia Requerimientos de información

Contenido del curso. Arquitectura de Software III: Elaboración. III: Elaboración. Estilos y patrones. Estilos y patrones. Estilos de arquitectura

Diseño e Implementación con Tecnologías de Integración de Aplicaciones

Enterprise Java Beans. JBoss AS. Ronier Rodríguez

Objetos Distribuidos - Componentes. Middleware

Diseño e Implementación con Tecnologías de Integración de Aplicaciones

SOA: Panorama WEB-SERVICES

Oracle 10g: Creación de Aplicaciones J2EE

Aplicaciones web construidas a base de componentes:

Diseño e Implementación con J2EE

Implementación de Componentes

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V

Una arquitectura de componentes provee, desde el punto de vista de un. sistema computacional, la definición de las partes esenciales del proceso de

[CASI v.0109] Pág. 1

Descripción de Servicios

APLICACIONES DE INTERNET: SOAP

Ingeniería de Software IV: Requerimientos (cont.)

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)

Diseño e Implementación con J2EE

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET 2010

Middleware para Aplicaciones basadas en Componentes Distribuidos

Propuesta de Arquitectura. Grupo Técnico RedVUCE

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

Caso J2EE. Necesidades del negocio. Arquitectura Luther

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)

Web Services. Profs. María Feldgen y Osvaldo Clúa. (Profesores María Feldgen y Osvaldo Clúa) 1: Sistemas Distribuidos

Experto en Desarrollo de Componentes de Negocio con Tecnología Empresarial Java Beans

Diseño e Implementación con J2EE

Programación Web Tema 1: Arquitectura C / S

Middleware para Aplicaciones basadas en Componentes Distribuidos

Analista Programador Java: Business Apps Expert

TEMA 54 La arquitectura JEE

Ingeniería del Software II

Arquitectura cliente/servidor

JAVA EE 5. Arquitectura, conceptos y ejemplos.

CURSO SUPERIOR COMPONENTES DE NEGOCIO ARQUITECTO J2EE

JavaEE.

Sistemas Distribuidos

Cambios en Ingeniería de Software

Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1

Objetos Distribuidos

DISEÑO E IMPLEMENTACIÓN DE APLICACIONES EMPRESARIALES CON MOVILIDAD. 1 OBJETIVOS...1

5. Modelos de Sistemas Distribuidos

JAVA 2 ENTERPRISE EDITION

APLICACIONES EMPRESARIALES CON JEE. Profesores: Andrés Farías

Fecha de elaboración: 25/05/2010 Fecha de última actualización: 17/06/2010. F1182 Aplicaciones distribuidas 1/8

BROKER Publicador Suscriptor. Jonnathan Corredor Lorena Arrieta Alejandro Mosquera

Arquitecturas Empresariales y la plataforma J2EE

Arquitectura cliente/servidor

Tema 1: Introducción a las tecnologías de integración de aplicaciones

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN BASES DE DATOS

Desarrollando servidores de información con Java

Master Microsoft Visual Studio.NET 2010 Desarrollo de aplicaciones

Programa de la asignatura Curso: 2009 / 2010 SISTEMAS DISTRIBUIDOS (4463)

Presentación de la Asignatura.

Diseño de la Arquitectura Lógica con Patrones. mayo de 2008

DIPLOMADO EN JAVA JSE Y JEE

Programación Docente: Ingeniería de Protocolos de Comunicaciones.

APLICACIONES DISTRIBUIDAS. Código de asignatura: 3871 Grado en Ingeniero en Informática Curso: 2011/2012

5.4 Elaboración de programas de estudio Desarrollo de Aplicaciones empresariales

Desarrollo de Software con

El Proceso Unificado Rational para el Desarrollo de Software.

1.-DATOS DE LA ASIGNATURA

Sistemas Distribuidos Sincronización, Concurrencia y Transacciones

Plataforma desarrollo Java

Ingeniería de Software IV: Requerimientos

Analista Programador Java: Business Apps Expert

SISTEMAS EN TIEMPO REAL

<HTML> <IMG src= logo.gif > </HTML> Lógica de negocio. Dsfg dsfg sdfg. Sdfgdfg dfg Dsf gsdfg sdfg. Dfg. Sdfgdfg dfg. Dfg. Dsf gsdfg sdfg.

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

Desarrollo y servicios web Sesión 18

Hora 1 1. Introducción 2. Web semántica 2.1 Ontologías 2.2 Lenguajes 2.3 Ejemplos 2.4 Estado actual Microformatos 2.4.

UNIVERSIDAD NACIONAL DE ITAPUA U.N.I. Creada por Ley Nº:1.009/96 del 03/12/96 Facultad de Ingeniería PROGRAMA DE ESTUDIOS

PROGRAMA. Los objetivos de la materia son que el alumno al finalizar el cursado haya aprendido a:

Introducción a Sistemas Peer to Peer

MARCANDO LA DIFERENCIA

Postgrado en Servicios Java. Experto Desarrollador de Componentes de Negocio

Estilos Arquitectónicos

Carlos A. Olarte BDII. CORBA Una arquitectura para integrar ambientes distribuidos y


Diego Seco Material adaptado de: Miguel R. Luaces y Óscar Pedreira {luaces, Laboratorio de Bases de Datos Universidade da Coruña

Introducción a SOA (II) Huibert Aalbers Senior Certified Software IT Architect

Maestría en Ingeniería

DATOS DE IDENTIFICACIÓN DEL CURSO Departamento de Ciencias Computacionales ACADEMIA A LA QUE PERTENECE: Técnicas Modernas de Programación

Transcripción:

Ingeniería de Software Hernán Astudillo Departamento de Informática Universidad Técnica Federico Santa María <hernan at acm.org>

Componentes y organizaciones

Componentes Componente [Whitehead] Pieza separable (independiente del contexto) de software ejecutable...que tiene sentido como unidad...y puede interoperar con otros componentes...dentro de un ambiente de apoyo...y es accesable sólo vía sus interfaces...y está listo para usar (posiblemente requiriendo instalación y configuración) Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 3

diagrama de componentes levitator.exe (Win32) mod_levit (Apache) UsmViews.dll (Win32) GTK.dll Aqua.dll Kerber10.dll (Win32) [*** EJEMPLO ***] Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 4

Fuentes de componentes Dominio (entidades, propiedades...) Interfaces Capas de abstracción ( máquinas virtuales ) Instanciaciones de arquetipos Componentes Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 5

Interoperabilidad Problema: cooperación entre componentes Número exponencial de pares de tecnologías Mecanismos estandarizados para describir interfaces CORBA IDL COM IDL Interoperabilidad entre tecnologías Modelos de componentes COM, CORBA, EJB Wrappers (envoltorios) Servicios ofrecidos/esperados Propiedades transaccionales Manejo de seguridad Monitoreamiento Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 6

Modelos de componentes [1/3] Modelos de componentes distribuidos (clientes y servidores) COM: Common Object Model (Microsoft; en.net) CORBA: Common ORB Architecture (OMG: Object Management Group) ORB: Object Request Broker Java (Sun, JCP) Modelos extendidos para mejor apoyar servidores MTS (Microsoft Transaction Service) CCM (CORBA Component Model) EJB (Enterprise Java Beans) J2EE (Java 2 Enterprise Edition) Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 7

Modelos de componentes [2/3] Modelos extendidos con soporte adicional Manejo transaccional Seguridad Persistencia Disponibilidad Clustering, balanceo de carga Ambiente de ejecución Ciclo de vida (instanciación, GC...) Threading Pooling de conexiones Manejo de estado Monitoreamiento dinámico Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 8

Modelos de componentes [3/3] Servicios Location (ubicación) detección de componentes/servicios; análogo a guía telefónica JNDI (Java Naming & Directory Interface) CORBA Naming Service & Trading Service Manejo de transacciones autenticación, autorización, inviolabilidad, no-repudiación (además de ACID) CORBA Security Service JAASL: Java Authentication & Authorization Service Eventos, notificaciones & mensajería Mensajes asíncronos, point-to-point & publish-subscribe CORBA Notification (& Event) Services, Messaging Service JMS: Java Messaging Service Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 9

Organizaciones para reuso Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 10

Empresas y reuso Hasta ahora: Conciencia personal de que hay recursos reusables para evitar reinventar la rueda Problema: Cómo hacer que (la mayoría de) el personal de una empresa lo sepa? Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 11

Incentivar reusabilidad Problema: Quién es responsable de hacer/gestionar componentes reusables? idea: asociar escalas de arquitectura a niveles de la organización estandarizar vía lenguaje compartido arquitectura de referencia patrones y estilos 3 niveles: empresa (p.ej. Kerberos para seguridad) departamento (unidad) (p.ej. UsmViews para UI) proyecto (p.ej. mod_levit para levitación) Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 12

Incentivar reuso Problema: Propiedad y control de componentes Pueden no calzar con las unidades organizacionales Control de cambios: quién lo hace? Redundancia: quién factoriza? y a dónde? Soluciones Imponer propiedad y/o factorización Reestructurar la organización Separar componentes compartidos a otra unidad Mercado interno de componentes Decidir quién paga el costo de hacer casos generales Decidir quién paga cambios específicos Decidir modelo de propagación de cambios a los afectados Propiedad: unidades de negocio vs. centralizada Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 13

Terminología de mercado

2 Capas 2 capas: cliente-servidor Razón: concentrar recursos escasos en servidores centralizados Redundancia mínima Rendimiento puede sufrir Autonomía mínima Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 15

3 capas 3 capas Razón: compartir datos, preservando integridad (ACID) Negocio : procesamiento propio del negocio 2 partes: objetos de negocio (entidades del dominio) y lógica de control (funciones) Presentación : interacción con usuarios (incl. informes) y otros sistemas Datos : manejo de datos persistentes (incl. integridad) Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 16

4 capas Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 17

4 capas (Cont.) Usuario : mecanismos de interacción con usuarios y otros sistemas Workspace : manejo de sesiones y transacciones Negocio (empresa): procesos y entidades del negocio Recursos : elementos únicos compartidos (BD, sistemas legado, servicios) Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 18

Recursos y referencias Ivar Jacobson, Martin Griss, Patrik Jonsson Software Reuse: Architecture, Process and Organization for Business Success, Addison Wesley (1997) Brett McLaughlin Building Java Enterprise Applications, Vol. 1: Architecture, O'Reilly (2002) Marc T. Sewell, Laura M. Sewell The Software Architect's Profession: An Introduction, Prentice Hall (2001) Sesión 10 [2004/v/25] Ingeniería de Software - H.Astudillo 19