2011Integración de Aplicaciones Desarrollo Basado en Componentes.

Slides:



Advertisements
Presentaciones similares
2010Ing. de Sistemas II Persistencia en EJB3 Pasos para crear entity beans.
Advertisements

Arquitecturas de administración de redes y sus submodelos
Lenguaje Unificado de Modelado
Introducción a LAS Bases de Datos
Carlos Rojas Kramer Universidad Cristóbal Colón
Metodologías orientadas a objetos
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Guia Diseño Robert Echeverria
Tecnología Cliente Servidor
Teórico: Introducción
Java 2 Platform Enterprise Edition
Análisis y Diseño de Aplicaciones Ingeniería de Software
Administración de Procesos de Pruebas
Ingeniería del Software
ARQUITECTURA DE LOS SISTEMAS OPERATIVOS DISTRIBUIDOS
Aspectos Avanzados de la Tecnología de Objetos
Desarrollo de Software Basado en Componentes
M.S.C. Ivette Hernández Dávila
HERRAMIENTAS CASE.
Se viven nuevos escenarios
Modelado Arquitectónico
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
Arquitectura de una aplicación
DISEÑO DE SOFTWARE 1ª. Parte
Bases de Datos Relacionales.  Responsable Cátedra: Silvina Migani  JTP: Liliana Romera  Ayudante:
El Proceso de Software es la única manera de desarrollar sistemas de calidad. F. o V. Justifica tu respuesta. Que tiene que ver la globalización.
Desarrollo de aplicaciones para ambientes distribuidos
Sistemas Distribuidos
Arquitectura Orientada a Servicios
Tecnología para la Comunidad
METODOLOGÍA OMT Diseño de sistemas.
Ingeniería de Software
VII Congreso de Expotecnología UVM 2007 Jonás A. Montilva C.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Ingeniería de software
Arquitectura de Software
Capítulo 8 Arquitectura de las aplicaciones en Internet.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
SISTEMA DE INFORMACIÓN AMBIENTAL “Fortalecimiento Institucional del DAMA para el Manejo Ambiental Urbano de Bogotá D.C.” SIA.
Capítulo #7: Estructura Organizacional Global
Términos y Conceptos Básicos
Ingeniería Industrial
Diseño Arquitectonico
Modelo de 3 capas.
INGENIERIA DE SOFTWARE
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: material asignatura CS169,Software Engineering,
Metodologías Lsi. Katia Tapia A., Mae.
 Sara Isabel Osorio Alcaraz Ana Isabel Vallejo Grisales 10 Informática 1.
CONTRATOS DE CLIENTES Orlando Sedamano Cornejo Marco Bustinza
Un buen método para la reducción de costos
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
DESARROLLO DE APLICACIONES PARA AMBIENTES DISTRIBUÍDOS ALUMNOS: MARIANA MIGNÓN RÉDING CARLOS ANTONIO CARRASCO MARTÍNEZ PROFESOR: DR. JOSÉ BERNARDO PARRA.
Procesos itil Equipo 8.
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
PLANEACIÓN DE PROCESOS ASISTIDOS POR COMPUTADORA
Instituto Tecnológico de puebla Materia Desarrollo de aplicaciones para ambientes distribuidos Catedrático Dr. José Bernardo Parra Alumnos Cesar Mauricio.
Ingeniería en Informática F UNDAMENTOS DE C OMPUTACIÓN B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
The Arquitecture of Service - Orientation Integrantes : Ricardo Macedo Henry Renato Paz Carolina Vigil.
INGENIERIA DE SOFTWARE
DISEÑO DE COMPONENTES Y DESARROLLO BASADO EN COMPONENTES
Proceso de desarrollo de Software
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
Capas de ingeniería del Software. Rosendo Antonio Manuel Ingeniería en Sistemas Computacionales.
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Fundamentos de Ingeniería de Software
Autores: Myriam Montes, Iván Viera, Carlos Caizaguano, José Sancho
Conociendo el modelo Cliente-Servidor
BASES DE DATOS DISTRIBUIDAS M.C.C. María Guadalupe Villanueva Carrasco INGENIERIA EN SISTEMAS COMPUTACIONALES.
Servicio de Implementación Proceso de Desarrollo de Software Ventanilla Única de Comercio Exterior Mexicana.
Entregables del Proyecto
Transcripción de la presentación:

2011Integración de Aplicaciones Desarrollo Basado en Componentes

Características Aplicaciones empresariales Los sistemas están altamente acoplados con la organización, procesos y modelo de negocios de la compañía –Dependencias entre departamentos –Relaciones con partners externos Alto número de requerimientos –En muchos casos, requerimientos en conflicto y no bien definidos … Los procesos de negocio cambian constantemente –Deben reflejarse rápidamente en la estructura de IT Los sistemas no funcionan aisladamente –Alto nivel de dependencias entre múltiples sistemas Evolución de sistemas con alto nivel de heterogeneidad y redundancias

Aplicaciones empresariales: Situación Actual Los sistemas no son flexibles Imponen limitaciones para la adaptación de la organización a nuevos contextos Los sistemas tienen ineficiencias Los desarrollos son más costosos que los resultados obtenidos

Razones de la dificultad de adaptación Técnicas Dificultad de modificación del código Decisiones de diseño que afectan la adaptación futura Organizacionales El equipo del proyecto pasa a otros proyectos Mantenimiento desarrollado por trabajadores con menos experiencia Superada la fase de euforia del nuevo sistema, el apoyo del management suele caer Restricciones de presupuesto para efectuar los cambios en forma adecuada

2010Ing. de Sistemas II Aplicaciones empresariales Requerimientos deseables –Simplicidad –Comprensible para técnicos y no técnicos –Flexibilidad –Adaptabilidad a cambios en el contexto –Mantenibilidad –Cambios locales no deben impactar globalmente –Reusabilidad –Reducir costos y minimizar redundancias –Bajo acoplamiento entre funcionalidad y tecnología –Evitar dependencias de tecnologías específicas –Permitir evolución tecnológica, con menor impacto en negocio

Rol de la Ingeniería de Software Aplicación de principios y métodos ingenieriles para la producción de software en escala industrial Producto: –Cost-effective –Confiable –Calidad Proceso: –Sistemático –Controlado –Eficiente Incluye: Desarrollo Operación Mantenimiento

Por qué es una ingeniería? Los ingenieros se desempeñan tomando una serie de decisiones, evaluando opciones cuidadosamente y seleccionando en cada punto de decisión una alternativa que es apropiada para la tarea en desarrollo y en el contexto actual. Los ingenieros enfatizan el uso de un proceso disciplinado cuando crean un diseño Los ingenieros aplican herramientas sistemáticamente en el proceso; la elección y uso de la herramienta adecuada es clave. Los ingenieros reusan diseños y artefactos. Las disciplinas ingenieriles avanzan por medio del desarrollo y validación de nuevos principios, estandares y best practices

Objetivos Ing. de Software Producir productos de software de calidad Proceso de desarrollo eficiente Posibilitar la evolución de los sistemas, en una forma eficiente Permitir la integración de distintos tipos de sistemas Independencia de la tecnología

Requerimientos no funcionales Performance Mantenibilidad Extensibilidad Flexibilidad Reusabilidad Confiabilidad Seguridad

Evolución de los Paradigmas Pascal, Ada, COBOL, RPG Metodologías estructuradas C++, Eiffel, OOA/D CORBA 2.0, DCOM, UML CORBA 3.0, EJB, DNA, Componentes de negocio Programación estructurada Orientación a Objetos Objetos Distribuidos Desarrollo basado en componentes

2 capas vs. 3 capas Aplicaciones 2 capas: Cliente / Servidor Ej. terminales remotas conectadas a mainframes centrales (thin-client) Generalmente aplicaciones data-intensive Aplicaciones 3 capas: Introduce una capa adicional para el manejo de la lógica de negocio Mas adecuadas para aplicaciones con mayor procesamiento / lógica Permite una evolución a N capas

Aplics. 2 capas vs. 3 capas Las arquitecturas de 2 capas son típicas de: Ambientes con pocos clientes Ambientes homogéneos Las arquitecturas de 3 capas se requieren para: Tener escalabilidad con miles de clientes Acceso a fuentes de datos heterogéneas Mantenibilidad (la actualización de la lógica está encapsulada)

Servidores de Aplicación Capa central donde se ejecuta la lógica de la aplicación Mantenida independientemente de los clientes y de las bases de datos Un conjunto estandarizado de frameworks y servidores sobre los cuales construir aplicaciones empresariales

Servidores de Aplicación Algunos servicios provistos: –Concurrencia –Coordinación de transacciones –Seguridad –Administración de recursos (ej. BDs) –Distribución entre distintos servidores –Comunicación entre distintas partes del sistema distribuido –Naming Estos servicios son configurables

Servidores de aplicación La lógica de negocios de una aplicación debe ser escrita y deployada dentro de un servidor de aplicaciones El servidor de aplicaciones provee un conjunto de servicios, disponibles para la aplicación, y define las interfaces para accederlos Provee también capacidades para deployar una aplicación Sugiere un modelo de programación para instalar el software –Modelo de componentes

Modelos de componentes Un modelo de componentes describe como diseñar y construir aplicaciones. Las aplicaciones consisten de un conjunto de componentes, que interactúan entre sí. El servidor de aplicaciones debe soportar este modelo de componentes –Ejemplos: COM EJB

Objetivos del desarrollo basado en componentes Lograr los mismos niveles de plug-and- play, disponibles en otras industrias Circuitos integrados --> componentes de software Placa --> frameworks de aplicación, contenedores

Qué es un componente? Tiene una interfaz bien definida Se inserta en un contenedor específico Una pieza de software que: –Es accedida sólo via interfaces –Es construida para su customización, composición y colaboración con otros componentes –Tiene un tamaño adecuado para su reuso, reemplazo y mantenimiento –Su tamaño también permite su distribución, deployment y soporte –Es entregado dentro de un paquete self-contained Puede ser desarrollado, distribuido e instalado independientemente

Componentes vs.Objetos Un componente puede verse como: Una forma de agrupar implementaciones de objetos en una sola entidad Una entidad que puede ser ensamblada dentro de un sistema más grande Un componente debe insertarse dentro de un modelo de componentes (contenedor) El componente debe seguir las reglas establecidas por el modelo de componentes El componente puede usar el conjunto de servicios establecido por el modelo

Porqué desarrollo basado en componentes? Mejor manejo de la complejidad Reduce tiempo de entrega Incrementa productividad Permite el desarrollo paralelo y distribuido Reduce costos de mantenimiento Permite usar el mejor de su clase

Referencias Large-Scale, Component-Based Development, Alan Brown, Prentice-Hall, Software Architecture in Practice, L. Bass, P. Clements, R. Kazman, Addison-Wesley, 2003 Software Architecture: perspectives on an emerging discipline, M. Shaw, D. Garlan, Addison-Wesley, 1996.