SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Desarrollo de Aplicaciones para Ambientes Distribuidos
1.1.1 Aplicaciones monolíticas

 En los días del mainframe o del computador
  personal de escritorio, cuando una aplicación
  era almacenada en una única máquina, era
  común encontrar aplicaciones monolíticas
  que contenían toda la funcionalidad de la
  aplicación en una gran y frecuentemente
  difícilmente mantenible pieza de software .
1.1.1 Aplicaciones monolíticas

 Todas las entradas de usuario, verificación,
  lógica de negocio y acceso de datos podrían
  encontrarse juntas. Esto era apropiado en el
  mundo del mainframe y centros de datos
  corporativos porque todo era controlado y los
  mismos sistemas tendían a evolucionar
  lentamente.
1.1.1 Aplicaciones monolíticas

 Sin embargo, cualquier cambio requerido a
 cualquier parte de la funcionalidad podría
 potencialmente afectar otras partes. Porque
 la presentación, negocio, y la lógica de acceso
 a datos están localizados dentro de la misma
 pieza de código de aplicación, la
 recompilación de varias partes del código
 podría ser necesaria, incrementando la
 sobrecarga de nueva o cambios de
 funcionalidad.
1.1.1 Aplicaciones monolíticas

 Incluso, los cambios en partes del código
  podría introducir bugs no intencionales en
  otras partes aparentemente no relacionadas.
1.1.2 Aplicaciones
cliente/servidor
Conceptos
 Es un modelo para construir sistemas de
  información, que se sustenta en la idea de
  repartir el tratamiento de la información y los
  datos por todo el sistema informático,
  permitiendo mejorar el rendimiento del
  sistema global de información.
1.1.2 Aplicaciones
cliente/servidor
Arquitectura
 Los distintos aspectos que caracterizan a una
  aplicación (proceso, almacenamiento, control
  y operaciones de entrada y salida de datos)
  en el sentido más amplio, están situados en
  más de una computadora, los cuales se
  encuentran interconectados mediante una
  red de comunicaciones.
1.1.2 Aplicaciones
cliente/servidor……………………………………………
…
IBM
 Es la tecnología que proporciona al usuario final
  el acceso transparente a las aplicaciones, datos,
  servicios de cómputo o cualquier otro recurso del
  grupo de trabajo y/o, a través de la organización,
  en múltiples plataformas. El modelo soporta un
  medio ambiente distribuido en el cual los
  requerimientos de servicio hechos por estaciones
  de trabajo inteligentes o "clientes'', resultan en
  un trabajo realizado por otras computadoras
  llamados servidores.
1.1.2 Aplicaciones
cliente/servidor
Cliente
 Es el que inicia un requerimiento de servicio.
  El requerimiento inicial puede convertirse en
  múltiples requerimientos de trabajo a través
  de redes LAN o WAN. La ubicación de los
  datos o de las aplicaciones es totalmente
  transparente para el cliente.
1.1.2 Aplicaciones
cliente/servidor
Servidor
 Es cualquier recurso de cómputo dedicado a
  responder a los requerimientos del cliente.
  Los servidores pueden estar conectados a los
  clientes a través de redes LANs o WANs, para
  proporcionar múltiples servicios a los clientes
   tales como impresión, acceso a bases de
  datos, procesamiento de imágenes, etc.
1.1.2 Aplicaciones
cliente/servidor
¿ Qué es un proceso distribuido?
 Es un modelo de sistemas y/o de aplicaciones,
  en el cual las funciones y los datos pueden
  estar dispersos a través de múltiples recursos
  de cómputo, conectados en un ambiente de
  redes LAN o WAN.
 Podemos tener un proceso distribuido a
  través de los celulares
1.1.2 Aplicaciones
   cliente/servidor
Características del Modelo
 El Cliente y el Servidor pueden actuar como una sola entidad y
  también pueden actuar como entidades separadas, realizando
  actividades o tareas independientes.
 Las funciones de Cliente y Servidor pueden estar en plataformas
  separadas, o en la misma plataforma.
 Un servidor da servicio a múltiples clientes en forma
  concurrente.
 Cada plataforma puede ser escalable independientemente. Los
  cambios realizados en las plataformas de los Clientes o de los
  Servidores, ya sean por actualización o por reemplazo
  tecnológico, se realizan de una manera transparente para el
  usuario final.
1.1.3 Aplicaciones de 2,3 y n
capas
 El modelo n−tier (n−capas) de informática
  distribuida ha emergido como la arquitectura
  predominante para la construcción de
  aplicaciones multiplataforma en la mayor
  parte de las empresas.
 1.Codificar al mismo tiempo
1.1.3 Aplicaciones de 2,3 y n
capas
 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
  modulables, representa simplemente la punta
  del iceberg de lo que está por llegar 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 Tone, o Microsoft con DotNET
  (.Net).
1.1.3 Aplicaciones de 2,3 y n
capas
(examen)
Ventajas del modelo
 Desarrollos paralelos (varios programadores en cada capa)
 Aplicaciones más robustas debido al encapsulamiento
 Mantenimiento y soporte más sencillo (es más sencillo
  cambiar un componente que modificar una aplicación
  monolítica)
 Mayor flexibilidad (se pueden añadir nuevos módulos para
  dotar al sistema de nueva funcionalidad)
 Alta escalabilidad . La principal ventaja de una aplicación
  distribuida bien diseñada es su buen escalado, es decir, que
  puede manejar muchas peticiones con el mismo
  rendimiento simplemente añadiendo más hardware. El
  crecimiento es casi lineal y no es necesario añadir más
  código para conseguir esta escalabilidad.
1.1.3 Aplicaciones de 2,3 y n
 capas (examen)
 Arquitectura lógica “clásica”
       Presentación

       Lógica de negocio
      (Que es lo que hace
          el sistema)


           Datos

         Fuentes de
           datos
1.1.3 Aplicaciones de 2,3 y n
capas                                                       Usuarios y dispositivos

                                                                                       Arquitectura lógica
Gestión de operaciones
                         Comunicaciones
                                          Seguridad
Gestión de operaciones
                         Comunicaciones
                                          Seguridad                                        “ampliada”
                                                            Presentación
                                                            Componentes IU

                                                      Componentes de proceso de IU



                                                         Lógica deWorkflows
                                                          Business negocio            Svc Interfaces   Servicios

                                                      Componentes de negocio

                                                          Entidades de negocio          Svc Agents
                                                                                        Svc Agents



                                                                Datos
                                                      Componentes de acceso a datos



                                                              Fuentes de datos
1.2 Evolución de las tecnologías para
el desarrollo de aplicaciones
distribuidas.
1.2 Evolución de las tecnologías para
el desarrollo de aplicaciones
distribuidas.
 Sistema        Distribuido:      “Colección      de
  máquinas/procesos que colaborar para cumplir un
  objetivo”
 Inicio con Aplicaciones Centralizadas. Todo lo hacia
  un mismo equipo.
 Primer servicio telemático: Emulación de Terminal
  • Hay distribución, pero todo lo sigue haciendo el
  Servidor.

  • Ej: telnet, Xwindows, Windows Terminal, VNC, etc.
1.2 Evolución de las tecnologías para
  el desarrollo de aplicaciones
 distribuidas. Bases de Datos
   Cliente/Servidor con
    Modelo de 2 niveles
    Aparición de n-lógicas
    • Presentación
    • Comunicaciones
    • Lógica del Negocio
    • Datos
Examen
   En el Cliente se haya la Presentación y la Lógica del Negocio
   En el Servidor se hayan los Datos (Bases de Datos)
   Se supone que las entidades intercambian sentencias SQL
   NO orientado a transacciones
   Muy orientado a 4GL
   Procedimientos almacenados. Lógica del negocio en la base de
    datos. Dependiente.
1.2 Evolución de las tecnologías para
el desarrollo de aplicaciones
distribuidas.
 Cliente/Servidor con bases de datos
  Cliente                                   Servidor
  (presentación                             (Datos + SP)
  + lógica)
                             RED


                       Select * from empleados
                       Pedro, Juan, Camilo, …
 Trans. Fondos        Consulta cuenta 1
                       Consulta cuenta 2
                       Actualización cuenta1
                       Actualización cuenta2
                       Adicionar movimientos
1.2 Evolución de las tecnologías para
el desarrollo de aplicaciones
distribuidas.
 Procesadores de Transacciones:
• Orientado a transacciones
• 3 niveles
                              SQL




                     RED
1.2 Evolución de las tecnologías para
     el desarrollo de aplicaciones
    distribuidas.
    Objetos Distribuidos

 Primeros pasos en RPC’s
 A finales de los 80’s emergió DCE (Distributed Computing
    Environment) como una iniciativa para estandarizar las
    diferentes tecnologías de RPC (Procedimiento a funciones). No
    considera tecnologías de Mensajería.
   Éxito del modelo Orientado a Objetos tanto en Análisis/Diseño
    como en Desarrollo.
   Por qué no extender este modelo a un ambiente distribuido
   Un cliente en cualquier parte de la red, invoca un método de un
    objeto remoto.
   Adecuados en comunicaciones:
    • Cliente a Servidor
    • Servidor a Servidor
Examen
1.2 Evolución de las tecnologías para
el desarrollo de aplicaciones
distribuidas.




                    Segunda
                      capa

                              Tercera
                               capa
Examen
1.3 Escenarios de la utilización de
las aplicaciones distribuidas.
Examen
       1.3 Escenarios de la utilización de
       las aplicaciones distribuidas.




Conexion
 a la BD
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
 El desarrollo de aplicaciones distribuidas requirió de
  nuevas técnicas de diseño y de generación de
  modelos. También trajo nuevos problemas.
 Existen 2 tipos distintos de arquitecturas que se
  utilizaron antes de .NET para hacer aplicaciones
  distribuidas:
   Llamadas a Procedimiento Remoto (RPC)
   Arquitecturas basadas en mensajes

 Se verán los problemas técnicos que este tipo de
  arquitecturas tiene y finalmente como los
  Estándares Web son utilizados para hacer la nueva
  generación de aplicaciones distribuidas
Examen
1.4 Problemas comunes en el desarrollo
y uso de las 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í. (Linux vs. Windows)

 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 como responder a
  las fallas del cliente.
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
 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
Leer
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
 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.
Leer
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
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.
Leer
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
 Llamadas Sincrónicas:
  En RPC las llamadas a los procedimientos son
  sincrónicas. Esto quiere decir que cuando una
  aplicación hace una llamada a un
  procedimiento RPC debe esperar que el
  servidor le responda para poder continuar con
  el procesamiento. Esto presenta problemas
  en un entorno distribuido, mucho más si
  pensamos en distribuir los componentes en
  Internet.
Leer
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
Las llamadas sincrónicas con RPC tienen desventajas:
 Uso de múltiples componentes: Si su aplicación
  distribuida depende de muchos componentes que se
  llaman entre sí, esto hace que la aplicación sea más
  susceptible a fallas.
 Balanceo de Carga y Tolerancia a fallos: Es el
  problema de como las aplicaciones descubren la
  información necesaria para poder conectarse otros
  servidores en el caso de que el que esta utilizando
  falle. O de como balancean el procesamiento entre
  varios servidores Esto no es posible con RPC.
Leer
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
 Priorización: Con RPC es muy difícil detectar
  que servidores están con mucha carga de
  trabajo y derivar la llamada RPC a otro
  servidor menos ocupado.

 Picos de carga de Trabajo: RPC no puede
  manejar los picos de carga de trabajo que
  puede tener un servidor si tiene llamadas RPC
  de muchos clientes.
Leer
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
La arquitectura basada en Mensajes
Otra arquitectura para desarrollar aplicaciones
  distribuidas es la basada en mensajes.

Esta tecnología es asincrónica. Lo que significa
  que el cliente puede seguir con el
  procesamiento mientras espera la respuesta
  del servidor.
 Utiliza mensajes en vez de llamadas a
  funciones.
Leer
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
Tiene desventajas:
 Procesamiento del Mensaje:
   El programador debe manejar en el código el
   empaquetamiento y des empaquetamiento de los
   mensajes. Además debe controlar su validez
 Interoperabilidad:
   Los sistemas de mensajería utilizan tecnología propietaria.
   Se necesita software para permitir el envío de mensajes y la
   comunicación los distintos sistemas.
 Flujo de Carga y secuenciamiento de los mensajes:
   Se necesita de algún mecanismo para coordinar el flujo y la
   secuencia de los mensajes. Por ejemplo, no se puede
   procesar una orden de envío de un producto antes de que
   se procesa la orden de pedido del producto.
Leer
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
Los estándares Web
 Tanto RPC como la arquitectura basada en
  mensajes han sido implementados en forma
  exitosa por muchas organizaciones. Sin
  embargo su uso tiene dificultades que se
  resuelven con la utilización de los protocolos
  Web estándares.
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
Problemas con los Protocolos Binarios:
  Existen varias tecnologías RPC, ninguna
  estándar, por ejemplo. COM de Microsoft,
  CORBA y RMI. Todas estas tecnologías
  utilizan protocolos binarios.
 Los protocolos binarios tienen desventajas:
   Firewall:
    Para permitir la comunicación entre un cliente y
    un servidor que se encuentra detrás de un firewall
    los administradores deben dejar un rango variable
    de puertos abiertos. Esto es un riesgo de
    seguridad muy alto.
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
   Interoperatividad: Las distintas tecnologías RPC
    implican protocolos binarios de comunicación
    distintos. Para que interoperen entre sí se deben
    traducir los paquetes de red lo que puede
    significar pérdida de información. Para evitar este
    problema las organizaciones utilizan un solo
    modelo RPC.

   Formato de los Datos: Cada protocolo RPC utiliza
    un formato de datos distintos. La traducción de un
    formato a otro presenta dificultades.
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
 La nueva arquitectura:
  Los protocolos que utiliza Internet resuelven
  muchos de los problemas anteriormente
  mencionados.
   Internet y la Web: Los protocolos TCP e IP fueron
    desarrollados originalmente para conectar redes
    distintas y crear una red de redes. Esta red de
    redes terminó convirtiéndose en el Internet que
    conocemos hoy.
    A finales de 1990, Tim Berners-Lee inventó WWW
    (World Wide Web).
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
  WWW es lo que hoy conocemos como la Web. La
  Web es una red globalmente interconectada de
  documentos hipertexto. Utiliza 2 tecnologías
  principales: El lenguaje HTML y el protocolo HTTP
  para la comunicación.
   HTML: Es un lenguaje de marcas (Tags). Las
    marcas definen como el Explorador de Internet
    presenta la información. Los documentos que
    tienen estas marcas son llamados documentos
    hipertexto.
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
   Ventajas de HTTP: Es el protocolo utilizado
    para pedir y recibir documentos. El formato de
    estos documentos puede ser HTML pero
    también muchos otros más como por ejemplo
    XML.
 Los Servicios Web y los clientes pueden
  intercambiar documentos XML utilizando
  el protocolo HTTP. HTTP es un Standard
  usado universalmente
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
   XML- Un formato de datos universal: A pesar
    de que HTML permite presentar datos, HTML
    no permite comunicar la estructura de los
    datos y su relación. XML nació en 1996 para
    permitir describir la estructura de los datos en
    un documento.
   Firewall: Los servidores Web son los
    responsables de administrar los documentos,
    que pueden ser accedidos desde Internet
    pasando por el firewall de la organización y
    utilizando el protocolo HTTP.
1.4 Problemas comunes en el desarrollo
y uso de las aplicaciones
distribuidas.
  Problemas con la Web: Como la Web es una red
    pública se presentan algunos problemas.
     Seguridad: Entre otros problemas se encuentran: el
      robo de información o la modificación de los datos
     Performance: Algunos clientes acceden con
      conexiones telefónicas lo que puede limitar por su
      baja velocidad la complejidad de las aplicaciones.
      Por lo tanto algunas aplicaciones se deben limitar a
      la Intranet

Weitere ähnliche Inhalte

Was ist angesagt?

base de datos definicion.caracteristicas.base de datos relacional
 base de datos definicion.caracteristicas.base de datos relacional base de datos definicion.caracteristicas.base de datos relacional
base de datos definicion.caracteristicas.base de datos relacionalLeomar Martinez
 
Arquitectura de aplicaciones distribuidas
Arquitectura de aplicaciones distribuidasArquitectura de aplicaciones distribuidas
Arquitectura de aplicaciones distribuidasRosario Dguez
 
Triggers o disparadores en MySQL
Triggers o disparadores en MySQL Triggers o disparadores en MySQL
Triggers o disparadores en MySQL Jair Ospino Ardila
 
Lenguajes de bases de datos
Lenguajes de bases de datosLenguajes de bases de datos
Lenguajes de bases de datosralbarracin
 
Integridad Y Seguridad En Las Bases De Datos
Integridad Y Seguridad En Las Bases De DatosIntegridad Y Seguridad En Las Bases De Datos
Integridad Y Seguridad En Las Bases De DatosDrakonis11
 
Seguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosSeguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosHECTOR JAVIER
 
Suma de dos enteros pseint
Suma de dos enteros pseintSuma de dos enteros pseint
Suma de dos enteros pseintederbladimir
 
Sistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de DatosSistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de Datosalexmerono
 
Tipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivasTipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivasgrupo niche ortega
 

Was ist angesagt? (20)

base de datos definicion.caracteristicas.base de datos relacional
 base de datos definicion.caracteristicas.base de datos relacional base de datos definicion.caracteristicas.base de datos relacional
base de datos definicion.caracteristicas.base de datos relacional
 
Arquitectura de aplicaciones distribuidas
Arquitectura de aplicaciones distribuidasArquitectura de aplicaciones distribuidas
Arquitectura de aplicaciones distribuidas
 
Introducción a VueJS
Introducción a VueJSIntroducción a VueJS
Introducción a VueJS
 
Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"
 
Csv y xml
Csv y xmlCsv y xml
Csv y xml
 
Triggers o disparadores en MySQL
Triggers o disparadores en MySQL Triggers o disparadores en MySQL
Triggers o disparadores en MySQL
 
TRIGGERS
TRIGGERSTRIGGERS
TRIGGERS
 
Conceptos basicos
Conceptos basicosConceptos basicos
Conceptos basicos
 
Lenguajes de bases de datos
Lenguajes de bases de datosLenguajes de bases de datos
Lenguajes de bases de datos
 
ADO .NET
ADO .NETADO .NET
ADO .NET
 
oohdm
oohdmoohdm
oohdm
 
Tipos De Sistemas De Informacion
Tipos De Sistemas De InformacionTipos De Sistemas De Informacion
Tipos De Sistemas De Informacion
 
Cuadro comparativo de los diferentes DBMS
Cuadro comparativo de los diferentes DBMSCuadro comparativo de los diferentes DBMS
Cuadro comparativo de los diferentes DBMS
 
Integridad Y Seguridad En Las Bases De Datos
Integridad Y Seguridad En Las Bases De DatosIntegridad Y Seguridad En Las Bases De Datos
Integridad Y Seguridad En Las Bases De Datos
 
Seguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosSeguridad En Sistemas Distribuidos
Seguridad En Sistemas Distribuidos
 
Diseño de bases de datos
Diseño de bases de datosDiseño de bases de datos
Diseño de bases de datos
 
Suma de dos enteros pseint
Suma de dos enteros pseintSuma de dos enteros pseint
Suma de dos enteros pseint
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Sistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de DatosSistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de Datos
 
Tipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivasTipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivas
 

Andere mochten auch

Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones DistribuídasJavierialv
 
Aplicaciones Distribuidas
Aplicaciones DistribuidasAplicaciones Distribuidas
Aplicaciones DistribuidasSorey García
 
Snmp
SnmpSnmp
Snmp1 2d
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidasalicia
 
Presentacion Evolucion De Las Tecnologias
Presentacion Evolucion De Las TecnologiasPresentacion Evolucion De Las Tecnologias
Presentacion Evolucion De Las Tecnologiasadriana
 

Andere mochten auch (7)

Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones Distribuídas
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Aplicaciones Distribuidas
Aplicaciones DistribuidasAplicaciones Distribuidas
Aplicaciones Distribuidas
 
Snmp
SnmpSnmp
Snmp
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Presentacion Evolucion De Las Tecnologias
Presentacion Evolucion De Las TecnologiasPresentacion Evolucion De Las Tecnologias
Presentacion Evolucion De Las Tecnologias
 

Ähnlich wie Unidad 1 Panorama general de las aplicaciones distribuidas

Arquitectura 2
Arquitectura 2Arquitectura 2
Arquitectura 2bistasa
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidasalondra0126
 
Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicaciónuniv of pamplona
 
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...ssuserc860fb
 
Middleware
MiddlewareMiddleware
MiddlewareTensor
 
Middleware
MiddlewareMiddleware
MiddlewareTensor
 
Middleware
MiddlewareMiddleware
MiddlewareTensor
 
Desarrollo de aplicaciones de abd
Desarrollo de aplicaciones de abdDesarrollo de aplicaciones de abd
Desarrollo de aplicaciones de abdGoogle
 
Invoin presentación general
Invoin presentación generalInvoin presentación general
Invoin presentación generaldavidinvoin
 
Evaluando la Plataforma Microsoft
Evaluando la Plataforma MicrosoftEvaluando la Plataforma Microsoft
Evaluando la Plataforma MicrosoftHaaron Gonzalez
 
Cloud computing de cesser
Cloud computing de cesserCloud computing de cesser
Cloud computing de cesserMICProductivity
 
Presentacionfinal gcs
Presentacionfinal gcsPresentacionfinal gcs
Presentacionfinal gcsfrax2050
 
Arquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo MariaArquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo Mariagequito
 
Arquitectura de sistemas distribuidos-Grupo de Maria
Arquitectura de sistemas distribuidos-Grupo de MariaArquitectura de sistemas distribuidos-Grupo de Maria
Arquitectura de sistemas distribuidos-Grupo de Mariagequito
 
08 Cast V Semana CMMI 2009
08 Cast V Semana CMMI 200908 Cast V Semana CMMI 2009
08 Cast V Semana CMMI 2009Pepe
 
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
 
Proyecto final grupal gp
Proyecto final grupal gpProyecto final grupal gp
Proyecto final grupal gpMaria Lobos
 

Ähnlich wie Unidad 1 Panorama general de las aplicaciones distribuidas (20)

1 intro
1 intro1 intro
1 intro
 
Arquitectura 2
Arquitectura 2Arquitectura 2
Arquitectura 2
 
Arquitectura
ArquitecturaArquitectura
Arquitectura
 
Aplicaciones distribuidas
Aplicaciones distribuidasAplicaciones distribuidas
Aplicaciones distribuidas
 
Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicación
 
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
 
Middleware
MiddlewareMiddleware
Middleware
 
Middleware
MiddlewareMiddleware
Middleware
 
Middleware
MiddlewareMiddleware
Middleware
 
Desarrollo de aplicaciones de abd
Desarrollo de aplicaciones de abdDesarrollo de aplicaciones de abd
Desarrollo de aplicaciones de abd
 
Invoin presentación general
Invoin presentación generalInvoin presentación general
Invoin presentación general
 
Evaluando la Plataforma Microsoft
Evaluando la Plataforma MicrosoftEvaluando la Plataforma Microsoft
Evaluando la Plataforma Microsoft
 
Cloud computing de cesser
Cloud computing de cesserCloud computing de cesser
Cloud computing de cesser
 
Presentacionfinal gcs
Presentacionfinal gcsPresentacionfinal gcs
Presentacionfinal gcs
 
Arquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo MariaArquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo Maria
 
Arquitectura de sistemas distribuidos-Grupo de Maria
Arquitectura de sistemas distribuidos-Grupo de MariaArquitectura de sistemas distribuidos-Grupo de Maria
Arquitectura de sistemas distribuidos-Grupo de Maria
 
08 Cast V Semana CMMI 2009
08 Cast V Semana CMMI 200908 Cast V Semana CMMI 2009
08 Cast V Semana CMMI 2009
 
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.
 
Charla IBM Soa Web 2.0 Cloud Computing M Bolo
Charla IBM Soa Web 2.0 Cloud Computing   M BoloCharla IBM Soa Web 2.0 Cloud Computing   M Bolo
Charla IBM Soa Web 2.0 Cloud Computing M Bolo
 
Proyecto final grupal gp
Proyecto final grupal gpProyecto final grupal gp
Proyecto final grupal gp
 

Mehr von Eduardo S de Loera

Antologia Legislacion Informatica
Antologia Legislacion InformaticaAntologia Legislacion Informatica
Antologia Legislacion InformaticaEduardo S de Loera
 
Normalización de Bases de Datos
Normalización de Bases de DatosNormalización de Bases de Datos
Normalización de Bases de DatosEduardo S de Loera
 
LI Desarrollo de aplicaciones distribuidas
LI Desarrollo de aplicaciones distribuidasLI Desarrollo de aplicaciones distribuidas
LI Desarrollo de aplicaciones distribuidasEduardo S de Loera
 
1.6 El subsistema de gestión del Conocimiento
1.6 El subsistema de gestión del Conocimiento1.6 El subsistema de gestión del Conocimiento
1.6 El subsistema de gestión del ConocimientoEduardo S de Loera
 
UNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDAS
UNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDASUNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDAS
UNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDASEduardo S de Loera
 
LI. Bases de Datos Distribuidas
LI. Bases de Datos DistribuidasLI. Bases de Datos Distribuidas
LI. Bases de Datos DistribuidasEduardo S de Loera
 
2.1 Data warehousing acceso, análisis y visualización
2.1 Data warehousing acceso, análisis y visualización2.1 Data warehousing acceso, análisis y visualización
2.1 Data warehousing acceso, análisis y visualizaciónEduardo S de Loera
 
1.2. Características y capacidades de los DSS
1.2. Características y capacidades de los DSS1.2. Características y capacidades de los DSS
1.2. Características y capacidades de los DSSEduardo S de Loera
 

Mehr von Eduardo S de Loera (15)

Antologia Legislacion Informatica
Antologia Legislacion InformaticaAntologia Legislacion Informatica
Antologia Legislacion Informatica
 
Diseño de un Datamart
Diseño de un DatamartDiseño de un Datamart
Diseño de un Datamart
 
Abuso del Mouse
Abuso del MouseAbuso del Mouse
Abuso del Mouse
 
Normalización de Bases de Datos
Normalización de Bases de DatosNormalización de Bases de Datos
Normalización de Bases de Datos
 
Determinación de costos
Determinación de costosDeterminación de costos
Determinación de costos
 
Auditoria compumax
Auditoria compumaxAuditoria compumax
Auditoria compumax
 
LI Desarrollo de aplicaciones distribuidas
LI Desarrollo de aplicaciones distribuidasLI Desarrollo de aplicaciones distribuidas
LI Desarrollo de aplicaciones distribuidas
 
1.6 El subsistema de gestión del Conocimiento
1.6 El subsistema de gestión del Conocimiento1.6 El subsistema de gestión del Conocimiento
1.6 El subsistema de gestión del Conocimiento
 
Modulación AM
Modulación AMModulación AM
Modulación AM
 
UNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDAS
UNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDASUNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDAS
UNIDAD 2 DISEÑO DE LAS BASES DE DATOS DISTRIBUIDAS
 
LI. Bases de Datos Distribuidas
LI. Bases de Datos DistribuidasLI. Bases de Datos Distribuidas
LI. Bases de Datos Distribuidas
 
2.1 Data warehousing acceso, análisis y visualización
2.1 Data warehousing acceso, análisis y visualización2.1 Data warehousing acceso, análisis y visualización
2.1 Data warehousing acceso, análisis y visualización
 
1.2. Características y capacidades de los DSS
1.2. Características y capacidades de los DSS1.2. Características y capacidades de los DSS
1.2. Características y capacidades de los DSS
 
3.3 Diagramas de influencia
3.3 Diagramas de influencia3.3 Diagramas de influencia
3.3 Diagramas de influencia
 
Sistemas de informacion II LI
Sistemas de informacion II LISistemas de informacion II LI
Sistemas de informacion II LI
 

Unidad 1 Panorama general de las aplicaciones distribuidas

  • 1. Desarrollo de Aplicaciones para Ambientes Distribuidos
  • 2. 1.1.1 Aplicaciones monolíticas  En los días del mainframe o del computador personal de escritorio, cuando una aplicación era almacenada en una única máquina, era común encontrar aplicaciones monolíticas que contenían toda la funcionalidad de la aplicación en una gran y frecuentemente difícilmente mantenible pieza de software .
  • 3. 1.1.1 Aplicaciones monolíticas  Todas las entradas de usuario, verificación, lógica de negocio y acceso de datos podrían encontrarse juntas. Esto era apropiado en el mundo del mainframe y centros de datos corporativos porque todo era controlado y los mismos sistemas tendían a evolucionar lentamente.
  • 4. 1.1.1 Aplicaciones monolíticas  Sin embargo, cualquier cambio requerido a cualquier parte de la funcionalidad podría potencialmente afectar otras partes. Porque la presentación, negocio, y la lógica de acceso a datos están localizados dentro de la misma pieza de código de aplicación, la recompilación de varias partes del código podría ser necesaria, incrementando la sobrecarga de nueva o cambios de funcionalidad.
  • 5. 1.1.1 Aplicaciones monolíticas  Incluso, los cambios en partes del código podría introducir bugs no intencionales en otras partes aparentemente no relacionadas.
  • 6. 1.1.2 Aplicaciones cliente/servidor Conceptos  Es un modelo para construir sistemas de información, que se sustenta en la idea de repartir el tratamiento de la información y los datos por todo el sistema informático, permitiendo mejorar el rendimiento del sistema global de información.
  • 7. 1.1.2 Aplicaciones cliente/servidor Arquitectura  Los distintos aspectos que caracterizan a una aplicación (proceso, almacenamiento, control y operaciones de entrada y salida de datos) en el sentido más amplio, están situados en más de una computadora, los cuales se encuentran interconectados mediante una red de comunicaciones.
  • 8. 1.1.2 Aplicaciones cliente/servidor…………………………………………… … IBM  Es la tecnología que proporciona al usuario final el acceso transparente a las aplicaciones, datos, servicios de cómputo o cualquier otro recurso del grupo de trabajo y/o, a través de la organización, en múltiples plataformas. El modelo soporta un medio ambiente distribuido en el cual los requerimientos de servicio hechos por estaciones de trabajo inteligentes o "clientes'', resultan en un trabajo realizado por otras computadoras llamados servidores.
  • 9. 1.1.2 Aplicaciones cliente/servidor Cliente  Es el que inicia un requerimiento de servicio. El requerimiento inicial puede convertirse en múltiples requerimientos de trabajo a través de redes LAN o WAN. La ubicación de los datos o de las aplicaciones es totalmente transparente para el cliente.
  • 10. 1.1.2 Aplicaciones cliente/servidor Servidor  Es cualquier recurso de cómputo dedicado a responder a los requerimientos del cliente. Los servidores pueden estar conectados a los clientes a través de redes LANs o WANs, para proporcionar múltiples servicios a los clientes tales como impresión, acceso a bases de datos, procesamiento de imágenes, etc.
  • 11. 1.1.2 Aplicaciones cliente/servidor ¿ Qué es un proceso distribuido?  Es un modelo de sistemas y/o de aplicaciones, en el cual las funciones y los datos pueden estar dispersos a través de múltiples recursos de cómputo, conectados en un ambiente de redes LAN o WAN.  Podemos tener un proceso distribuido a través de los celulares
  • 12. 1.1.2 Aplicaciones cliente/servidor Características del Modelo  El Cliente y el Servidor pueden actuar como una sola entidad y también pueden actuar como entidades separadas, realizando actividades o tareas independientes.  Las funciones de Cliente y Servidor pueden estar en plataformas separadas, o en la misma plataforma.  Un servidor da servicio a múltiples clientes en forma concurrente.  Cada plataforma puede ser escalable independientemente. Los cambios realizados en las plataformas de los Clientes o de los Servidores, ya sean por actualización o por reemplazo tecnológico, se realizan de una manera transparente para el usuario final.
  • 13. 1.1.3 Aplicaciones de 2,3 y n capas  El modelo n−tier (n−capas) de informática distribuida ha emergido como la arquitectura predominante para la construcción de aplicaciones multiplataforma en la mayor parte de las empresas.  1.Codificar al mismo tiempo
  • 14. 1.1.3 Aplicaciones de 2,3 y n capas  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 modulables, representa simplemente la punta del iceberg de lo que está por llegar 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 Tone, o Microsoft con DotNET (.Net).
  • 15. 1.1.3 Aplicaciones de 2,3 y n capas (examen) Ventajas del modelo  Desarrollos paralelos (varios programadores en cada capa)  Aplicaciones más robustas debido al encapsulamiento  Mantenimiento y soporte más sencillo (es más sencillo cambiar un componente que modificar una aplicación monolítica)  Mayor flexibilidad (se pueden añadir nuevos módulos para dotar al sistema de nueva funcionalidad)  Alta escalabilidad . La principal ventaja de una aplicación distribuida bien diseñada es su buen escalado, es decir, que puede manejar muchas peticiones con el mismo rendimiento simplemente añadiendo más hardware. El crecimiento es casi lineal y no es necesario añadir más código para conseguir esta escalabilidad.
  • 16. 1.1.3 Aplicaciones de 2,3 y n capas (examen)  Arquitectura lógica “clásica” Presentación Lógica de negocio (Que es lo que hace el sistema) Datos Fuentes de datos
  • 17. 1.1.3 Aplicaciones de 2,3 y n capas Usuarios y dispositivos Arquitectura lógica Gestión de operaciones Comunicaciones Seguridad Gestión de operaciones Comunicaciones Seguridad “ampliada” Presentación Componentes IU Componentes de proceso de IU Lógica deWorkflows Business negocio Svc Interfaces Servicios Componentes de negocio Entidades de negocio Svc Agents Svc Agents Datos Componentes de acceso a datos Fuentes de datos
  • 18. 1.2 Evolución de las tecnologías para el desarrollo de aplicaciones distribuidas.
  • 19. 1.2 Evolución de las tecnologías para el desarrollo de aplicaciones distribuidas.  Sistema Distribuido: “Colección de máquinas/procesos que colaborar para cumplir un objetivo”  Inicio con Aplicaciones Centralizadas. Todo lo hacia un mismo equipo.  Primer servicio telemático: Emulación de Terminal • Hay distribución, pero todo lo sigue haciendo el Servidor. • Ej: telnet, Xwindows, Windows Terminal, VNC, etc.
  • 20. 1.2 Evolución de las tecnologías para el desarrollo de aplicaciones  distribuidas. Bases de Datos Cliente/Servidor con Modelo de 2 niveles Aparición de n-lógicas • Presentación • Comunicaciones • Lógica del Negocio • Datos Examen  En el Cliente se haya la Presentación y la Lógica del Negocio  En el Servidor se hayan los Datos (Bases de Datos)  Se supone que las entidades intercambian sentencias SQL  NO orientado a transacciones  Muy orientado a 4GL  Procedimientos almacenados. Lógica del negocio en la base de datos. Dependiente.
  • 21. 1.2 Evolución de las tecnologías para el desarrollo de aplicaciones distribuidas.  Cliente/Servidor con bases de datos Cliente Servidor (presentación (Datos + SP) + lógica) RED Select * from empleados Pedro, Juan, Camilo, …  Trans. Fondos Consulta cuenta 1 Consulta cuenta 2 Actualización cuenta1 Actualización cuenta2 Adicionar movimientos
  • 22. 1.2 Evolución de las tecnologías para el desarrollo de aplicaciones distribuidas.  Procesadores de Transacciones: • Orientado a transacciones • 3 niveles SQL RED
  • 23. 1.2 Evolución de las tecnologías para el desarrollo de aplicaciones  distribuidas. Objetos Distribuidos  Primeros pasos en RPC’s  A finales de los 80’s emergió DCE (Distributed Computing Environment) como una iniciativa para estandarizar las diferentes tecnologías de RPC (Procedimiento a funciones). No considera tecnologías de Mensajería.  Éxito del modelo Orientado a Objetos tanto en Análisis/Diseño como en Desarrollo.  Por qué no extender este modelo a un ambiente distribuido  Un cliente en cualquier parte de la red, invoca un método de un objeto remoto.  Adecuados en comunicaciones: • Cliente a Servidor • Servidor a Servidor
  • 24. Examen 1.2 Evolución de las tecnologías para el desarrollo de aplicaciones distribuidas. Segunda capa Tercera capa
  • 25. Examen 1.3 Escenarios de la utilización de las aplicaciones distribuidas.
  • 26. Examen 1.3 Escenarios de la utilización de las aplicaciones distribuidas. Conexion a la BD
  • 27. 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.  El desarrollo de aplicaciones distribuidas requirió de nuevas técnicas de diseño y de generación de modelos. También trajo nuevos problemas.  Existen 2 tipos distintos de arquitecturas que se utilizaron antes de .NET para hacer aplicaciones distribuidas:  Llamadas a Procedimiento Remoto (RPC)  Arquitecturas basadas en mensajes  Se verán los problemas técnicos que este tipo de arquitecturas tiene y finalmente como los Estándares Web son utilizados para hacer la nueva generación de aplicaciones distribuidas
  • 28. Examen 1.4 Problemas comunes en el desarrollo y uso de las 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í. (Linux vs. Windows)  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 como responder a las fallas del cliente.
  • 29. 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.  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
  • 30. Leer 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.  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.
  • 31. Leer 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas. 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.
  • 32. Leer 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.  Llamadas Sincrónicas: En RPC las llamadas a los procedimientos son sincrónicas. Esto quiere decir que cuando una aplicación hace una llamada a un procedimiento RPC debe esperar que el servidor le responda para poder continuar con el procesamiento. Esto presenta problemas en un entorno distribuido, mucho más si pensamos en distribuir los componentes en Internet.
  • 33. Leer 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas. Las llamadas sincrónicas con RPC tienen desventajas:  Uso de múltiples componentes: Si su aplicación distribuida depende de muchos componentes que se llaman entre sí, esto hace que la aplicación sea más susceptible a fallas.  Balanceo de Carga y Tolerancia a fallos: Es el problema de como las aplicaciones descubren la información necesaria para poder conectarse otros servidores en el caso de que el que esta utilizando falle. O de como balancean el procesamiento entre varios servidores Esto no es posible con RPC.
  • 34. Leer 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.  Priorización: Con RPC es muy difícil detectar que servidores están con mucha carga de trabajo y derivar la llamada RPC a otro servidor menos ocupado.  Picos de carga de Trabajo: RPC no puede manejar los picos de carga de trabajo que puede tener un servidor si tiene llamadas RPC de muchos clientes.
  • 35. Leer 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas. La arquitectura basada en Mensajes Otra arquitectura para desarrollar aplicaciones distribuidas es la basada en mensajes. Esta tecnología es asincrónica. Lo que significa que el cliente puede seguir con el procesamiento mientras espera la respuesta del servidor.  Utiliza mensajes en vez de llamadas a funciones.
  • 36. Leer 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas. Tiene desventajas:  Procesamiento del Mensaje: El programador debe manejar en el código el empaquetamiento y des empaquetamiento de los mensajes. Además debe controlar su validez  Interoperabilidad: Los sistemas de mensajería utilizan tecnología propietaria. Se necesita software para permitir el envío de mensajes y la comunicación los distintos sistemas.  Flujo de Carga y secuenciamiento de los mensajes: Se necesita de algún mecanismo para coordinar el flujo y la secuencia de los mensajes. Por ejemplo, no se puede procesar una orden de envío de un producto antes de que se procesa la orden de pedido del producto.
  • 37. Leer 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas. Los estándares Web  Tanto RPC como la arquitectura basada en mensajes han sido implementados en forma exitosa por muchas organizaciones. Sin embargo su uso tiene dificultades que se resuelven con la utilización de los protocolos Web estándares.
  • 38. 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas. Problemas con los Protocolos Binarios: Existen varias tecnologías RPC, ninguna estándar, por ejemplo. COM de Microsoft, CORBA y RMI. Todas estas tecnologías utilizan protocolos binarios.  Los protocolos binarios tienen desventajas:  Firewall: Para permitir la comunicación entre un cliente y un servidor que se encuentra detrás de un firewall los administradores deben dejar un rango variable de puertos abiertos. Esto es un riesgo de seguridad muy alto.
  • 39. 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.  Interoperatividad: Las distintas tecnologías RPC implican protocolos binarios de comunicación distintos. Para que interoperen entre sí se deben traducir los paquetes de red lo que puede significar pérdida de información. Para evitar este problema las organizaciones utilizan un solo modelo RPC.  Formato de los Datos: Cada protocolo RPC utiliza un formato de datos distintos. La traducción de un formato a otro presenta dificultades.
  • 40. 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.  La nueva arquitectura: Los protocolos que utiliza Internet resuelven muchos de los problemas anteriormente mencionados.  Internet y la Web: Los protocolos TCP e IP fueron desarrollados originalmente para conectar redes distintas y crear una red de redes. Esta red de redes terminó convirtiéndose en el Internet que conocemos hoy. A finales de 1990, Tim Berners-Lee inventó WWW (World Wide Web).
  • 41. 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas. WWW es lo que hoy conocemos como la Web. La Web es una red globalmente interconectada de documentos hipertexto. Utiliza 2 tecnologías principales: El lenguaje HTML y el protocolo HTTP para la comunicación.  HTML: Es un lenguaje de marcas (Tags). Las marcas definen como el Explorador de Internet presenta la información. Los documentos que tienen estas marcas son llamados documentos hipertexto.
  • 42. 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.  Ventajas de HTTP: Es el protocolo utilizado para pedir y recibir documentos. El formato de estos documentos puede ser HTML pero también muchos otros más como por ejemplo XML.  Los Servicios Web y los clientes pueden intercambiar documentos XML utilizando el protocolo HTTP. HTTP es un Standard usado universalmente
  • 43. 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.  XML- Un formato de datos universal: A pesar de que HTML permite presentar datos, HTML no permite comunicar la estructura de los datos y su relación. XML nació en 1996 para permitir describir la estructura de los datos en un documento.  Firewall: Los servidores Web son los responsables de administrar los documentos, que pueden ser accedidos desde Internet pasando por el firewall de la organización y utilizando el protocolo HTTP.
  • 44. 1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas. Problemas con la Web: Como la Web es una red pública se presentan algunos problemas.  Seguridad: Entre otros problemas se encuentran: el robo de información o la modificación de los datos  Performance: Algunos clientes acceden con conexiones telefónicas lo que puede limitar por su baja velocidad la complejidad de las aplicaciones. Por lo tanto algunas aplicaciones se deben limitar a la Intranet