lunes, 26 de noviembre de 2012

Cliente - Servidor

En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama modelo Cliente-Servidor, éste es un modelo que intenta proveer usabilidad, flexibilidad, interoperabilidad y escalabilidad en las comunicaciones.
El término Cliente/Servidor fue usado por primera vez en 1980 para referirse a PC’s en red.

Este modelo Cliente/Servidor empezó a ser aceptado a finales de los 80’s. Su funcionamiento es sencillo: se tiene una máquina cliente, que requiere un servicio de una máquina servidor, y éste realiza la función para la que está programado (nótese que no tienen que tratarse de máquinas diferentes; es decir, una computadora por sí sola puede ser ambos cliente y servidor dependiendo del software de configuración).
 
DEFINICION:
Sistema distribuido entre múltiples procesadores donde hay clientes que solicitan servicios y servidores que los proporcionan. Separa los servicios situando cada uno en su plataforma más adecuada.
 
EL MODELO CLIENTE - SERVIDOR:

Desde el punto de vista funcional, se puede definir la computación Cliente/Servidor como una arquitectura distribuida que permite a los usuarios finales obtener acceso a la información en forma transparente aún en entornos multiplataforma.
 
En el modelo cliente servidor, el cliente envía un mensaje solicitando un determinado servicio a un servidor (hace una petición), y este envía uno o varios mensajes con la respuesta (provee el servicio).

En un sistema distribuido cada máquina puede cumplir el rol de servidor para algunas tareas y el rol de cliente para otras. 
 
La idea es tratar a una computadora como un instrumento, que por sí sola pueda realizar muchas tareas, pero con la consideración de que realice aquellas que son mas adecuadas a sus características. 

Si esto se aplica tanto a clientes como servidores se entiende que la forma más estándar de aplicación y uso de sistemas Cliente/Servidor es mediante la explotación de las PC’s a través de interfaces gráficas de usuario; mientras que la administración de datos y su seguridad e integridad se deja a cargo de computadoras centrales tipo mainframe. Usualmente la mayoría del trabajo pesado se hace en el proceso llamado servidor y el o los procesos cliente sólo se ocupan de la interacción con el usuario (aunque esto puede variar). 

En otras palabras la arquitectura Cliente/Servidor es una extensión de programación modular en la que la base fundamental es separar una gran pieza de software en módulos con el fin de hacer más fácil el desarrollo y mejorar su mantenimiento.
 
Esta arquitectura permite distribuir físicamente los procesos y los datos en forma más eficiente lo que en computación distribuida afecta directamente el tráfico de la red, reduciéndolo grandemente.
 
 

SALA LIMPIA




La utilización integrada del modelado de ingeniería del software convencional, métodos formales, verificación de programas (demostraciones de corrección) y estadística SQA se han combinado en una técnica que puede dar lugar a un software de calidad extremadamente alta. La ingeniería del software de sala limpia es un enfoque que hace hincapié en la necesidad de incluir la corrección en el software a medida que éste se desarrolla. En lugar del ciclo clásico de análisis, diseño, pruebas y depuración, el enfoque de sala limpia sugiere un punto de vista distinto :

 

La filosofía que subyace tras la ingeniería del software de sala limpia consiste en evitar la dependencia de costosos procesos de eliminación de defectos, mediante la escritura de incrementos de código desde un primer momento, y mediante la verificación de su corrección antes de las pruebas.  Su modelo de proceso incluye la certificación estadística de calidad de los incrementos de código, a  medida que estos se van añadiendo con el sistema.

 

En muchos aspectos, el enfoque de sala limpia eleva la ingeniería del software a otro nivel. Al igual que las técnicas de métodos formales que se presentaban en el Capítulo 25, el proceso de sala limpia hace hincapié en el rigor en la especificación y en el diseño, y en la verificación formal de cada uno de los elementos del modelo de diseño Resultante mediante el uso de pruebas de corrección basadas en fundamentos matemáticos. Al extender el enfoque adoptado en los métodos formales, el enfoque de sala limpia hace hincapié también en técnicas de control estadístico de calidad, incluyendo las comprobaciones basadas en el uso anticipado del software por parte de los clientes.

 

EL ENFOQUE DE SALA LIMPIA.

 

La filosofía de la «sala limpian en las técnicas de fabricación de hardware es en realidad algo bastante sencillo:

se trata de una forma rentable y eficiente, en términos de tiempo, de establecer un enfoque de fabricación que impida la introducción de defectos de producción. En lugar de fabricar un producto y dedicarse después a eliminar defectos, el enfoque de sala limpia demanda la disciplina necesaria para eliminar errores en las especificaciones y en el diseño, fabricando entonces el producto de forma «limpia».

La filosofía de sala limpia fue propuesta por primera vez para la ingeniería del software por parte de Mills y sus colegas  durante los años 80. Aun cuando las primeras experiencias acerca de este enfoque disciplinado para los trabajos relacionados con el software mostraba promesas significativas , no ha alcanzado una amplia utilización. Henderson sugiere tres posibles razones:

1- La creencia en que la metodología de sala limpia es excesivamente teórica, excesivamente matemática y excesivamente radical para utilizarla en el desarrollo de software real.

2- No propugna una comprobación unitaria por parte de los desarrolladores, sino que la sustituye por una verificación de la corrección y por un control estadístico de la calidad -estos conceptos que representan una desviación fundamental con respecto a la forma en que se desarrolla la mayor parte del software en la actualidad-.

3- La madurez de la industria de desarrollo del software. El uso de procesos de sala limpia requiere una aplicación rigurosa de procesos definidos en todas las fases del ciclo de vida. Dado que la mayor parte de la industria funciona todavía en el nivel ad hoc (según se ha definido por parte del Software Engineering Institute Capability Maturity Model), la industria no ha estado preparada para aplicar estas técnicas.

Aun cuando existen ciertos indicios de verdad en todas las indicaciones expresadas anteriormente, los posibles beneficios de la ingeniería del software de sala limpia compensan más que sobradamente la inversión requerida para superar la resistencia cultural que se encuentra en el núcleo de estas objeciones.

 

La estrategia de sala limpia:

El enfoque de sala limpia hace uso de una versión especializada del modelo incremental de software. Se desarrolla un «cauce de incrementos de software»  por parte de equipos de ingeniería del software pequeños e independientes. A medida que se va certificando cada incremento, se integra en el todo. Consiguientemente, la funcionalidad del sistema va creciendo con el tiempo.

 

Los requisitos globales del sistema o producto se van desarrollando empleando los métodos de ingeniería de sistemas. Una vez que se ha asignado una funcionalidad al elemento de software del sistema, el tubo de la sala limpia comienza sus incrementos. Se producen las tareas siguientes:
Planificación de incrementos. Se desarrolla un plan de proyecto que adopta la estrategia incremental. Se van estableciendo las funcionalidades de cada uno de los incrementos, su tamaño estimado y un plan de desarrollo de sala limpia. Es preciso tener especial cuidado para asegurar que los incrementos certificados se vayan integrando de forma temporalmente oportuna.

Recolección de requisitos. Mediante el uso de técnicas similares a las presentadas en el Capítulo 1 1, se desarrolla una descripción más detallada de requisitos del nivel del usuario (para cada incremento).

 

Especificación de la estructura de cajas. Se utiliza un método de especificación que hace uso de estructuras de caja para describir la especificación funcional.

Ajustado a los principios de análisis operacional, la estructura de caja «aísla y separa la definición creativa del comportamiento, de los datos, y de los procedimientos para cada nivel de refinamiento».

Diseño formal. Mediante el uso del enfoque de estructura de cajas, el diseño de sala limpia es una extensión natural y sin discontinuidades de la especificación. Aun cuando es posible efectuar una distinción clara entre estas dos actividades, las especificaciones (que se denominan «cajas negras>>)s e refinan iterativamente (dentro de cada incremento) para transformarse en diseños análogos a la arquitectura y a los procedimientos (que se denominan «cajas de estado» y «cajas trasparentes», respectivamente).

 

Verificación de corrección. El equipo de sala limpia lleva a cabo una serie de rigurosas actividades de verificación de corrección aplicadas primero al diseño y después al código. La verificación comienza con la estructura de cajas del más alto nivel (la especificación) y avanza hacia el detalle de diseño y el código. El primer nivel de verificación de corrección se lleva a cabo aplicando un conjunto de cuestiones de corrección» [LIN88]. Si este conjunto de preguntas no demuestra que la especificación es correcta, se utilizan métodos más formales (matemáticos) de verificación.

 

Generación de código, inspección y verificación: Las especificaciones de estructura de caja, que se representan mediante un lenguaje especializado, se traducen al lenguaje de programación adecuado. Se utilizan entonces técnicas estándar de recorrido o de inspección para asegurar el cumplimiento semántico de las estructuras de código y de cajas, y la corrección sintáctica de código. A continuación, se efectúa una verificación de corrección para el código fuente.


Planificación de la comprobación estadística. La utilización estimada del software se analiza, se planifica y se diseña un conjunto de casos de prueba que ejerciten la «distribución de probabilidad» de esa utilización. Según se muestra en la, esta actividad de sala limpia se realiza en paralelo con la especificación, la verificación y la generación de código.

 

Comprobación estadística de utilización. Recordando que es imposible una comprobación exhaustiva del software de computadora, siempre resulta necesario diseñar un conjunto finito de casos de prueba. Las técnicas estadísticas de utilización ejecutan una colección de pruebas derivadas de una muestra estadística (la distribución de probabilidad indicada anteriormente) de todas las posibles ejecuciones del programa por parte de todos los usuarios de una cierta población objetivo.

Certificación. Una vez que se ha finalizado la verificación, la inspección y la comprobación de utilización (y después de corregir todos los errores) se certifica el incremento como preparado para su integración.


Al igual que otros modelos de proceso del software descritos en otras partes de este libro, el proceso de sala limpia hace especial hincapié en la necesidad de conducir unos modelos de análisis y de diseño de muy alta calidad
. Según se verá posteriormente en este capítulo, la notación de estructura de cajas no es más que otra forma para que el ingeniero del software pueda representar los requisitos y el diseño. La distinción real del enfoque de sala limpia consiste en que se aplica la verificación formal a los modelos de ingeniería.

 

Preguntas de Ingenieria de Sistemas


1-¿CUAL ES EL ORIGEN DE LA INGENIERIA DE SISTEMAS?

R:Durante los ultimos 50 años los sistemas basados en computadora han introducido ,aunque la tecnologia ha conseguido grandes avances.La ingeniería del software aparece como consecuencia de un proceso denominado ingeniería de sistemas, en lugar de centrarse únicamente en el software la ingeniería de sistemas se centra en diversos elementos, analizando, diseñando y organizando esos elementos de un sistema que puede ser producto.
 
 
 
2-¿EN QUE CONSISTE CADA ELEMENTO DEL SISTEMA BASADO EN COMPUTADORAS?
R: Software, que son Programas de computadora, con estructuras de datos y su documentación que hacen efectiva la logística metodología o controles de requerimientos del Programa.
  Hardware, dispositivos electrónicos y electromecánicos, que proporcionan capacidad de cálculos y funciones rápidas, exactas y efectivas (Computadoras, Censores, maquinarias, bombas, lectores, etc.), que proporcionan una función externa dentro de los Sistemas.
  Personal, son los operadores o usuarios directos de las herramientas del Sistema.
  Base de Datos, una gran colección de informaciones organizadas y enlazadas al Sistema a las que se accede por medio del Software.
  Documentación, Manuales, formularios, y otra información descriptiva que detalla o da instrucciones sobre el empleo y operación del Programa.
  Procedimientos, o pasos que definen el uso especifico de cada uno de los elementos o componentes del Sistema y las reglas de su manejo y mantenimiento.



3-EXPLIQUE C/U DE LAS RESTRICCIONES QUE EL EQUIPO TRABAJA PUEDE EMITIR PARA CONSTRUIR UN MODELO DE SISTEMAS.
Restricciones  del modelo de sistema:
*Supuestos: reduce el numero de permutaciones y variaciones posibles, permitiendo así el modelo a reflejar el problema de manera razonable.
*Simplificaciones - Generalizar: permite crear el modelo a tiempo.
*Limitaciones - Tamaño BBDD: son los que ayudan a delimitar el sistema.
*Restricciones: es una guía para crear el modelo y el enfoque que se toma al implementarlo.
*Preferencias: indica la arquitectura preferida para los datos, funciones y tecnologia.la solución preferida entra a veces en conflicto con otros factores restrictivos.


4-¿EN QUE CONSISTE
LA INGENIERIA DE PROCESO DE NEGOCIO?

R:Un proceso de negocio es un conjunto de tareas
 relacionadas lógicamente llevadas a cabo para lograr
 un resultado de negocio definido. Cada proceso de
negocio tiene sus entradas, funciones y salidas. Las
 entradas son requisitos que deben tenerse antes de
 que una función pueda ser aplicada. Cuando una
función es aplicada a las entradas de un método,
 tendremos ciertas salidas resultantes.

La ingeniería de proceso de negocio es un
 acercamiento para crear un plan general para
 implementar la arquitectura de computación

arquitectura de datos

arquitectura de aplicaciones.
             
arquitectura de la tecnología.


5-¿EN QUE CONSISTE LA INGENIERIA DE
PRODUCTO?

R:La meta de la ingeniería de producto es traducir el
deseo del cliente con todas sus características y
requisitos de un conjunto de capacidades definidas a
un producto operativo.

La expresión ingeniería de producto se refiere al
proceso de diseño y desarrollo de un equipo, sistema
o aparato de forma tal que se obtiene un elemento
apto para su comercialización mediante algún
proceso de fabricación 
 
 
 
 
 

Esquema de Modelo de Sistema

 
 
 
En una empresa tricotextil, se tiene el siguiente organigrama