MATERIA:DESARROLLO DE APLICACIONES PARA AMBIENTES DISTRIBUIDOS.

UNIDAD I. Panorama general de las aplicaciones distribuidas


Tarea I


AMBIENTE DISTRIBUIDO.

1.-¿Qué es un ambiente distribuido?

Definición formal: Es una aplicación con distintos componentes que se ejecutan en entornos separados normalmente en diferentes plataformas y a través de una red. Definición Informal: son los sitios en donde múltiples base de datos están ligados por un sistema de comunicación en donde un usuario en cualquier sitio pueda acceder a los datos.

2.-¿Para que me sirve?

Para enlazar una comunicación entre distintas computadoras de una red compartiendo recursos



TAREA II

Evolución de las aplicaciones informáticas.

La evolución de las aplicaciones informáticas se dio debido a los siguientes factores:
1. Trabajo a distancia.
2. Compartir información.
3. Accesibilidad.
4. Seguridad en la protección de la información (tener la base de datos particionada en dos o más nodos).
5. Independencia lugares.
En la actualidad cualquier aplicación cuenta generalmente con tres partes diferenciadas:
1. Una interfaz de usuario: Elemento con el que interacciona el usuario de la aplicación, ejecutando acciones, introduciendo u obteniendo información.
2. Lógica ó Reglas de negocio: Son las que procesan la información para generar los resultados que persiguen, siendo el elemento fundamental que diferencia unas aplicaciones de otras.
3. Gestión de datos: Se ocupa del almacenamiento y recuperación de la información.

Evolución de las aplicaciones informáticas:
· Aplicaciones 2,3 y n capas
· Aplicaciones C/S
· Aplicaciones monolíticas
· Aplicaciones distribuidas


TAREA III


Escenarios de utilización de las aplicaciones distribuidas.

Algunas de las aplicaciones distribuidas más conocidas son remote login, correo electrónico, navegación Web, streaming, telefonía IP y compartición de ficheros (P2P).

Algunos escenarios que utilizan aplicaciones distribuidas son:




  • PHP
    *Eduacaión a distancia - moddle.
    *Creación de blogs - Wordpress.
    *Creador de wikis - MediaWiki.
    *Administrar BD en web - PHPMyAdmin.

  • ASP
    *E-commerce - eCAM.
    *E-commerce - ProdMentor.
*Sistemas portales-Easy post Card

UNIDAD II Arquitectura de aplicaciones distribuida


Tarea I

1. ¿Qué es la Arquitectura?


Término general que se aplica a la estructura de un sistema informático o de una parte del mismo. El término se aplica también al diseño del software de sistema, por ejemplo, el sistema operativo, y a la combinación de hardware y software básico que comunica los aparatos de una red informática
La arquitectura de ordenadores se refiere a toda una estructura y a los detalles necesarios para que sea funcional, es decir, cubre sistemas informáticos, microprocesadores, circuitos y programas del sistema. Por lo general, el término no suele referirse a los programas de aplicación, como hojas de cálculo o procesadores de textos, que son necesarios para realizar una tarea pero no para que el sistema funcione.
2. ¿Qué es una Arquitectura en un Ambiente Distribuido?
Es un concepto Holístico, que habrá que construirse. Describe la estructura y la organización de los Componentes del software, sus propiedades y la conexión entre ellos. Entre los componentes del software se incluyen los módulos del programa y las Diversas representaciones de datos que este manipula. Por tanto, el diseño de datos es una parte integral de la derivación de la arquitectura de software. La arquitectura destaca las decisiones iníciales del diseño y proporciona un mecanismo para considerar los beneficios de estructuras de sistema alternas.

3. En qué consiste la capa de interfaz de usuario:

Es el medio con que el usuario puede comunicarse con una maquina, un equipo o una computadora y comprende todos los puntos de contacto entre el usuario y el equipo, normalmente suelen ser fáciles de entender y fáciles de accionar.

TEREA II

  • ¿Que es la integración de sistema heredado?

Un sistema heredado es un componente técnicamente obsoleto de un entorno de gestion de contenido.la integración de sistemas heredados puede definirse como la reutilización de sistemas y aplicaciones heredadas existentes, qué se logran mediante la integración con aplicaciones corporativas desarrollada recientemente. Brinda un método no intrusivo para reutilizar aplicaciones críticas que residen en sistemas heredados. El utilizar estos recursos existentes tienen mucha ventajas, entre ellas un riesgo reducido y ahorro significativos (flexibilidad, disponibilidad y facilidad de mantenimiento).

TAREA III

¿Qué es la distribución de elementos de una aplicación en ambientes distribuidos?

La distribución se refiere a la construcción de software por partes, a las cuales le son asignadas un conjunto específico de responsabilidades dentro de un sistema especifico.




Esta distribución habla de que las partes o componentes se encuentran en entornos separados para realizar esta separación física, primero se tienen que tener clara la separación lógica; de las partes de aplicación.

· Separación física: no es en todas las ocasiones “maquinas diferentes” de acuerdo a arquitecturas también puede ser la ubicación de un conjunto de funcionalidades en archivos, rutas sobre tecnologías de la misma maquina.
· Distribución lógica: separación por capas.las capas son un conjunto de servicios especializados que pueden ser accesibles por múltiples clientes y deben ser fácilmente reutilizables.




TAREA IV

Servicio de arquitectura web.Un servicio web es un conjunto de de protocolos y estándares que sirven para cambiar datos entre aplicaciones.los servicios web proporcionan una forma estándar de interoperabilidad entre diferentes aplicaciones de SW que se ejecutan en una variedad de plataformas y/o marcos.La arquitectura no trata de especificar cómo se implementan los servicios web, y no impone ninguna restricción sobre la forma en que los servicios web puedan ser cambiados. La arquitectura de los servicios web es una arquitectura de interoperabilidad identifica los elementos globales de la web de la red global de servicios que se requieren a fin de de garantizar la interoperabilidad en los servicios web.” La interoperabilidad es la capacidad que tiene un sistema, cuyas interfaces son totalmente conocidas, para funcionar con otros productos o sistemas existentes o futuros y sin restricción de acceso o implementación”.
Estructura general de los objetos que utilizan los servicios web.
ü El servidor remoto contienen la URL base y las credenciales.
ü El servicio web define los parámetros e la configuración para el objeto asociado.
ü El objeto asociado define los parámetros de configuración remota.
Base de Datos: Una base de datos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico. Las bases de datos tradicionales se organizan por campos, registros y archivos. Un campo es una pieza única de información; un registro es un sistema completo de campos; y un archivo es una colección de registros. Aplicación:Una aplicación es un tipo de programa informático diseñado como herramienta para permitir a un usuario realizar uno o diversos tipos de trabajo. Esto lo diferencia principalmente de otros tipos de programas como los sistemas operativos (que hacen funcionar al ordenador), las utilidades (que realizan tareas de mantenimiento o de uso general), y los lenguajes de programación (con el cual se crean los programas informáticos).
Transacciones: Una transacción es generalmente definida como una unidad de trabajo que se hace a nombre de una aplicación o componente. Cada transacción puede estar compuesta de múltiples operaciones realizadas en datos que están dispersos en uno o varios procesos o en una o varias máquinas. Cada transacción asegura el trabajo de proteger la integridad del estado de un sistema al proveer cuatro garantías básicas conocidas como las propiedades ACID: · Atomicidad (atomicity). Una transacción tiene que ser atómica lo que significa que es indivisible; todas las operaciones deben ejecutarse o ninguna en lo absoluto. No debe haber posibilidad de que solo una parte se ejecute. · Consistencia (consistency). Una transacción mantendrá la consistencia de la base de datos. Esto es, si la base de datos se encuentra en un estado consistente antes de ejecutar la transacción, una vez que ésta termine la consistencia de la base de datos deberá conservarse. · Aislamiento (isolation) Se dice que un conjunto de transacciones está aislado si el efecto del sistema que las ejecuta es el mismo que si ejecutara cada una a la vez; las transacciones se ejecutan en secuencia. · Durabilidad (durability). Cuando una transacción termina de ejecutarse, todas sus actualizaciones se graban en algún tipo de medio de almacenamiento, típicamente disco, en donde se asegura que las actualizaciones no se perderán. Aun si el sistema operativo falla, los resultados de la transacción son almacenados en disco y podrán ser encontrados ahí cuando se recupere el sistema operativo. Más aún, la durabilidad a menudo debe mantenerse por un periodo largo.
Sistema Operativo: Un Sistema Operativo (SO) es el software básico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario. Las funciones básicas del Sistema Operativo son administrar los recursos de la máquina, coordinar el hardware y organizar archivos y directorios en dispositivos de almacenamiento.Los Sistemas Operativos más utilizados son Dos, Windows, Linux y Mac. Algunos SO ya vienen con un navegador integrado, como Windows que trae el navegador Internet Explorer.
Wireless (wi-fi, sin cable)
Se denomina Wireless a las comunicaciones inalámbricas, en las que se utilizan modulación de ondas electromagnéticas, radiaciones o medios ópticos. Estás se propagan por el espacio vacío sin medio físico que comunique cada uno de los extremos de la transmisión. Wi-fi: Es una abreviatura de Wireless Fidelity, es un conjunto de estándares para redes inalámbricas basado en las especificaciones IEEE 802.11.
Capas de interfaz de usuario o presentación. La capa de interfaz de usuario la constituye el software con el que el usuario interactúa para operar con la aplicación. Esto convierte a la capa de interfaz de usuario en una mera fachada de los procesos que son gestionados por las diferentes capas. Las capas de presentación suelen ser “delgadas”, es decir, contienen pocas líneas de código, ya que su función principal está cubierta por las características de los elementos “visuales” que las componen. Una tendencia creciente es la separación entre diseño y código, ya existente, por ejemplo, en las aplicaciones web dinámicas.

UNIDAD III. Diseno de aplicaciones distribuidas

TAREA I

  • Definir diseño:
Es un termino utilizado habitualmente en el contexto de las artes aplicadas, ingeniería, arquitectura y otras disciplinas creativas, diseño es considerado tanto sustantivo como verbo.se define como un proceso o labor a , proyectar, coordinar, seleccionar y organizar un conjunto de elementos para producir y crear objetos visuales destinados a comunicar mensajes específicos a grupos determinados.
  • Una implementación:
Es la realización de una especificación técnica o algoritmos como un programa, componente software, u otro sistema de cómputo. Muchas implementaciones son dadas según a una especificación o un estándar.

  • Diseño de aplicaciones distribuidas.
El diseño de una aplicación distribuida implica la toma de decisiones sobre su arquitectura lógica y física, así como sobre la tecnología e infraestructura que se emplearán para implementar su funcionalidad. Para tomar estas decisiones, se debe tener un conocimiento claro sobre los procesos que realizará la aplicación (sus requisitos funcionales), así como los niveles de escalabilidad, disponibilidad, seguridad y mantenimiento necesarios (sus requisitos no funcionales, funcionales u operativos).
El diseño de aplicaciones modernas involucra la división de una aplicación en múltiples capas; la interfase de usuario, la capa media de objetos de negocios, y la capa de acceso a datos. Puede ser útil identificar los tipos de procesamiento que podemos esperar que una aplicación realice. Muchas aplicaciones pueden, al menos, hacer lo siguiente:
  • Cálculos u otros procesos de negocios.
  • Ejecución de reglas de negocios.
  • Validación de datos relacionados al negocio.
  • Manipulación de datos.
  • Ejecución de las reglas de datos relacional.
  • Interactuar con aplicaciones externas o servicios.
  • Interactuar con otros usuarios.


unidad Iv. Implementación de procesamiento de datos


TAREA I
  • Diseño e implementación del manejo de datos.
Se decide la arquitectura de la aplicación y se determina qué componentes son objetos locales y cuáles deberían ser accesibles remotamente. Este paso incluye.


      1. Definir las interfaces remotas.
      2. Implementar los objetos remotos.
      3. Implementar los clientes.
  • Diseño

El diseño del sistema de información describe el plan general o el modelo que se propone para ese sistema. Contiene todas las especificaciones que le dan forma y estructura al sistema. Durante la etapa de diseño, el desarrollador debe trasformar los requisitos del sistema en una estructura de alto nivel, identificando sus componentes principales y sus relaciones, tal como las verá el usuario, este diseño se denomina diseño global. El diseño global muestra lo que la solución hará, describe sus entradas y salidas, las funciones de procesamiento, los modelos de datos y controles.Luego de esta etapa se aborda el diseño detallado, que produce las especificaciones reales para el hardware, el software y las bases de datos físicas. El diseño detallado trasforma un diseño abstracto en un sistema de funciones e interacciones entre personas y máquinas.
  • Implementación

Programación: lo que sigue en el proceso de desarrollo es traducir las especificaciones de la solución en un sistema informático operativo, para ello se traducen las especificaciones del sistema en código de programas. Luego de escritos los programas, es necesario llevar a cabo pruebas para certificar que el sistema produce resultados correctos. Se comienza probando cada programa por separado, luego el funcionamiento del sistema como un todo. Para, por último proponer su instalación y realizar la última prueba, en el escenario de operaciones, por los usuarios.
  • Implantación


Este proceso es el de instalación definitiva del software en el escenario en el que será utilizado. Este proceso, involucra un período de conversión del sistema viejo a sistema nuevo. Este proceso de conversión, se puede abordar de diferentes maneras:
  1. En paralelo, se utilizan ambos sistemas durante un tiempo hasta que todos están seguros de que el nuevo funciona correctamente.
  2. Directo, se reemplaza el sistema viejo por el nuevo en un día determinado,
  3. Prueba piloto, se implanta el sistema en un área y luego se va hacia las demás, por etapas o simultáneamente,
  4. Por fases, se introduce por funciones.
La adopción de un diseño distribuido de aplicaciones empresariales, aumenta la reusabilidad, reduce la cantidad de recursos, y los costes necesarios de desarrollo y mantenimiento. Este nuevo enfoque de diseño pone en manos de los desarrolladores no solo la funcionalidad que demandan las aplicaciones, sino también la seguridad, rapidez y flexibilidad.



TAREA III
¿Qué es la distribución de elementos de una aplicación en ambientes distribuidos?
· La distribución se refiere a la construcción de software por partes, a las cuales le son asignadas un conjunto específico de responsabilidades dentro de un sistema específico. Esta distribución habla de que las partes o componentes se encuentran en entornos separados para realizar esta separación física, primero se tienen que tener clara la separación lógica; de las partes de aplicación.


  • Separación física: no es en todas las ocasiones “maquinas diferentes” de acuerdo a arquitecturas también puede ser la ubicación de un conjunto de funcionalidades en archivos, rutas sobre tecnologías de la misma máquina.
  • Distribución lógica: separación por capas.las capas son un conjunto de servicios especializados que pueden ser accesibles por múltiples clientes y deben ser fácilmente reutilizables.



UNIDAD V

Tarea I

Lenguaje de marcadoUn “Lenguaje de marcado” o “lenguaje de marcas” se puede definir como una forma de codificar un documento donde, junto con el texto, se incorporan etiquetas, marcas o anotaciones con información adicional relativa a la estructura del texto, su presentación. Permiten hacer explícita la estructura de un documento, su contenido semántico o cualquier otra información lingüística o extralingüística que se quiera hacer patente
Ejemplos:
• <fecha>El día <date>22/11/2006 </date>tuvo lugar ...</fecha> <subr>Móstoles</subr>a<subr>2 de noviembre</subr>
Los lenguajes de marcado se pueden clasificar en:
· Procedimental: Describen operaciones tipográficas· Estructural: Describen la estructura lógica de un documento, pero no su tipografía· Híbrido: Combinación de ambos
Otra posible clasificación sería:
· De presentación: Indica el formato del texto (información para el maquetado).· De procedimientos: Orientado también a la presentación pero, en este caso, se indican los procedimientos que deberá realizar el SW de representación.· Descriptivo o semántico: Describen las diferentes partes en las que se estructura el documento pero sin especificar cómo deben representarse.
Algunos lenguajes de marcado específicos:

ü Documentación electrónica:§ RTF§TeX§ Wikitexto§ DocBook

ü Tecnologías de internet§ HTML, XHTML§ RDF (recurso-propiedad(relación)-valor)§ RSS

TAREA II

Interfaz de texto.

Es un tipo de interfaz en donde el usuariosólo puede utilizar comandos de texto para realizar las tareas. Un ejemplo es el sistema operativo DOS


Interfaz gráfica de usuario.
Es un tipo de visualización que permite al usuario elegir comandos, iniciar programas y ver listas de archivos y otras opciones utilizando las representaciones visuales (iconos) y las listas de elementos del menú. Las selecciones pueden activarse bien a través del teclado o con el ratón.

TAREA III.

ProgramaciónLa programación es el proceso de diseñar, escribir, probar, depurar y mantener el código fuente de programas computacionales El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El código fuente es un conjunto de líneas de texto que son las instrucciones que debe seguir la computadora para ejecutar dicho programa
La creación de las interfaces de usuario ha sido un área del desarrollo de software que ha evolucionado dramáticamente a partir de la década de los setentas. La interfaz de usuario es el vínculo entre el usuario y el programa de computadora. Una interfaz es un conjunto de comandos o menús a través de los cuales el usuario se comunica con el programa. Esta es una de las partes más importantes de cualquier programa ya que determina que tan fácilmente es posible que el programa haga lo que el usuario quiere hacer. Un programa muy poderoso con una interfaz pobremente elaborada tiene poco valor para un usuario no experto. La elaboración de una interfaz de usuario, bien diseñada, exige una gran dedicación pues generalmente las interfaces son grandes, complejas y difíciles de implementar, depurar y modificar. Hoy en día las interfaces de manipulación directa (también llamadas interfaces gráficas de usuario, GUI por sus siglas en inglés) son prácticamente universales. Las interfaces que utilizan ventanas, íconos y menús se han convertido en estándar en los materiales computacionales.. Programación del lado del clienteCon la programación del lado del cliente se pueden validar algunos de los datos en la máquina cliente antes de enviarlos al servidor. Esto proporciona a los usuarios informes de error inmediatos, mientras siguen en esa página de formulario y sin necesidad de volver atrás tras recibir un mensaje de error. Puede resultar necesario acceder a una base de datos para validar determinados valores, mientras que no suele disponer de un acceso directo a la base de datos en la máquina del cliente, aunque ese acceso a la base de datos es factible. Programación del lado del servidor
La programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un script en el servidor web para generar páginas HTML dinámicamente como respuesta .Los primeros servidores web permitían visualizar exclusivamente información estática. Esto presentó pronto una limitación; sobre todo desde el momento en el que la actividad publicitaria y comercial comenzó a concentrarse también en Internet. La primera solución técnica realizada fue la posibilidad de que el servidor web ejecutase programas residentes en la máquina de servicio. Esta tecnología, conocida como Common Gateway Interface (CGI) permitía lanzar programas escritos principalmente en C o Perl.


Unidad 6 Integración Aplicaciones Distribuidas


6.1 Asignación Partes Aplicación.

Una aplicación con distintos componentes que se ejecutan en entornos separados, normalmente en diferentes plataformas conectadas a través de una red. Las típicas aplicaciones distribuidas son de dos niveles (cliente-servidor), tres niveles (cliente-middleware-servidor) y multinivel.

Componentes de una aplicación distribuida.

Una aplicación distribuida que sigue el modelo cliente-servidor tiene los siguientes componentes:

· Lado servidor: Programa que se ejecuta en un computador que está conectado a una red. Esta a la escucha en un puerto, esperando las peticiones de los clientes; por ejemplo, un servidor Web escucha en el puerto 80. Un computador que ejecuta un servidor de aplicación necesita estar conectado a la red para responder a las peticiones de los clientes.

· Lado cliente: Programa que ejecuta el usuario de la aplicación. El cliente hace sus peticiones al servidor a través de la red. Por ejemplo, un navegador Web.

· Protocolo de aplicación para la comunicación entre el cliente y el servidor. El protocolo define el tipo de mensajes intercambiados; por ejemplo, el protocolo de la capa de aplicación de la Web, HTTP, define el formato y la secuencia de los mensajes transmitidos entre el navegador y el servidor Web.

· Formato de los mensajes que se intercambian, algunas veces forma parte del servicio; por ejemplo, en el correo electrónico se define el formato de los mensajes electrónicos.

ü Dependiendo de la forma de interacción entre las partes, tenemos distintos modelos de aplicaciones:

– Orientado a los mensajes.

– Redes entre iguales (p2p), computación en malla (Grid).

– Cliente/Servidor

• Orientado a los mensajes.- Para aplicaciones que pueden tolerar cierto nivel de independencia frente al tiempo de las respuestas. Los mensajes se intercambian mediante colas de mensajes. Al no comunicarse directamente, los programas pueden estar ocupados, no disponibles o simplemente no ejecutándose cuando se produce la comunicación.

• Redes entre iguales (p2p), computación en malla (Grid).- Todos los miembros del sistema son iguales. No hay tareas predefinidas entre ellos. Comparten recursos: disco (emule, kazaa, edonkey, etc) o CPU (seti@home)

• Cliente/Servidor.- Las aplicaciones se dividen en dos partes: una de ellas (cliente) inicia la comunicación con una petición y la otra (servidor) responde a esa petición. El servidor se ha tenido que ejecutar antes que el cliente y normalmente suministra un servicio.

Tipos de servicios

Un servidor es una pieza de software que espera por peticiones de clientes, las procesa y envía el resultado al cliente.

– Entre cliente y servidor se utiliza el modelo de comunicación petición/respuesta.

– El servidor ha sido activado siempre antes que el cliente y espera pasivamente por las solicitudes de servicio.

• Un servicio es cualquier tarea que el cliente pueda invocar de manera independiente.

– Un servidor puede suministrar múltiples servicios.

Ejemplo: Servidor de ficheros.

– Crear fichero

– Borrar fichero

– Leer fichero

– etc.……


6.2 Distribución Aplicación.

La distribución refiere a la construcción de software por partes, a las cuales les son asignadas un conjunto específico de responsabilidades dentro de un sistema.

Una aplicación distribuida sería una pieza de software que se ejecuta en máquinas distintas, concurrentemente, cada una de las partes se comunica con las otras y puede realizar un trabajo o tarea.

Cada aplicación considera el nodo local como una cache de los recursos disponibles en todo el sistema distribuido. En el caso de aplicaciones centralizadas, éstas se limitan a utilizar dicha cache ignorando la ubicación de los recursos (pensando que son locales). En cambio, las distribuidas pueden solicitar la asignación de recursos en las ubicaciones que deseen y controlar la revocación de tal modo que se mantengan en el nodo local (en la cache) los recursos convenientes (revocando primero aquellos recursos que sea más barato traer al nodo local, y no aquellos que sea costoso volver a obtener debido a su ubicación u otros factores). En este sentido es crucial que el kernel permita a las aplicaciones escoger las unidades de recurso que han de revocarse, de otro modo el sistema escogería él mismo las unidades a revocar y ello sin tener una idea exacta de para qué se emplea cada una de ellas.


El kernel permite que peticiones locales al sistema puedan operar con recursos remotos, eso es todo lo que hace.
Por un lado, una aplicación centralizada se puede distribuir ``automáticamente'' interponiendo entre ella y el sistema un algoritmo distribuido de asignación y revocación de recursos. De este modo la distribución será como sigue:


  • Ante una petición de recursos, el algoritmo de asignación puede solicitar recursos remotos (o locales) al kernel.
  • La aplicación realizará peticiones al sistema empleando dichos recursos de manera transparente. Sean éstos locales o remotos, el kernel atenderá las peticiones.
  • Ante una eventual revocación, el algoritmo de revocación empleado puede optar por eliminar primero los recursos que sean mas ``baratos'' en términos de posición y uso.
  • Por otro lado, una aplicación distribuida puede emplear algoritmos específicos de asignación y revocación sin necesidad de conformarse con un algoritmo general que funcione bien en el caso medio. Cuando el sistema ve que el recurso es remoto es la propia implementación del servicio la que contacta con el nodo remoto usando protocolos específicos de cada aplicación (esto es, realizando una up-call). Esto no es lo mismo que emplear una IPC distribuida que alcanza un núcleo remoto sin que el local se entere de ello. Si se distribuyen sólo las IPCs podemos tener problemas en el uso de referencias a memoria de usuario en las llamadas al sistema (una referencia local no es válida en el nodo remoto). Estas pueden ocasionar mensajes extra en la red o el envió de datos innecesarios.


6.3 Instalación de Componentes.

Un componente es un elemento de software que encapsula una serie de funcionalidades. Un componente es una unidad independiente, que puede ser utilizado en conjunto con otros componentes para formar un sistema más complejo.Instalar los componentes software de acuerdo con el análisis de los requerimientos de información y la tecnología del equipo, utilizando los manuales del fabricante que garantice su funcionamiento y las necesidades del cliente.Ejecutar el mantenimiento físico interno y externo de los equipos de cómputo y las tarjetas aplicando las técnicas e insumos apropiados para garantizar su estado de operación según manuales y procedimientos establecidos.

Verificar el estado de operación del equipo aplicando herramientas de software legales según el manual de procedimientos de la empresa y respondiendo a las necesidades del cliente.Se ha convertido en un principio ampliamente aceptado en el diseño de aplicaciones distribuidas la división de la aplicación en componentes que ofrezcan servicios de presentación, institucionales y de datos. Los componentes que realizan tipos de funciones similares se pueden agrupar en capas, que en muchos casos están organizados en forma de apilamiento para que los componentes que se encuentran por "encima" de una capa determinada utilicen los servicios proporcionados por ésta, y un componente especifico utilizará la funcionalidad proporcionada por otros componentes de su propia capa, y otras capas "inferiores", para realizar su trabajo.

Esta visión dividida de una aplicación también se puede aplicar a los servicios. Desde un punto de vista de alto nivel, se puede considerar que la solución basada en servicios está formada por varios servicios, los cuales se comunican entre sí pasando mensajes. Desde el punto de vista conceptual, los servicios se pueden considerar como componentes de la solución global. Sin embargo, internamente el servicio está formado por componentes de software, al igual que cualquier otra aplicación, los cuales se pueden agrupar de forma lógica en servicios de presentación, institucionales y de datos.

6.4 Configuración de Componentes.
Los componentes de acceso a datos normalmente necesitan lo siguiente:

• Necesitan tener la capacidad de asignar nombres de orígenes de datos lógicos a parámetros de la conexión física (por ejemplo, para asignar la base de datos "Ventas" a una cadena de conexión real).

• Si los componentes de acceso a datos realizan un enrutamiento dinámico de datos, necesitará contar con datos de configuración que expresen los parámetros (por ejemplo, región del cliente), algoritmos (por ejemplo, hash) y destinos del enrutamiento (por ejemplo, cadenas de conexión para las bases de datos). Es común incluir la lógica del enrutamiento dinámico de datos en un componente de utilidad distinto.


Las aplicaciones requieren datos de configuración para funcionar técnicamente. Los valores que modifican el comportamiento de las directivas (seguridad, administración operativa y comunicaciones) se consideran datos de configuración. Los datos de configuración se conservan en los archivos de configuración de .NET a nivel de usuario, equipo y aplicación. La configuración personalizada almacenada aquí se puede definir con cualquier esquema y se puede tener fácil acceso mediante el uso de la clase ConfigurationSettings en su aplicación. Es muy importante tener en cuenta la confidencialidad de seguridad de la conexión; por ejemplo, no debe almacenar cadenas de conexión SQL en texto no cifrado en los archivos de configuración XML, especialmente si contienen credenciales SQL. Debería limitar el acceso a la información de seguridad a los operadores adecuados y a fin de disponer de una mayor seguridad, debería considerar la firma digital de la información para asegurarse de que los datos de configuración no se han modificado. Los datos de configuración se pueden almacenar en varios lugares, cada uno de ellos con sus ventajas e inconvenientes:

ü Archivos de configuración XML: el almacenamiento de los datos de configuración aquí permite a los clientes de su aplicación trabajar sin conexión y este modelo resulta fácil de implementar. Con aplicaciones de cliente enriquecido, este enfoque puede suponer un aumento en los costos de administración de los cambios, ya que requiere que todos los clientes dispongan de la misma información de configuración.

ü SQL Server o el almacén de datos de la aplicación: se trata de la ubicación de almacenamiento normal para los datos de configuración administrados por la aplicación, pero aún más para los metadatos de las aplicaciones. Si almacena aquí la configuración, se recomienda que guarde los metadatos en una base de datos de SQL Server distinta de la de los datos empresariales. El acceso a la base de datos supone a menudo una mejora en el rendimiento, por lo que debería considerar el almacenamiento en caché.

ü Active Directory: dentro de una organización, puede decidir almacenar los metadatos de la aplicación en Active Directory. De este modo, los clientes del dominio pueden disponer de los metadatos. También puede asegurar la información en Active Directory con ACL de Windows, asegurando que sólo los usuarios y las cuentas de servicio autorizadas podrán tener acceso al mismo.

ü Cadenas del constructor: si utiliza componentes basados en Enterprise Services, puede agregar datos de configuración a la cadena del constructor para los componentes.


ü Otras ubicaciones para casos especiales: éstas incluyen el Registro de Windows, el almacén de Windows Local Security Authority (LSA) y las implementaciones personalizadas. Se utilizan en casos muy especiales y agregan requisitos para los privilegios de aplicaciones en el equipo y los mecanismos de implementación.


ü •Soluciones de administración de configuración de terceros que pueden proporcionar también características de control de versiones e implementación.





6.5 Configuración de Aplicación.

Los componentes de proceso de usuario generalmente requieren los siguientes valores de configuración:
• Información de la ubicación para llegar a los componentes de procesos empresariales y los componentes de acceso a datos.
• Datos de conexión (como una cadena de conexión o una ruta de archivo) para el recurso que controla los datos de procesos de usuario persistentes para procesos de larga ejecución
Los componentes de proceso de usuario generalmente requieren los siguientes valores de configuración:

• Información de la ubicación para llegar a los componentes de procesos empresariales y los componentes de acceso a datos.

• Datos de conexión (como una cadena de conexión o una ruta de archivo) para el recurso que controla los datos de procesos de usuario persistentes para procesos de larga ejecución.

Configuración en agentes de servicios

Los agentes de servicios necesitan disponer de información de configuración para conectarse al servicio externo a través de los servicios Web, colas de mensajes u otros medios. El esquema y los datos de configuración dependen del servicio específico al que se está teniendo acceso.
Configuración en los componentes de acceso a datos
Los componentes de acceso a datos normalmente necesitan lo siguiente:
• Necesitan tener la capacidad de asignar nombres de orígenes de datos lógicos a parámetros de la conexión física (por ejemplo, para asignar la base de datos "Ventas" a una cadena de conexión real).
• Si los componentes de acceso a datos realizan un enrutamiento dinámico de datos, necesitará contar con datos de configuración que expresen los parámetros (por ejemplo, región del cliente), algoritmos (por ejemplo, hash) y destinos del enrutamiento (por ejemplo, cadenas de conexión para las bases de datos). Es común incluir la lógica del enrutamiento dinámico de datos en un componente de utilidad distinto.

6.6 Evaluar desempeño.

La evaluación de desempeño puede ser uno de los procesos que satisfacen una necesidad. Los métodos para evaluar el desempeño de los sistemas informáticos se pueden dividir en dos principales áreas conocidas como: evaluación basada en medidas y la evaluación basada en modelos. Las medidas son sólo factibles cuando existe el sistema propuesto o alguno similar. Si se trata de un nuevo sistema o de la definición de componentes de hardware o software de uno ya existente, los modelos son la única alternativa posible. Esto justifica el uso de un modelo para evaluar la propuesta de una arquitectura de integración. Los modelos se fundamentan, en general, en la teoría de colas, pudiéndose considerar las colas o bien de forma individual o bien unidas formando redes abiertas o cerradas. Su tratamiento se puede realizar mediante los métodos analíticos que proporcionan la teoría de colas y de redes de colas, o por medio de la simulación.
6.7 Optimización del desempeño.
Los tres conceptos clave para el análisis y optimización del desempeño de la red son los siguientes:

ü Cuellos de botella

ü Líneas básicas

ü Mejores prácticas


v Cuellos de botella :Es el punto en el sistema que limita el throughput de datos, que es una cantidad de datos que pueden fluir a través de la red. La herramienta principal de monitoreo de desempeño de Windows 2000 server de Microsoft se llama simplemente performance. [rendimiento].Performance puede monitorear casi todos los componentes de hardware y software de un servidor Windows 2000 server.

v Líneas básicas
Las mediciones de las líneas básicas deberán incluir las siguientes estadísticas procesador, sistema, subsistema de disco, red longitud de la cola de la red.


El primer paso para determinar cuan eficiente una red se está desempeñando involucra comparar diversas mediciones en las mismas mediciones tomadas en un momento anterior.Este punto de comparación se llama línea básica, que es el nivel de desempeño aceptable cuando el sistema esta manejando una carga de trabajo típica.


Software de monitoreo de red.


El monitoreo de red que viene con el Windows NT y Windows 2000 es una herramienta funcional y útil para llevar a cabo un análisis de protocolo de rutina. Network monitor puede usarse para mostrarse los frames individuales de datos capturados. Los productos sniffer permiten un filtrado sofisticado basado en la concordancia de patrones, dirección IP/IPX. etc.

*
*
Medición del desempeño de la red


La revisión de los sistemas a menudo incluye su vigilancia, lo que se denomina medición del desempeño de monitoreo de la red. Debe vigilarse de cerca el número de errores encontrados, la cantidad de memoria necesaria, el tiempo de procesamiento o de CPU requerido y otros aspectos. Si un sistema específico no funciona como se espera, habrá que modificarlo o desarrollar o adquirir un nuevo sistema. En algunos casos, se han creado productos de software especializados, cuya única función es vigilar el desempeño del monitoreo de la red Los productos para el desempeño de sistemas se han desarrollado para medir todos los componentes de un sistema de información computarizado, lo que abarca el hardware, software, bases de datos, telecomunicaciones y redes. Cuando se usan en forma correcta, estos productos permiten localizar de manera rápida y eficaz problemas reales o potenciales de la red.

La medición del desempeño del monitoreo de la red es, de hecho, la tarea final del desarrollo de los sistemas de redes. El resultado de este proceso puede hacer que el grupo de desarrollo regrese de nuevo al comienzo del ciclo de vida de desarrollo, donde el proceso se inicia una vez más. Una manera de reducir los riesgos de seguridad es tener rutinas de control en el sistema operativo para permitir o no el acceso a un usuario. Estas rutinas interactúan con los programas de usuario y con los archivos del sistema.

De esta manera, cuando un usuario desea realizar una operación con un archivo, las rutinas determinan si se niega o no el acceso y en caso de que el mismo fuera permitido devuelven los resultados del proceso. Los productos desarrollados para medir todos los componentes de un sistema de monitoreo en la red basado en computadoras, incluidos el hardware, software, bases de datos, telecomunicaciones y redes.

A lo largo de la historia de Ingeniería del Software, el desempeño ha sido un factor determinante en la arquitectura de sistemas y está frecuentemente comprometido con el logro de la calidad de éstos. En el contexto actual de competitividad de los negocios, para alcanzar los objetivos de servicio los sistemas deben tener un desempeño mayor al presentado en el pasado. El poder alcanzar un desempeño aceptable no es una opción, es una base fundamental de la calidad de las aplicaciones. Los mayores riesgos que sufren los negocios al ignorar los aspectos de desempeño durante la fase de diseño de los sistemas, son que las degradaciones o cuellos de botella no surgirán sino hasta el momento en que el sistema es implantado y los volúmenes de datos y transacciones comienzan a crecer hacia los niveles esperados de producción.
Comúnmente se observa el hecho de que existe la preferencia en el proceso de desarrollo de sistemas de construir primero y entonar luego.
El enfoque contrario al anterior es estudiado por la Ingeniería del Desempeño del Software (Software Performance Engineering o SPE), la cual, según Loosley, es definida por Smith como un método de construcción de sistemas para lograr los objetivos de desempeño, teniéndolos en cuenta desde las fases iniciales del desarrollo.