SlideShare una empresa de Scribd logo
1 de 51
Descargar para leer sin conexión
INSTITUTO TECNOLÓGICO DE APIZACO

NOMBRE DEL ALUMNO: OMAR XOCHIPA
BENITEZ
TURNO: MATUTINO
MATERIA: DESARROLLO DE APLICACIONES
PARA
AMBIENTES DISTRIBUIDOS

CATEDRÁTICO: HIJINIO NAVA BAUTISTA
ESPECIALIDAD: INFORMÁTICA
TEMARIO DE LA MATERIA DE DESARROLLO DE
APLICACIONES PARA AMBIENTE DISTRIBUIDOS

UNIDAD: 1
UNIDAD 1 PANORAMA GENERAL DE LAS APLICACIONES DISTRIBUIDAS

1 Panorama general de las aplicaciones distribuidas.
1.1 Evolución de las aplicaciones informáticas.
1.1.1 Aplicaciones monolíticas.
1.1.2 Aplicaciones cliente/servidor.
1.1.3 Aplicaciones de 2,3 y n capas.
1.1.4 Aplicaciones distribuidas.
1.2 Evolución de las tecnologías para el desarrollo de
aplicaciones distribuidas.
1.2.1 De interfaz de usuario.
1.2.2 De aplicación.
1.2.3 De base de datos.
1.2.4 De comunicación de datos.
1.2.5 De conexión entre capas.
1.3 Escenarios de utilización de las aplicaciones distribuidas.
1.4 Problemas comunes en el desarrollo y uso de aplicaciones
distribuidas.
UNIDAD: 2
2 Arquitectura de aplicaciones distribuidas.
2.1 Capa de interfaz de usuario.
2.2 Capa de manejo de datos.
2.3 Capa de procesamiento de datos.
2.4 Integración de sistemas heredados.
2.5 Distribución de elementos de una aplicación.
2.6 Integración de tecnologías heterogéneas y homogéneas.
2.7 Servicios de la arquitectura (email, web, base de datos,
aplicaciones, transacciones, sistemas operativos, firewall.

UNIDAD: 3

3 Diseño de aplicaciones distribuidas.
3.1 Diseño e implementación de manejo de datos.
3.2 Diseño de procesamiento de datos.
3.3 Diseño de interfaz de usuario. 5.- TEMARIO (Continuación)

UNIDAD: 4

4 Implementación de procesamiento de datos.
4.1 Construcción de componentes.
4.2 Comunicación con manejo de datos.
UNIDAD: 5
5 Implementación de interfaz de usuario.
5.1 Lenguajes de marcado.
5.2 Tecnologías para implementación de interfaces de usuario.
5.3 Programación.
5.3.1 Del lado del cliente.
5.3.2 Del lado del servidor.
UNIDAD: 6

6 Integración de aplicaciones distribuidas.
6.1 Asignación de las partes de la aplicación.
6.2 Distribución de la aplicación.
6.3 Instalación de los componentes.
6.4 Configuración de los componentes.
6.5 Configuración de la aplicación.
6.6 Evaluar desempeño.
6.7 Optimización del desempeño.

UNIDAD I: PANORAMA GENERAL DE LAS APLICACIONES
DISTRIBUIDAS
1.1 EVOLUCIÓN DE LAS APLICACIONES INFORMÁTICAS
La evolución de las aplicaciones informáticas se dio debido a los siguientes
factores:
1.- trabajo en equipo
2.- compartir información
3.- accesibilidad
4.- seguridad en la protección de la información
5.- independencia de lugares
En la actualidad cualquier aplicación cuenta generalmente con tres puntos
diferenciados, las cuales son:
1. Una interfaz de usuario: son los elementos con el que interacciona el usuario de
la aplicación, ejecutando acciones, introduciendo u obteniendo información
2. Lógica o reglas de negocio: son las que procesan los resultados que se 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.

1.1.1 APLICACIONES MONOLÍTICAS
Son aquellas en las que el software se estructura en grupos funcionales muy
acoplados, involucrando los aspectos referidos a la presentación,
procesamiento y almacenamiento de la información.
En este rubro están considerados las distintas aplicaciones para escritorio:
sistemas operativos, ofimática, juegos mono usuario, etc.

1.1.2 APLICACIONES CLIENTE/SERVIDOR

Esta arquitectura consiste básicamente en un cliente que realiza peticiones
a otro programa (el servidor) que le da respuesta. Aunque esta idea se
puede aplicar a programas que se ejecutan sobre una sola computadora es
más ventajosa en un sistema operativo multiuso distribuido a través de una
red de computadoras.
En esta arquitectura la capacidad de proceso está repartida entre los
clientes y los servidores, aunque son más importantes las ventajas de tipo
organizativo debidas a la centralización de la gestión de la información y la
separación de responsabilidades, lo que facilita y clarifica el diseño del
sistema.
La separación entre cliente y servidor es una separación de tipo lógico,
donde el servidor no se ejecuta necesariamente sobre una sola máquina ni
es necesariamente un sólo programa. Los tipos específicos de servidores
incluyen los servidores web, los servidores de archivo, los servidores del
correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la
arquitectura básica seguirá siendo la misma.

CARACTERÍSTICAS CLIENTE/SERVIDOR
En la arquitectura cliente servidor el remitente es conocido como cliente y sus
características son:
1. Es quien inicia las peticiones o solicitudes, tienen un papel activo en la
comunicación (Dispositivo maestro o amo).
2. Espera y recibe las respuestas del servidor.
3. Normalmente interactivo con los usuarios mediante una interfaz gráfica.

1.1.3 APLICACIONES DE 2,3 Y N CAPAS
Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro
programa, la idea principal es utilizar aplicaciones que se ejecutan través de la
computadora, cada aplicación constituye una sola acción para realización de
tareas.
APLICACIONES DE 2 CAPAS

Las capas que esta arquitectura presenta son las siguientes:
- nivel de aplicación. Es en el que se encuentra toda la interfaz del sistema y es la
que el usuario puede disponer para realizar su actividad con el sistema.
- Nivel de la base de datos. Este nivel de la base de datos también llamado
repositorio de datos, es la etapa en donde se almacena toda la información
ingresada en el sistema y que se deposita en forma permanente
APLICACIONES DE N CAPAS
En una aplicación distribuida en n-capas los diferentes procesos están distribuidos
en diferentes capas no sólo lógicas, sino también físicas. Los procesos se ejecutan
en diferentes equipos, que pueden incluso residir en plataformas o sistemas
operativos completamente distintos. Cada equipo posee una configuración distinta
y está optimizado para realizar el papel que le ha sido asignado dentro de la
estructura de la aplicación, de modo que tanto los recursos como la eficiencia
global del sistema se optimicen.
Aplicación de 3 capas.
La arquitectura de 2 capas si bien ayuda en unos años atrás,
Se vio la necesidad de crear una nueva arquitectura ya que en dos capas se tenía
unos problemas en la capa de aplicación ya que la principal desventaja de esta era
el peso que se tenía para el cliente.

1.1.4 APLICACIONES DISTRIBUIDAS
El diseño de aplicaciones modernas involucra la división de una aplicación en
múltiples capas; la interfaz 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.
Interactivo con aplicaciones externas o servicios.
Interactivo con otros usuarios.
Nosotros podemos tomar estos tipos de servicios y generalizarlos dentro de los
tres grupos o capas que a continuación se resumen:

o

Interfaces de usuario (Capa de Presentación)
2.
Interactivo con otros usuarios.
3.
Interactivo con aplicaciones externas o servicios.

o

Procesos de negocios (Capa de Negocios)
2.
Cálculos u otros procesos de negocios.
3.
Ejecución de reglas de negocios.
4.
Validación de datos relacionados al negocio.
1.2 EVOLUCIÓN DE LAS TECNOLOGÍAS PARA EL DESARROLLO DE
APLICACIONES DISTRIBUIDAS.
Hoy en día las compañías no pueden ignorar el grave problema que implica
desarrollar y adaptar software al ritmo que imponen los negocios. Los requisitos
varían con mucha frecuencia y las aplicaciones no logran ser desarrolladas y/o
adaptadas al ritmo requerido. La legalización y fusión de empresas, el crecimiento
de Internet, entre otros factores, han acentuado aún más estos problemas llevando
el software desarrollado, que normalmente había sido desarrollado para una
plataforma específica, a un ambiente distribuido heterogéneo. Esto involucra, en
consecuencia, La necesidad de considerar una amplia gama de aspectos como lo
son la integración de datos heterogéneos, la interacción entre diversos sistemas,
los distintos sistemas operativos, el middleware, las tecnologías web, cuestiones de
esa labilidad y permanece, por citar algunos de ellos.
La evolución de las tecnologías cliente/servidor sumada al advenimiento de
nuevas tecnologías como XML, web servicies , la plataforma J2EE, la comunicación
asíncrona por medio de mensajes, el uso de aplicaron versen , son algunos de los
conocimientos que permiten llevar a cabo el desarrollo de aplicaciones modernas.

La evolución de las aplicaciones distribuidas se dio de la siguiente forma:





Aplicaciones monolíticas.
Arquitectura cliente/servidor
Arquitectura de tres capas.
Arquitectura de N capas.

1.2.1 DE INTERFAZ DE USUARIO.


Aquí es donde su aplicación presenta información a los usuarios y acepta entradas
o respuestas del usuario para usar por su programa. Idealmente, la IU no
desarrolla ningún procesamiento de negocios o reglas de validación de negocios.
Por el contrario, la IU debería relegar sobre la capa de negocios para manipular
estos asuntos. Esto es importante, especialmente hoy en día, debido a que es muy
común para una aplicación tener múltiples IU, o para sus clientes o usuarios, que le
solicitan que elimine una IU y la remplace con otra.

1.2.2 DE APLICACIÓN.
La adopción de un diseño distribuido de aplicaciones empresariales, aumenta la
permeabilidad, reduce la cantidad de recursos, y los costes necesarios de
desarrollo y mantenimiento.
Este nuevo enfoque de diseño pone en manos de los des arrolladores no solo la
funcionalidad que demandan las aplicaciones, sino también la seguridad, rapidez y
flexibilidad.

Algunas tecnologías de aplicación son:





CORBA.
DNA.
EJB.
XML.

1.2.3 DE BASE DE DATOS.
La evolución de las bases de datos distribuidas se debe por una parte a razones
generacionales las cuales han demandado que mayores capacidades sean
incorporadas a las bases de datos, tales como la integración de información desde
distintos sitios donde se encuentre la empresa distribuida hacia algún sitio por
ejemplo, para una consulta. Por otra parte, el desarrollo de las tecnologías de
comunicación han permitido enlazar datos con aplicaciones que se encuentran en
sitios distintos y remotos, por ejemplo las transacciones bancarias realizadas en
máquinas-cajeros automáticos (ATM) que se encuentran ubicados en centros
comerciales, empresas y escuelas, no serían posibles si no tuviéramos sistemas de
comunicación para enlazarnos a bases de datos localizadas en diferentes sitios
financieros.
Algunas tecnologías de base de datos son:





OLEB
ADO.
XML.
SQL.

1.2.4 DE COMUNICACIÓN DE DATOS.
La construcción de aplicaciones distribuidas ha emergido como la arquitectura
predominante para la construcción de aplicaciones plataforma en la mayor parte
de las empresas.
Este cambio radical en los modelos de computación, desde los sistemas
monolíticos basados en maderamen y los tradicionales sistemas cliente-servidor,
hacia sistemas distribuidos plataforma altamente modulares representa el
desarrollo rápido y avance de la investigación en el mundo del desarrollo de
aplicaciones, tal y como se pone de manifiesto en las últimas tendencias de las
grandes empresas de tecnología, como Un con su estrategia Sun One, o Microsoft
con DotNET (.Net).

Algunas tecnologías de comunicación de datos son:



Intranet.
Internet.

1.2.5 DE CONEXIÓN ENTRE CAPAS
Las arquitecturas de capas proporcionan una gran cantidad de beneficios para las
empresas que necesitan soluciones flexibles y confiables para resolver problemas
complejos en cambios constantes. Todas las aplicaciones basadas en capas
permitirán trabajar con clientes ligeros como navegadores de Internet WebTV,
teléfonos inteligentes, PDAs (personal, digital y asistente) y muchos otros
dispositivos preparados para conectarse a Internet Estas arquitecturas son las más
rápidas para desarrollar aplicaciones empresariales y estrategias para la economía
emergente que tienen su base en la red.
1.3 ESCENARIOS DE UTILIZACIÓN DE APLICACIONES
DISTRIBUIDAS
Los escenarios de utilización de aplicaciones distribuidos son muy comunes en la
población los escenarios tales como los remote login, correo electrónico,
navegación web, telefonía IP, y la compartición de archivos p2p.
Algunos escenarios donde se utilizan las aplicaciones distribuidas son:
MODELE: Es un ambiente educativo virtual, sistema de gestión de cursos de
distribución libre.
Ayuda a los educadores a crear comunidades de aprendizaje en línea. A este tipo de
plataformas tecnológicas también se conoce como LMSWORDPRESS
Es un sistema de gestión de contenido utilizado para crear blogs.
CREADOR DE WIKIS – MEDIAWIKI
Media wiki es un software para wikis libre, programado en el lenguaje PHP.
Es el software utilizado por Wikipedia y otros proyectos de la misma (wikcionario,
wikilibros, etc.)
Mediawiki puede ser instalado en los servidores web apecha e Internet
informatizo servicies y como base de datos utiliza Mysql o Postgresql.
ADMINISTRADOR DE BASE DE DATOS WEB – PHPMYADMIN
Phpmyadmin es una herramienta escrita en PHP con la intención de manejar la
administración de Mysql a través de las páginas Web, utilizando Internet.

1.4 PROBLEMAS COMUNES EN EL DESARROLLO Y USO DE
APLICACIONES DISTRIBUIDAS
Concurrencia: De igual forma que en las aplicaciones centralizadas, las aplicaciones
distribuidas serán utilizadas por cierto número de usuarios concurrente mente
Aspectos como las transacciones, los bloqueos de recursos o el uso de la CPU de los
equipos a los que acceden muchos usuarios son determinantes a la hora de diseñar
una arquitectura con la máxima eficacia.
Patología de la red: A pesar de que a día de hoy los anchos de banda cada vez son
más amplios, el tráfico de red puede ser un aspecto importante que condicione el
tiempo de respuesta de la aplicación. En muchos casos también será necesario
tener en cuenta el tipo de red (LAN o WAN), o si la aplicación será o no accesible a
través de Internet. La forma de distribuir los procesos de la aplicación tendrá que
tomar en consideración el tipo de red que soportará el tráfico de datos.
Ubicación de la lógica: Dado que en una aplicación distribuida intervienen varios
procesos, será necesario decidir en cuál de los posibles procesos físicos se sitúa
cada componente lógico de la aplicación. Mientras que algunos procesos, como la
presentación de datos o la recuperación de los mismos, tienen un sitio natural,
otros, como la validación o la navegación, pueden ocupar diversos lugares dentro
del diagrama que conforma la estructura de la aplicación.
Plataformas: En una aplicación distribuida los sistemas operativos involucrados o
los lenguajes de desarrollo utilizados pueden ser un factor a tener en cuenta a la
hora de decidir algunos aspectos importantes, como por ejemplo el modo de pasar
datos entre procesos.
UNIDAD: 2
ARQUITECTURA DE APLICACIONES DISTRIBUIDAS
2.1 CAPA DE INTERFAZ DE USUARIO.
Interfaces de usuario y su arquitectura
ARQUITECTURA DE INTERFACES GRÁFICAS EN AMBIENTE DISTRIBUIDOS.
El modo en que el usuario se comunica con una aplicación para solicitar los
recursos del sistema operativo constituye la interfaz del mismo. La interfaz es
particularmente importante para establecer una vinculación amigable entre el
usuario de la computadora y la aplicación.
Históricamente las interfaces estuvieron basadas en comando formateado por
palabras clave que se combinaban con otras cadenas de caracteres (sintaxis) para
ser interpretados por el sistema operativo. Estas interfaces se denominan;
interfaces orientadas a carácter. Un ejemplo clásico de una interfaz orientada a
carácter es el COMMAND de MS-DOS.
Interfaz de modo carácter:
En esta clase de interfaz entre la aplicación y el usuario en la que las órdenes se
pasan en ASCII existen algunas ventajas y desventajas:
Las ventajas que tienen las interfaces orientadas a carácter son su simplicidad,
confiabilidad y poco costo en el desarrollo del sistema operativo que las soporta.
Las desventajas son que requieren un usuario calificado que estudie y conozca el
comando, lo cual resulta muy restrictivo para la difusión del uso de las
computadoras.
Uno de los beneficios de los sistemas cooperativos visto anteriormente es que:
para el usuario lo que importa es lo que éste ve en la pantalla, la presentación. Al
software que simula la presentación de un sistema se le conoce como emulador de
terminal, el cuál debe ser interactivo como cuando uno redacta un informe en una
máquina de escribir, lo que el usuario teclea se ve reflejado en el documento, una
terminal la cual solo realiza tareas de presentación debería funcionar de la misma
manera.

Interfaz gráfica de usuario:
En la actualidad millones de nuevos usuarios de las computadoras se han
beneficiado con la aparición de las Interfaces Gráficas de Usuario/Graphical User
Interface, GUI), las computadoras pueden dar la apariencia de un escritorio común
y corriente de una oficina, mostrando iconos, imágenes y otros objetos visuales los
cuales permiten que el usuario se acerque más a las computadoras.

Interfaz Front-End.Es una aplicación donde los usuarios interactivos directamente
con las funciones del sistema, cubre todas las interfaces con las cuales un usuario
interactivo con los sistemas, ya sean locales o remotos, sus funciones principales
son:

Diseño de formatos.
Presentación.
Lógica de la aplicación.
Manipulación de datos.
Herramientas de consulta.
Utilerías/menús
Interfaz Back-End.Es un conjunto de elementos (programas) que sirven como
complemento de una interfaz Front-End. Ayuda en la administración, control y
configuración de los sistemas teniendo un acceso directo a los recursos (base de
datos, comunicaciones, servidores, etc.), que el sistema requiere, entre sus
funciones principales se tienen:
Administración de la memoria.
Seguridad.
Manejo de base de datos.
Procesamiento remoto.

2.2 CAPA DE MANEJO DE DATOS.

Es donde residen los datos y es la encargada de acceder a los mismos. Está formada
por uno o más gestores de bases de datos que realizan todo el almacenamiento de
datos, reciben solicitudes de almacenamiento o recuperación de información desde
la capa de procesamiento de datos o capa de negocio. Hay diferentes modelos de
datos:
Conceptuales
. Utilizados para profundizar en el dominio del problema con el cliente.
Lógicos
. es el diseño conceptual de la base de datos, esto es, entidades de datos, atributos y
relaciones.
Físicos.
Diseñar el esquema de las bases de datos, esto es, las tablas, sus columnas y
relaciones entre ellas
Notación para los modelos de datos:
La manera de representar los modelos de datos, está basada en la notación UML.

2.3 CAPA DE PROCESAMIENTO DE DATOS
Traducción de Objetos a Datos:
Como ya es costumbre en esta asignatura, surgen más problemas, en esta ocasión
el problema que se nos plantea es: como sabríamos qué columnas necesitaremos a
partir del modelo de clases, y como se identificarían las entidades en una base de
datos, para solucionarlo se plantean las siguientes maneras: Identificadores de
objetos: Características:
Garantizan unicidad en toda la base de datos ya que los id solo la garantizan en las
tablas no en toda la base.
No tienen sentido en la lógica de negocio o funcional de la aplicación Algunas
Estrategias:
Incremento del valor máximo de una columna numérica
Almacenando el valor en una tabla
UUIDs (Universally Unique Identifier) y GUIDs (Globally Unique Identifier).
Traducción de clases y atributos
Por regla general, las clases son tablas, y los atributos que contienen se traducen
columnas, teniendo en cuenta de que se añade en la tabla un literal OID para
identificar sus atributos y sus relaciones con las demás tablas.
Traducción de las relaciones:
Al efectuar estas traducciones hay que tener en cuenta ciertos detalles;
Una asociación = composición = agregación En el modelo relacional todas las
asociaciones son bidireccionales independientemente como estén en las clases de
donde vienen. La estrategia que se sigue para que se haga una traducción correcta
de las clases a tablas;
Las relaciones de 1 a 1 y 1 a * se hace con claves ajenas (<<FK>>).
Las relaciones de muchos a muchos se hacen con tablas asociativas (intermedias).
COMPONENTES DISTRIBUIDOS DE JAVA EJBS.
Los Enterprise JavaBeans(también conocidos por sus siglasEJB
Son una delas API que forman parte del estándar de construcción de aplicaciones
empresariales J2EE de Sun Microsystems (ahora JEE 5.0).Su especificación detalla
cómo los servidores de aplicaciones proveen objetos desde el lado del servidor que
son, precisamente, los EJBs:
Comunicación remota utilizando CORBA,
Transacciones, Concurrencia, eventos utilizando JMS (Java messaging
service),servicios de nombres y de directorio, seguridad,
Ubicación de componentes en un servidor de aplicaciones. Los EJBs proporcionan
un modelo de componentes control del distribuido estándar del lado del servidor.
El objetivo de los EJBs es dotar al programador de un modelo que le permita
abstraerse de los problemas generales de una aplicación empresarial
(concurrencia, transacciones, persistencia, seguridad, etc.) para centrarse en el
desarrollo de la lógica de negocio en sí. El hecho de estar basado en componentes
permite que éstos sean flexibles y sobre todo reutilizables. No hay que confundir
los Enterprise JavaBeans con los JavaBeans. Los JavaBeans también son un modelo
de componentes creado por Sunicho systems para la construcción de aplicaciones,
pero no pueden utilizarse en entornos de objetos distribuidos al no soportar
nativamente la invocación remota (RMI).

2.4 INTEGRACIÓN DE SISTEMAS HEREDADOS
Los Sistemas Heredados son aquellas aplicaciones que se caracterizan por ser
antiguos¡ Debido al periodo de vida desde que estos sistemas fueron puestos en
producción, son
De tecnología obsoleta, es decir están siendo trabajados en una o muchas
plataformas de Hardware/software antiguos, no tienen técnicas de estructuración
de sistemas, es decir
Son sistemas de tipo monolíticos al no estar constituidos entre arquitecturas de
capas, Son de documentación pobre dificultando así la modificación de los mismos,
y en la
Mayoría de los casos estos sistemas dan soporte a funciones de misión crítica
dentro de Una organización.
Los Sistemas Heredados constituyen un activo para la organización personal.

Adaptación de fuentes heredadas
Nosotros respetamos el valor de los activos de producción de información
existentes. Invertimos más que cualquier otra agencia en herramientas y
capacitación que permitan a nuestro departamento de producción adaptar fuentes
heredadas, en lugar de desecharlas o reconstruirlas. Más aún, nuestro
departamento técnico está siempre disponible para consultas sobre los pasos que
nuestros clientes pueden realizar internamente para ayudar a migrar los
materiales existentes a fin de trabajar sin sobresaltos en una implacablemente
multiplique.
Monitores automatizado
Una herramienta clave en el esfuerzo para adaptar fuentes heredadas en línea sin
una re ingeniería demasiado invasiva, es nuestro servicio de monitorio
automatizado. Esto permite a sus diseñadores y administradores actualizar diseño
e información cuando sea necesario, y con una única notificación al sistema de
monitorio automático, el material que se ha modificado es señalado y el registro es
dirigido al proceso de traducción y localización automáticamente. Para fuentes en
línea existentes con un flujo de información bajo a moderado, esta puede ser una
manera económicamente eficiente de manejar fuentes en línea multilingües con
una pequeña inversión adicional.

2.5 DISTRIBUCIÓN DE ELEMENTOS DE UNA APLICACIÓN.

Distribución: Refiere a la construcción de software por partes, a las cuales les son
asignadas un conjunto especifico de responsabilidades dentro de un sistema.
• Separación física y lógica de las partes de una aplicación.
• Separación física (niveles) considera aspectos técnicos y económicos.
• Separación Lógica (capas) conjunto de servicios especializados que son accedidos
por múltiples clientes.
EJEMPLOS
2.6 INTEGRACIÓN DE TECNOLOGÍAS HETEROGÉNEAS Y
HOMOGÉNEAS.

Servicio de Arquitectura Web: es un conjunto de protocolos y estándares que
sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de
software desarrolladas en lenguajes de programación diferente y ejecutada sobre
cualquier plataforma pueden utilizar los servicios web para intercambiar datos en
redes de ordenadores como Internet.
Servicio Email: Servicio de red que permite a los usuarios enviar y recibir mensajes
rápidamente a los usuarios enviar y recibir mensajes rápidamente también
denominados mensajes electrónicos o cartas electrónicas mediante sistemas de
comunicación electrónicos.
Base de Datos: Conjunto de datos pertenecientes a un mismo contexto y
almacenados sistemáticamente para su posterior uso.
“Aplicaciones y Transacciones de Sistemas Operativos”
Aplicaciones: programa informáticos que permiten a un usuario utilizar una
computadora con un fin específico. Son parte del software de una computadora y
suelen ejecutarse sobre el sistema operativo.
Transacciones: una transacción es una interacción con una estructura de datos
compleja compuesta por varios procesos que se han de aplicar uno después del
otro.
Firewall: es una parte de un sistema o una red que está diseñada para bloquear el
acceso no autorizado permitiendo al mismo tiempo comunicaciones autorizadas
cortafuegos, mecanismo de seguridad en Internet frente a acceso no autorizado.

2.7 SERVICIOS DE LA ARQUITECTURA (EMAIL, WEB, BASE DE
DATOS, APLICACIONES, TRANSACCIONES, SISTEMAS
OPERATIVOS,FIREWALL.

SERVICIOS DE LA ARQUITECTURA EMAIL
El correo electrónico o e-mail es una forma de enviar mensajes entre ordenadores
conectados a través de Internet. El correo se basa en la arquitectura
cliente/servidor.
Los clientes son los ordenadores de los usuarios que utilizan el correo y el servidor
es el ordenador que gestiona el correo, el servidor pertenece a la entidad
proveedora del correo.
El proceso cliente/servidor envía mensajes intermedios de comprobación para
asegurarse que en cada paso los datos se reciben bien.
Los clientes deben disponer de un programa-cliente de correo
El servidor es un ordenador que tiene un programa servidor de correo que pude
entender miles de cuentas de correo. Normalmente el servidor de correo reside en
una máquina distinta al servidor de páginas web, puede que en un momento dado
no funcione el servidor web pero sí el servidor de correo, o viceversa.
Un correo consta de varios elementos, la dirección de correo del destino, el texto
de mensaje y puede que algunas cosas más como ficheros adjuntos, etc.
Hay tres formas básicas de utilizar el correo, a través de un programa de correo,
mediante webmail y aprovechando los programas de mensajería instantánea.
Programa de correo. Por ejemplo el Outlook de Microsoft, el Thunderbird de
Mozilla ,Eudora, etc. Estos son programas específicos para trabajar con el correo y
que tenemos que instalar en nuestro PC
Webmail. Como su nombre indica, consiste en utilizar el correo desde la Web. Una
de las ventajas del webmail, es que desde cualquier ordenador que tenga conexión
a Internet podemos leer y enviar nuestro correo sin tener que configurar nada.
La mensajería instantánea no tiene que ver directamente con el correo electrónico,
pero tiene la característica de que cuando llega un correo nos avisa en el mismo
instante, también nos informa cuando se conecta algún miembro de una lista de
usuarios.
SERVICIOS DE LA ARQUITECTURA WEB

En la actualidad las aplicaciones Web son basadas en una arquitectura distribuida,
las aplicaciones Web se han movido fuera de la naturaleza centralizada de datos de
aplicaciones típicas del cliente -servidor yhan cuidado más a una arquitectura
orientada servicios.
La arquitectura de los servicio de web se puede interpretar como una arquitectura
orientada a servicios. Hay tres roles mayores dentro de la arquitectura del servicio
Web:
Proveedor de Servicios:
Es el proveedor del servicio Web. El proveedor de servicios lleva a cabo el servicio
y lo hace disponible en Internet.
Solicitante de Servicios:
Es cualquier consumidor del servicio Web. El solicitante utiliza un servicio Web
existente abriendo una conexión de red y enviando una petición XML.
Registro de Servicios:
Es un directorio lógicamente centralizado de servicios. El registro proporciona un
lugar central dónde los des arrolladores pueden publicar los nuevos servicios
pueden encontrar existentes. Sirve por consiguiente como una cámara de
prestación centralizada para las compañías y sus servicios.

SERVICIOS DE LA ARQUITECTURA BASE DE DATOS
Sistema centralizado
Sistemas con un único servidor que se encarga de todas las tareas.
Arquitectura cliente servidor
Mejoras en los equipos del lado del cliente:
Memoria
Procesador
Disco
Tarjeta de Video
Arquitecturas paralelas
Solución al problema de transacciones masivas, paralelismo a nivel de disco y de
procesador
Base de datos distribuidos
Nodos distribuidos geográficamente
Administración independiente de cada nodo
Canales de comunicación más lentos
Utilización de transacciones globales, locales y remotas
SERVICIOS DE LA ARQUITECTURA APLICACIONES
Arquitectura Centralizada: los datos y las aplicaciones están en una única máquina.
Arquitectura Cliente-Servidor: separación del servidor de BD del cliente.
BD Distribuida: varios servidores de BD usados por la misma aplicación.
BD Paralelas: varias unidades de almacenamiento de datos y procesadores operan
en paralelo para incrementar el rendimiento.
BD Replicadas: datos lógicamente representando la misma información están
almacenados físicamente en diferentes servidores
Almacenes de Datos: servidores especializados en la gestión de datos orientados al
soporte a la decisión.
Las nuevas arquitecturas de BD para la Web son variantes del paradigma general
cliente-servidor.
SERVICIOS DE LA ARQUITECTURA TRANSACCIONES
Arquitectura física
El registro de transacciones de una base de datos está asignado a uno o varios
archivos físicos. Conceptual mente el archivo de registro es una cadena de entradas
de registro. Físicamente, la secuencia de entradas del registro se almacena de
forma eficaz en el conjunto de archivos físicos que implementa el registro de
transacciones.
Arquitectura lógica
Las entradas del registro se almacenan en la secuencia en la que se crean. Cada
entrada del registro contiene el Id. De la transacción a la que pertenece. Por cada
transacción, las entradas del registro asociadas a dicha transacción se vinculan
individualmente en una cadena con punteros hacia atrás, para acelerar así la
reversión de la transacción.
SERVICIOS DE LA ARQUITECTURA SISTEMAS OPERATIVOS
Kernel monolíticos
Todo el software y las estructuras de datos están ubicados en un único modulo
lógico, sin interfaces explicitas entre partes.
Organización modular
La funcionalidad se encuentra dividida entre componentes lógicos independientes
con interfaces bien definidas.
Organizaciones estratificadas o por capas
La funcionalidad se divide en una jerarquía de máquinas abstractas donde las
funciones dela capa i están implementadas mediante las funciones proporcionadas
por la capa i-1
Kernels extendidos a microkernels
Organización modular especializada pensada para sistemas de tiempo real, de
tiempo compartido, multimedia, etc.
Sistemas operativos para sistemas distribuidos
Sistemas operativos en red
Sistemas operativos distribuidos
SERVICIOS DE LA ARQUITECTURA FIREWALL
Las tecnologías de filtrado de paquetes que se emplean en los firewalls constituyen
una manera eficaz y general para controlar el tráfico en la red.
Arquitectura de dos bases
Un firewall de dos bases es un firewall con dos interfaces de red, que permite asilar
una red interna de una red externa no confiable. Como este anfitrión no envía
ningún tráfico TCP/IP, bloquea por completo cualquier tráfico IP entre las redes no
confiables interna y externa.
Arquitectura Firewall como servidor bastión
Un firewall es un servidor de barrera de protección que es determinante para la
seguridad en la red. Es el servidor central para la seguridad en la red de una
organización y, por su función, debe estar en una buena fortaleza

UNIDAD: 3 DISEÑO DE APLICACIONES DISTRIBUIDAS
3.1 DISEÑO E IMPLEMENTACIÓN DE MANEJO DE DATOS.
ABSTRACCIÓN EN LENGUAJES DE PROGRAMACIÓN
Los lenguajes de programación son las herramientas mediante las cuales los
diseñadores de
programas pueden implementar los modelos abstractos. La abstracción ofrecida
por los lenguajes de programación se puede dividir en dos categorías: abstracción
de datos (perteneciente a los datos) y abstracción de control (perteneciente a las
estructuras de control). Desde comienzos del decenio de los sesenta, en que se
desarrollaron los primeros lenguajes de programación de alto nivel, ha sido
posible utilizar las abstracciones más primitivas de ambas categorías (variables,
tipos de datos, funciones, control de bucles (lazos), etc.). Abstracciones de control
Los microprocesadores ofrecen directamente sólo dos mecanismos para controlar
el flujo y ejecución de las instrucciones: secuencia y salto. Los primeros lenguajes
de programación de alto nivel introdujeron las estructuras de control: sentencias
de bifurcación (if) y bucles (for, while, do-loop, do-while, etc.).
Las estructuras de control describen el orden en que se ejecutan las sentencias o
grupos de sentencia (unidades de programa). Las unidades de programa se utilizan
como bloques básicos de la clásica descomposición “descendente”. En todos los
casos, los subprogramas constituyen una herramienta potente de abstracción ya
que durante su implementación, el programador describe en detalle cómo
funcionan. Cuando el subprograma se llama, basta con conocer lo que hace y no
cómo lo hace.
Abstracción procedimental (por procedimientos o funciones) Es esencial para
diseñar software modular y fiable. La abstracción procedimental se basa en la
utilización de procedimientos o funciones sin preocuparse de cómo se
implementan. Esto es
posible sólo si conocemos qué hace el procedimiento; esto es, conocemos la
sintaxis y semántica

3.2 DISEÑO DE PROCESAMIENTO DE DATOS.
En el diseño de bases de se debe considerar el problema de cómo distribuir la
información entre diferentes sitios. Existen razones organizacionales las cuales
Determinan en gran medida lo anterior. Sin embargo, cuando se busca eficiencia en
el acceso a la información, se deben abordar dos problemas
Relacionados. Primero, como fragmentar la información. Segundo, como asignar
cada fragmento entre los diferentes sitios de la red.
En el diseño de la BDD también es importante considerar si la información está
replicada, es decir, si existen copias múltiples del mismo dato y, en este caso,
Como mantener la consistencia de la información. Finalmente, una parte
importante en el diseño de una BDD se refiere al manejo del directorio. Si
Existen únicamente usuarios globales, se debe manejar un solo directorio global.
Sin embargo, si existen también usuarios locales, el directorio combina
Información local con información global.
Una base de datos correctamente diseñada permite obtener acceso a información
exacta y actualizada. Puesto que un diseño correcto es esencial
Para lograr los objetivos fijados para la base de datos, parece lógico emplear el
tiempo que sea necesario en aprender los principios de un buen diseño ya que,
en ese caso, es mucho más probable que la base de datos termine adaptándose a
sus necesidades y pueda modificarse fácilmente.

3.3 DISEÑO DE INTERFAZ DE USUARIO.
Diseño De Interfaces De Usuario
El diseño de interfaces es un campo sumamente amplio (y para muchos,
interesante). De hecho, se deberían contar con personas dedicadas (y preparadas)
para realizar exclusivamente estas tareas. Esto no siempre es factible, y recae
sobre nosotros el armar la interfaz visual para el usuario... las cuales muchas veces
pueden mejorarse.
Qué es la interfaz de una aplicación?
Para partir de una definición común, diremos que la interfaz es la "cara visible" de
nuestra aplicación: el medio mediante el cual el usuario se comunica con nuestro
sistema.
Todos los sistemas tienen una interfaz, de diversa índole.
Para un programador, la interfaz de una librería es justamente el API. Para un
programa batch, la interfaz está dada por el modo de invocación en la línea de
comandos. Para una aplicación Visual, la interfaz es un conjunto de formularios y
ventanas. Y para un sistema web, la interfaz son justamente las páginas que
conforman la aplicación.
Todas estas interfaces merecen (y deben!) ser pensadas a consciencia, y cada una
presenta desafíos muy distintos.
Igualmente, a continuación me voy a referir particularmente a las interfaces de
nuestras aplicaciones web (esas páginas con formularios y colores verdes y
azules).
Importancia de una buena interfaz de usuario
Obviamente, mejorar las interfaces que hacemos implica un esfuerzo de nuestro
lado. Siendo una actividad que no nos corresponde (pero que hacemos, no lo
olviden), ¿de qué nos sirve mejorar las interfaces?
Creo que básicamente podemos citar 3 mejoras concretas que nos impactan
directamente:
1. Mejora la experiencia del usuario
1. 2. Mejora el tiempo de desarrollo
2. 3. Mejora el mantenimiento
El objetivo de esta tarea es realizar el diseño detallado del comportamiento de la
interfaz de usuario a partir de la especificación de la misma, obtenida en el proceso
de análisis, y de acuerdo con el entorno tecnológico definido. Si se hubiera
realizado un prototipo de la interfaz de usuario, éste se tomaría como punto de
partida para el diseño. Además, se incluyen las ventanas alternativas o elementos
de diseño surgidos como consecuencia del diseño de los escenarios definidos en la
tarea anterior.
Además, se revisa: la interfaz de usuario, la navegación entre ventanas, los
elementos que forman cada interfaz, sus características (que deben ser
consistentes con los atributos con los que están relacionadas), su disposición, y
cómo se gestionan los eventos relacionados con los objetos.
En aquellos casos en los que se realizan modificaciones significativas sobre la
interfaz de usuario, es conveniente que éste las valide, siendo opcional la
realización de un nuevo prototipo.
Productos
De entrada



Diseño de la Realización de los Casos de Uso (DSI 3.2)
Especificación de Interfaz de Usuario (ASI 9.3)
De salida


o
o
o
o
o

Diseño de Interfaz de Usuario
formatos Individuales de Interfaz de Pantalla Gráfica
Catálogo de Controles y Elementos de Diseño de Interfaz de Pantalla Gráfica
Modelo de Navegación de Interfaz de Pantalla Gráfica
formatos de Impresión
prototipo de Interfaz de Pantalla Gráfica

3.2 DISEÑO DE PROCESAMIENTO DE DATOS.
En el diseño de bases de se debe considerar el problema de cómo distribuir la
información entre diferentes sitios. Existen razones generacionales las cuales
Determinan en gran medida lo anterior. Sin embargo, cuando se busca eficiencia en
el acceso a la información, se deben abordar dos problemas
Relacionados. Primero, como fragmentar la información. Segundo, como asignar
cada fragmento entre los diferentes sitios de la red.
En el diseño de la BDD también es importante considerar si la información está
replicada, es decir, si existen copias múltiples del mismo dato y, en este caso,
Como mantener la consistencia de la información. Finalmente, una parte
importante en el diseño de una BDD se refiere al manejo del directorio. Si
Existen únicamente usuarios globales, se debe manejar un solo directorio global.
Sin embargo, si existen también usuarios locales, el directorio combina
Información local con información global. a base de datos correctamente diseñada
permite obtener acceso información exacta y actualizada. Puesto que un diseño
correcto es esencial para lograr los objetivos fijados para la base de datos, parece
lógico emplear el Tiempo que sea necesario en aprender los principios de un buen
diseño ya que, en ese caso, es mucho más probable que la base de datos termine
adaptándose a sus necesidades y pueda modificarse fácilmente.

3.3 DISEÑO DE INTERFAZ DE USUARIO
El diseño de interfaces de usuario es una tarea que ha adquirido relevancia en el
desarrollo de un sistema. La calidad de la interfaz de usuario puede ser uno
De los motivos que conduzca a un sistema al éxito o al fracaso. Los principios que
se presentan son de utilidad para creación de interfaces funcionales y de
Fácil operación. A pesar de no ser capaces de resolver todos los aspectos propios
del contexto con el que se esté trabajando, pueden ser combinados
Con la protección y la aplicación de mirísticas de evaluación para facilitar el
proceso de diseño. El presente artículo se centra en los componentes de
Software de las interfaces de usuario, quedando fuera del alcance de mismo otros
aspectos, como hardware y documentación.

Principios para el Diseño de Interfaces de Usuario
Anticipación
Las aplicaciones deberían intentar anticiparse a las necesidades del usuario y no
esperar a que el usuario tenga que buscar la información, recopilarla o
Invocar las herramientas que va a utilizar.
Autonomía
La computadora, la IU y el entorno de trabajo deben estar a disposición del
usuario. Se debe dar al usuario el ambiente flexible para que pueda aprender
Rápidamente a usar la aplicación. Sin embargo, está comprobado que el entorno de
trabajo debe tener ciertas cotas, es decir, ser explorable pero no
Azaroso.
Percepción del Color Aunque se utilicen convenciones de color en la IU, se
deberían usar otros mecanismos secundarios para proveer la información a
aquellos usuarios con problemas en la visualización de colores.
Valores por Defecto
No se debe utilizar la palabra "Defecto" en una aplicación o servicio. Puede ser
reemplazada por "Estándar" o "Definida por el Usuario", "Restaurar Valores
Iniciales" o algún otro término especifico que describa lo que está sucediendo. Los
valores por defecto deberían ser opciones inteligentes y sensatas.
Además, los mismos tienen que ser fáciles de modificar.
Eficiencia del Usuario Se debe considerar la productividad del usuario antes que la
productividad de la máquina. Si el usuario debe esperar la respuesta del sistema
por un período prolongado, estas pérdidas de tiempo se pueden convertir en
pérdidas económicas para la organización. Los mensajes de ayuda deben ser
sencillos y
Proveer respuestas a los problemas. Los menús y etiquetas de botones
Deberían tener las palabras claves del proceso.
Ley de Fitt El tiempo para alcanzar un objetivo es una función de la distancia y
tamaño del
Objetivo. Es por ello, que es conveniente usar objetos grandes para las
Funciones importante.
Interfaces Explorables Siempre que sea posible se debe permitir que el usuario
pueda salir ágilmente de la IU, dejando una marca del estado de avance de su
trabajo, para que pueda continuarlo en otra oportunidad. Para aquellos usuarios
que sean noveles en el uso de la aplicación, se deberá proveer de guías para
realizar
Tareas que no sean habituales.
Objetos de Interfaz Humana
Los objetos de interfaz humana no son necesariamente los objetos que se
encuentran en los sistemas orientados a objetos. Estos pueden ser vistos,
escuchados, tocados o percibidos de alguna forma. Además, estos objetos deberían
ser entendibles, consistentes y estables.
Uso de Metáforas
Las buenas metáforas crean figuras mentales fáciles de recordar. La IU puede
contener objetos asociados al modelo conceptual en forma visual, con sonido u
Otra característica perceptible por el usuario que ayude a simplificar el uso del
Sistema.
Curva de Aprendizaje El aprendizaje de un producto y su mutabilidad no son
mutuamente excluyentes ideal es que la curva de aprendizaje sea nula, y que el
usuario principiante pueda alcanzar el dominio total de la aplicación sin esfuerzo.
Reducción de Latencia Siempre que sea posible, el uso de tramas (multi-threading)
permite colocar la agencia en segundo plano (carborundo). Las técnicas de trabajo
multitarea posibilitan el trabajo ininterrumpido del usuario, realizando las tareas
de
Transmisión y computación de datos en segundo plano.
Protección del Trabajo Se debe poder asegurar que el usuario nunca pierda su
trabajo, ya sea por error de su parte, problemas de transmisión de datos, de
energía, o alguna otra
Razón inevitable.
Auditoría del Sistema La mayoría de los navegadores de Internet(browsers), no
mantienen información acerca de la situación del usuario en el entorno, pero para
Cualquier aplicación es conveniente conocer un conjunto de características tales
como: hora de acceso al sistema, ubicación del usuario en el sistema y
Lugares a los que ha accedido, entre otros. Además, el usuario debería poder salir
del sistema y al volver a ingresar continuar trabajando en lugar dónde
Había dejado.
Legibilidad
Para que la IU favorezca la usabilidad del sistema de software, la información que
se exhiba en ella debe ser fácil de ubicar y leer. Para lograr obtener este
Resultado se deben tener en cuentas algunas como: el texto que aparezca en la IU
debería tener un alto contraste, se debe utilizar combinaciones de colores
Como el texto en negro sobre fondo blanco o amarillo suave.
Interfaces Visibles
El uso de Internet, ha favorecido la implementación de interfaces invisibles. Esto
significa que el usuario siempre ve una página específica, pero nunca
Puede conocer la totalidad del espacio de páginas de Internet.
UNIDAD: 4 IMPLEMENTACIÓN DE PROCESAMIENTO DE DATOS.
-Marcado de presentación
El marcado de presentaciones aquel que indica el formato del texto. Este tipo de
marcado es útil para maquetar la presentación de un documento para su lectura,
pero resulta insuficiente para el procesamiento automático de la información.

- Marcado de procedimientos
El marcado de procedimientos está enfocado hacia la presentación del texto, sin
embargo, también es visible para el usuario que edita el texto. El programa que
representa el documento debe interpretar el código en el mismo orden en que
aparece.

- Marcado descriptivo
El marcado descriptivo o semántico utiliza etiquetas para describir los fragmentos
de texto, pero sin especificar cómo deben ser representados, o en qué orden. Los
lenguajes expresamente diseñados para generar marcado descriptivo son el SGML
y el XML.

¿Importancia de las interfaces gráficas y de texto?
Es de suma importancia porque permiten que las personas puedan acceder a un
ordenador sin tener que pasar por el tortuoso proceso de tener que aprender a
manejar un entorno bajo línea de órdenes.
¿Qué es la programación relacionada con las interfaces virtuales, gráficas y de
texto?
Representación en modo texto
Se trabaja en un entorno de texto (no gráfico), el programa en ejecución controla la
información representada en la totalidad de la pantalla (no hay "ventanas"); el
control de esta se realiza en término de filas y columnas y un surtido muy limitado
de 256 caracteres. Los únicos atributos que pueden tener los caracteres suelen ser:
Color de tinta y de papel (trazo y fondo); subrayado y parpadeo.
“Programación Moderna"
Se trata de conceptos generales e independientes. Por ejemplo, un programa
"moderno" puede ser multiprogramación pero en modo texto, o no orientado a
objetos; sin embargo, la mayoría de las característica se dan juntas. En especial si
se trata de programas que utilizan la interfaz gráfica de los SOS más conocidos.

4.1 CONSTRUCCIÓN DE COMPONENTES

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.
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).
Lado servidor: Programa que se ejecuta en un computador que está conectado a
una red. Está 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 laWeb,HTTP, define el formato y la secuencia de los
mensajes transmitidos entre el navegador y el servidorWeb.
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.
Estos componentes son independientes de la arquitectura de red que se utiliza.
Componentes Software
¿Alguna vez ha pensado que un programa pudiera ser como... una bicicleta?. Si es
necesario cambiar la cadena de la bicicleta, usted solo se centra en la cadena, no
tiene que lidiar con otros componentes ajenos, como por ejemplo, las gomas o tan
sencillo como el timbre, sino solo la cadena. Sabe con exactitud dónde está el
componente y puede modificarlo (engrasar) o actualizarlo (una nueva). Si ahora le
dijera que pudiera hacer lo mismo con los software que usted desarrolla, ¿qué diría
al respecto?.
El objetivo de la tecnología de componentes software es construir aplicaciones
complejas mediante ensamblado de módulos (componentes) que han sido
previamente diseñados por otras personas a fin de ser rehusados en múltiples
aplicaciones. La ingeniería de programación que sigue esta estrategia de diseño se
le conoce por el acrónimo CBSE1 y es actualmente una de las más prometedoras
para incrementar la calidad del software, abreviar los tiempos de acceso
al mercado y gestionar el continuo incremento de su complejidad.
La arquitectura software de una aplicación basada en componentes consiste en
uno o un número pequeño de componentes específicos de la aplicación (que se
diseñan específicamente para ella), que hacen uso de otros muchos componentes
prefabricados que se ensamblan entre sí para proporcionar los servicios que se
necesitan en la aplicación.
Entornos normalizados de desarrollo de componentes software.
Para que una arquitectura de componentes pueda operar es necesario disponer de
un entorno normalizado que proporcione soporte a los mecanismos con que se
comunican las interfaces.
COM (Component Object Model).
Los lenguajes de programación clásicos fueron diseñados para desarrollar
aplicaciones secuenciales compuestas de módulos, todos ellos codificados con un
solo lenguaje. Sin embargo, hay situaciones en las que no es práctico restringirse al
uso de un único lenguaje. La tecnología COM aborda la solución a este problema
proporcionando un sencillo, pero a la vez potente modelo para construir sistemas
software a partir de la interacción de objetos (componentes).
COM define un estándar binario (esto implica que es independiente del lenguaje de
programación) para objetos y la intercomunicación entre ellos.
Todacomunicación se realiza a través de operaciones que son proporcionadas
dentro de interfaces. El diseñador invoca las operaciones que necesita
directamente, incluso si el objeto destinatario está localizado en otro proceso o en
otra máquina.
El modelo de programación COM esta basado en la distribución de código de clases
en componentes binarios. Esto significa que el software (componentes) que se
adhiere a COM, puede ser rehusado sin ninguna dependencia de código fuente. Los
desarrolladores pueden exponer sus trabajos como ficheros binarios sin dar a
conocer sus algoritmos.
El desarrollo basado en componentes resuelve muchos de los problemas asociados
con las aplicaciones monolíticas. Permite al grupo de desarrollo exponer ficheros
binarios en vez de código fuente. Los componentes binarios pueden ser
actualizados independientemente y reemplazados, lo que se hace mucho más fácil
mantener y extender una aplicación después de que esta ha sido puesta en
explotación.

MTS (**Microsoft** Transacción Server).
MTS es una pieza de software que fue creada para Windows NT Server. Como su
nombre implica, MTS permite a los objetos de la capa media (más adelante se
expone una arquitectura de diseño) correr sobre Windows NT Server y controlar
las transacciones distribuidas, es decir, permite a los componentes ser esparcidos
por la red y que se ejecuten en otras computadoras con sistema
operativo Windows NT Server. MTS provee un entorno de ejecución para objetos
COM, adicionando soporte para la seguridad, soporte para administración y
configuración. Es posible administrar varios servidores desde una
simple computadora.
COM+
COM+1, no es más que la integración de la arquitectura COM y MTS (Microsoft
Transation Server). A diferencia de MTS, esta nueva capa de ejecución no es
opcional2 , COM+ es parte por defecto de la instalación del sistema operativo
Windows 2000.
Como COM, COM+, es basado sobre componentes binarios y programación basada
en interfaces. Los Componentes COM+ pueden ser actualizados y extendidos una
vez que estén en explotación sin afectar a las aplicaciones clientes que los usan en
la producción.
De este modo, la combinación de la tecnología COM+ junto con las técnicas de
programación orientada a objeto, nos ofrece una importante simplificación en el
proceso de desarrollo de aplicaciones informáticas.
Diseñando Aplicaciones Distribuidas.
El diseño de aplicaciones modernas involucra la división de una aplicación en
múltiples capas; la interface de usuario, la capa media de objetos de negocios, y la
capa de acceso adatos. 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.


4.2 COMUNICACIÓN CON MANEJO DE DATOS.

Comunicación de Datos. Es el proceso de comunicar información en forma binaria
entre dos o más puntos. Requiere cuatro elementos básicos que son:
*Emisor: Dispositivo que transmite los datos.
*Mensaje: lo forman los datos a ser transmitidos.
*Medio: consiste en el recorrido de los datos desde el origen hasta su destino.
*Receptor: dispositivo de destino de los datos.
BIT: es la unidad más pequeña de información y la unidad base en comunicaciones.
BYTE: conjunto de bits continuos mínimos que hacen posible, un direccionamiento
de información en un sistema computarizado. Está formado por 8 bits.
Paquete: fracciones de un mensaje de tamaño predefinido, donde cada fracción o
paquete contiene información de procedencia y de destino, así como información
requerida para el re ensamblado del mensaje.
Interfaces: conexión que permite la comunicación entre dos o más dispositivos.
Códigos: acuerdo previo sobre un conjunto de significados que definen una serie
de símbolos y caracteres. Toda combinación de bits representa un carácter dentro
de la tabla de códigos.
----Paridad: técnica que consiste en la adición de un bit a un carácter o a un bloque
de caracteres para forzar al conjunto de unos (1) a ser par o impar. Se utiliza para
el chequeo de errores en la validación de los datos. El bit de paridad será cero
(0=SPACE) o uno (1=MARK).
Modulación: proceso de manipular de manera controlada las propiedades de una
señal portadora para que contenga la información que se va a transmitir
DTE (Data Terminal Equipment): equipos que son la fuente y destino de los datos.
Comprenden equipos de computación (Host, Microcomputadores y Terminales).
DCE (Data Communications Equipment): equipos de conversión entre el DTE y el
canal de transmisión, es decir, los equipos a través de los cuales conectamos los
DTE a las líneas de comunicación.

UNIDAD 5: IMPLEMENTACIÓN DE INTERFAZ DE USUARIO.

5.1 LENGUAJES DE MERCADO
Un “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.
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
– Las hojas de estilo o lenguajes de transformación permiten la “traducción” de
anotaciones de tipo estructural a anotaciones de carácter tipográfico.
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
– Otros lenguajes especializados






MathML
VoiceXML
SVG
MusicXML

5.2 TECNOLOGÍAS PARA IMPLEMENTACIÓN DE INTERFACES DE
USUARIO.
En el contexto del proceso de interacción persona-ordenador, la interfaz gráfica de
usuario, es el artefacto tecnológico de un sistema interactivo que posibilita, a
través del uso y la representación del lenguaje visual, una interacción amigable con
un sistema informático.
La interfaz gráfica de usuario (en inglés GraphicalUser Interface, GUI) es un tipo de
interfaz de usuario que utiliza un conjunto de imágenes y objetos gráficos para
representar la información y acciones disponibles en la interfaz. Habitualmente las
acciones se realizan mediante manipulación directa para facilitar la interacción del
usuario con la computadora.
Surge como evolución de la línea de comandos de los primeros sistemas operativos
y es pieza fundamental en un entorno gráfico.
Como ejemplo de interfaz gráfica de usuario podemos citar el escritorio o desktop
del sistema operativo Windows y el entorno X-Windows de Linux.
Algunas Interfaces gráficas (GUIs) son:



GPA Intenta ser la interfaz de usuario gráfica estándar de Gnu PG. GPA se hospeda
en este sitio.
K Gpg
Es una interfaz de usuario de KDE para Gnu PG.



Seahorse
Es una interfaz de usuario de GNOME para Gnu PG.



XAP
5.3 PROGRAMACIÓN

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
La interfaz representa el punto de encuentro entre el usuario y la computadora. En
esta interacción, el usuario juzga la utilidad de la interfaz; el hardware y el
software se convierten en simples herramientas sobre los cuales fue construida la
interfaz. La definición de interfaz en si misma es un tanto arbitraria, aunque esto
depende de la naturaleza de la tarea que se tiene enfrente.
Existen muchos tipos de software para la creación de interfaces de usuario.
El sistema de ventanas permite la división de la pantalla en diferentes regiones
rectangulares, llamadas ``ventanas''. El sistema de ventanas Windows para Unix
divide la funcionalidad de la ventana en dos capas: el sistema de ventanas, el cual
es la interfaz funcional, y el administrador de ventanas. El sistema de ventanas
provee de procedimientos que permiten a la aplicación el dibujar figuras en la
pantalla y sirve como medio de entrada de las acciones del usuario. El
administrador de ventanas le permite al usuario final el mover las ventanas por la
pantalla, y es el responsable de desplegar las líneas de título, bordes e íconos
alrededor de las ventanas.
La parte central de un sistema de ventanas es el conjunto de herramientas
(toolkit), el cual contiene los objetos gráficos (widgets más empleados tales como
menús, botones, barras de scroll, y campos para entrada de texto.
Eltoolkit generalmente se conecta a los programas de aplicación a través de una
serie de procedimientos definidos por el programador. La función de estos
procedimientos es el decidir la forma en que se comportarán los objetos gráficos.

5.3.1 DEL LADO DEL CLIENTE
Con 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.
Los clientes también se pueden mejorar con otras técnicas. Por ejemplo, podemos
usar controles ActiveX y Applets de Java. Aunque estas tecnologías son bastantes
diferentes, el resultado final es similar: la interfaz del cliente puede hacer cosas
que no puede hacer normalmente con HTML. De momento, la diferencia principal
entre ambas es que los controles ActiveX sólo funcionan en IE. Las Applets de Java
funcionan tanto en IE como en Navigator, aunque no todos los Applets funcionan
igual de bien en ambos exploradores.

5.3.1 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.
Si bien la tecnología CGI resolvía el problema de la presentación exclusiva de
información estática, al mismo tiempo presentaba dos limitaciones importantes: el
problema de seguridad que podía representar el hecho de que mediante una
petición se pudiesen ejecutar programas indeseados en el servidor y la carga del
servidor (si una página que lanzaba un programa era llamada desde 100 clientes
simultáneamente, el servidor ejecutaba 100 procesos, uno por cada cliente que
solicitaba dicha página).
Para resolver estos problemas, se buscó desarrollar una tecnología que permitiera
ejecutar, en un único proceso del servidor, todos los pedidos de ejecución de
código sin importar la cantidad de clientes que se conectaban concurrentemente.
Así surgieron los denominados servlets, basados en la tecnología Java de Sun
Microsystems, y los filtros ISAPI de Microsoft. Éstos permitían ejecutar código en
un único proceso externo que gestionaba todas las llamadas realizadas por el
servidor web, impidiendo al mismo tiempo que el servidor web pueda ejecutar
programas del sistema operativo.
No obstante, de este modo se limitaron los problemas de prestación y seguridad de
la tecnología CGI, y no se resolvió el problema representado por un desarrollo
demasiado costoso en términos de tiempo. Asimismo, se hizo necesario que dos
figuras profesionales distintas trabajen en un único proyecto: el programador (que
conoce el lenguaje de programación utilizado del lado del servidor) y el diseñador
web (que conoce la parte gráfica y el lenguaje HTML). Para resolver estas
limitaciones, fueron desarrollados lenguajes que pueden ser incluidos al interno de
archivos HTML. Estos comandos pueden ser interpretados (como por ejemplo las
páginas ASP o PHP) o precompilados (como en las páginas JSP o ASP.NET).
Con la utilización de esta tecnología se buscaba, también, desarrollar aptitudes de
diseñador web en los programadores y de programador en los diseñadores (se
esperaba con ello el hacer más fácil y veloz el desarrollo de scripts del lado del
servidor).

UNIDAD 6 INTEGRACIÓN DE APLICACIONES DISTRIBUIDAS.

6.1 ASIGNACIÓN DE LAS PARTES DE LA APLICACIÓN
Una vez realizada la identificación de las partes, la valoración de la sensibilidad nos
lleva a darle un valor y a evaluar que tan críticos son: la información y los demás
elementos de la organización como el software, hardware, y el valor de los
servicios que provee la aplicación. Cuando hablamos de valor debemos tener claro
que a la información y a los servicios de red se les debe asociar un monto
simbólico, mientras el software y el hardware se evalúan en dinero, de acuerdo a
los criterios que se describen a continuación.
* Confidencialidad
La cual se refiere al servicio prestado para proteger la información principalmente
de accesos no autorizados. Por ejemplo si hay un circuito virtual entre dos
sistemas, este servicio debería ser capaz de proteger la "revelación" de la
información que viaja por dicho circuito de un tercer atacante que intenta capturar
dichos datos. Información del personal, investigaciones y reportes de desarrollo
son algunos de los ejemplos de información que necesita confidencialidad.
* Integridad
El servicio de integridad es el que permite que la información sea adecuada,
completa y auténtica en el momento de ser procesada, presentada, guardada o
transmitida. Por ejemplo si uno transmite datos de control de cualquier tipo por
una red, mínimo desea que estos no lleguen dañados o defectuosos porque las
consecuencias finales podrían ser desastrosas (e.g. datos que controlen un
mecanismo de armas). En algunos casos mantener y garantizar esta característica
es más importante que la confidencialidad.


Disponibilidad

Como su nombre lo indica la disponibilidad incluye todos los servicios de red que
se pueden tener y prestar en determinado momento. Un esquema típico con el cual
se maneja la disponibilidad es el de dos dominios donde el primero coloca un valor
a la información que se puede destruir completamente y nunca más podrá ser
consultada, el segundo dominio coloca valores en tiempo de disponibilidad por
ejemplo: el servicio de impresora no está disponible por 1 hora, 2 horas o lo
contrario está disponible solo por 3 horas, etc; este último dominio conocido como
"over time" sirve para encontrar umbrales de disponibilidad; por ejemplo, "si
después de 2 horas no está disponible el servidor de la base de datos de empleados
hay que programar un procedimiento manual".

6.2 DISTRIBUCIÓN DE LA APLICACIÓN

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 LOS COMPONENTES

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 LOS COMPONENTES

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 Configuración Settings 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 LA 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.
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
Los sistemas informáticos a veces fallan. Cuando se producen fallos en el software
o en el hardware, los programas podrían producir resultados incorrectos o podrían
pararse antes de terminar la computación que estaban realizando. El diseño de
sistemas tolerantes a fallos se basa en dos cuestiones, complementarias entre sí:
Redundancia hardware (uso de componentes redundantes) y recuperación del
software (diseño de programas que sean capaces de recuperarse de los fallos).
En los sistemas distribuidos la redundancia puede plantearse en un grano mas fino
que el hardware, pueden replicarse los servidores individuales que son esenciales
para la operación continuada de aplicaciones críticas.
La recuperación del software tiene relación con el diseño de software que sea
capaz de recuperar (roll-back) el estado de los datos permanentes antes de que se
produjera el fallo.
Los sistemas distribuidos también proveen un alto grado de disponibilidad en la
vertiente de fallos hardware. La disponibilidad de un sistema es una medida de la
proporción de tiempo que está disponible para su uso. Un fallo simple en una
maquina multiusuario resulta en la no disponibilidad del sistema para todos los
usuarios. Cuando uno de los componentes de un sistema distribuidos falla, solo se
ve afectado el trabajo que estaba realizando el componente averiado. Un usuario
podría desplazarse a otra estación de trabajo; un proceso servidor podría
ejecutarse en otra máquina.
El término 'recurso' es bastante abstracto, pero es el que mejor caracteriza el
abanico de entidades que pueden compartirse en un sistema distribuido. El
abanico se extiende desde componentes hardware como discos e impresoras hasta
elementos software como ficheros, ventanas, bases de datos y otros objetos de
datos.
La idea de compartición de recursos no es nueva ni aparece en el marco de los
sistemas distribuidos. Los sistemas multiusuario clásicos desde siempre han
provisto compartición de recursos entre sus usuarios. Sin embargo, los recursos de
una computadora multiusuario se comparten de manera natural entre todos sus
usuarios. Por el contrario, los usuarios de estaciones de trabajo monousuario o
computadoras personales dentro de un sistema distribuido no obtienen
automáticamente los beneficios de la compartición de recursos.
Los recursos en un sistema distribuido están físicamente encapsulados en una de
las computadoras y sólo pueden ser accedidos por otras computadoras mediante
las comunicaciones (la red). Para que la compartición de recursos sea efectiva, ésta
debe ser manejada por un programa que ofrezca un interfaz de comunicación
permitiendo que el recurso sea accedido, manipulado y actualizado de una manera
fiable y consistente. Surge el término genérico de gestor de recursos.

6.7 OPTIMIZACIÓN DEL DESEMPEÑO

Un gestor de recursos es un módulo software que maneja un conjunto de recursos
de un tipo en particular. Cada tipo de recurso requiere algunas políticas y métodos
específicos junto con requisitos comunes para todos ellos. Éstos incluyen la
provisión de un esquema de nombres para cada clase de recurso, permitir que los
recursos individuales sean accedidos desde cualquier localización; la traslación de
nombre de recurso a direcciones de comunicación y la coordinación de los accesos
concurrentes que cambian el estado de los recursos compartidos para mantener la
consistencia.
Un sistema distribuido puede verse de manera abstracta como un conjunto de
gestores de recursos y un conjunto de programas que usan los recursos. Los
usuarios de los recursos se comunican con los gestores de los recursos para
acceder a los recursos compartidos del sistema. Esta perspectiva nos lleva a dos
modelos de sistemas distribuidos: el modelo cliente-servidor y el modelo basado
en objetos.

Más contenido relacionado

La actualidad más candente

1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capasEsbeyiz
 
Middleware en los sistemas distribuidos
Middleware en los sistemas distribuidosMiddleware en los sistemas distribuidos
Middleware en los sistemas distribuidosJC Alca Arequi
 
03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capas03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capasWalter Moo Guzmán
 
Unidad ii
Unidad iiUnidad ii
Unidad iiOrlys05
 
Tarea1 programacion-distribuida
Tarea1 programacion-distribuidaTarea1 programacion-distribuida
Tarea1 programacion-distribuidaRJ Manayay Chavez
 
¿Qué es el Modelo Tres Capas?
¿Qué es el Modelo Tres Capas?¿Qué es el Modelo Tres Capas?
¿Qué es el Modelo Tres Capas?Felipe Schmidt
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de controlJuan Pablo Bustos Thames
 
Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicaciónuniv of pamplona
 
Arquitectura de un sistema de informacion
Arquitectura de un sistema de informacionArquitectura de un sistema de informacion
Arquitectura de un sistema de informacionMauricio Duero
 
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Universidad de Guadalajara
 
Arquitectura de sistemas
Arquitectura de sistemasArquitectura de sistemas
Arquitectura de sistemasTensor
 

La actualidad más candente (19)

Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas
 
Middleware en los sistemas distribuidos
Middleware en los sistemas distribuidosMiddleware en los sistemas distribuidos
Middleware en los sistemas distribuidos
 
03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capas03b arquitectura clienteservidor n capas
03b arquitectura clienteservidor n capas
 
Unidad ii
Unidad iiUnidad ii
Unidad ii
 
Tarea1 programacion-distribuida
Tarea1 programacion-distribuidaTarea1 programacion-distribuida
Tarea1 programacion-distribuida
 
¿Qué es el Modelo Tres Capas?
¿Qué es el Modelo Tres Capas?¿Qué es el Modelo Tres Capas?
¿Qué es el Modelo Tres Capas?
 
sistemas distribuidos
sistemas distribuidossistemas distribuidos
sistemas distribuidos
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de control
 
Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicación
 
Arquitectura de un sistema de informacion
Arquitectura de un sistema de informacionArquitectura de un sistema de informacion
Arquitectura de un sistema de informacion
 
Middleware
MiddlewareMiddleware
Middleware
 
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
 
Arquitectura de aplicaciones
Arquitectura de aplicacionesArquitectura de aplicaciones
Arquitectura de aplicaciones
 
3capas
3capas3capas
3capas
 
Software
SoftwareSoftware
Software
 
Arquitectura de sistemas
Arquitectura de sistemasArquitectura de sistemas
Arquitectura de sistemas
 
Arquitectura distribuida
Arquitectura distribuidaArquitectura distribuida
Arquitectura distribuida
 
07 middleware
07 middleware07 middleware
07 middleware
 

Destacado

One life to live !
One life to live !One life to live !
One life to live !Hoa Bien
 
Hoiky cuahanhthien tts
Hoiky cuahanhthien ttsHoiky cuahanhthien tts
Hoiky cuahanhthien ttsHoa Bien
 
La syrie que_vous_ne_connaissez_pas
La syrie que_vous_ne_connaissez_pasLa syrie que_vous_ne_connaissez_pas
La syrie que_vous_ne_connaissez_pasHoa Bien
 
Destination b2
Destination b2Destination b2
Destination b2191095
 
Reading newspapers in_english_kuprianova
Reading newspapers in_english_kuprianovaReading newspapers in_english_kuprianova
Reading newspapers in_english_kuprianova191095
 
инт тех до_ пособие
инт тех до_ пособиеинт тех до_ пособие
инт тех до_ пособиеSerghei Urban
 
Sologne faune et_flore_70
Sologne faune et_flore_70Sologne faune et_flore_70
Sologne faune et_flore_70Hoa Bien
 
Xuong duong nude
Xuong duong nudeXuong duong nude
Xuong duong nudeHoa Bien
 
Lap trinh ng ngu ty duy 2
Lap trinh ng ngu ty duy 2Lap trinh ng ngu ty duy 2
Lap trinh ng ngu ty duy 2maicanhtinh
 

Destacado (12)

One life to live !
One life to live !One life to live !
One life to live !
 
Hoiky cuahanhthien tts
Hoiky cuahanhthien ttsHoiky cuahanhthien tts
Hoiky cuahanhthien tts
 
La syrie que_vous_ne_connaissez_pas
La syrie que_vous_ne_connaissez_pasLa syrie que_vous_ne_connaissez_pas
La syrie que_vous_ne_connaissez_pas
 
Destination b2
Destination b2Destination b2
Destination b2
 
Reading newspapers in_english_kuprianova
Reading newspapers in_english_kuprianovaReading newspapers in_english_kuprianova
Reading newspapers in_english_kuprianova
 
инт тех до_ пособие
инт тех до_ пособиеинт тех до_ пособие
инт тех до_ пособие
 
Sologne faune et_flore_70
Sologne faune et_flore_70Sologne faune et_flore_70
Sologne faune et_flore_70
 
Xuong duong nude
Xuong duong nudeXuong duong nude
Xuong duong nude
 
Lap trinh ng ngu ty duy 2
Lap trinh ng ngu ty duy 2Lap trinh ng ngu ty duy 2
Lap trinh ng ngu ty duy 2
 
Destination b1
Destination b1Destination b1
Destination b1
 
Tofel
TofelTofel
Tofel
 
Very easy toeic
Very easy toeicVery easy toeic
Very easy toeic
 

Similar a DESARROLLO DE APLICACIONES DISTRIBUIDAS

Aplicaciones informáticas
Aplicaciones informáticasAplicaciones informáticas
Aplicaciones informáticasfelipe cuadros
 
Aplicacion distribuida maria elena
Aplicacion distribuida maria elenaAplicacion distribuida maria elena
Aplicacion distribuida maria elenaMary Narváez
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidasalondra0126
 
Unidad 1. Desarrollo de Aplicaciones Distribuidas
Unidad 1. Desarrollo de Aplicaciones DistribuidasUnidad 1. Desarrollo de Aplicaciones Distribuidas
Unidad 1. Desarrollo de Aplicaciones DistribuidasIsidro Lopez Riuz
 
Programación de aplicación del lado del servidor
Programación de aplicación del lado del servidorProgramación de aplicación del lado del servidor
Programación de aplicación del lado del servidorMoises Castrejon Mendez
 
Desarrollo y reutilización de componentes software y multimedia mediante leng...
Desarrollo y reutilización de componentes software y multimedia mediante leng...Desarrollo y reutilización de componentes software y multimedia mediante leng...
Desarrollo y reutilización de componentes software y multimedia mediante leng...Jomicast
 
Clase rii 10 11 u3 sistemas cliente servidor
Clase rii 10 11 u3 sistemas cliente servidorClase rii 10 11 u3 sistemas cliente servidor
Clase rii 10 11 u3 sistemas cliente servidorGregorio Tkachuk
 
Investigación de tecnologías de sistemas distribuidos
Investigación de tecnologías de sistemas distribuidosInvestigación de tecnologías de sistemas distribuidos
Investigación de tecnologías de sistemas distribuidosYolanda Mora
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 nivelesLupitha Mendoza
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 nivelesLupitha Mendoza
 
Monografia top sw
Monografia top swMonografia top sw
Monografia top swjamoca25
 
APLICACIONES INFORMATICAS
APLICACIONES INFORMATICASAPLICACIONES INFORMATICAS
APLICACIONES INFORMATICAScultca3
 
Ejemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con accessEjemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con accessuniv of pamplona
 

Similar a DESARROLLO DE APLICACIONES DISTRIBUIDAS (20)

Aplicaciones informáticas
Aplicaciones informáticasAplicaciones informáticas
Aplicaciones informáticas
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Aplicacion distribuida maria elena
Aplicacion distribuida maria elenaAplicacion distribuida maria elena
Aplicacion distribuida maria elena
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Unidad 1. Desarrollo de Aplicaciones Distribuidas
Unidad 1. Desarrollo de Aplicaciones DistribuidasUnidad 1. Desarrollo de Aplicaciones Distribuidas
Unidad 1. Desarrollo de Aplicaciones Distribuidas
 
Programación de aplicación del lado del servidor
Programación de aplicación del lado del servidorProgramación de aplicación del lado del servidor
Programación de aplicación del lado del servidor
 
Desarrollo y reutilización de componentes software y multimedia mediante leng...
Desarrollo y reutilización de componentes software y multimedia mediante leng...Desarrollo y reutilización de componentes software y multimedia mediante leng...
Desarrollo y reutilización de componentes software y multimedia mediante leng...
 
Monografia Programación 3 Niveles
Monografia Programación 3 NivelesMonografia Programación 3 Niveles
Monografia Programación 3 Niveles
 
Clase rii 10 11 u3 sistemas cliente servidor
Clase rii 10 11 u3 sistemas cliente servidorClase rii 10 11 u3 sistemas cliente servidor
Clase rii 10 11 u3 sistemas cliente servidor
 
N-CAPAS EN VISUAL NET
N-CAPAS EN VISUAL NETN-CAPAS EN VISUAL NET
N-CAPAS EN VISUAL NET
 
Investigación de tecnologías de sistemas distribuidos
Investigación de tecnologías de sistemas distribuidosInvestigación de tecnologías de sistemas distribuidos
Investigación de tecnologías de sistemas distribuidos
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 niveles
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 niveles
 
1 intro
1 intro1 intro
1 intro
 
Fun_02_estructura_programa
Fun_02_estructura_programaFun_02_estructura_programa
Fun_02_estructura_programa
 
Monografia top sw
Monografia top swMonografia top sw
Monografia top sw
 
Arquitectura en capas
Arquitectura en capasArquitectura en capas
Arquitectura en capas
 
APLICACIONES N-CAPAS EN VISUAL NET
APLICACIONES N-CAPAS EN VISUAL NETAPLICACIONES N-CAPAS EN VISUAL NET
APLICACIONES N-CAPAS EN VISUAL NET
 
APLICACIONES INFORMATICAS
APLICACIONES INFORMATICASAPLICACIONES INFORMATICAS
APLICACIONES INFORMATICAS
 
Ejemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con accessEjemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con access
 

DESARROLLO DE APLICACIONES DISTRIBUIDAS

  • 1. INSTITUTO TECNOLÓGICO DE APIZACO NOMBRE DEL ALUMNO: OMAR XOCHIPA BENITEZ TURNO: MATUTINO MATERIA: DESARROLLO DE APLICACIONES PARA AMBIENTES DISTRIBUIDOS CATEDRÁTICO: HIJINIO NAVA BAUTISTA ESPECIALIDAD: INFORMÁTICA
  • 2. TEMARIO DE LA MATERIA DE DESARROLLO DE APLICACIONES PARA AMBIENTE DISTRIBUIDOS UNIDAD: 1 UNIDAD 1 PANORAMA GENERAL DE LAS APLICACIONES DISTRIBUIDAS 1 Panorama general de las aplicaciones distribuidas. 1.1 Evolución de las aplicaciones informáticas. 1.1.1 Aplicaciones monolíticas. 1.1.2 Aplicaciones cliente/servidor. 1.1.3 Aplicaciones de 2,3 y n capas. 1.1.4 Aplicaciones distribuidas. 1.2 Evolución de las tecnologías para el desarrollo de aplicaciones distribuidas. 1.2.1 De interfaz de usuario. 1.2.2 De aplicación. 1.2.3 De base de datos. 1.2.4 De comunicación de datos. 1.2.5 De conexión entre capas. 1.3 Escenarios de utilización de las aplicaciones distribuidas. 1.4 Problemas comunes en el desarrollo y uso de aplicaciones distribuidas. UNIDAD: 2
  • 3. 2 Arquitectura de aplicaciones distribuidas. 2.1 Capa de interfaz de usuario. 2.2 Capa de manejo de datos. 2.3 Capa de procesamiento de datos. 2.4 Integración de sistemas heredados. 2.5 Distribución de elementos de una aplicación. 2.6 Integración de tecnologías heterogéneas y homogéneas. 2.7 Servicios de la arquitectura (email, web, base de datos, aplicaciones, transacciones, sistemas operativos, firewall. UNIDAD: 3 3 Diseño de aplicaciones distribuidas. 3.1 Diseño e implementación de manejo de datos. 3.2 Diseño de procesamiento de datos. 3.3 Diseño de interfaz de usuario. 5.- TEMARIO (Continuación) UNIDAD: 4 4 Implementación de procesamiento de datos. 4.1 Construcción de componentes. 4.2 Comunicación con manejo de datos.
  • 4. UNIDAD: 5 5 Implementación de interfaz de usuario. 5.1 Lenguajes de marcado. 5.2 Tecnologías para implementación de interfaces de usuario. 5.3 Programación. 5.3.1 Del lado del cliente. 5.3.2 Del lado del servidor. UNIDAD: 6 6 Integración de aplicaciones distribuidas. 6.1 Asignación de las partes de la aplicación. 6.2 Distribución de la aplicación. 6.3 Instalación de los componentes. 6.4 Configuración de los componentes. 6.5 Configuración de la aplicación. 6.6 Evaluar desempeño. 6.7 Optimización del desempeño. UNIDAD I: PANORAMA GENERAL DE LAS APLICACIONES DISTRIBUIDAS 1.1 EVOLUCIÓN DE LAS APLICACIONES INFORMÁTICAS
  • 5. La evolución de las aplicaciones informáticas se dio debido a los siguientes factores: 1.- trabajo en equipo 2.- compartir información 3.- accesibilidad 4.- seguridad en la protección de la información 5.- independencia de lugares En la actualidad cualquier aplicación cuenta generalmente con tres puntos diferenciados, las cuales son: 1. Una interfaz de usuario: son los elementos con el que interacciona el usuario de la aplicación, ejecutando acciones, introduciendo u obteniendo información 2. Lógica o reglas de negocio: son las que procesan los resultados que se 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. 1.1.1 APLICACIONES MONOLÍTICAS Son aquellas en las que el software se estructura en grupos funcionales muy acoplados, involucrando los aspectos referidos a la presentación, procesamiento y almacenamiento de la información. En este rubro están considerados las distintas aplicaciones para escritorio: sistemas operativos, ofimática, juegos mono usuario, etc. 1.1.2 APLICACIONES CLIENTE/SERVIDOR Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es
  • 6. más ventajosa en un sistema operativo multiuso distribuido a través de una red de computadoras. En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema. La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma. CARACTERÍSTICAS CLIENTE/SERVIDOR En la arquitectura cliente servidor el remitente es conocido como cliente y sus características son: 1. Es quien inicia las peticiones o solicitudes, tienen un papel activo en la comunicación (Dispositivo maestro o amo). 2. Espera y recibe las respuestas del servidor. 3. Normalmente interactivo con los usuarios mediante una interfaz gráfica. 1.1.3 APLICACIONES DE 2,3 Y N CAPAS
  • 7. Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa, la idea principal es utilizar aplicaciones que se ejecutan través de la computadora, cada aplicación constituye una sola acción para realización de tareas. APLICACIONES DE 2 CAPAS Las capas que esta arquitectura presenta son las siguientes: - nivel de aplicación. Es en el que se encuentra toda la interfaz del sistema y es la que el usuario puede disponer para realizar su actividad con el sistema. - Nivel de la base de datos. Este nivel de la base de datos también llamado repositorio de datos, es la etapa en donde se almacena toda la información ingresada en el sistema y que se deposita en forma permanente APLICACIONES DE N CAPAS En una aplicación distribuida en n-capas los diferentes procesos están distribuidos en diferentes capas no sólo lógicas, sino también físicas. Los procesos se ejecutan en diferentes equipos, que pueden incluso residir en plataformas o sistemas operativos completamente distintos. Cada equipo posee una configuración distinta y está optimizado para realizar el papel que le ha sido asignado dentro de la
  • 8. estructura de la aplicación, de modo que tanto los recursos como la eficiencia global del sistema se optimicen. Aplicación de 3 capas. La arquitectura de 2 capas si bien ayuda en unos años atrás, Se vio la necesidad de crear una nueva arquitectura ya que en dos capas se tenía unos problemas en la capa de aplicación ya que la principal desventaja de esta era el peso que se tenía para el cliente. 1.1.4 APLICACIONES DISTRIBUIDAS El diseño de aplicaciones modernas involucra la división de una aplicación en múltiples capas; la interfaz 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. Interactivo con aplicaciones externas o servicios. Interactivo con otros usuarios. Nosotros podemos tomar estos tipos de servicios y generalizarlos dentro de los tres grupos o capas que a continuación se resumen: o Interfaces de usuario (Capa de Presentación) 2. Interactivo con otros usuarios. 3. Interactivo con aplicaciones externas o servicios. o Procesos de negocios (Capa de Negocios) 2. Cálculos u otros procesos de negocios. 3. Ejecución de reglas de negocios. 4. Validación de datos relacionados al negocio.
  • 9. 1.2 EVOLUCIÓN DE LAS TECNOLOGÍAS PARA EL DESARROLLO DE APLICACIONES DISTRIBUIDAS. Hoy en día las compañías no pueden ignorar el grave problema que implica desarrollar y adaptar software al ritmo que imponen los negocios. Los requisitos varían con mucha frecuencia y las aplicaciones no logran ser desarrolladas y/o adaptadas al ritmo requerido. La legalización y fusión de empresas, el crecimiento de Internet, entre otros factores, han acentuado aún más estos problemas llevando el software desarrollado, que normalmente había sido desarrollado para una plataforma específica, a un ambiente distribuido heterogéneo. Esto involucra, en consecuencia, La necesidad de considerar una amplia gama de aspectos como lo son la integración de datos heterogéneos, la interacción entre diversos sistemas, los distintos sistemas operativos, el middleware, las tecnologías web, cuestiones de esa labilidad y permanece, por citar algunos de ellos. La evolución de las tecnologías cliente/servidor sumada al advenimiento de nuevas tecnologías como XML, web servicies , la plataforma J2EE, la comunicación asíncrona por medio de mensajes, el uso de aplicaron versen , son algunos de los conocimientos que permiten llevar a cabo el desarrollo de aplicaciones modernas. La evolución de las aplicaciones distribuidas se dio de la siguiente forma:     Aplicaciones monolíticas. Arquitectura cliente/servidor Arquitectura de tres capas. Arquitectura de N capas. 1.2.1 DE INTERFAZ DE USUARIO.  Aquí es donde su aplicación presenta información a los usuarios y acepta entradas o respuestas del usuario para usar por su programa. Idealmente, la IU no desarrolla ningún procesamiento de negocios o reglas de validación de negocios. Por el contrario, la IU debería relegar sobre la capa de negocios para manipular estos asuntos. Esto es importante, especialmente hoy en día, debido a que es muy común para una aplicación tener múltiples IU, o para sus clientes o usuarios, que le solicitan que elimine una IU y la remplace con otra. 1.2.2 DE APLICACIÓN.
  • 10. La adopción de un diseño distribuido de aplicaciones empresariales, aumenta la permeabilidad, reduce la cantidad de recursos, y los costes necesarios de desarrollo y mantenimiento. Este nuevo enfoque de diseño pone en manos de los des arrolladores no solo la funcionalidad que demandan las aplicaciones, sino también la seguridad, rapidez y flexibilidad. Algunas tecnologías de aplicación son:     CORBA. DNA. EJB. XML. 1.2.3 DE BASE DE DATOS. La evolución de las bases de datos distribuidas se debe por una parte a razones generacionales las cuales han demandado que mayores capacidades sean incorporadas a las bases de datos, tales como la integración de información desde distintos sitios donde se encuentre la empresa distribuida hacia algún sitio por ejemplo, para una consulta. Por otra parte, el desarrollo de las tecnologías de comunicación han permitido enlazar datos con aplicaciones que se encuentran en
  • 11. sitios distintos y remotos, por ejemplo las transacciones bancarias realizadas en máquinas-cajeros automáticos (ATM) que se encuentran ubicados en centros comerciales, empresas y escuelas, no serían posibles si no tuviéramos sistemas de comunicación para enlazarnos a bases de datos localizadas en diferentes sitios financieros. Algunas tecnologías de base de datos son:     OLEB ADO. XML. SQL. 1.2.4 DE COMUNICACIÓN DE DATOS. La construcción de aplicaciones distribuidas ha emergido como la arquitectura predominante para la construcción de aplicaciones plataforma en la mayor parte de las empresas. Este cambio radical en los modelos de computación, desde los sistemas monolíticos basados en maderamen y los tradicionales sistemas cliente-servidor, hacia sistemas distribuidos plataforma altamente modulares representa el desarrollo rápido y avance de la investigación en el mundo del desarrollo de aplicaciones, tal y como se pone de manifiesto en las últimas tendencias de las grandes empresas de tecnología, como Un con su estrategia Sun One, o Microsoft con DotNET (.Net). Algunas tecnologías de comunicación de datos son:   Intranet. Internet. 1.2.5 DE CONEXIÓN ENTRE CAPAS Las arquitecturas de capas proporcionan una gran cantidad de beneficios para las empresas que necesitan soluciones flexibles y confiables para resolver problemas complejos en cambios constantes. Todas las aplicaciones basadas en capas permitirán trabajar con clientes ligeros como navegadores de Internet WebTV, teléfonos inteligentes, PDAs (personal, digital y asistente) y muchos otros dispositivos preparados para conectarse a Internet Estas arquitecturas son las más rápidas para desarrollar aplicaciones empresariales y estrategias para la economía emergente que tienen su base en la red.
  • 12. 1.3 ESCENARIOS DE UTILIZACIÓN DE APLICACIONES DISTRIBUIDAS Los escenarios de utilización de aplicaciones distribuidos son muy comunes en la población los escenarios tales como los remote login, correo electrónico, navegación web, telefonía IP, y la compartición de archivos p2p. Algunos escenarios donde se utilizan las aplicaciones distribuidas son: MODELE: Es un ambiente educativo virtual, sistema de gestión de cursos de distribución libre. Ayuda a los educadores a crear comunidades de aprendizaje en línea. A este tipo de plataformas tecnológicas también se conoce como LMSWORDPRESS Es un sistema de gestión de contenido utilizado para crear blogs. CREADOR DE WIKIS – MEDIAWIKI Media wiki es un software para wikis libre, programado en el lenguaje PHP. Es el software utilizado por Wikipedia y otros proyectos de la misma (wikcionario, wikilibros, etc.) Mediawiki puede ser instalado en los servidores web apecha e Internet informatizo servicies y como base de datos utiliza Mysql o Postgresql. ADMINISTRADOR DE BASE DE DATOS WEB – PHPMYADMIN Phpmyadmin es una herramienta escrita en PHP con la intención de manejar la administración de Mysql a través de las páginas Web, utilizando Internet. 1.4 PROBLEMAS COMUNES EN EL DESARROLLO Y USO DE APLICACIONES DISTRIBUIDAS Concurrencia: De igual forma que en las aplicaciones centralizadas, las aplicaciones
  • 13. distribuidas serán utilizadas por cierto número de usuarios concurrente mente Aspectos como las transacciones, los bloqueos de recursos o el uso de la CPU de los equipos a los que acceden muchos usuarios son determinantes a la hora de diseñar una arquitectura con la máxima eficacia. Patología de la red: A pesar de que a día de hoy los anchos de banda cada vez son más amplios, el tráfico de red puede ser un aspecto importante que condicione el tiempo de respuesta de la aplicación. En muchos casos también será necesario tener en cuenta el tipo de red (LAN o WAN), o si la aplicación será o no accesible a través de Internet. La forma de distribuir los procesos de la aplicación tendrá que tomar en consideración el tipo de red que soportará el tráfico de datos. Ubicación de la lógica: Dado que en una aplicación distribuida intervienen varios procesos, será necesario decidir en cuál de los posibles procesos físicos se sitúa cada componente lógico de la aplicación. Mientras que algunos procesos, como la presentación de datos o la recuperación de los mismos, tienen un sitio natural, otros, como la validación o la navegación, pueden ocupar diversos lugares dentro del diagrama que conforma la estructura de la aplicación. Plataformas: En una aplicación distribuida los sistemas operativos involucrados o los lenguajes de desarrollo utilizados pueden ser un factor a tener en cuenta a la hora de decidir algunos aspectos importantes, como por ejemplo el modo de pasar datos entre procesos.
  • 14. UNIDAD: 2 ARQUITECTURA DE APLICACIONES DISTRIBUIDAS 2.1 CAPA DE INTERFAZ DE USUARIO. Interfaces de usuario y su arquitectura ARQUITECTURA DE INTERFACES GRÁFICAS EN AMBIENTE DISTRIBUIDOS. El modo en que el usuario se comunica con una aplicación para solicitar los recursos del sistema operativo constituye la interfaz del mismo. La interfaz es particularmente importante para establecer una vinculación amigable entre el usuario de la computadora y la aplicación. Históricamente las interfaces estuvieron basadas en comando formateado por palabras clave que se combinaban con otras cadenas de caracteres (sintaxis) para ser interpretados por el sistema operativo. Estas interfaces se denominan; interfaces orientadas a carácter. Un ejemplo clásico de una interfaz orientada a carácter es el COMMAND de MS-DOS. Interfaz de modo carácter:
  • 15. En esta clase de interfaz entre la aplicación y el usuario en la que las órdenes se pasan en ASCII existen algunas ventajas y desventajas: Las ventajas que tienen las interfaces orientadas a carácter son su simplicidad, confiabilidad y poco costo en el desarrollo del sistema operativo que las soporta. Las desventajas son que requieren un usuario calificado que estudie y conozca el comando, lo cual resulta muy restrictivo para la difusión del uso de las computadoras. Uno de los beneficios de los sistemas cooperativos visto anteriormente es que: para el usuario lo que importa es lo que éste ve en la pantalla, la presentación. Al software que simula la presentación de un sistema se le conoce como emulador de terminal, el cuál debe ser interactivo como cuando uno redacta un informe en una máquina de escribir, lo que el usuario teclea se ve reflejado en el documento, una terminal la cual solo realiza tareas de presentación debería funcionar de la misma manera. Interfaz gráfica de usuario: En la actualidad millones de nuevos usuarios de las computadoras se han beneficiado con la aparición de las Interfaces Gráficas de Usuario/Graphical User Interface, GUI), las computadoras pueden dar la apariencia de un escritorio común y corriente de una oficina, mostrando iconos, imágenes y otros objetos visuales los cuales permiten que el usuario se acerque más a las computadoras. Interfaz Front-End.Es una aplicación donde los usuarios interactivos directamente con las funciones del sistema, cubre todas las interfaces con las cuales un usuario interactivo con los sistemas, ya sean locales o remotos, sus funciones principales son: Diseño de formatos. Presentación.
  • 16. Lógica de la aplicación. Manipulación de datos. Herramientas de consulta. Utilerías/menús Interfaz Back-End.Es un conjunto de elementos (programas) que sirven como complemento de una interfaz Front-End. Ayuda en la administración, control y configuración de los sistemas teniendo un acceso directo a los recursos (base de datos, comunicaciones, servidores, etc.), que el sistema requiere, entre sus funciones principales se tienen: Administración de la memoria. Seguridad. Manejo de base de datos. Procesamiento remoto. 2.2 CAPA DE MANEJO DE DATOS. Es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de procesamiento de datos o capa de negocio. Hay diferentes modelos de datos: Conceptuales . Utilizados para profundizar en el dominio del problema con el cliente. Lógicos . es el diseño conceptual de la base de datos, esto es, entidades de datos, atributos y relaciones. Físicos. Diseñar el esquema de las bases de datos, esto es, las tablas, sus columnas y relaciones entre ellas
  • 17. Notación para los modelos de datos: La manera de representar los modelos de datos, está basada en la notación UML. 2.3 CAPA DE PROCESAMIENTO DE DATOS Traducción de Objetos a Datos: Como ya es costumbre en esta asignatura, surgen más problemas, en esta ocasión el problema que se nos plantea es: como sabríamos qué columnas necesitaremos a partir del modelo de clases, y como se identificarían las entidades en una base de datos, para solucionarlo se plantean las siguientes maneras: Identificadores de objetos: Características: Garantizan unicidad en toda la base de datos ya que los id solo la garantizan en las tablas no en toda la base. No tienen sentido en la lógica de negocio o funcional de la aplicación Algunas Estrategias: Incremento del valor máximo de una columna numérica Almacenando el valor en una tabla UUIDs (Universally Unique Identifier) y GUIDs (Globally Unique Identifier). Traducción de clases y atributos Por regla general, las clases son tablas, y los atributos que contienen se traducen columnas, teniendo en cuenta de que se añade en la tabla un literal OID para identificar sus atributos y sus relaciones con las demás tablas. Traducción de las relaciones: Al efectuar estas traducciones hay que tener en cuenta ciertos detalles; Una asociación = composición = agregación En el modelo relacional todas las asociaciones son bidireccionales independientemente como estén en las clases de donde vienen. La estrategia que se sigue para que se haga una traducción correcta de las clases a tablas; Las relaciones de 1 a 1 y 1 a * se hace con claves ajenas (<<FK>>). Las relaciones de muchos a muchos se hacen con tablas asociativas (intermedias). COMPONENTES DISTRIBUIDOS DE JAVA EJBS.
  • 18. Los Enterprise JavaBeans(también conocidos por sus siglasEJB Son una delas API que forman parte del estándar de construcción de aplicaciones empresariales J2EE de Sun Microsystems (ahora JEE 5.0).Su especificación detalla cómo los servidores de aplicaciones proveen objetos desde el lado del servidor que son, precisamente, los EJBs: Comunicación remota utilizando CORBA, Transacciones, Concurrencia, eventos utilizando JMS (Java messaging service),servicios de nombres y de directorio, seguridad, Ubicación de componentes en un servidor de aplicaciones. Los EJBs proporcionan un modelo de componentes control del distribuido estándar del lado del servidor. El objetivo de los EJBs es dotar al programador de un modelo que le permita abstraerse de los problemas generales de una aplicación empresarial (concurrencia, transacciones, persistencia, seguridad, etc.) para centrarse en el desarrollo de la lógica de negocio en sí. El hecho de estar basado en componentes permite que éstos sean flexibles y sobre todo reutilizables. No hay que confundir los Enterprise JavaBeans con los JavaBeans. Los JavaBeans también son un modelo de componentes creado por Sunicho systems para la construcción de aplicaciones, pero no pueden utilizarse en entornos de objetos distribuidos al no soportar nativamente la invocación remota (RMI). 2.4 INTEGRACIÓN DE SISTEMAS HEREDADOS Los Sistemas Heredados son aquellas aplicaciones que se caracterizan por ser
  • 19. antiguos¡ Debido al periodo de vida desde que estos sistemas fueron puestos en producción, son De tecnología obsoleta, es decir están siendo trabajados en una o muchas plataformas de Hardware/software antiguos, no tienen técnicas de estructuración de sistemas, es decir Son sistemas de tipo monolíticos al no estar constituidos entre arquitecturas de capas, Son de documentación pobre dificultando así la modificación de los mismos, y en la Mayoría de los casos estos sistemas dan soporte a funciones de misión crítica dentro de Una organización. Los Sistemas Heredados constituyen un activo para la organización personal. Adaptación de fuentes heredadas Nosotros respetamos el valor de los activos de producción de información existentes. Invertimos más que cualquier otra agencia en herramientas y capacitación que permitan a nuestro departamento de producción adaptar fuentes heredadas, en lugar de desecharlas o reconstruirlas. Más aún, nuestro departamento técnico está siempre disponible para consultas sobre los pasos que nuestros clientes pueden realizar internamente para ayudar a migrar los materiales existentes a fin de trabajar sin sobresaltos en una implacablemente multiplique. Monitores automatizado Una herramienta clave en el esfuerzo para adaptar fuentes heredadas en línea sin una re ingeniería demasiado invasiva, es nuestro servicio de monitorio
  • 20. automatizado. Esto permite a sus diseñadores y administradores actualizar diseño e información cuando sea necesario, y con una única notificación al sistema de monitorio automático, el material que se ha modificado es señalado y el registro es dirigido al proceso de traducción y localización automáticamente. Para fuentes en línea existentes con un flujo de información bajo a moderado, esta puede ser una manera económicamente eficiente de manejar fuentes en línea multilingües con una pequeña inversión adicional. 2.5 DISTRIBUCIÓN DE ELEMENTOS DE UNA APLICACIÓN. Distribución: Refiere a la construcción de software por partes, a las cuales les son asignadas un conjunto especifico de responsabilidades dentro de un sistema. • Separación física y lógica de las partes de una aplicación. • Separación física (niveles) considera aspectos técnicos y económicos. • Separación Lógica (capas) conjunto de servicios especializados que son accedidos por múltiples clientes.
  • 21.
  • 23. 2.6 INTEGRACIÓN DE TECNOLOGÍAS HETEROGÉNEAS Y HOMOGÉNEAS. Servicio de Arquitectura Web: es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferente y ejecutada sobre cualquier plataforma pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. Servicio Email: Servicio de red que permite a los usuarios enviar y recibir mensajes rápidamente a los usuarios enviar y recibir mensajes rápidamente también denominados mensajes electrónicos o cartas electrónicas mediante sistemas de comunicación electrónicos. Base de Datos: Conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. “Aplicaciones y Transacciones de Sistemas Operativos” Aplicaciones: programa informáticos que permiten a un usuario utilizar una
  • 24. computadora con un fin específico. Son parte del software de una computadora y suelen ejecutarse sobre el sistema operativo. Transacciones: una transacción es una interacción con una estructura de datos compleja compuesta por varios procesos que se han de aplicar uno después del otro. Firewall: es una parte de un sistema o una red que está diseñada para bloquear el acceso no autorizado permitiendo al mismo tiempo comunicaciones autorizadas cortafuegos, mecanismo de seguridad en Internet frente a acceso no autorizado. 2.7 SERVICIOS DE LA ARQUITECTURA (EMAIL, WEB, BASE DE DATOS, APLICACIONES, TRANSACCIONES, SISTEMAS OPERATIVOS,FIREWALL. SERVICIOS DE LA ARQUITECTURA EMAIL El correo electrónico o e-mail es una forma de enviar mensajes entre ordenadores
  • 25. conectados a través de Internet. El correo se basa en la arquitectura cliente/servidor. Los clientes son los ordenadores de los usuarios que utilizan el correo y el servidor es el ordenador que gestiona el correo, el servidor pertenece a la entidad proveedora del correo. El proceso cliente/servidor envía mensajes intermedios de comprobación para asegurarse que en cada paso los datos se reciben bien. Los clientes deben disponer de un programa-cliente de correo El servidor es un ordenador que tiene un programa servidor de correo que pude entender miles de cuentas de correo. Normalmente el servidor de correo reside en una máquina distinta al servidor de páginas web, puede que en un momento dado no funcione el servidor web pero sí el servidor de correo, o viceversa. Un correo consta de varios elementos, la dirección de correo del destino, el texto de mensaje y puede que algunas cosas más como ficheros adjuntos, etc. Hay tres formas básicas de utilizar el correo, a través de un programa de correo, mediante webmail y aprovechando los programas de mensajería instantánea. Programa de correo. Por ejemplo el Outlook de Microsoft, el Thunderbird de Mozilla ,Eudora, etc. Estos son programas específicos para trabajar con el correo y que tenemos que instalar en nuestro PC Webmail. Como su nombre indica, consiste en utilizar el correo desde la Web. Una de las ventajas del webmail, es que desde cualquier ordenador que tenga conexión a Internet podemos leer y enviar nuestro correo sin tener que configurar nada. La mensajería instantánea no tiene que ver directamente con el correo electrónico, pero tiene la característica de que cuando llega un correo nos avisa en el mismo instante, también nos informa cuando se conecta algún miembro de una lista de usuarios. SERVICIOS DE LA ARQUITECTURA WEB En la actualidad las aplicaciones Web son basadas en una arquitectura distribuida, las aplicaciones Web se han movido fuera de la naturaleza centralizada de datos de aplicaciones típicas del cliente -servidor yhan cuidado más a una arquitectura orientada servicios. La arquitectura de los servicio de web se puede interpretar como una arquitectura orientada a servicios. Hay tres roles mayores dentro de la arquitectura del servicio Web: Proveedor de Servicios: Es el proveedor del servicio Web. El proveedor de servicios lleva a cabo el servicio y lo hace disponible en Internet. Solicitante de Servicios: Es cualquier consumidor del servicio Web. El solicitante utiliza un servicio Web existente abriendo una conexión de red y enviando una petición XML. Registro de Servicios: Es un directorio lógicamente centralizado de servicios. El registro proporciona un lugar central dónde los des arrolladores pueden publicar los nuevos servicios
  • 26. pueden encontrar existentes. Sirve por consiguiente como una cámara de prestación centralizada para las compañías y sus servicios. SERVICIOS DE LA ARQUITECTURA BASE DE DATOS Sistema centralizado Sistemas con un único servidor que se encarga de todas las tareas. Arquitectura cliente servidor Mejoras en los equipos del lado del cliente: Memoria Procesador Disco Tarjeta de Video Arquitecturas paralelas Solución al problema de transacciones masivas, paralelismo a nivel de disco y de procesador Base de datos distribuidos Nodos distribuidos geográficamente Administración independiente de cada nodo Canales de comunicación más lentos Utilización de transacciones globales, locales y remotas
  • 27. SERVICIOS DE LA ARQUITECTURA APLICACIONES Arquitectura Centralizada: los datos y las aplicaciones están en una única máquina. Arquitectura Cliente-Servidor: separación del servidor de BD del cliente. BD Distribuida: varios servidores de BD usados por la misma aplicación. BD Paralelas: varias unidades de almacenamiento de datos y procesadores operan en paralelo para incrementar el rendimiento. BD Replicadas: datos lógicamente representando la misma información están almacenados físicamente en diferentes servidores Almacenes de Datos: servidores especializados en la gestión de datos orientados al soporte a la decisión. Las nuevas arquitecturas de BD para la Web son variantes del paradigma general cliente-servidor. SERVICIOS DE LA ARQUITECTURA TRANSACCIONES Arquitectura física El registro de transacciones de una base de datos está asignado a uno o varios archivos físicos. Conceptual mente el archivo de registro es una cadena de entradas de registro. Físicamente, la secuencia de entradas del registro se almacena de forma eficaz en el conjunto de archivos físicos que implementa el registro de transacciones. Arquitectura lógica Las entradas del registro se almacenan en la secuencia en la que se crean. Cada entrada del registro contiene el Id. De la transacción a la que pertenece. Por cada transacción, las entradas del registro asociadas a dicha transacción se vinculan individualmente en una cadena con punteros hacia atrás, para acelerar así la reversión de la transacción. SERVICIOS DE LA ARQUITECTURA SISTEMAS OPERATIVOS Kernel monolíticos Todo el software y las estructuras de datos están ubicados en un único modulo lógico, sin interfaces explicitas entre partes. Organización modular La funcionalidad se encuentra dividida entre componentes lógicos independientes con interfaces bien definidas. Organizaciones estratificadas o por capas La funcionalidad se divide en una jerarquía de máquinas abstractas donde las funciones dela capa i están implementadas mediante las funciones proporcionadas por la capa i-1 Kernels extendidos a microkernels Organización modular especializada pensada para sistemas de tiempo real, de tiempo compartido, multimedia, etc. Sistemas operativos para sistemas distribuidos Sistemas operativos en red Sistemas operativos distribuidos SERVICIOS DE LA ARQUITECTURA FIREWALL
  • 28. Las tecnologías de filtrado de paquetes que se emplean en los firewalls constituyen una manera eficaz y general para controlar el tráfico en la red. Arquitectura de dos bases Un firewall de dos bases es un firewall con dos interfaces de red, que permite asilar una red interna de una red externa no confiable. Como este anfitrión no envía ningún tráfico TCP/IP, bloquea por completo cualquier tráfico IP entre las redes no confiables interna y externa. Arquitectura Firewall como servidor bastión Un firewall es un servidor de barrera de protección que es determinante para la seguridad en la red. Es el servidor central para la seguridad en la red de una organización y, por su función, debe estar en una buena fortaleza UNIDAD: 3 DISEÑO DE APLICACIONES DISTRIBUIDAS 3.1 DISEÑO E IMPLEMENTACIÓN DE MANEJO DE DATOS. ABSTRACCIÓN EN LENGUAJES DE PROGRAMACIÓN Los lenguajes de programación son las herramientas mediante las cuales los diseñadores de programas pueden implementar los modelos abstractos. La abstracción ofrecida por los lenguajes de programación se puede dividir en dos categorías: abstracción de datos (perteneciente a los datos) y abstracción de control (perteneciente a las estructuras de control). Desde comienzos del decenio de los sesenta, en que se desarrollaron los primeros lenguajes de programación de alto nivel, ha sido posible utilizar las abstracciones más primitivas de ambas categorías (variables, tipos de datos, funciones, control de bucles (lazos), etc.). Abstracciones de control Los microprocesadores ofrecen directamente sólo dos mecanismos para controlar el flujo y ejecución de las instrucciones: secuencia y salto. Los primeros lenguajes de programación de alto nivel introdujeron las estructuras de control: sentencias de bifurcación (if) y bucles (for, while, do-loop, do-while, etc.). Las estructuras de control describen el orden en que se ejecutan las sentencias o grupos de sentencia (unidades de programa). Las unidades de programa se utilizan como bloques básicos de la clásica descomposición “descendente”. En todos los casos, los subprogramas constituyen una herramienta potente de abstracción ya que durante su implementación, el programador describe en detalle cómo funcionan. Cuando el subprograma se llama, basta con conocer lo que hace y no cómo lo hace.
  • 29. Abstracción procedimental (por procedimientos o funciones) Es esencial para diseñar software modular y fiable. La abstracción procedimental se basa en la utilización de procedimientos o funciones sin preocuparse de cómo se implementan. Esto es posible sólo si conocemos qué hace el procedimiento; esto es, conocemos la sintaxis y semántica 3.2 DISEÑO DE PROCESAMIENTO DE DATOS. En el diseño de bases de se debe considerar el problema de cómo distribuir la información entre diferentes sitios. Existen razones organizacionales las cuales Determinan en gran medida lo anterior. Sin embargo, cuando se busca eficiencia en el acceso a la información, se deben abordar dos problemas Relacionados. Primero, como fragmentar la información. Segundo, como asignar cada fragmento entre los diferentes sitios de la red. En el diseño de la BDD también es importante considerar si la información está replicada, es decir, si existen copias múltiples del mismo dato y, en este caso, Como mantener la consistencia de la información. Finalmente, una parte importante en el diseño de una BDD se refiere al manejo del directorio. Si Existen únicamente usuarios globales, se debe manejar un solo directorio global. Sin embargo, si existen también usuarios locales, el directorio combina Información local con información global. Una base de datos correctamente diseñada permite obtener acceso a información exacta y actualizada. Puesto que un diseño correcto es esencial Para lograr los objetivos fijados para la base de datos, parece lógico emplear el tiempo que sea necesario en aprender los principios de un buen diseño ya que, en ese caso, es mucho más probable que la base de datos termine adaptándose a sus necesidades y pueda modificarse fácilmente. 3.3 DISEÑO DE INTERFAZ DE USUARIO. Diseño De Interfaces De Usuario El diseño de interfaces es un campo sumamente amplio (y para muchos, interesante). De hecho, se deberían contar con personas dedicadas (y preparadas) para realizar exclusivamente estas tareas. Esto no siempre es factible, y recae sobre nosotros el armar la interfaz visual para el usuario... las cuales muchas veces pueden mejorarse.
  • 30. Qué es la interfaz de una aplicación? Para partir de una definición común, diremos que la interfaz es la "cara visible" de nuestra aplicación: el medio mediante el cual el usuario se comunica con nuestro sistema. Todos los sistemas tienen una interfaz, de diversa índole. Para un programador, la interfaz de una librería es justamente el API. Para un programa batch, la interfaz está dada por el modo de invocación en la línea de comandos. Para una aplicación Visual, la interfaz es un conjunto de formularios y ventanas. Y para un sistema web, la interfaz son justamente las páginas que conforman la aplicación. Todas estas interfaces merecen (y deben!) ser pensadas a consciencia, y cada una presenta desafíos muy distintos. Igualmente, a continuación me voy a referir particularmente a las interfaces de nuestras aplicaciones web (esas páginas con formularios y colores verdes y azules). Importancia de una buena interfaz de usuario Obviamente, mejorar las interfaces que hacemos implica un esfuerzo de nuestro lado. Siendo una actividad que no nos corresponde (pero que hacemos, no lo olviden), ¿de qué nos sirve mejorar las interfaces? Creo que básicamente podemos citar 3 mejoras concretas que nos impactan directamente: 1. Mejora la experiencia del usuario 1. 2. Mejora el tiempo de desarrollo 2. 3. Mejora el mantenimiento El objetivo de esta tarea es realizar el diseño detallado del comportamiento de la interfaz de usuario a partir de la especificación de la misma, obtenida en el proceso de análisis, y de acuerdo con el entorno tecnológico definido. Si se hubiera realizado un prototipo de la interfaz de usuario, éste se tomaría como punto de partida para el diseño. Además, se incluyen las ventanas alternativas o elementos de diseño surgidos como consecuencia del diseño de los escenarios definidos en la tarea anterior. Además, se revisa: la interfaz de usuario, la navegación entre ventanas, los elementos que forman cada interfaz, sus características (que deben ser consistentes con los atributos con los que están relacionadas), su disposición, y cómo se gestionan los eventos relacionados con los objetos. En aquellos casos en los que se realizan modificaciones significativas sobre la interfaz de usuario, es conveniente que éste las valide, siendo opcional la realización de un nuevo prototipo. Productos De entrada
  • 31.   Diseño de la Realización de los Casos de Uso (DSI 3.2) Especificación de Interfaz de Usuario (ASI 9.3) De salida  o o o o o Diseño de Interfaz de Usuario formatos Individuales de Interfaz de Pantalla Gráfica Catálogo de Controles y Elementos de Diseño de Interfaz de Pantalla Gráfica Modelo de Navegación de Interfaz de Pantalla Gráfica formatos de Impresión prototipo de Interfaz de Pantalla Gráfica 3.2 DISEÑO DE PROCESAMIENTO DE DATOS. En el diseño de bases de se debe considerar el problema de cómo distribuir la información entre diferentes sitios. Existen razones generacionales las cuales Determinan en gran medida lo anterior. Sin embargo, cuando se busca eficiencia en el acceso a la información, se deben abordar dos problemas Relacionados. Primero, como fragmentar la información. Segundo, como asignar cada fragmento entre los diferentes sitios de la red.
  • 32. En el diseño de la BDD también es importante considerar si la información está replicada, es decir, si existen copias múltiples del mismo dato y, en este caso, Como mantener la consistencia de la información. Finalmente, una parte importante en el diseño de una BDD se refiere al manejo del directorio. Si Existen únicamente usuarios globales, se debe manejar un solo directorio global. Sin embargo, si existen también usuarios locales, el directorio combina Información local con información global. a base de datos correctamente diseñada permite obtener acceso información exacta y actualizada. Puesto que un diseño correcto es esencial para lograr los objetivos fijados para la base de datos, parece lógico emplear el Tiempo que sea necesario en aprender los principios de un buen diseño ya que, en ese caso, es mucho más probable que la base de datos termine adaptándose a sus necesidades y pueda modificarse fácilmente. 3.3 DISEÑO DE INTERFAZ DE USUARIO El diseño de interfaces de usuario es una tarea que ha adquirido relevancia en el desarrollo de un sistema. La calidad de la interfaz de usuario puede ser uno De los motivos que conduzca a un sistema al éxito o al fracaso. Los principios que se presentan son de utilidad para creación de interfaces funcionales y de Fácil operación. A pesar de no ser capaces de resolver todos los aspectos propios del contexto con el que se esté trabajando, pueden ser combinados Con la protección y la aplicación de mirísticas de evaluación para facilitar el proceso de diseño. El presente artículo se centra en los componentes de Software de las interfaces de usuario, quedando fuera del alcance de mismo otros aspectos, como hardware y documentación. Principios para el Diseño de Interfaces de Usuario Anticipación Las aplicaciones deberían intentar anticiparse a las necesidades del usuario y no esperar a que el usuario tenga que buscar la información, recopilarla o Invocar las herramientas que va a utilizar. Autonomía La computadora, la IU y el entorno de trabajo deben estar a disposición del usuario. Se debe dar al usuario el ambiente flexible para que pueda aprender Rápidamente a usar la aplicación. Sin embargo, está comprobado que el entorno de trabajo debe tener ciertas cotas, es decir, ser explorable pero no
  • 33. Azaroso. Percepción del Color Aunque se utilicen convenciones de color en la IU, se deberían usar otros mecanismos secundarios para proveer la información a aquellos usuarios con problemas en la visualización de colores. Valores por Defecto No se debe utilizar la palabra "Defecto" en una aplicación o servicio. Puede ser reemplazada por "Estándar" o "Definida por el Usuario", "Restaurar Valores Iniciales" o algún otro término especifico que describa lo que está sucediendo. Los valores por defecto deberían ser opciones inteligentes y sensatas. Además, los mismos tienen que ser fáciles de modificar. Eficiencia del Usuario Se debe considerar la productividad del usuario antes que la productividad de la máquina. Si el usuario debe esperar la respuesta del sistema por un período prolongado, estas pérdidas de tiempo se pueden convertir en pérdidas económicas para la organización. Los mensajes de ayuda deben ser sencillos y Proveer respuestas a los problemas. Los menús y etiquetas de botones Deberían tener las palabras claves del proceso. Ley de Fitt El tiempo para alcanzar un objetivo es una función de la distancia y tamaño del Objetivo. Es por ello, que es conveniente usar objetos grandes para las Funciones importante. Interfaces Explorables Siempre que sea posible se debe permitir que el usuario pueda salir ágilmente de la IU, dejando una marca del estado de avance de su trabajo, para que pueda continuarlo en otra oportunidad. Para aquellos usuarios que sean noveles en el uso de la aplicación, se deberá proveer de guías para realizar Tareas que no sean habituales. Objetos de Interfaz Humana Los objetos de interfaz humana no son necesariamente los objetos que se encuentran en los sistemas orientados a objetos. Estos pueden ser vistos, escuchados, tocados o percibidos de alguna forma. Además, estos objetos deberían ser entendibles, consistentes y estables. Uso de Metáforas Las buenas metáforas crean figuras mentales fáciles de recordar. La IU puede
  • 34. contener objetos asociados al modelo conceptual en forma visual, con sonido u Otra característica perceptible por el usuario que ayude a simplificar el uso del Sistema. Curva de Aprendizaje El aprendizaje de un producto y su mutabilidad no son mutuamente excluyentes ideal es que la curva de aprendizaje sea nula, y que el usuario principiante pueda alcanzar el dominio total de la aplicación sin esfuerzo. Reducción de Latencia Siempre que sea posible, el uso de tramas (multi-threading) permite colocar la agencia en segundo plano (carborundo). Las técnicas de trabajo multitarea posibilitan el trabajo ininterrumpido del usuario, realizando las tareas de Transmisión y computación de datos en segundo plano. Protección del Trabajo Se debe poder asegurar que el usuario nunca pierda su trabajo, ya sea por error de su parte, problemas de transmisión de datos, de energía, o alguna otra Razón inevitable. Auditoría del Sistema La mayoría de los navegadores de Internet(browsers), no mantienen información acerca de la situación del usuario en el entorno, pero para Cualquier aplicación es conveniente conocer un conjunto de características tales como: hora de acceso al sistema, ubicación del usuario en el sistema y Lugares a los que ha accedido, entre otros. Además, el usuario debería poder salir del sistema y al volver a ingresar continuar trabajando en lugar dónde Había dejado. Legibilidad Para que la IU favorezca la usabilidad del sistema de software, la información que se exhiba en ella debe ser fácil de ubicar y leer. Para lograr obtener este Resultado se deben tener en cuentas algunas como: el texto que aparezca en la IU debería tener un alto contraste, se debe utilizar combinaciones de colores Como el texto en negro sobre fondo blanco o amarillo suave. Interfaces Visibles El uso de Internet, ha favorecido la implementación de interfaces invisibles. Esto significa que el usuario siempre ve una página específica, pero nunca Puede conocer la totalidad del espacio de páginas de Internet.
  • 35. UNIDAD: 4 IMPLEMENTACIÓN DE PROCESAMIENTO DE DATOS. -Marcado de presentación El marcado de presentaciones aquel que indica el formato del texto. Este tipo de marcado es útil para maquetar la presentación de un documento para su lectura, pero resulta insuficiente para el procesamiento automático de la información. - Marcado de procedimientos El marcado de procedimientos está enfocado hacia la presentación del texto, sin embargo, también es visible para el usuario que edita el texto. El programa que representa el documento debe interpretar el código en el mismo orden en que aparece. - Marcado descriptivo El marcado descriptivo o semántico utiliza etiquetas para describir los fragmentos de texto, pero sin especificar cómo deben ser representados, o en qué orden. Los lenguajes expresamente diseñados para generar marcado descriptivo son el SGML y el XML. ¿Importancia de las interfaces gráficas y de texto? Es de suma importancia porque permiten que las personas puedan acceder a un ordenador sin tener que pasar por el tortuoso proceso de tener que aprender a manejar un entorno bajo línea de órdenes. ¿Qué es la programación relacionada con las interfaces virtuales, gráficas y de texto? Representación en modo texto Se trabaja en un entorno de texto (no gráfico), el programa en ejecución controla la información representada en la totalidad de la pantalla (no hay "ventanas"); el control de esta se realiza en término de filas y columnas y un surtido muy limitado de 256 caracteres. Los únicos atributos que pueden tener los caracteres suelen ser: Color de tinta y de papel (trazo y fondo); subrayado y parpadeo.
  • 36. “Programación Moderna" Se trata de conceptos generales e independientes. Por ejemplo, un programa "moderno" puede ser multiprogramación pero en modo texto, o no orientado a objetos; sin embargo, la mayoría de las característica se dan juntas. En especial si se trata de programas que utilizan la interfaz gráfica de los SOS más conocidos. 4.1 CONSTRUCCIÓN DE COMPONENTES 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. 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). Lado servidor: Programa que se ejecuta en un computador que está conectado a una red. Está 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
  • 37. la capa de aplicación de laWeb,HTTP, define el formato y la secuencia de los mensajes transmitidos entre el navegador y el servidorWeb. 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. Estos componentes son independientes de la arquitectura de red que se utiliza. Componentes Software ¿Alguna vez ha pensado que un programa pudiera ser como... una bicicleta?. Si es necesario cambiar la cadena de la bicicleta, usted solo se centra en la cadena, no tiene que lidiar con otros componentes ajenos, como por ejemplo, las gomas o tan sencillo como el timbre, sino solo la cadena. Sabe con exactitud dónde está el componente y puede modificarlo (engrasar) o actualizarlo (una nueva). Si ahora le dijera que pudiera hacer lo mismo con los software que usted desarrolla, ¿qué diría al respecto?. El objetivo de la tecnología de componentes software es construir aplicaciones complejas mediante ensamblado de módulos (componentes) que han sido previamente diseñados por otras personas a fin de ser rehusados en múltiples aplicaciones. La ingeniería de programación que sigue esta estrategia de diseño se le conoce por el acrónimo CBSE1 y es actualmente una de las más prometedoras para incrementar la calidad del software, abreviar los tiempos de acceso al mercado y gestionar el continuo incremento de su complejidad. La arquitectura software de una aplicación basada en componentes consiste en uno o un número pequeño de componentes específicos de la aplicación (que se diseñan específicamente para ella), que hacen uso de otros muchos componentes prefabricados que se ensamblan entre sí para proporcionar los servicios que se necesitan en la aplicación. Entornos normalizados de desarrollo de componentes software. Para que una arquitectura de componentes pueda operar es necesario disponer de un entorno normalizado que proporcione soporte a los mecanismos con que se comunican las interfaces. COM (Component Object Model). Los lenguajes de programación clásicos fueron diseñados para desarrollar aplicaciones secuenciales compuestas de módulos, todos ellos codificados con un solo lenguaje. Sin embargo, hay situaciones en las que no es práctico restringirse al uso de un único lenguaje. La tecnología COM aborda la solución a este problema proporcionando un sencillo, pero a la vez potente modelo para construir sistemas software a partir de la interacción de objetos (componentes).
  • 38. COM define un estándar binario (esto implica que es independiente del lenguaje de programación) para objetos y la intercomunicación entre ellos. Todacomunicación se realiza a través de operaciones que son proporcionadas dentro de interfaces. El diseñador invoca las operaciones que necesita directamente, incluso si el objeto destinatario está localizado en otro proceso o en otra máquina. El modelo de programación COM esta basado en la distribución de código de clases en componentes binarios. Esto significa que el software (componentes) que se adhiere a COM, puede ser rehusado sin ninguna dependencia de código fuente. Los desarrolladores pueden exponer sus trabajos como ficheros binarios sin dar a conocer sus algoritmos. El desarrollo basado en componentes resuelve muchos de los problemas asociados con las aplicaciones monolíticas. Permite al grupo de desarrollo exponer ficheros binarios en vez de código fuente. Los componentes binarios pueden ser actualizados independientemente y reemplazados, lo que se hace mucho más fácil mantener y extender una aplicación después de que esta ha sido puesta en explotación. MTS (**Microsoft** Transacción Server). MTS es una pieza de software que fue creada para Windows NT Server. Como su nombre implica, MTS permite a los objetos de la capa media (más adelante se expone una arquitectura de diseño) correr sobre Windows NT Server y controlar
  • 39. las transacciones distribuidas, es decir, permite a los componentes ser esparcidos por la red y que se ejecuten en otras computadoras con sistema operativo Windows NT Server. MTS provee un entorno de ejecución para objetos COM, adicionando soporte para la seguridad, soporte para administración y configuración. Es posible administrar varios servidores desde una simple computadora. COM+ COM+1, no es más que la integración de la arquitectura COM y MTS (Microsoft Transation Server). A diferencia de MTS, esta nueva capa de ejecución no es opcional2 , COM+ es parte por defecto de la instalación del sistema operativo Windows 2000. Como COM, COM+, es basado sobre componentes binarios y programación basada en interfaces. Los Componentes COM+ pueden ser actualizados y extendidos una vez que estén en explotación sin afectar a las aplicaciones clientes que los usan en la producción. De este modo, la combinación de la tecnología COM+ junto con las técnicas de programación orientada a objeto, nos ofrece una importante simplificación en el proceso de desarrollo de aplicaciones informáticas. Diseñando Aplicaciones Distribuidas. El diseño de aplicaciones modernas involucra la división de una aplicación en múltiples capas; la interface de usuario, la capa media de objetos de negocios, y la capa de acceso adatos. 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.  4.2 COMUNICACIÓN CON MANEJO DE DATOS. Comunicación de Datos. Es el proceso de comunicar información en forma binaria entre dos o más puntos. Requiere cuatro elementos básicos que son:
  • 40. *Emisor: Dispositivo que transmite los datos. *Mensaje: lo forman los datos a ser transmitidos. *Medio: consiste en el recorrido de los datos desde el origen hasta su destino. *Receptor: dispositivo de destino de los datos. BIT: es la unidad más pequeña de información y la unidad base en comunicaciones. BYTE: conjunto de bits continuos mínimos que hacen posible, un direccionamiento de información en un sistema computarizado. Está formado por 8 bits. Paquete: fracciones de un mensaje de tamaño predefinido, donde cada fracción o paquete contiene información de procedencia y de destino, así como información requerida para el re ensamblado del mensaje. Interfaces: conexión que permite la comunicación entre dos o más dispositivos. Códigos: acuerdo previo sobre un conjunto de significados que definen una serie de símbolos y caracteres. Toda combinación de bits representa un carácter dentro de la tabla de códigos. ----Paridad: técnica que consiste en la adición de un bit a un carácter o a un bloque de caracteres para forzar al conjunto de unos (1) a ser par o impar. Se utiliza para el chequeo de errores en la validación de los datos. El bit de paridad será cero (0=SPACE) o uno (1=MARK). Modulación: proceso de manipular de manera controlada las propiedades de una señal portadora para que contenga la información que se va a transmitir DTE (Data Terminal Equipment): equipos que son la fuente y destino de los datos. Comprenden equipos de computación (Host, Microcomputadores y Terminales). DCE (Data Communications Equipment): equipos de conversión entre el DTE y el canal de transmisión, es decir, los equipos a través de los cuales conectamos los DTE a las líneas de comunicación. UNIDAD 5: IMPLEMENTACIÓN DE INTERFAZ DE USUARIO. 5.1 LENGUAJES DE MERCADO
  • 41. Un “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. 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 – Las hojas de estilo o lenguajes de transformación permiten la “traducción” de anotaciones de tipo estructural a anotaciones de carácter tipográfico. 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 – Otros lenguajes especializados     MathML VoiceXML SVG MusicXML 5.2 TECNOLOGÍAS PARA IMPLEMENTACIÓN DE INTERFACES DE USUARIO.
  • 42. En el contexto del proceso de interacción persona-ordenador, la interfaz gráfica de usuario, es el artefacto tecnológico de un sistema interactivo que posibilita, a través del uso y la representación del lenguaje visual, una interacción amigable con un sistema informático. La interfaz gráfica de usuario (en inglés GraphicalUser Interface, GUI) es un tipo de interfaz de usuario que utiliza un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Habitualmente las acciones se realizan mediante manipulación directa para facilitar la interacción del usuario con la computadora. Surge como evolución de la línea de comandos de los primeros sistemas operativos y es pieza fundamental en un entorno gráfico. Como ejemplo de interfaz gráfica de usuario podemos citar el escritorio o desktop del sistema operativo Windows y el entorno X-Windows de Linux. Algunas Interfaces gráficas (GUIs) son:   GPA Intenta ser la interfaz de usuario gráfica estándar de Gnu PG. GPA se hospeda en este sitio. K Gpg Es una interfaz de usuario de KDE para Gnu PG.  Seahorse Es una interfaz de usuario de GNOME para Gnu PG.  XAP
  • 43. 5.3 PROGRAMACIÓN 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 La interfaz representa el punto de encuentro entre el usuario y la computadora. En esta interacción, el usuario juzga la utilidad de la interfaz; el hardware y el software se convierten en simples herramientas sobre los cuales fue construida la interfaz. La definición de interfaz en si misma es un tanto arbitraria, aunque esto depende de la naturaleza de la tarea que se tiene enfrente. Existen muchos tipos de software para la creación de interfaces de usuario. El sistema de ventanas permite la división de la pantalla en diferentes regiones rectangulares, llamadas ``ventanas''. El sistema de ventanas Windows para Unix divide la funcionalidad de la ventana en dos capas: el sistema de ventanas, el cual es la interfaz funcional, y el administrador de ventanas. El sistema de ventanas provee de procedimientos que permiten a la aplicación el dibujar figuras en la pantalla y sirve como medio de entrada de las acciones del usuario. El administrador de ventanas le permite al usuario final el mover las ventanas por la pantalla, y es el responsable de desplegar las líneas de título, bordes e íconos alrededor de las ventanas. La parte central de un sistema de ventanas es el conjunto de herramientas (toolkit), el cual contiene los objetos gráficos (widgets más empleados tales como menús, botones, barras de scroll, y campos para entrada de texto. Eltoolkit generalmente se conecta a los programas de aplicación a través de una serie de procedimientos definidos por el programador. La función de estos procedimientos es el decidir la forma en que se comportarán los objetos gráficos. 5.3.1 DEL LADO DEL CLIENTE
  • 44. Con 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. Los clientes también se pueden mejorar con otras técnicas. Por ejemplo, podemos usar controles ActiveX y Applets de Java. Aunque estas tecnologías son bastantes diferentes, el resultado final es similar: la interfaz del cliente puede hacer cosas que no puede hacer normalmente con HTML. De momento, la diferencia principal entre ambas es que los controles ActiveX sólo funcionan en IE. Las Applets de Java funcionan tanto en IE como en Navigator, aunque no todos los Applets funcionan igual de bien en ambos exploradores. 5.3.1 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. Si bien la tecnología CGI resolvía el problema de la presentación exclusiva de información estática, al mismo tiempo presentaba dos limitaciones importantes: el problema de seguridad que podía representar el hecho de que mediante una petición se pudiesen ejecutar programas indeseados en el servidor y la carga del servidor (si una página que lanzaba un programa era llamada desde 100 clientes simultáneamente, el servidor ejecutaba 100 procesos, uno por cada cliente que solicitaba dicha página). Para resolver estos problemas, se buscó desarrollar una tecnología que permitiera ejecutar, en un único proceso del servidor, todos los pedidos de ejecución de código sin importar la cantidad de clientes que se conectaban concurrentemente. Así surgieron los denominados servlets, basados en la tecnología Java de Sun Microsystems, y los filtros ISAPI de Microsoft. Éstos permitían ejecutar código en un único proceso externo que gestionaba todas las llamadas realizadas por el servidor web, impidiendo al mismo tiempo que el servidor web pueda ejecutar programas del sistema operativo. No obstante, de este modo se limitaron los problemas de prestación y seguridad de
  • 45. la tecnología CGI, y no se resolvió el problema representado por un desarrollo demasiado costoso en términos de tiempo. Asimismo, se hizo necesario que dos figuras profesionales distintas trabajen en un único proyecto: el programador (que conoce el lenguaje de programación utilizado del lado del servidor) y el diseñador web (que conoce la parte gráfica y el lenguaje HTML). Para resolver estas limitaciones, fueron desarrollados lenguajes que pueden ser incluidos al interno de archivos HTML. Estos comandos pueden ser interpretados (como por ejemplo las páginas ASP o PHP) o precompilados (como en las páginas JSP o ASP.NET). Con la utilización de esta tecnología se buscaba, también, desarrollar aptitudes de diseñador web en los programadores y de programador en los diseñadores (se esperaba con ello el hacer más fácil y veloz el desarrollo de scripts del lado del servidor). UNIDAD 6 INTEGRACIÓN DE APLICACIONES DISTRIBUIDAS. 6.1 ASIGNACIÓN DE LAS PARTES DE LA APLICACIÓN Una vez realizada la identificación de las partes, la valoración de la sensibilidad nos lleva a darle un valor y a evaluar que tan críticos son: la información y los demás elementos de la organización como el software, hardware, y el valor de los servicios que provee la aplicación. Cuando hablamos de valor debemos tener claro que a la información y a los servicios de red se les debe asociar un monto simbólico, mientras el software y el hardware se evalúan en dinero, de acuerdo a los criterios que se describen a continuación. * Confidencialidad La cual se refiere al servicio prestado para proteger la información principalmente de accesos no autorizados. Por ejemplo si hay un circuito virtual entre dos sistemas, este servicio debería ser capaz de proteger la "revelación" de la información que viaja por dicho circuito de un tercer atacante que intenta capturar dichos datos. Información del personal, investigaciones y reportes de desarrollo son algunos de los ejemplos de información que necesita confidencialidad. * Integridad El servicio de integridad es el que permite que la información sea adecuada, completa y auténtica en el momento de ser procesada, presentada, guardada o transmitida. Por ejemplo si uno transmite datos de control de cualquier tipo por una red, mínimo desea que estos no lleguen dañados o defectuosos porque las consecuencias finales podrían ser desastrosas (e.g. datos que controlen un mecanismo de armas). En algunos casos mantener y garantizar esta característica es más importante que la confidencialidad.
  • 46.  Disponibilidad Como su nombre lo indica la disponibilidad incluye todos los servicios de red que se pueden tener y prestar en determinado momento. Un esquema típico con el cual se maneja la disponibilidad es el de dos dominios donde el primero coloca un valor a la información que se puede destruir completamente y nunca más podrá ser consultada, el segundo dominio coloca valores en tiempo de disponibilidad por ejemplo: el servicio de impresora no está disponible por 1 hora, 2 horas o lo contrario está disponible solo por 3 horas, etc; este último dominio conocido como "over time" sirve para encontrar umbrales de disponibilidad; por ejemplo, "si después de 2 horas no está disponible el servidor de la base de datos de empleados hay que programar un procedimiento manual". 6.2 DISTRIBUCIÓN DE LA APLICACIÓN 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.
  • 47. 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 LOS COMPONENTES 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
  • 48. 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 LOS COMPONENTES 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 Configuración Settings 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.
  • 49.    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 LA 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. 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.
  • 50. 6.6 EVALUAR DESEMPEÑO Los sistemas informáticos a veces fallan. Cuando se producen fallos en el software o en el hardware, los programas podrían producir resultados incorrectos o podrían pararse antes de terminar la computación que estaban realizando. El diseño de sistemas tolerantes a fallos se basa en dos cuestiones, complementarias entre sí: Redundancia hardware (uso de componentes redundantes) y recuperación del software (diseño de programas que sean capaces de recuperarse de los fallos). En los sistemas distribuidos la redundancia puede plantearse en un grano mas fino que el hardware, pueden replicarse los servidores individuales que son esenciales para la operación continuada de aplicaciones críticas. La recuperación del software tiene relación con el diseño de software que sea capaz de recuperar (roll-back) el estado de los datos permanentes antes de que se produjera el fallo. Los sistemas distribuidos también proveen un alto grado de disponibilidad en la vertiente de fallos hardware. La disponibilidad de un sistema es una medida de la proporción de tiempo que está disponible para su uso. Un fallo simple en una maquina multiusuario resulta en la no disponibilidad del sistema para todos los usuarios. Cuando uno de los componentes de un sistema distribuidos falla, solo se ve afectado el trabajo que estaba realizando el componente averiado. Un usuario
  • 51. podría desplazarse a otra estación de trabajo; un proceso servidor podría ejecutarse en otra máquina. El término 'recurso' es bastante abstracto, pero es el que mejor caracteriza el abanico de entidades que pueden compartirse en un sistema distribuido. El abanico se extiende desde componentes hardware como discos e impresoras hasta elementos software como ficheros, ventanas, bases de datos y otros objetos de datos. La idea de compartición de recursos no es nueva ni aparece en el marco de los sistemas distribuidos. Los sistemas multiusuario clásicos desde siempre han provisto compartición de recursos entre sus usuarios. Sin embargo, los recursos de una computadora multiusuario se comparten de manera natural entre todos sus usuarios. Por el contrario, los usuarios de estaciones de trabajo monousuario o computadoras personales dentro de un sistema distribuido no obtienen automáticamente los beneficios de la compartición de recursos. Los recursos en un sistema distribuido están físicamente encapsulados en una de las computadoras y sólo pueden ser accedidos por otras computadoras mediante las comunicaciones (la red). Para que la compartición de recursos sea efectiva, ésta debe ser manejada por un programa que ofrezca un interfaz de comunicación permitiendo que el recurso sea accedido, manipulado y actualizado de una manera fiable y consistente. Surge el término genérico de gestor de recursos. 6.7 OPTIMIZACIÓN DEL DESEMPEÑO Un gestor de recursos es un módulo software que maneja un conjunto de recursos de un tipo en particular. Cada tipo de recurso requiere algunas políticas y métodos específicos junto con requisitos comunes para todos ellos. Éstos incluyen la provisión de un esquema de nombres para cada clase de recurso, permitir que los recursos individuales sean accedidos desde cualquier localización; la traslación de nombre de recurso a direcciones de comunicación y la coordinación de los accesos concurrentes que cambian el estado de los recursos compartidos para mantener la consistencia. Un sistema distribuido puede verse de manera abstracta como un conjunto de gestores de recursos y un conjunto de programas que usan los recursos. Los usuarios de los recursos se comunican con los gestores de los recursos para acceder a los recursos compartidos del sistema. Esta perspectiva nos lleva a dos modelos de sistemas distribuidos: el modelo cliente-servidor y el modelo basado en objetos.