ejercicioscap_12COMPLETO

8
Ingeniería de Software Capítulo 12 Resolución de ejercicios del libro de Somerville Miguel Betancourt Alexis Tacuri Fernando Salas 03/12/2013

Transcript of ejercicioscap_12COMPLETO

Page 1: ejercicioscap_12COMPLETO

Capítulo 12

Resolución de ejercicios del libro de Somerville

Miguel BetancourtAlexis TacuriFernando Salas

03/12/2013

Page 2: ejercicioscap_12COMPLETO

Capítulo 12

12.1 Explique por qué los sistemas distribuidos son intrínsecamente más escalables que los sistemas centralizados. ¿Cuáles son los Límites más probables de la escalabilidad del sistema?Un sistema distribuido es escalable si sigue siendo eficaz como el número de usuarios y / o recursos aumento

Control de costos de los recursoso El número de usuarios aumenta

Control de la pérdida de rendimientoo Aumenta el número de usuarioso Estructuras jerárquicas tienen mejores tiempos de búsqueda que las

estructuras lineales Prevención de los recursos

o Difícil de predecir Evitar los cuellos de botella de rendimiento

o Los recursos se utilizan frecuentementeo Descentralizar algoritmos.

12.2. ¿Cuáles la diferencia fundamental entre una aproximación de cliente rico y una de cliente ligero para el desarrollo de sistemas cliente servidor? Explique porqué el uso de Java como lenguaje de implementación atenúa la diferencia entre estas aproximaciones.

En un sistema de cliente rico, parte del procesamiento de aplicaciones se realiza en el cliente, mientras que en un sistema de cliente ligero sólo se muestra la interfaz de usuario en el cliente y todo el procesamiento de la solicitud se lleva a cabo en el servidor. Java borra la distinción, ya que permite el desarrollo de applets que pueden ser descargados en el cliente en tiempo de ejecución. Dependiendo de la funcionalidad del applet, esto permite un grado de control sobre el procesamiento que se lleva a cabo en el cliente

12.3 Su cliente quiere desarrollar un sistema para almacenar información en donde los distribuidores pueden acceder a la información de las compañías, y pueden evaluar varios escenarios de inversión usando un sistema de simulación. Cada distribuidor usa esta simulación de forma diferente, de acuerdo con su experiencia y el tipo de almacenes con los que trabaja. Sugiera una arquitectura cliente-servidor para este sistema que muestre dónde se localiza la funcionalidad. Justifique el modelo cliente-servidor que usted ha elegido.

Dado que la simulación se lleva a cabo de manera diferente entre los distribuidores y todas las partes cruciales son los datos de cada población y de información de la compañía, es eficaz el desarrollo de un modelo de cliente-gordo donde el servidor guarda los datos y de la aplicación se encuentra en el escritorio del usuario.

Es un método rápido donde el usuario puede solicitar un conjunto de datos consistentes y simular que bajo la aplicación que reside en el equipo de un usuario.

1

Page 3: ejercicioscap_12COMPLETO

12.4 Haciendo referencia al modelo de aplicación mostrado en la Figura 12.4, comente los problemas que podrían tener lugar al convertir un sistema heredado de la década de los 80 que utiliza un mainframe para procesamiento de pólizas de seguros a una arquitectura cliente-servidor.

Un problema podría surgir porque no hay una clara separación entre las presentaciones, capas de procesamiento de solicitud y / o gestión de datos.

En sistemas más antiguos por lo general están todos entrelazados y puede ser difícil separar estos sistemas para producir la separación requerida.

La falta de la documentación del sistema y el sistema obsoleto que ya no se utiliza puede llevarnos a un problema de entender el flujo del programa.

12.5. ¿Cuáles son las facilidades básicas que puede proporcionar un intermediario de peticiones de objetos?

El Object Request Broker (ORB) gestiona la interacción entre clientes y servidores. Esto incluye las responsabilidades de computación distribuida de la ubicación, las referencias y la 'maniobra' de los parámetros y resultados.

2

Page 4: ejercicioscap_12COMPLETO

La especificación CORBA define una arquitectura de interfaces y servicios que deben ser prestados por el ORB, no hay detalles de la implementación. Estos son componentes modulares tan diferentes implementaciones se podría utilizar, satisfacer las necesidades de diferentes plataformas. El ORB gestiona las interacciones entre clientes e implementaciones de objetos. Los clientes se demandan a las peticiones e invocar métodos de objeto implementaciones.

12.6 Explique por qué el uso de objetos distribuidos con un intermediario de peticiones de objetos simplifica la implementación de sistemas cliente-servidor escalable. Ilustre su respuesta con un ejemplo.

En un sistema de cliente-gordo, parte del procesamiento de aplicaciones se realiza en el cliente, mientras que en un sistema de cliente delgado sólo se muestra la interfaz de usuario en el cliente y todo el procesamiento de la aplicación se lleva a cabo en el servidor. Java borra la distinción, ya que permite el desarrollo de applets que se pueden descargar en el cliente en tiempo de ejecución. Dependiendo de la funcionalidad del applet, esto permite un grado de control sobre el procesamiento que se lleva a cabo en el cliente.

El uso de objetos distribuidos y un ORB simplifica la implementación de sistemas escalables ya que es muy fácil de agregar servidores adicionales en la forma de objetos distribuidos en el sistema. Estos se pueden introducir sin perturbar otras partes del sistema. Un ejemplo podría ser un servidor web que puede ser fácilmente replicado como el número de usuarios aumenta

12.7 ¿Cómo se usa el IDL de CORBA para soportar comunicaciones entre objetos que han sido implementados en diferentes lenguajes de programación? Explique por qué esta aproximación puede ocasionar problemas de rendimiento si hay diferencias sustanciales entre los lenguajes usados para la implementación de los objetos.

CORBA IDL creará un formato estándar para ser utilizado entre los lenguajes de programación. Por lo tanto la definición, desplazamiento y la orientación de cada una de las partes se define por el IDL. A continuación, el compilador de IDL traducirá esa información en las estructuras correctas para cada idioma.

3

Page 5: ejercicioscap_12COMPLETO

Esto puede provocar bajones de rendimiento si los idiomas (o máquinas) son de una arquitectura radicalmente diferente y, una gran cantidad de tiempo se puede perder la para entrelazar los formatos.

12.8. Usando una aproximación de objetos distribuidos, proponga una arquitectura para un sistema nacional de venta de entradas para teatros en donde los usuarios puedan comprobar la disponibilidad de Ias localidades y reservar éstas en un grupo de teatros. El sistema debería soportar devoluciones de entradas para que Ia gente pueda devolver sus entradas y que éstas se puedan vender a otros clientes en el último momento.

Se propondria la arquitectura de corba para poder realiar los diferentes servicios y que tendriamos una seria de estos como son los siguientes:

Servicio de comprobación de boletos Servicio de reservación Servicion de compra Servicio de devolución Servicio de recompra

Entonces ya que tenemos algunos servicios seria una excelente idea para realizar las diferentes peticiones de servicios. Ademas los servivios probablemente serán requeridos por muchas aplicaciones distribuidas

12.9 Indique dos ventajas y dos desventajas de las arquitecturas peer-to-peer descentralizadas y semicentralizadas.

Ventajas de las arquitecturas P2P descentralizadas:

Menos vulnerable a ataques de denegación de servicio. Escalable el rendimiento del sistema no debería verse afectado negativamente por la

adición de los compañeros.

Desventajas de las arquitecturas P2P descentralizadas:

Peer comunicaciones más difíciles de organizar. Más caro para descubrir lo que se dispone de los compañeros en la red.

Ventajas de las arquitecturas P2P semicentralizados:

Fácil de llevar un registro de lo que se dispone de los compañeros. Intercambio de datos Peer se ha simplificado que se lleva a cabo a través del servidor.

Desventajas de las arquitecturas P2P semicentralizados:

El fallo de servidor da como resultado la falta de disponibilidad del sistema. Vulnerable al ataque de denegación de servicio en el servidor.

4

Page 6: ejercicioscap_12COMPLETO

12.10 ¿Cuáles son las ventajas del enlace dinámico en un sistema orientado a servicios?

VENTAJAS: Reduce el nivel de acoplamiento. Clara definición de roles de desarrollo. Definición de seguridad más clara. Fácil testeo. Mejora la mantención. Favorece la reutilización. Favorece el desarrollo en paralelo. Permite fácil escalabilidad. Permite un mapeo directo entre los procesos y los sistemas. Permite un monitoreo preciso.

12.11. Para el sistema de información del vehículo, explique porqué es mejor que el software del vehículo se comunique con un servicio global en lugar de hacerlo directamente con servicios de información individuales.

El sistema de información del coche en un sistema integrado con funcionalidad limitada y la potencia de procesamiento. Se ejecuta el servicio de agregación en un servidor externo de gran alcance por lo que su funcionamiento no es limitado por los recursos como la memoria o la capacidad del procesador. Por lo tanto, es mucho más simple para el servicio de agregación para hacer frente a los fallos de los servicios de suministro de información individual en lugar de incrustar esto en el sistema local en el automóvil. Sólo necesita hacer frente a la unión a los servicios de agregación alternativas.

12.12 El desarrollo de la computación orientada a servicios se ha basado en la especificación y adopción temprana de estándares. Comente el papel general de la estandarización para soportar y restringir la competición e innovación en el mercado del software.

Con la estandarización tiene sus ventajas como la fácil implementación de subsistemas y la fácil adaptación de componentes para un funcionamiento adecuado. Sin embargo también tiene una desventaja, que muchas veces la estandarización propone ciertos límites al desarrollo, con los cuales la innovación y consecuentemente la competencia se ven afectados.

5