UNIDAD 1. Panorama general de las aplicaciones distribuidas.1.1 Evolución de las aplicaciones informáticas.La evolución de...
sistemas operativos, ofimática, juegos mono usuario, etc.En una aplicación monolítica las tres partes forman un todo y se ...
aplicar a programas que se ejecutan sobre una sola computadora es másventajosa en un sistema operativo multiusuario distri...
Mientras que sus propósitos varían de unos servicios a otros, la arquitecturabásica seguirá siendo la misma.APLICACIONES D...
Aplicación de tres capas.Por estas razones, existe una fuerte y bien avanzada tendencia a adoptar unaarquitectura de tres ...
arquitecturas de n-capas. Estos sistemas de computación utilizan un númerovariable de componentes individuales que se comu...
o Ejecución de las reglas de datos relacional.Atendiendo al papel que los distintos elementos juegan dentro de laaplicació...
La evolución de las aplicaciones distribuidas se dio de la siguiente forma:• De interfaz de usuario• De aplicación• De bas...
• API Win 32.• HTMAL.• Dell HTML.• Lenguajes de scrips.1.2.2 De Aplicación.La adopción de un diseño distribuido de aplicac...
hacia algún sitio por ejemplo, para una consulta. Por otra parte, el desarrollo delas tecnologías de comunicación han perm...
Intranet: La Intranet, que quiere decir red interna, lleva un par de décadassiendo utilizada ampliamente en las empresas. ...
Internet: Podemos definir a Internet como una "red de redes", es decir, una redque no sólo interconecta computadoras, sino...
diría Sun Microsystems, el ordenador es la Red. Este paradigma está creandoun cambio fundamental en los modelos de computa...
• La compatibilidad de los Tipos de Datos: Distintos sistemas operativos tienendiferentes tipos de datos que no son siempr...
Próxima SlideShare
Cargando en…5
×

Unidad 1

186 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
186
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
2
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Unidad 1

  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 siguientesfactores:1. Trabajo a distancia.2. Compartir información.3. Accesibilidad.4. Seguridad en la protección de la información (tener la base de datosparticionada en dos o más nodos).5. Independencia lugares.En la actualidad cualquier aplicación cuenta generalmente con tres partesdiferenciadas:1.Una interfaz de usuario: Elemento con el que interacciona el usuario de laaplicación, ejecutando acciones, introduciendo u obteniendo información.2.Lógica ó Reglas de negocio: Son las que procesan la información paragenerar los resultados que persiguen, siendo el elemento fundamental quediferencia unas aplicaciones de otras.3.Gestión de datos: Se ocupa del almacenamiento y recuperación de lainformación.•APLICACIONES MONOLÍTICAS•APLICACIONES CLIENTE/Servidor•Aplicaciones de 2,3 y n capas1.1.1 Aplicaciones Monolíticas.Son aquellas en las que el software se estructura en grupos funcionales muyacoplados, 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. 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 lamisma máquina.DatosLógica de negocioInterface de usuarioEjemplo: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 sencillasOcupan mayor ancho de banda, provocando congestionamiento en la RedLocal Requieren habilitar el acceso real a la carpeta de datos para todos losusuarios 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 deimplementaciones de soluciones de conectividad muy costosas.1.1.2 Aplicaciones Cliente/Servidor.Esta arquitectura consiste básicamente en un cliente que realiza peticiones aotro programa (el servidor) que le da respuesta. Aunque esta idea se puede
  3. 3. aplicar a programas que se ejecutan sobre una sola computadora es másventajosa en un sistema operativo multiusuario distribuido a través de una redde computadoras.En esta arquitectura la capacidad de proceso está repartida entre los clientes ylos servidores, aunque son más importantes las ventajas de tipo organizativodebidas a la centralización de la gestión de la información y la separación deresponsabilidades, 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, dondeel servidor no se ejecuta necesariamente sobre una sola máquina ni esnecesariamente un sólo programa. Los tipos específicos de servidores incluyenlos servidores web, los servidores de archivo, los servidores del correo, etc.Mientras que sus propósitos varían de unos servicios a otros, la arquitecturabásica seguirá siendo la misma.Cliente: Se le representa por un software de aplicación y lo utilizan los usuariosde Internet para acceder a un determinado servicio.Servidor: En cambio un servidor tiene un software de servidor que lo utilizapara ofrecer al cliente toda la funcionalidad utilizada por el cliente. El cliente y elservidor se comunican a través de Internet por un protocolo que ellos mismosdefinen.1.1.2 Aplicaciones de 2, 3 y n Capas.Esta arquitectura consiste básicamente en un cliente que realiza peticiones aotro programa (el servidor) que le da respuesta. Aunque esta idea se puedeaplicar a programas que se ejecutan sobre una sola computadora es másventajosa en un sistema operativo multiusuario distribuido a través de una redde computadoras.En esta arquitectura la capacidad de proceso está repartida entre los clientes ylos servidores, aunque son más importantes las ventajas de tipo organizativodebidas a la centralización de la gestión de la información y la separación deresponsabilidades, 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, dondeel servidor no se ejecuta necesariamente sobre una sola máquina ni esnecesariamente un sólo programa. Los tipos específicos de servidores incluyenlos servidores web, los servidores de archivo, los servidores del correo, etc.
  4. 4. Mientras que sus propósitos varían de unos servicios a otros, la arquitecturabásica seguirá siendo la misma.APLICACIONES DE 2 CAPAS.La arquitectura de dos capas en la actualidad es muy utilizada, aunque conmuchas fallas, todavía no se ha podido dejar de usar. Estas arquitecturasfueron 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ónEste nivel es en el que se encuentra toda la interfaz del sistema y es la que elusuario 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 lacapa en donde se almacena toda la información ingresada en el sistema y quese deposita en forma permanente.Existen herramientas para el desarrollo en dos capas por ejemplo Visual Basic,Access y SQL.APLICACIONES DE TRES CAPASLa arquitectura de dos capas si bien ayudó en unos años atrás, se vio lanecesidad de crear una nueva arquitectura ya que en dos capas se teníaalgunos problemas en la capa de aplicación ya que la principal desventaja deesta era el peso que tenia para el cliente, como se mencionó anteriormente.
  5. 5. Aplicación de tres capas.Por estas razones, existe una fuerte y bien avanzada tendencia a adoptar unaarquitectura de tres capas.Y es así que se creó la arquitectura de tres capas las cuales son:• Nivel de AplicaciónLa diferencia de este nivel aplicado ahora en una arquitectura de tres capas esque solo tiene que trabajar con la semántica propia de aplicación, sin tener quepreocuparse 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 deaplicación. Algo muy importante y que es la mayor ventaja de esta arquitecturaes que ahora únicamente se cambia la regla en el servidor de aplicación y estaactuará en todos los clientes, cosa que ni sucedía con la arquitectura en doscapas que si alguna regla se la cambia, se tenía que ir a cada cliente a realizarel 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ónAPLICACIONES DE N CAPASEn una aplicación distribuida en n-capas los diferentes procesos estándistribuidos en diferentes capas no sólo lógicas, sino también físicas. Losprocesos se ejecutan en diferentes equipos, que pueden incluso residir enplataformas o sistemas operativos completamente distintos. Cada equipoposee una configuración distinta y está optimizado para realizar el papel que leha sido asignado dentro de la estructura de la aplicación, de modo que tantolos 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. 6. arquitecturas de n-capas. Estos sistemas de computación utilizan un númerovariable de componentes individuales que se comunican entre ellos utilizandoestándares predefinidos y frameworks de comunicación como:• CORBA: (Common Object Request Broker Architecture) del ObjectManagement Group (OMG).• DNA: (Distributed Network Applications) de Microsoft (incluye COM/DCOM yCOM+ 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 enmúltiples capas; la interfaz de usuario, la capa media de objetos de negocios, yla capa de acceso a datos. Puede ser útil identificar los tipos de procesamientoque 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 lostres 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. 7. o Ejecución de las reglas de datos relacional.Atendiendo al papel que los distintos elementos juegan dentro de laaplicación, distinguimos con claridad tres grupos lógicos en los que podemosagrupar elementos según su funcionalidad:• La capa de servidor incluye aquellos elementos que se encargan de recibir laspeticiones de datos o de acceso a servicios básicos del sistema y desuministrar a otros elementos la información solicitada.•La capa de negocios encapsula las reglas de acceso a datos y la gestión deprocesos internos de la aplicación.•La capa de presentación se encarga de la lógica1.2 Evolución de las tecnologías para el desarrollo de aplicacionesdistribuidas.Hoy en día las compañías no pueden ignorar el grave problema que implicadesarrollar y adaptar software al ritmo que imponen los negocios. Los requisitosvarían con mucha frecuencia y las aplicaciones no logran ser desarrolladas y/oadaptadas al ritmo requerido. La globalización y fusión de empresas, elcrecimiento de Internet, entre otros factores, han acentuado aún más estosproblemas llevando el software desarrollado, que normalmente había sidodesarrollado para una plataforma específica, a un ambiente distribuidoheterogéneo. Esto involucra, en consecuencia, La necesidad de considerar unaamplia gama de aspectos como lo son la integración de datos heterogéneos, lainteracción entre diversos sistemas, los distintos sistemas operativos, elmiddleware, 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 denuevas tecnologías como XML, web services , la plataforma J2EE, lacomunicación asíncrona por medio de mensajes, el uso de application servers ,son algunos de los conocimientos que permiten llevar a cabo el desarrollo deaplicaciones modernas.
  8. 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 capas1.2.1 De Interfaz de Usuario.Aquí es donde su aplicación presenta información a los usuarios y aceptaentradas o respuestas del usuario para usar por su programa. Idealmente, la IUno desarrolla ningún procesamiento de negocios o reglas de validación denegocios. Por el contrario, la IU debería relegar sobre la capa de negocios paramanipular estos asuntos. Esto es importante, especialmente hoy en día, debidoa que es muy común para una aplicación tener múltiples IU, o para sus clienteso 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. 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, aumentala reusabilidad, reduce la cantidad de recursos, y los costes necesarios dedesarrollo y mantenimiento.Este nuevo enfoque de diseño pone en manos de los desarrolladores no solo lafuncionalidad que demandan las aplicaciones, sino también la seguridad,rapidez y flexibilidad.Algunas tecnologías de aplicación son:• CORBA.• DNA.• EJB.• XML1.2.3 De Base de Datos.La evolución de las bases de datos distribuidas se debe por una parte arazones organizacionales las cuales han demandado que mayorescapacidades sean incorporadas a las bases de datos, tales como la integraciónde información desde distintos sitios donde se encuentre la empresa distribuida
  10. 10. hacia algún sitio por ejemplo, para una consulta. Por otra parte, el desarrollo delas tecnologías de comunicación han permitido enlazar datos con aplicacionesque se encuentran en sitios distintos y remotos, por ejemplo las transaccionesbancarias realizadas en máquinas-cajeros automáticos (ATM) que seencuentran ubicados en centros comerciales, empresas y escuelas, no seríanposibles si no tuviéramos sistemas de comunicación para enlazarnos a basesde 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 arquitecturapredominante para la construcción de aplicaciones multiplataforma en la mayorparte de las empresas.Este cambio radical en los modelos de computación, desde los sistemasmonolíticos basados en mainframe y los tradicionales sistemas cliente-servidor,hacia sistemas distribuidos multiplataforma altamente modularles, representa eldesarrollo rápido y avance de la investigación en el mundo del desarrollo deaplicaciones, tal y como se pone de manifiesto en las últimas tendencias de lasgrandes empresas de tecnología, como Sun con su estrategia Sun One, oMicrosoft con DotNET (.Net).Algunas tecnologías de comunicación de datos son:
  11. 11. Intranet: La Intranet, que quiere decir red interna, lleva un par de décadassiendo utilizada ampliamente en las empresas. Principalmente, ya que lastecnologí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, enel académico. Ya que la Intranet, provee de un especio común, para eldesarrollo de estrategias, información, memorandos, entre otrasaplicabilidades, las cuales son utilizadas por toda la empresa u establecimientoeducativo.En palabras técnicas, una Intranet, es una red de Área Local o LAN. La cualtiene la característica, de ser de exclusivo uso, de la empresa u organizaciónque 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 elusuario. Estos niveles de seguridad, son asignados, según la relevancia delpuesto dentro de la organización, del usuario. Claro que existen nivelescompartidos por todos. Ahora, los niveles básicos de seguridad, impiden lautilización de la Intranet, por parte de personas foráneas a la empresa oestablecimiento educativo.
  12. 12. Internet: Podemos definir a Internet como una "red de redes", es decir, una redque no sólo interconecta computadoras, sino que interconecta redes decomputadoras entre sí. Una red de computadoras es un conjunto de máquinasque 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 permiteampliar su cobertura al hacerlas parte de una "red global". Esta red global tienela característica de que utiliza un lenguaje común que garantiza laintercomunicación de los diferentes participantes; este lenguaje común oprotocolo (un protocolo es el lenguaje que utilizan las computadoras alcompartir recursos) se conoce como TCP/IP.1.2.5 De Conexión Entre Capas.Como tecnología, las arquitecturas de capas proporcionan una gran cantidadde beneficios para las empresas que necesitan soluciones flexibles y fiablespara resolver complejos problemas inmersos en cambios constantes.Todas las aplicaciones basadas en capas permitirán trabajar con clientesligeros, tal como navegadores de Internet, WebTV, Teléfonos Inteligentes,PDAs (Personal Digital Assistants o Asistentes Personales Digitales) y muchosotros dispositivos preparados para conectarse a Internet.De este modo, las arquitecturas de capas se están posicionando rápidamentecomo la piedra angular de los desarrollos de aplicaciones empresariales y lascompañías están adoptando esta estrategia a una velocidad de vértigo comomecanismo de posicionamiento en la economía emergente que tiene su baseen 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. 13. diría Sun Microsystems, el ordenador es la Red. Este paradigma está creandoun cambio fundamental en los modelos de computación que, a su vez,proporciona desafíos y oportunidades como nunca antes había se habíanproducido.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 deficheros (P2P).Algunos escenarios que utilizan aplicaciones distribuidas son:1.4 Problemas comunes en el desarrollo y uso de aplicacionesdistribuidas.Hay una serie de problemas comunes en el diseño de las aplicacionesdistribuidas:
  14. 14. • La compatibilidad de los Tipos de Datos: Distintos sistemas operativos tienendiferentes tipos de datos que no son siempre compatibles entre sí.• Fallas del Servidor: Debido a que los componentes pueden ser remotos, unafalla 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 delcliente.• Reintento de llamadas: Si por ejemplo, se hace una llamada a un método enun servidor para generar una orden de compra muy grande, y el servidorresponde pero se pierde la respuesta por fallas de red, no es muy eficientevolver a enviar la orden de compra.• Seguridad: En aplicaciones distribuidas los problemas de seguridad semultiplican. Por ejemplo, se debe considerar como: Autenticar a los usuariosAutorizarlos a acceder a los recursos, encriptar la información que viaja por lared, evitar ataques de denegación de servicio.• Sincronización de la hora: Hay operaciones que dependen de la fecha y lahora. Por ejemplo, no es lógico en una aplicación procesar un envío demercadería antes de haber recibido la orden de compra. Si el cliente y elservidor tienen fechas distintas, se debe generar un mecanismo desincronización de hora para evitar este problema.• La arquitectura basada en RPC Qué es RPC: RPC son llamadas aprocedimientos o funciones en sistemas remotos, es decir en máquinasdistintas a la máquina local. Transparencia de localización: El desarrolladorutiliza los componentes sin necesidad de saber su ubicación física. Con RPCtanto en el cliente como en la máquina donde reside el componente haysubsistemas que se ocupan de la comunicación y el intercambio de datos.

×