SlideShare a Scribd company logo
1 of 14
Download to read offline
UNIDAD 1. 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 a distancia.
2. Compartir información.
3. Accesibilidad.
4. Seguridad en la protección de la información (tener la base de datos
particionada en dos o más nodos).
5. Independencia lugares.
En la actualidad cualquier aplicación cuenta generalmente con tres partes
diferenciadas:
1.Una interfaz de usuario: Elemento con el que interacciona el usuario de la
aplicación, ejecutando acciones, introduciendo u obteniendo información.
2.Lógica ó Reglas de negocio: Son las que procesan la información para
generar los resultados que persiguen, siendo el elemento fundamental que
diferencia unas aplicaciones de otras.
3.Gestión de datos: Se ocupa del almacenamiento y recuperación de la
información.
•APLICACIONES MONOLÍTICAS
•APLICACIONES CLIENTE/Servidor
•Aplicaciones de 2,3 y n capas
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.
En una aplicación monolítica las tres partes forman un todo y se ejecutan en la
misma máquina.
Datos
Lógica de negocio
Interface de usuario
Ejemplo:
Resulta caro y los costos de mantenimiento son también altos.
Una aplicación monolítica duplica en cada computadora todos sus elementos:
interfaz de usuario, lógica o reglas de negocio y acceso a datos.
Funcionan más rápido.
• Fácil de desarrollar.
• Precisa de cierta potencia de proceso.
• Requieren más y mejor HW en las estaciones de trabajo.
• Son infinitamente más lentos en el procesamiento de peticiones sencillas
Ocupan mayor ancho de banda, provocando congestionamiento en la Red
Local Requieren habilitar el acceso real a la carpeta de datos para todos los
usuarios de la aplicación
• Su actualización es más costosa.
• No permiten el acceso en línea desde fuera de la Red Local ó requieren de
implementaciones de soluciones de conectividad muy costosas.
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 multiusuario 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.
Cliente: Se le representa por un software de aplicación y lo utilizan los usuarios
de Internet para acceder a un determinado servicio.
Servidor: En cambio un servidor tiene un software de servidor que lo utiliza
para ofrecer al cliente toda la funcionalidad utilizada por el cliente. El cliente y el
servidor se comunican a través de Internet por un protocolo que ellos mismos
definen.
1.1.2 Aplicaciones de 2, 3 y n Capas.
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 multiusuario 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.
APLICACIONES DE 2 CAPAS.
La arquitectura de dos capas en la actualidad es muy utilizada, aunque con
muchas fallas, todavía no se ha podido dejar de usar. Estas arquitecturas
fueron las primeras en aprovecharse de la estructura cliente-servidor.
Aplicación de dos capas.
Las capas que esta arquitectura presenta son las siguientes:
• Nivel de aplicación
Este nivel 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 el Repositorio de Datos, es la
capa en donde se almacena toda la información ingresada en el sistema y que
se deposita en forma permanente.
Existen herramientas para el desarrollo en dos capas por ejemplo Visual Basic,
Access y SQL.
APLICACIONES DE TRES CAPAS
La arquitectura de dos capas si bien ayudó en unos años atrás, se vio la
necesidad de crear una nueva arquitectura ya que en dos capas se tenía
algunos problemas en la capa de aplicación ya que la principal desventaja de
esta era el peso que tenia para el cliente, como se mencionó anteriormente.
Aplicación de tres capas.
Por estas razones, existe una fuerte y bien avanzada tendencia a adoptar una
arquitectura de tres capas.
Y es así que se creó la arquitectura de tres capas las cuales son:
• Nivel de Aplicación
La diferencia de este nivel aplicado ahora en una arquitectura de tres capas es
que solo tiene que trabajar con la semántica propia de aplicación, sin tener que
preocuparse de cómo esta implementado este ni de su estructura física.
• Nivel de Dominio de la aplicación.
En cambio este nivel se encarga de toda la estructura física y el dominio de
aplicación. Algo muy importante y que es la mayor ventaja de esta arquitectura
es que ahora únicamente se cambia la regla en el servidor de aplicación y esta
actuará en todos los clientes, cosa que ni sucedía con la arquitectura en dos
capas que si alguna regla se la cambia, se tenía que ir a cada cliente a realizar
el cambio.
• Nivel de Repositorio.
Sigue siendo la capa en donde se almacenan los datos y toda la información.
Las herramientas para el desarrollo de tres capas son:
• Visual Basic en lo que se refiere a la capa de Aplicación
• SQL Server en lo que se refiere al repositorio de datos.
• MTS en lo que se refiere al nivel del dominio de Aplicación
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 n capas.
El surgimiento de la tecnología de componentes distribuidos es la clave de las
arquitecturas de n-capas. Estos sistemas de computación utilizan un número
variable de componentes individuales que se comunican entre ellos utilizando
estándares predefinidos y frameworks de comunicación como:
• CORBA: (Common Object Request Broker Architecture) del Object
Management Group (OMG).
• DNA: (Distributed Network Applications) de Microsoft (incluye COM/DCOM y
COM+ además de MTS, MSMQ, etc.
• EJB : (Enterprise Java Beans) de Sun Microsystems
• XML : (eXtensible Markup Language) del World Wide Web Consortium (W3
• .NET: de Microsoft que incluye nuevos lenguajes como Visual Basic.net, C#.
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.
• Interactuar con aplicaciones externas o servicios.
• Interactuar 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 Interfase de usuario (Capa de Presentación)
o Interactuar con otros usuarios.
o Interactuar con aplicaciones externas o servicios.
o Procesos de negocios (Capa de Negocios)
o Cálculos u otros procesos de negocios.
o Ejecución de reglas de negocios.
o Validación de datos relacionados al negocio.
o Procesos de datos (Capa de Servicios de Datos).
o Manipulación de datos.
o Ejecución de las reglas de datos relacional.
Atendiendo al papel que los distintos elementos juegan dentro de la
aplicación, distinguimos con claridad tres grupos lógicos en los que podemos
agrupar elementos según su funcionalidad:
• La capa de servidor incluye aquellos elementos que se encargan de recibir las
peticiones de datos o de acceso a servicios básicos del sistema y de
suministrar a otros elementos la información solicitada.
•La capa de negocios encapsula las reglas de acceso a datos y la gestión de
procesos internos de la aplicación.
•La capa de presentación se encarga de la lógica
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 globalizació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 escalabilidad y performance,
por citar algunos de ellos.
La evolución de las tecnologías cliente/servidor sumada al advenimiento de
nuevas tecnologías como XML, web services , la plataforma J2EE, la
comunicación asíncrona por medio de mensajes, el uso de application servers ,
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:
• De interfaz de usuario
• De aplicación
• De base de datos
• De comunicación de datos
• De conexión entre 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.
Ejemplo de una interfaz de usuario.
Algunas tecnologías de interfaz de usuario son:
• API Win 32.
• HTMAL.
• Dell HTML.
• Lenguajes de scrips.
1.2.2 De Aplicación.
La adopción de un diseño distribuido de aplicaciones empresariales, aumenta
la reusabilidad, reduce la cantidad de recursos, y los costes necesarios de
desarrollo y mantenimiento.
Este nuevo enfoque de diseño pone en manos de los desarrolladores no solo la
funcionalidad que demandan las aplicaciones, sino también la seguridad,
rapidez y flexibilidad.
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 organizacionales 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.
• Herramientas para modelado (UML).
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 multiplataforma en la mayor
parte de las empresas.
Este cambio radical en los modelos de computación, desde los sistemas
monolíticos basados en mainframe y los tradicionales sistemas cliente-servidor,
hacia sistemas distribuidos multiplataforma altamente modularles, 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 Sun con su estrategia Sun One, o
Microsoft con DotNET (.Net).
Algunas tecnologías de comunicación de datos son:
Intranet: La Intranet, que quiere decir red interna, lleva un par de décadas
siendo utilizada ampliamente en las empresas. Principalmente, ya que las
tecnologías existentes, décadas atrás, no lo permitían. Lo central de la Intranet,
es la utilización de esta, en el ambiente de los negocios y también, a veces, en
el académico. Ya que la Intranet, provee de un especio común, para el
desarrollo de estrategias, información, memorandos, entre otras
aplicabilidades, las cuales son utilizadas por toda la empresa u establecimiento
educativo.
En palabras técnicas, una Intranet, es una red de Área Local o LAN. La cual
tiene la característica, de ser de exclusivo uso, de la empresa u organización
que la ha instalado. Debido a ello, es que utiliza protocolos HTML y el TCP/IP.
Protocolos que permiten la interacción en línea de la Intranet, con la Internet.
Cualquier Intranet, lleva consigo, distintos niveles de seguridad, según el
usuario. Estos niveles de seguridad, son asignados, según la relevancia del
puesto dentro de la organización, del usuario. Claro que existen niveles
compartidos por todos. Ahora, los niveles básicos de seguridad, impiden la
utilización de la Intranet, por parte de personas foráneas a la empresa o
establecimiento educativo.
Internet: Podemos definir a Internet como una "red de redes", es decir, una red
que no sólo interconecta computadoras, sino que interconecta redes de
computadoras entre sí. Una red de computadoras es un conjunto de máquinas
que se comunican a través de algún medio (cable coaxial, fibra óptica,
radiofrecuencia, líneas telefónicas, etc.) con el objeto de compartir recursos.
De esta manera, Internet sirve de enlace entre redes más pequeñas y permite
ampliar su cobertura al hacerlas parte de una "red global". Esta red global tiene
la característica de que utiliza un lenguaje común que garantiza la
intercomunicación de los diferentes participantes; este lenguaje común o
protocolo (un protocolo es el lenguaje que utilizan las computadoras al
compartir recursos) se conoce como TCP/IP.
1.2.5 De Conexión Entre Capas.
Como tecnología, las arquitecturas de capas proporcionan una gran cantidad
de beneficios para las empresas que necesitan soluciones flexibles y fiables
para resolver complejos problemas inmersos en cambios constantes.
Todas las aplicaciones basadas en capas permitirán trabajar con clientes
ligeros, tal como navegadores de Internet, WebTV, Teléfonos Inteligentes,
PDAs (Personal Digital Assistants o Asistentes Personales Digitales) y muchos
otros dispositivos preparados para conectarse a Internet.
De este modo, las arquitecturas de capas se están posicionando rápidamente
como la piedra angular de los desarrollos de aplicaciones empresariales y las
compañías están adoptando esta estrategia a una velocidad de vértigo como
mecanismo de posicionamiento en la economía emergente que tiene su base
en la red (lo que se ha venido a denominar "Nueva Economía").
Actualmente, la Red (Internet, intranets y extranets) es el ordenador o, como
diría Sun Microsystems, el ordenador es la Red. Este paradigma está creando
un cambio fundamental en los modelos de computación que, a su vez,
proporciona desafíos y oportunidades como nunca antes había se habían
producido.
Una tecnología de conexión de capas es:
• Arquitectura DAO.
1.3 Escenarios de utilización de las aplicaciones distribuidas.
Algunas de las aplicaciones distribuidas más conocidas son remote login,
correo electrónico, navegación Web, streaming, telefonía IP y compartición de
ficheros (P2P).
Algunos escenarios que utilizan aplicaciones distribuidas son:
1.4 Problemas comunes en el desarrollo y uso de aplicaciones
distribuidas.
Hay una serie de problemas comunes en el diseño de las aplicaciones
distribuidas:
• La compatibilidad de los Tipos de Datos: Distintos sistemas operativos tienen
diferentes tipos de datos que no son siempre compatibles entre sí.
• Fallas del Servidor: Debido a que los componentes pueden ser remotos, una
falla de cualquiera de ellos puede hacer que toda la aplicación falle.
• Fallas del Cliente: El servidor debe saber cómo responder a las fallas del
cliente.
• Reintento de llamadas: Si por ejemplo, se hace una llamada a un método en
un servidor para generar una orden de compra muy grande, y el servidor
responde pero se pierde la respuesta por fallas de red, no es muy eficiente
volver a enviar la orden de compra.
• Seguridad: En aplicaciones distribuidas los problemas de seguridad se
multiplican. Por ejemplo, se debe considerar como: Autenticar a los usuarios
Autorizarlos a acceder a los recursos, encriptar la información que viaja por la
red, evitar ataques de denegación de servicio.
• Sincronización de la hora: Hay operaciones que dependen de la fecha y la
hora. Por ejemplo, no es lógico en una aplicación procesar un envío de
mercadería antes de haber recibido la orden de compra. Si el cliente y el
servidor tienen fechas distintas, se debe generar un mecanismo de
sincronización de hora para evitar este problema.
• La arquitectura basada en RPC Qué es RPC: RPC son llamadas a
procedimientos o funciones en sistemas remotos, es decir en máquinas
distintas a la máquina local. Transparencia de localización: El desarrollador
utiliza los componentes sin necesidad de saber su ubicación física. Con RPC
tanto en el cliente como en la máquina donde reside el componente hay
subsistemas que se ocupan de la comunicación y el intercambio de datos.

More Related Content

What's hot

Arquitectura de sistemas
Arquitectura de sistemasArquitectura de sistemas
Arquitectura de sistemasTensor
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidosMargarita Labastida
 
Definiciones Sistemas Distribuidos
Definiciones Sistemas DistribuidosDefiniciones Sistemas Distribuidos
Definiciones Sistemas DistribuidosJorge Guerra
 
Arquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo MariaArquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo Mariagequito
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 nivelesLupitha Mendoza
 
Servidores informaticos, modelo cliente servdor
Servidores informaticos, modelo cliente servdor Servidores informaticos, modelo cliente servdor
Servidores informaticos, modelo cliente servdor Erivan Martinez Ovando
 
Comparativa Arquitectura Cliente/Servidor y Distribuida
Comparativa Arquitectura Cliente/Servidor y DistribuidaComparativa Arquitectura Cliente/Servidor y Distribuida
Comparativa Arquitectura Cliente/Servidor y DistribuidaSergio Olivares
 
Variacion Cliente Servidor
Variacion Cliente ServidorVariacion Cliente Servidor
Variacion Cliente ServidorArnulfo Gomez
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosTensor
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 CapasFani Calle
 
Desarrollo de aplicaciones de abd
Desarrollo de aplicaciones de abdDesarrollo de aplicaciones de abd
Desarrollo de aplicaciones de abdGoogle
 
Fresdes silvasalazar
Fresdes silvasalazarFresdes silvasalazar
Fresdes silvasalazarjulymci
 
Sistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e ImplementacionSistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e ImplementacionJorge Guerra
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosJaziel Torres
 

What's hot (20)

sistemas distribuidos
sistemas distribuidossistemas distribuidos
sistemas distribuidos
 
Arquitecturas centralizadas
Arquitecturas centralizadasArquitecturas centralizadas
Arquitecturas centralizadas
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 
Arquitectura de sistemas
Arquitectura de sistemasArquitectura de sistemas
Arquitectura de sistemas
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidos
 
Definiciones Sistemas Distribuidos
Definiciones Sistemas DistribuidosDefiniciones Sistemas Distribuidos
Definiciones Sistemas Distribuidos
 
Sistemas distribuidos pnn2
Sistemas distribuidos pnn2Sistemas distribuidos pnn2
Sistemas distribuidos pnn2
 
Arquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo MariaArquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo Maria
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 niveles
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Servidores informaticos, modelo cliente servdor
Servidores informaticos, modelo cliente servdor Servidores informaticos, modelo cliente servdor
Servidores informaticos, modelo cliente servdor
 
Comparativa Arquitectura Cliente/Servidor y Distribuida
Comparativa Arquitectura Cliente/Servidor y DistribuidaComparativa Arquitectura Cliente/Servidor y Distribuida
Comparativa Arquitectura Cliente/Servidor y Distribuida
 
Variacion Cliente Servidor
Variacion Cliente ServidorVariacion Cliente Servidor
Variacion Cliente Servidor
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Desarrollo de aplicaciones de abd
Desarrollo de aplicaciones de abdDesarrollo de aplicaciones de abd
Desarrollo de aplicaciones de abd
 
Fresdes silvasalazar
Fresdes silvasalazarFresdes silvasalazar
Fresdes silvasalazar
 
Sistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e ImplementacionSistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e Implementacion
 
Arquitectura
ArquitecturaArquitectura
Arquitectura
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 

Viewers also liked

Viewers also liked (20)

신착자료 20130125
신착자료 20130125신착자료 20130125
신착자료 20130125
 
Motion
MotionMotion
Motion
 
Google Map V2
Google Map V2Google Map V2
Google Map V2
 
2012 03-09 week export
2012 03-09 week export2012 03-09 week export
2012 03-09 week export
 
보라 캠페인단 1기 OT ㅡ 공정여행
보라 캠페인단 1기 OT ㅡ 공정여행보라 캠페인단 1기 OT ㅡ 공정여행
보라 캠페인단 1기 OT ㅡ 공정여행
 
BLAST 2013
BLAST 2013BLAST 2013
BLAST 2013
 
Presentation1
Presentation1Presentation1
Presentation1
 
Social Web 4
Social Web 4Social Web 4
Social Web 4
 
웹기획2
웹기획2웹기획2
웹기획2
 
Projects 2009-2013
Projects 2009-2013Projects 2009-2013
Projects 2009-2013
 
Unterwegs nach Newcastle
Unterwegs nach NewcastleUnterwegs nach Newcastle
Unterwegs nach Newcastle
 
Taocp 1.4.1 subroutine
Taocp 1.4.1 subroutineTaocp 1.4.1 subroutine
Taocp 1.4.1 subroutine
 
Xhtmljunction
XhtmljunctionXhtmljunction
Xhtmljunction
 
Twemproxy (nutcracker)
Twemproxy (nutcracker)Twemproxy (nutcracker)
Twemproxy (nutcracker)
 
Web Planning Story 6 tool
Web Planning   Story 6 toolWeb Planning   Story 6 tool
Web Planning Story 6 tool
 
L.Efe Linkedin Folio
L.Efe Linkedin FolioL.Efe Linkedin Folio
L.Efe Linkedin Folio
 
Cuarta clase - Procesos Primera Parte
Cuarta clase - Procesos Primera ParteCuarta clase - Procesos Primera Parte
Cuarta clase - Procesos Primera Parte
 
Hristiyanlik
HristiyanlikHristiyanlik
Hristiyanlik
 
IPSec
IPSecIPSec
IPSec
 
1.orientation
1.orientation1.orientation
1.orientation
 

Similar to Unidad 1

cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 nivelesLupitha Mendoza
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidasalondra0126
 
Aplicacion distribuida maria elena
Aplicacion distribuida maria elenaAplicacion distribuida maria elena
Aplicacion distribuida maria elenaMary Narváez
 
Segunda sesion modulo 2 : Ing. Adriana Iglesias.
Segunda sesion modulo 2 : Ing. Adriana Iglesias.Segunda sesion modulo 2 : Ing. Adriana Iglesias.
Segunda sesion modulo 2 : Ing. Adriana Iglesias.castlellanos
 
Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones DistribuídasJavierialv
 
A charla12 arq.3-capas
A charla12 arq.3-capasA charla12 arq.3-capas
A charla12 arq.3-capashome
 
Arquitecturasdesistemasdebasesdedatos.docx
Arquitecturasdesistemasdebasesdedatos.docxArquitecturasdesistemasdebasesdedatos.docx
Arquitecturasdesistemasdebasesdedatos.docxWilliam Martinez Perez
 
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
 
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
 
Arquitectura en Capas
Arquitectura en CapasArquitectura en Capas
Arquitectura en CapasHelenSaravia
 
Seguridad de sistemas distribuidos
Seguridad de sistemas distribuidosSeguridad de sistemas distribuidos
Seguridad de sistemas distribuidosJavierialv
 
modulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia intermodulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia interssuser948499
 

Similar to Unidad 1 (20)

Aplicaciones de n capas en visual net
Aplicaciones de n capas en visual netAplicaciones de n capas en visual net
Aplicaciones de n capas en visual net
 
cliente servidor de 3 niveles
cliente servidor de 3 nivelescliente servidor de 3 niveles
cliente servidor de 3 niveles
 
APLICACIONES N-CAPAS EN VISUAL NET
APLICACIONES N-CAPAS EN VISUAL NETAPLICACIONES N-CAPAS EN VISUAL NET
APLICACIONES N-CAPAS EN VISUAL NET
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Aplicaciones n capas en visual net
Aplicaciones n capas en visual netAplicaciones n capas en visual net
Aplicaciones n capas en visual net
 
Taller 4 - Teleinformatica
Taller 4 - TeleinformaticaTaller 4 - Teleinformatica
Taller 4 - Teleinformatica
 
N-CAPAS EN VISUAL NET
N-CAPAS EN VISUAL NETN-CAPAS EN VISUAL NET
N-CAPAS EN VISUAL NET
 
Aplicacion distribuida maria elena
Aplicacion distribuida maria elenaAplicacion distribuida maria elena
Aplicacion distribuida maria elena
 
Segunda sesion modulo 2 : Ing. Adriana Iglesias.
Segunda sesion modulo 2 : Ing. Adriana Iglesias.Segunda sesion modulo 2 : Ing. Adriana Iglesias.
Segunda sesion modulo 2 : Ing. Adriana Iglesias.
 
Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones Distribuídas
 
A charla12 arq.3-capas
A charla12 arq.3-capasA charla12 arq.3-capas
A charla12 arq.3-capas
 
Arquitecturasdesistemasdebasesdedatos.docx
Arquitecturasdesistemasdebasesdedatos.docxArquitecturasdesistemasdebasesdedatos.docx
Arquitecturasdesistemasdebasesdedatos.docx
 
Unidad 1. Desarrollo de Aplicaciones Distribuidas
Unidad 1. Desarrollo de Aplicaciones DistribuidasUnidad 1. Desarrollo de Aplicaciones Distribuidas
Unidad 1. Desarrollo de Aplicaciones Distribuidas
 
3capas
3capas3capas
3capas
 
N capas visual basic
N capas visual basicN capas visual basic
N capas visual basic
 
Ejemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con accessEjemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con access
 
Arquitectura en Capas
Arquitectura en CapasArquitectura en Capas
Arquitectura en Capas
 
Seguridad de sistemas distribuidos
Seguridad de sistemas distribuidosSeguridad de sistemas distribuidos
Seguridad de sistemas distribuidos
 
Arquitectura cliente servidor
Arquitectura cliente servidorArquitectura cliente servidor
Arquitectura cliente servidor
 
modulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia intermodulo tres capas redes tecnologia inter
modulo tres capas redes tecnologia inter
 

More from mi casa

50208094 manual-acad
50208094 manual-acad50208094 manual-acad
50208094 manual-acadmi casa
 
Analisis seguro de seguridad
Analisis seguro de seguridadAnalisis seguro de seguridad
Analisis seguro de seguridadmi casa
 
Pasos para la instalcion de un servidor dns en server 2008
Pasos para la instalcion de un servidor dns en server 2008Pasos para la instalcion de un servidor dns en server 2008
Pasos para la instalcion de un servidor dns en server 2008mi casa
 
Manualmysql
ManualmysqlManualmysql
Manualmysqlmi casa
 
Unidad 4
Unidad 4Unidad 4
Unidad 4mi casa
 

More from mi casa (6)

50208094 manual-acad
50208094 manual-acad50208094 manual-acad
50208094 manual-acad
 
Analisis seguro de seguridad
Analisis seguro de seguridadAnalisis seguro de seguridad
Analisis seguro de seguridad
 
Ulloa c
Ulloa cUlloa c
Ulloa c
 
Pasos para la instalcion de un servidor dns en server 2008
Pasos para la instalcion de un servidor dns en server 2008Pasos para la instalcion de un servidor dns en server 2008
Pasos para la instalcion de un servidor dns en server 2008
 
Manualmysql
ManualmysqlManualmysql
Manualmysql
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 

Unidad 1

  • 1. UNIDAD 1. 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 a distancia. 2. Compartir información. 3. Accesibilidad. 4. Seguridad en la protección de la información (tener la base de datos particionada en dos o más nodos). 5. Independencia lugares. En la actualidad cualquier aplicación cuenta generalmente con tres partes diferenciadas: 1.Una interfaz de usuario: Elemento con el que interacciona el usuario de la aplicación, ejecutando acciones, introduciendo u obteniendo información. 2.Lógica ó Reglas de negocio: Son las que procesan la información para generar los resultados que persiguen, siendo el elemento fundamental que diferencia unas aplicaciones de otras. 3.Gestión de datos: Se ocupa del almacenamiento y recuperación de la información. •APLICACIONES MONOLÍTICAS •APLICACIONES CLIENTE/Servidor •Aplicaciones de 2,3 y n capas 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:
  • 2. sistemas operativos, ofimática, juegos mono usuario, etc. En una aplicación monolítica las tres partes forman un todo y se ejecutan en la misma máquina. Datos Lógica de negocio Interface de usuario Ejemplo: Resulta caro y los costos de mantenimiento son también altos. Una aplicación monolítica duplica en cada computadora todos sus elementos: interfaz de usuario, lógica o reglas de negocio y acceso a datos. Funcionan más rápido. • Fácil de desarrollar. • Precisa de cierta potencia de proceso. • Requieren más y mejor HW en las estaciones de trabajo. • Son infinitamente más lentos en el procesamiento de peticiones sencillas Ocupan mayor ancho de banda, provocando congestionamiento en la Red Local Requieren habilitar el acceso real a la carpeta de datos para todos los usuarios de la aplicación • Su actualización es más costosa. • No permiten el acceso en línea desde fuera de la Red Local ó requieren de implementaciones de soluciones de conectividad muy costosas. 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
  • 3. aplicar a programas que se ejecutan sobre una sola computadora es más ventajosa en un sistema operativo multiusuario 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. Cliente: Se le representa por un software de aplicación y lo utilizan los usuarios de Internet para acceder a un determinado servicio. Servidor: En cambio un servidor tiene un software de servidor que lo utiliza para ofrecer al cliente toda la funcionalidad utilizada por el cliente. El cliente y el servidor se comunican a través de Internet por un protocolo que ellos mismos definen. 1.1.2 Aplicaciones de 2, 3 y n Capas. 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 multiusuario 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.
  • 4. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma. APLICACIONES DE 2 CAPAS. La arquitectura de dos capas en la actualidad es muy utilizada, aunque con muchas fallas, todavía no se ha podido dejar de usar. Estas arquitecturas fueron las primeras en aprovecharse de la estructura cliente-servidor. Aplicación de dos capas. Las capas que esta arquitectura presenta son las siguientes: • Nivel de aplicación Este nivel 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 el Repositorio de Datos, es la capa en donde se almacena toda la información ingresada en el sistema y que se deposita en forma permanente. Existen herramientas para el desarrollo en dos capas por ejemplo Visual Basic, Access y SQL. APLICACIONES DE TRES CAPAS La arquitectura de dos capas si bien ayudó en unos años atrás, se vio la necesidad de crear una nueva arquitectura ya que en dos capas se tenía algunos problemas en la capa de aplicación ya que la principal desventaja de esta era el peso que tenia para el cliente, como se mencionó anteriormente.
  • 5. Aplicación de tres capas. Por estas razones, existe una fuerte y bien avanzada tendencia a adoptar una arquitectura de tres capas. Y es así que se creó la arquitectura de tres capas las cuales son: • Nivel de Aplicación La diferencia de este nivel aplicado ahora en una arquitectura de tres capas es que solo tiene que trabajar con la semántica propia de aplicación, sin tener que preocuparse de cómo esta implementado este ni de su estructura física. • Nivel de Dominio de la aplicación. En cambio este nivel se encarga de toda la estructura física y el dominio de aplicación. Algo muy importante y que es la mayor ventaja de esta arquitectura es que ahora únicamente se cambia la regla en el servidor de aplicación y esta actuará en todos los clientes, cosa que ni sucedía con la arquitectura en dos capas que si alguna regla se la cambia, se tenía que ir a cada cliente a realizar el cambio. • Nivel de Repositorio. Sigue siendo la capa en donde se almacenan los datos y toda la información. Las herramientas para el desarrollo de tres capas son: • Visual Basic en lo que se refiere a la capa de Aplicación • SQL Server en lo que se refiere al repositorio de datos. • MTS en lo que se refiere al nivel del dominio de Aplicación 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 n capas. El surgimiento de la tecnología de componentes distribuidos es la clave de las
  • 6. arquitecturas de n-capas. Estos sistemas de computación utilizan un número variable de componentes individuales que se comunican entre ellos utilizando estándares predefinidos y frameworks de comunicación como: • CORBA: (Common Object Request Broker Architecture) del Object Management Group (OMG). • DNA: (Distributed Network Applications) de Microsoft (incluye COM/DCOM y COM+ además de MTS, MSMQ, etc. • EJB : (Enterprise Java Beans) de Sun Microsystems • XML : (eXtensible Markup Language) del World Wide Web Consortium (W3 • .NET: de Microsoft que incluye nuevos lenguajes como Visual Basic.net, C#. 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. • Interactuar con aplicaciones externas o servicios. • Interactuar 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 Interfase de usuario (Capa de Presentación) o Interactuar con otros usuarios. o Interactuar con aplicaciones externas o servicios. o Procesos de negocios (Capa de Negocios) o Cálculos u otros procesos de negocios. o Ejecución de reglas de negocios. o Validación de datos relacionados al negocio. o Procesos de datos (Capa de Servicios de Datos). o Manipulación de datos.
  • 7. o Ejecución de las reglas de datos relacional. Atendiendo al papel que los distintos elementos juegan dentro de la aplicación, distinguimos con claridad tres grupos lógicos en los que podemos agrupar elementos según su funcionalidad: • La capa de servidor incluye aquellos elementos que se encargan de recibir las peticiones de datos o de acceso a servicios básicos del sistema y de suministrar a otros elementos la información solicitada. •La capa de negocios encapsula las reglas de acceso a datos y la gestión de procesos internos de la aplicación. •La capa de presentación se encarga de la lógica 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 globalizació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 escalabilidad y performance, por citar algunos de ellos. La evolución de las tecnologías cliente/servidor sumada al advenimiento de nuevas tecnologías como XML, web services , la plataforma J2EE, la comunicación asíncrona por medio de mensajes, el uso de application servers , son algunos de los conocimientos que permiten llevar a cabo el desarrollo de aplicaciones modernas.
  • 8. La evolución de las aplicaciones distribuidas se dio de la siguiente forma: • De interfaz de usuario • De aplicación • De base de datos • De comunicación de datos • De conexión entre 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. Ejemplo de una interfaz de usuario. Algunas tecnologías de interfaz de usuario son:
  • 9. • API Win 32. • HTMAL. • Dell HTML. • Lenguajes de scrips. 1.2.2 De Aplicación. La adopción de un diseño distribuido de aplicaciones empresariales, aumenta la reusabilidad, reduce la cantidad de recursos, y los costes necesarios de desarrollo y mantenimiento. Este nuevo enfoque de diseño pone en manos de los desarrolladores no solo la funcionalidad que demandan las aplicaciones, sino también la seguridad, rapidez y flexibilidad. 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 organizacionales 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
  • 10. 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. • Herramientas para modelado (UML). 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 multiplataforma en la mayor parte de las empresas. Este cambio radical en los modelos de computación, desde los sistemas monolíticos basados en mainframe y los tradicionales sistemas cliente-servidor, hacia sistemas distribuidos multiplataforma altamente modularles, 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 Sun con su estrategia Sun One, o Microsoft con DotNET (.Net). Algunas tecnologías de comunicación de datos son:
  • 11. Intranet: La Intranet, que quiere decir red interna, lleva un par de décadas siendo utilizada ampliamente en las empresas. Principalmente, ya que las tecnologías existentes, décadas atrás, no lo permitían. Lo central de la Intranet, es la utilización de esta, en el ambiente de los negocios y también, a veces, en el académico. Ya que la Intranet, provee de un especio común, para el desarrollo de estrategias, información, memorandos, entre otras aplicabilidades, las cuales son utilizadas por toda la empresa u establecimiento educativo. En palabras técnicas, una Intranet, es una red de Área Local o LAN. La cual tiene la característica, de ser de exclusivo uso, de la empresa u organización que la ha instalado. Debido a ello, es que utiliza protocolos HTML y el TCP/IP. Protocolos que permiten la interacción en línea de la Intranet, con la Internet. Cualquier Intranet, lleva consigo, distintos niveles de seguridad, según el usuario. Estos niveles de seguridad, son asignados, según la relevancia del puesto dentro de la organización, del usuario. Claro que existen niveles compartidos por todos. Ahora, los niveles básicos de seguridad, impiden la utilización de la Intranet, por parte de personas foráneas a la empresa o establecimiento educativo.
  • 12. Internet: Podemos definir a Internet como una "red de redes", es decir, una red que no sólo interconecta computadoras, sino que interconecta redes de computadoras entre sí. Una red de computadoras es un conjunto de máquinas que se comunican a través de algún medio (cable coaxial, fibra óptica, radiofrecuencia, líneas telefónicas, etc.) con el objeto de compartir recursos. De esta manera, Internet sirve de enlace entre redes más pequeñas y permite ampliar su cobertura al hacerlas parte de una "red global". Esta red global tiene la característica de que utiliza un lenguaje común que garantiza la intercomunicación de los diferentes participantes; este lenguaje común o protocolo (un protocolo es el lenguaje que utilizan las computadoras al compartir recursos) se conoce como TCP/IP. 1.2.5 De Conexión Entre Capas. Como tecnología, las arquitecturas de capas proporcionan una gran cantidad de beneficios para las empresas que necesitan soluciones flexibles y fiables para resolver complejos problemas inmersos en cambios constantes. Todas las aplicaciones basadas en capas permitirán trabajar con clientes ligeros, tal como navegadores de Internet, WebTV, Teléfonos Inteligentes, PDAs (Personal Digital Assistants o Asistentes Personales Digitales) y muchos otros dispositivos preparados para conectarse a Internet. De este modo, las arquitecturas de capas se están posicionando rápidamente como la piedra angular de los desarrollos de aplicaciones empresariales y las compañías están adoptando esta estrategia a una velocidad de vértigo como mecanismo de posicionamiento en la economía emergente que tiene su base en la red (lo que se ha venido a denominar "Nueva Economía"). Actualmente, la Red (Internet, intranets y extranets) es el ordenador o, como
  • 13. diría Sun Microsystems, el ordenador es la Red. Este paradigma está creando un cambio fundamental en los modelos de computación que, a su vez, proporciona desafíos y oportunidades como nunca antes había se habían producido. Una tecnología de conexión de capas es: • Arquitectura DAO. 1.3 Escenarios de utilización de las aplicaciones distribuidas. Algunas de las aplicaciones distribuidas más conocidas son remote login, correo electrónico, navegación Web, streaming, telefonía IP y compartición de ficheros (P2P). Algunos escenarios que utilizan aplicaciones distribuidas son: 1.4 Problemas comunes en el desarrollo y uso de aplicaciones distribuidas. Hay una serie de problemas comunes en el diseño de las aplicaciones distribuidas:
  • 14. • La compatibilidad de los Tipos de Datos: Distintos sistemas operativos tienen diferentes tipos de datos que no son siempre compatibles entre sí. • Fallas del Servidor: Debido a que los componentes pueden ser remotos, una falla de cualquiera de ellos puede hacer que toda la aplicación falle. • Fallas del Cliente: El servidor debe saber cómo responder a las fallas del cliente. • Reintento de llamadas: Si por ejemplo, se hace una llamada a un método en un servidor para generar una orden de compra muy grande, y el servidor responde pero se pierde la respuesta por fallas de red, no es muy eficiente volver a enviar la orden de compra. • Seguridad: En aplicaciones distribuidas los problemas de seguridad se multiplican. Por ejemplo, se debe considerar como: Autenticar a los usuarios Autorizarlos a acceder a los recursos, encriptar la información que viaja por la red, evitar ataques de denegación de servicio. • Sincronización de la hora: Hay operaciones que dependen de la fecha y la hora. Por ejemplo, no es lógico en una aplicación procesar un envío de mercadería antes de haber recibido la orden de compra. Si el cliente y el servidor tienen fechas distintas, se debe generar un mecanismo de sincronización de hora para evitar este problema. • La arquitectura basada en RPC Qué es RPC: RPC son llamadas a procedimientos o funciones en sistemas remotos, es decir en máquinas distintas a la máquina local. Transparencia de localización: El desarrollador utiliza los componentes sin necesidad de saber su ubicación física. Con RPC tanto en el cliente como en la máquina donde reside el componente hay subsistemas que se ocupan de la comunicación y el intercambio de datos.