Arquitectura Cliente-servidor.docx

  • Uploaded by: cibernitos multiservicio
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Arquitectura Cliente-servidor.docx as PDF for free.

More details

  • Words: 6,119
  • Pages: 21
SECRETARIA DE EDUCACIÓN PÚBLICA INSTITUTO TECNOLOGICO DE COMITANCILLO

MATERIA: CONTABILIDAD ORIENTADA A LOS NEGOCIOS

DOCENTE: GREGORIO ORTIZ SÁNCHEZ

ALUMNOS: KAREN ISBETH ENRIQUES VÁSQUEZ

ESPECIALIDAD: ING. GESTIÓN EMPRESARIAL.

2° SEMESTRE GRUPO: “u”

San Pedro Comitancillo, Oax

1.1.- La arquitectura del modelo cliente/servidor La arquitectura cliente/servidor persigue el objetivo de procesar la información de un modo distribuido. De esta forma, los usuarios finales pueden estar dispersos en un área geográfica más o menos extensa (un edificio, una localidad, un país) y acceder a un conjunto común de recursos compartidos. Además, el acceso debe ser transparente (el cliente puede desconocer la ubicación física del recurso que pretende utilizar) y, preferiblemente, multiplataforma, es decir, independiente del sistema operativo, del software de aplicación e incluso del hardware. En definitiva, cuando hablamos de la implantación de una arquitectura cliente/servidor, nos referimos a un sistema de información distribuido.

una implantación cliente/servidor debe tener las siguientes características:  



Debe utilizar protocolos asimétricos, donde el servidor se limita a escuchar, en espera de que un cliente inicie una solicitud. El servidor ofrecerá recursos, tanto lógicos como físicos a una cantidad variable y diversa de clientes (por ejemplo, espacio de almacenamiento, bases de datos, impresoras, etc.) El servidor ofrecerá también una serie de servicios, que serán usados por los clientes. Estos servicios estarán encapsulados, para ocultar a los clientes los detalles de su implementación (por ejemplo, aceptar el requerimiento de un cliente sobre una base de datos o formatear los datos obtenidos antes de transmitirlos al cliente).



 

Se facilitará la integridad y el mantenimiento tanto de los datos como de los programas debido a que se encuentran centralizados en el servidor o servidores. Los sistemas estarán débilmente acoplados, ya que interactúan mediante el envío de mensajes. Se facilitará la escalabilidad, de manera que sea fácil añadir nuevos clientes a la infraestructura (escalabilidad horizontal) o aumentar la potencia del servidor o servidores, aumentando su número o su capacidad de cálculo (escalabilidad vertical).

1.2.- Modelo de 2 y 3 capas

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.

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

1.3.- Usos y aplicaciones cliente/servidor Una aplicación cliente/servidor, es un programa que cuenta con un frontend que establece una conexión directa a través de una red, con un servidor que aloja el programa, servicio o desarrollo informático al cual deseamos acceder. Una vez establecida la conexión, el mismo cliente (software que se ejecuta del lado del usuario), despliega una interfaz de trabajo que permite al usuario realizar la tarea de manera cómoda y eficiente. Directamente desde el terminal y en

tiempo real, envía toda la información suministrada por el usuario al servidor en donde se ejecuta la acción y el mismo servidor regresa el resultado a la máquina cliente, desde donde se ha ingresado los datos, mostrando por pantalla toda la información que ha sido procesada.

Utilidades de una aplicación cliente/servidor Entre las principales utilidades que le podemos asignar a las aplicaciones cliente/servidor destacan las siguientes:      

Ligereza impresionante, ya que toda la carga y consumo de recursos se hace directamente en el servidor. Facilidad de mantenimiento, ya que se hace mantenimiento general en el código principal en el servidor. Posibilidad de realizar trabajos dinámicos y en grupo. Servicio de trabajo incluso en zonas remotas, gracias a Internet. Posibilidad de ser desarrolladas en diversos lenguajes de programación. Capacidad de trabajar, por lo general, en diferentes plataformas de manera simultánea.

1.4 COMUNICACIÓN ENTRE PROGRAMAS MODELO OSI: El modelo de referencia OSI (Open System Interconnection) es la forma en que la ISO (International Standards Organization) ve las etapas en que se desarrolla un proceso de comunicaciones en redes de datos. Este modelo lo que hace es definir el proceso de comunicaciones completamente, dividirlo en funciones claramente demarcadas y ponerles nombre a esas funciones. El modelo tiene siete niveles o capas: 1. Física 2. Enlace de datos 3. Red 4. Transporte 5. Sesión 6. Presentación 7. Aplicación Las dos únicas capas del modelo con las que interactúa el usuario son la primera capa, la capa Física, y la última capa, la capa de Aplicación. 1. Física: La capa física abarca los aspectos físicos de la red (es decir, los cables, hubs y el resto de dispositivos que conforman el entorno físico de la red). Seguramente ya habrá interactuado más de una vez con la capa Física, por ejemplo, al ajustar un cable mal conectado. Tecnologías y protocolos de red: Cable coaxial, fibra óptica, par trenzado, microondas, radio, RS-232 2. Enlace de datos: Cuando los paquetes de datos llegan a la capa de enlace de datos, estas pasan a ubicarse en tramas (unidades de datos). La capa de enlace de datos se encarga de desplazar los datos por el enlace físico de comunicación hasta el nodo receptor, e identifica cada computadora incluida en la red de acuerdo con su dirección de hardware. La información de encabezamiento se añade a cada trama que contenga las direcciones de envío y recepción. La capa de enlace de datos también se asegura de que las tramas enviadas por el enlace físico se reciben sin error alguno. Tecnologías y protocolos de red: ATM, Ethernet, Frame Relay, HDLC, PPP, Token Ring, Wi-Fi, STP 3. Red: La capa de red encamina los paquetes además de ocuparse de entregarlos. La determinación de la ruta que deben seguir los datos se produce en esta capa, lo mismo que el intercambio efectivo de los mismos dentro de dicha ruta, La Capa 3 es donde las direcciones lógicas (como las direcciones IP de una computadora de red) pasan a convertirse en direcciones físicas (las direcciones de hardware de la NIC, la Tarjeta de Interfaz para Red, para esa computadora especifica). Tecnologías y protocolos de red: AppleTalk, IP, IPX, NetBEUI, X.25

4. Transporte: La capa de transporte es la encargada de controlar el flujo de datos entre los nodos que establecen una comunicación; los datos no solo deben entregarse sin errores, sino además en la secuencia que proceda. La capa de transporte se ocupa también de evaluar el tamaño de los paquetes con el fin de que estos Tengan el tamaño requerido por las capas inferiores del conjunto de protocolos. Tecnologías y protocolos de red: SCTP, SPX, TCP, UDP 5. Sesión: La capa de sesión es la encargada de establecer el enlace de comunicación o sesión y también de finalizarla entre las computadoras emisora y receptora. Esta capa también gestiona la sesión que se establece entre ambos nodos. La capa de sesión pasa a encargarse de ubicar puntas de control en la secuencia de datos además proporciona cierta tolerancia a fallos dentro de la sesión de comunicación. Tecnologías y protocolos de red: NetBIOS 6. Presentación: La capa de presentación puede considerarse el traductor del modelo OSI. Esta capa toma los paquetes de la capa de aplicación y los convierte a un formato genérico que pueden leer todas las computadoras. También se encarga de cifrar los datos, así como de comprimirlos para reducir su tamaño. Tecnologías y protocolos de red: ASN.1, MIME, SSL/TLS, XML 7. Aplicación: Proporciona la interfaz y servicios q soportan las aplicaciones de usuario. También se encarga de ofrecer acceso general a la red. También ofrece los servicios de red relacionados con estas aplicaciones, como la gestión de mensajes, la transferencia de archivos y las consultas a base de datos. Tecnologías y protocolos de red: DNS, FTP, HTTP, IMAP, IRC, NFS, NNTP, NTP, POP3, SMB/CIFS, SMTP, SNMP, SSH, Telnet, SIP. MODELO TCP/IP: TCP/IP es un conjunto de protocolos que permiten la comunicación entre los ordenadores pertenecientes a una red. La sigla TCP/IP significa Protocolo de control de transmisión/Protocolo de Internet y se pronuncia "T-C-P-I-P". Proviene de los nombres de dos protocolos importantes incluidos en el conjunto TCP/IP, es decir, del protocolo TCP y del protocolo IP. Debido a que el conjunto de protocolos TCP/IP originalmente se creó con fines militares, está diseñado para cumplir con una cierta cantidad de criterios, entre ellos, dividir mensajes en paquetes, usar un sistema de direcciones, enrutar datos por la red y detectar errores en las transmisiones de datos. El modelo TCP/IP, influenciado por el modelo OSI, también utiliza el enfoque modular (utiliza módulos o capas), pero sólo contiene cuatro: acceso a la red, Internet, transporte y aplicación. ACCESO A LA RED: La capa de acceso a la red es la primera capa de la pila TCP/IP. Ofrece la capacidad de acceder a cualquier red física, es decir, brinda los recursos que se deben implementar para transmitir datos a través de la red. Por lo tanto, la capa de acceso a la red contiene especificaciones relacionadas con la

transmisión de datos por una red física, cuando es una red de área local (Red en anillo, Ethernet, FDDI), conectada mediante línea telefónica u otro tipo de conexión a una red. INTERNET: La capa de Internet es la capa "más importante", ya que es la que define los datagramas y administra las nociones de direcciones IP. Permite el enrutamiento de datagramas (paquetes de datos) a equipos remotos junto con la administración de su división y ensamblaje cuando se reciben. TRANSPORTE: La capa de transporte contiene dos protocolos que permiten que dos aplicaciones puedan intercambiar datos independientemente del tipo de red (es decir, independientemente de las capas inferiores). APLICACIÓN: Se encuentra en la parte superior de las capas del protocolo TCP/IP. Contiene las aplicaciones de red que permiten la comunicación mediante las capas inferiores. Por lo tanto, el software en esta capa se comunica mediante uno o dos protocolos de la capa inferior (la capa de transporte), es decir, TCP o UDP. Existen diferentes tipos de aplicaciones para esta capa, pero la mayoría son servicios de red o aplicaciones brindadas al usuario para proporcionar la interfaz con el sistema operativo. TECNICAS DE TRANSMISION BANDA BASE (BASEBAND) La transmisión en banda base, consiste en entregar al medio de transmisión la señal de datos directamente sin que intervenga ningún proceso entre la generación de la señal y su entrega a la línea, como pudiera ser cualquier tipo de modulación. Sin embargo, si pretendiendo optimizar la utilización del ancho de banda disponible del medio de transmisión en cuestión, se divide dicho ancho de banda en canales de anchura adecuada y usando técnicas de modulación, se inserta en cada uno de ellos una señal distinta, diremos que se está utilizando transmisión de banda ancha. BANDA ANCHA (BROABAND) La diferencia fundamental entre la transmisión de banda base y transmisión en banda ancha estriba en la forma en la cual se genera la señal a transmitir mientras que en el transmisor en banda base la señal se genera por el dispositivo terminal se transmite de manera directa, mediante pulsos eléctricos o en general. Electromagnéticos, en el transmisor de banda ancha se precisa de un dispositivo denominado MODEM (modulador-de modulador) para general la señal a transmitir.

Ejemplo de transmisión en banda base son la conexión entre un ordenador y una impresora, mientras que un ejemplo de característico de la transmisión en banda ancha lo constipen las señales de televisión.

MODOS DE TRANSMISIÓN Una transmisión de datos tiene que ser controlada por medio del tiempo, para que el equipo receptor conozca en qué momento se puede esperar que una transferencia tenga lugar. Hay dos principios de transmisión para hacer esto posible: SÍNCRONA La transmisión síncrona se hace con un ritmo que se genera centralizadamente en la red y es el mismo para el emisor como para el receptor. La información útil es transmitida entre dos grupos, denominados genéricamente delimitadores. Algunas de las características de la transmisión síncrona son:  Los bloques a ser transmitidos tienen un tamaño que oscila entre 128 y 1,024 bytes.  La señal de sincronismo en el extremo fuente, puede ser generada por el equipo terminal de datos o por el módem.  El rendimiento de la transmisión síncrona, cuando se transmiten bloques de 1,024 bytes y se usan no más de 10 bytes de cabecera y terminación, supera el 99 por 100. Ventajas y desventajas de la transmisión síncrona:  Posee un alto rendimiento en la transmisión.  Los equipamientos necesarios son de tecnología más completa y de costos más altos.  Son especialmente aptos para ser usados en transmisiones de altas velocidades (iguales o mayores a 1,200 baudios de velocidad de modulación).  El flujo de datos es más regular. ASÍNCRONA En la transmisión asíncrona es el emisor el que decide cuando se envía el mensaje de datos a través de la red. En una red asíncrona el receptor por lo consiguiente no sabe exactamente cuándo recibirá un mensaje. Por lo tanto, cada mensaje debe contener, aparte del mensaje en sí, una información sobre cuando empieza el mensaje y cuando termina, de manera que el receptor conocerá lo que tiene que decodificar.

En el procedimiento asíncrono, cada carácter a ser transmitido es delimitado por un bit denominado de cabecera o de arranque, y uno o dos bits denominados de terminación o de parada. El bit de arranque tiene dos funciones de sincronización de los relojes del transmisor y del receptor. El bit o bits de parada, se usan para separar un carácter del siguiente. Algunas de las características de la transmisión asíncrona son:  Los equipos terminales que funcionan en modo asíncrono, se denominan también “terminales en modo carácter”.  La transmisión asíncrona también se le denomina arrítmica o de “startstop”.  La transmisión asíncrona es usada en velocidades de modulación de hasta 1,200 baudios.  El rendimiento de usar un bit de arranque y dos de parada, en una señal que use código de 7 bits más uno de paridad (8 bits sobre 11 transmitidos) es del 72 por 100. Ventajas y desventajas del modo asíncrono:  En caso de errores se pierde siempre una cantidad pequeña de caracteres, pues éstos se sincronizan y se transmiten de uno en uno.  Bajo rendimiento de transmisión, dada la proporción de bits útiles y de bits de sincronismo, que hay que transmitir por cada carácter.  Es un procedimiento que permite el uso de equipamiento más económico y de tecnología menos sofisticada.  Se adecua más fácilmente en aplicaciones, donde el flujo transmitido es más irregular.  Son especialmente aptos, cuando no se necesitan lograr altas velocidades. MEDIOS DE TRANSMISION Se entiende por medio de transmisión todo aquel material físico cuyas propiedades de tipo eléctrico, mecánico, óptico, o de cualquier otro tipo se emplea para facilitar el transporte de información entre distintas geográficamente. ALÁMBRICA Los medios de transmisión alámbricos son alambres o fibras que conducen luz o electricidad.

LÍNEAS DE PAR TRENZADO. - Consiste en dos cables de cobre aislados y trenzados para reducir la interferencia eléctrica externa y de pares adyacentes. (Blindados y no Blindados). CABLE COAXIAL. - Cable formado por un conductor central rodeado por un material aislante y forrado por un conductor externo concéntrico. FIBRA ÓPTICA. - Está formada por un núcleo central de vidrio rodeado por varias capas de protección. INALÁMBRICA Los medios inalámbricos transmiten y reciben señales electromagnéticas sin un conductor óptico o eléctrico, técnicamente, la atmósfera de la tierra provee el camino físico de datos para la mayoría de las transmisiones inalámbricas, sin embargo, varias formas de ondas electromagnéticas se usan para transportar señales, las ondas electromagnéticas son comúnmente referidas como medio. Radio – Frecuencias: La opción de aspectos electromagnéticos los cuales son usualmente considerados como radio frecuencia (RF) reside entre los 10 Khz hasta 1 Ghz. Las ondas de radio-frecuencia, pueden ser transmitidas direccionalmente, como lo hacen las antenas típicas o emisiones direccionales. Micro-Ondas: Típicamente usan antenas parabólicas direccionales que requieren de un camino no obstruido o una línea directa a otras unidades. Wifi: que permite conectar a Internet equipos electrónicos, como computadoras, tablets, smartphones o celulares, etc., mediante el uso de radiofrecuencias o infrarrojos para la trasmisión de la información.

Un método de caracterizar líneas, dispositivos terminales, computadoras y módems es por su modo de transmisión o de comunicación. Las tres clases de modos de transmisión son simplex, half-duplex y full-dúplex. La transmisión simplex (sx) o unidireccional es aquella que ocurre en una dirección solamente, deshabilitando al receptor de responder al transmisor. Normalmente la transmisión simplex no se utiliza donde se requiere interacción humano-máquina. Ejemplos de transmisión simplex son: La radiodifusión (broadcast) de TV y radio, el paging unidireccional, etc. La transmisión half-duplex (hdx) permite transmitir en ambas direcciones; sin embargo, la transmisión puede ocurrir solamente en una dirección a la vez. Tanto transmisor y receptor comparten una sola frecuencia. Un ejemplo típico de halfduplex es el radio de banda civil (CB) donde el operador puede transmitir o recibir,

pero puede realizar ambas funciones simultáneamente por el mismo canal. Cuando el operador ha completado la transmisión, la otra parte debe ser avisada que puede empezar a transmitir (e.g. diciendo "cambio"). La transmisión full-duplex (fdx) permite transmitir en ambas direcciones, pero simultáneamente por el mismo canal. Existen dos frecuencias una para transmitir y otra para recibir. Ejemplos de este tipo abundan en el terreno de las telecomunicaciones, el caso más típico es la telefonía, donde el transmisor y el receptor se comunican simultáneamente utilizando el mismo canal, pero usando dos frecuencias. PROTOCOLOS DE TRANSMISIÓN Dentro de las redes informáticas se conoce bajo el nombre de protocolo al lenguaje, que es un conjunto de reglas formales, que permiten la comunicación de distintas computadoras entre sí. Dentro de las distintas redes, como Internet, existen numerosos tipos de protocolos, entre ellos: TPC/IP: este es definido como el conjunto de protocolos básicos para la comunicación de redes y es por medio de él que se logra la transmisión de información entre computadoras pertenecientes a una red. Gracias al protocolo TCP/IP los distintos ordenadores de una red se logran comunicar con otros diferentes y así enlazar a las redes físicamente independientes en la red virtual conocida bajo el nombre de Internet. Este protocolo es el que provee la base para los servicios más utilizados como por ejemplo transferencia de ficheros, correo electrónico y login remoto. TCP (Transmisión Control Protocol): este es un protocolo orientado a las comunicaciones y ofrece una transmisión de datos confiable. El TCP es el encargado del ensamble de datos provenientes de las capas superiores hacia paquetes estándares, asegurándose que la transferencia de datos se realice correctamente. HTTP (Hypertext Transfer Protocol): este protocolo permite la recuperación de información y realizar búsquedas indexadas que permiten saltos intertextuales de manera eficiente. Por otro lado, permiten la transferencia de textos de los más variados formatos, no sólo HTML. El protocolo HTTP fue desarrollado para resolver los problemas surgidos del sistema hipermedial distribuidos en diversos puntos de la red. FTP (File Transfer Protocol): este es utilizado a la hora de realizar transferencias remotas de archivos. Lo que permite es enviar archivos digitales de un lugar local a otro que sea remoto o al revés. Generalmente, el lugar local es la PC mientras que el remoto el servidor.

SSH (Secure Shell): este fue desarrollado con el fin de mejorar la seguridad en las comunicaciones de internet. Para lograr esto el SSH elimina el envío de aquellas contraseñas que no son cifradas y codificando toda la información transferida. UDP (User Datagram Protocol): el protocolo de datagrama de usuario está destinado a aquellas comunicaciones que se realizan sin conexión y que no cuentan con mecanismos para transmitir datagramas. Esto se contrapone con el TCP que está destinado a comunicaciones con conexión. Este protocolo puede resultar poco confiable excepto si las aplicaciones utilizadas cuentan con verificación de confiabilidad. SNMP (Simple Network Management Protocol): este usa el Protocolo de Datagrama del Usuario (PDU) como mecanismo para el transporte. Por otro lado, utiliza distintos términos de TCP/IP como agentes y administradores en lugar de servidores y clientes. El administrador se comunica por medio de la red, mientras que el agente aporta la información sobre un determinado dispositivo. TFTP (Trivial File Transfer Protocol): este protocolo de transferencia se caracteriza por sencillez y falta de complicaciones. No cuenta con seguridad alguna y también utiliza el Protocolo de Datagrama del Usuario como mecanismo de transporte. SMTP (Simple Mail Transfer Protocol): este protocolo está compuesto por una serie de reglas que rige la transferencia y el formato de datos en los envíos de correos electrónicos. SMTP suele ser muy utilizado por clientes locales de correo que necesiten recibir mensajes de e-mail almacenados en un servidor cuya ubicación sea remota. ARP (Address Resolution Protocol): por medio de este protocolo se logran aquellas tareas que buscan asociar a un dispositivo IP, el cual está identificado con una dirección IP, con un dispositivo de red, que cuenta con una dirección de red física. ARP es muy usado para los dispositivos de redes locales Ethernet. Por otro lado, existe el protocolo RARP y este cumple la función opuesta a la recién mencionada. RPC El RPC (del inglés Remote Procedure Call, Llamada a Procedimiento Remoto) es un protocolo que permite a un programa de ordenador ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambos. El protocolo es un gran avance sobre los sockets usados hasta el momento. De esta manera el programador no tenía que estar pendiente de las comunicaciones, estando éstas encapsuladas dentro de las RPC. RPC es la transferencia sincrónica de datos y control entre dos partes de un programa distribuido a través de espacios de direcciones disjuntas. “La manera en

que RPC logra hacer esto, es por medio de lo que se conoce como STUB. En el caso del STUBservidor, se conoce como SKELETON. Estos Stubs y Skeletons permiten que al momento de ser invocada la función remota esta pueda ser quot; simulada localmente quot . Objetivos de RPC  Proporcionar un middleware que simplifique el desarrollo de aplicaciones distribuidas  Evitar que programador tenga que interactuar directamente con el interfaz de Sockets  Abstraer (ocultar) los detalles relativos a la red  El Servidor ofrece procedimientos que el cliente llama como si fueran procedimientos locales  Se busca ofrecer un entorno de programación lo más similar posible a un entorno no distribuido. El sistema RPC oculta los detalles de implementación de esas llamadas remotas Implementa la llamada remota mediante un dialogo petición respuesta. Mensaje de petición: identifica procedimiento llamado, contiene parámetros de la llamada. Mensaje de respuesta: contiene valor/es devuelto/s se encarga de enviar/recibir mensajes para comunicar ambas partes se encarga de gestionar los contenidos de esos mensajes (empaquetado y formateado de datos)

1.5 Modelo de computación distribuida. La computación distribuida, es un nuevo modelo para resolver problemas de computación masiva utilizando un gran número de computadoras conectadas entre sí mediante una red. Dividir el trabajo entre varios computadoras, logrando de esta forma mejorar los tiempos de respuesta de procesamiento. La computación distribuida o informática en malla (grid) es un modelo para resolver problemas de computación masiva utilizando un gran número de ordenadores organizados en clústeres incrustados en una infraestructura de telecomunicaciones distribuida 1.5.1 RMI [Método de Invocación Remota]. RMI (Java Remote Method Invocation) es un mecanismo ofrecido por Java para invocar un método de manera remota. Forma parte del entorno estándar de ejecución de Java y proporciona un mecanismo simple para la comunicación de servidores en aplicaciones distribuidas basadas exclusivamente en Java. Si se

requiere comunicación entre otras tecnologías debe utilizarse CORBA o SOAP en lugar de RMI. RMI se caracteriza por la facilidad de su uso en la programación por estar específicamente diseñado para Java; proporciona paso de objetos por referencia (no permitido por SOAP), recolección de basura distribuida (Garbage Collector distribuido) y paso de tipos arbitrarios (funcionalidad no provista por CORBA). A través de RMI, un programa Java puede exportar un objeto, con lo que dicho objeto estará accesible a través de la red y el programa permanece a la espera de peticiones en un puerto TCP. A partir de ese momento, un cliente puede conectarse e invocar los métodos proporcionados por el objeto. La invocación se compone de los siguientes pasos:    

Encapsulado (marshalling) de los parámetros (utilizando la funcionalidad de serialización de Java). Invocación del método (del cliente sobre el servidor). El invocador se queda esperando una respuesta. Al terminar la ejecución, el servidor serializa el valor de retorno (si lo hay) y lo envía al cliente. El código cliente recibe la respuesta y continúa como si la invocación hubiera sido local.

Arquitectura La arquitectura RMI puede verse como un modelo de cuatro capas. Primera capa La primera capa es la de aplicación y se corresponde con la implementación real de las aplicaciones cliente y servidor. Aquí tienen lugar las llamadas a alto nivel para acceder y exportar objetos remotos. Cualquier aplicación que quiera que sus métodos estén disponibles para su acceso por clientes remotos debe declarar dichos métodos en una interfaz que extienda java.rmi.Remote. Dicha interfaz se usa básicamente para "marcar" un objeto como remotamente accesible. Una vez que los métodos han sido implementados, el objeto debe ser exportado. Esto puede hacerse de forma implícita si el objeto extiende la clase UnicastRemoteObject (paquete java.rmi.server), o puede hacerse de forma explícita con una llamada al método exportObject() del mismo paquete. Segunda capa La capa 2 es la capa proxy, o capa stub-skeleton. Esta capa es la que interactúa directamente con la capa de aplicación. Todas las llamadas a objetos remotos y acciones junto con sus parámetros y retorno de objetos tienen lugar en esta capa.

Tercera capa La capa 3 es la de referencia remota, y es responsable del manejo de la parte semántica de las invocaciones remotas. También es responsable de la gestión de la replicación de objetos y realización de tareas específicas de la implementación con los objetos remotos, como el establecimiento de las persistencias semánticas y estrategias adecuadas para la recuperación de conexiones perdidas. En esta capa se espera una conexión de tipo stream (stream-oriented connection) desde la capa de transporte. Cuarta Capa La capa 4 es la de transporte. Es la responsable de realizar las conexiones necesarias y manejo del transporte de los datos de una máquina a otra. El protocolo de transporte subyacente para RMI es JRMP (Java Remote Method Protocol), que solamente es "comprendido" por programas Java. Elementos Toda aplicación RMI normalmente se descompone en 2 partes:  

Un servidor, que crea algunos objetos remotos, crea referencias para hacerlos accesibles, y espera a que el cliente los invoque. Un cliente, que obtiene una referencia a objetos remotos en el servidor, y los invoca.

Ventajas. Las principales ventajas de Java RMI son:   

Proporciona el paso de objetos por referencia Recolección de basura distribuida (Distributed Garbage Collector) Proporciona el paso de tipos arbitrarios Incluye mecanismos de seguridad a través del “security manager” Pueden ejecutarse sobre cualquier máquina virtual Java

Desvetajas. Las principales desventajas de RMI son:  

Java RMI depende totalmente del núcleo de Serialización de Objetos de Java, por lo cual no es compatible la comunicación con otras tecnologías Las aplicaciones dependen de la máquina virtual Java para ser ejecutadas.

https://www.itescam.edu.mx/portal/asignatura.php?clave_asig=IFF1019&carrera=IINF-2010-220&id_d=16

1.5.2. - COM/DCOM (Component Object Model/ Distributed COM) El Component Object Model es una arquitectura de componentes de software que permite que las aplicaciones y sistemas se construyan a partir de componentes producidos por distintos proveedores de software. Servidores COM Los objetos “servidores” son aquellas instancias de las clases que contienen los métodos que resuelven el problema del que se ocupa el sistema. Cliente COM Los objetos “clientes” son aquellas instancias de las clases que contengan la interfaz del sistema con el usuario, que implementan los textos de ayuda del sistema, los cuadros de dialogo para introducir información al sistema o bien para mostrar resultados. COM está diseñado para permitir que los clientes se comuniquen con otros objetos en forma transparente independientemente del lugar donde se están ejecutando, ya sea en el mismo proceso, la misma computadora o una computadora diferente.

• • •

COM provee acceso transparente a los servidores locales y remotos a través de objetos proxy y stub. Tipos de componentes COM In-Proces, se cargan en el mismo espacio de procesos que la aplicación cliente. Locales, se ejecutan en un proceso separado en el mismo computador. Remotos, se ejecutan en otro computador. DCOM (Distributed COM) DCOM es la extensión del Component Object Model a los ambientes distribuidos, que define los mecanismos de conexión y el protocolo de red necesario para hacer llamadas a procedimientos remotos orientadas a objetos, a nivel de aplicación, que lo vuelven útil para sistemas distribuidos de todo tipo basados en componentes. En DCOM, la interacción entre objetos cliente y objetos servidor se realiza mediante un mecanismo de comunicación RPC COM/DCOM Los servidores COM/DCOM se crean como ATL Object, que producen archivos.DLL o .EXE, según el tipo de servidor que se requiera, mientras que los clientes se crean como proyectos normales de aplicaciones Windows, y que hacen referencia a las clases contenidas en la parte servidor mediante los punteros de interfaz a objetos COM/DCOM. Distributed Component Object Model (DCOM), en español Modelo de Objetos de Componentes Distribuidos, es una tecnología propietaria de Microsoft para

desarrollar componentes software distribuidos sobre varios ordenadores y que se comunican entre sí. Extiende el modelo COM de Microsoft y proporciona el sustrato de comunicación entre la infraestructura del servidor de aplicaciones COM+ de Microsoft.

1.5.3 Servicios WEB Un servicio web (en inglés, Web Service o Web services) es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares. Es una máquina que atiende las peticiones de los clientes web y les envía los recursos solicitados. El término "servicios web" designa una tecnología que permite que las aplicaciones se comuniquen en una forma que no depende de la plataforma ni del lenguaje de programación. Un servicio web es una interfaz de software que describe un conjunto de operaciones a las cuales se puede acceder por la red a través de mensajería XML estandarizada. Usa protocolos basados en el lenguaje XML con el objetivo de describir una operación para ejecutar o datos para intercambiar con otro servicio web. Un grupo de servicios web que interactúa de esa forma define la aplicación de un servicio web específico en una arquitectura orientada a servicios (SOA). Beneficios de los servicios Web 1. Promueven la interoperabilidad: La interacción entre un proveedor y un solicitante de servicio está diseñada para que sea completamente independiente de la plataforma y el lenguaje. Esta interacción requiere un documento WSDL para definir la interfaz y describir el servicio, junto con un protocolo de red (generalmente HTTP). 2. Permiten la integración “justo-a-tiempo”: El proceso de descubrimiento se ejecuta dinámicamente, a medida que los solicitantes de servicio utilizan a los agentes para encontrar proveedores de servicio. Una vez el solicitante y el proveedor de servicio se han ubicado, se utiliza el documento WSDL del proveedor para enlazar al solicitante con el servicio. Esto significa que los

solicitantes, los proveedores y los agentes actúan en conjunto para crear sistemas que son auto-configurables, adaptativos y robustos. 3. Reducen la complejidad por medio del encapsulamiento: Los solicitantes y los proveedores del servicio se preocupan por las interfaces necesarias para interactuar. Como resultado, un solicitante de servicio no sabe cómo fue implementado el servicio por parte del proveedor, y éste a su vez, no sabe cómo utiliza el cliente el servicio. Estos detalles se encapsulan en los solicitantes y proveedores. El encapsulamiento es crucial para reducir la complejidad. 4. Dan una “nueva vida” a las aplicaciones de legado: Es relativamente correcto tomar una aplicación, generar un wrapper SOAP, luego generar un documento WSDL para moldear la aplicación como un servicio web. 5. Abren la puerta a nuevas oportunidades de negocio: Los servicios web facilitan la interacción con socios de negocios, al poder compartir servicios internos con un alto grado de integración. 6. Disminuyen el tiempo de desarrollo de las aplicaciones: Pues gracias a la filosofía de orientación a objetos utilizada, el desarrollo se convierte más bien en una labor de composición.

1.5.4.- CORBA CORBA es una tecnología que oculta la programación a bajo nivel de aplicaciones distribuidas, de tal forma que el programador no se tiene que ocupar de tratar con sockets, flujos de datos, paquetes, sesiones etc. CORBA oculta todos estos detalles de bajo nivel. No obstante CORBA también brinda al programador una tecnología orientada objetos, las funciones y los datos se agrupan en objetos, estos objetos pueden estar en diferentes máquinas, pero el programador accederá a ellos a través de funciones normales dentro de su programa. Ventajas (con respecto a otras tecnologías similares)     

Software COTS (Commercial Off The Shelf) Estandarizado, múltiples implementaciones (no se depende de un fabricante) Las especificaciones se adoptan por consenso Buena infraestructura para construir aplicaciones distribuidas Permite integrar aplicaciones heterogéneas

Desventajas 

No es la tecnología más sencilla de utilizar ...



Las especificaciones tardan en desarrollarse, y en consecuencia las implementaciones tardan en salir al mercado

CORBA: Common Object Request Broker Architecture (CORBA) es un estándar definido por Object Management Group (OMG) que permite invocar métodos de objetos remotos sin importar el lenguaje en el cual estén construidos y que corren en diferentes computadoras, puedan trabajar juntos; es decir, facilita el desarrollo de aplicaciones distribuidas en entornos heterogéneos. Características: 





 



Independencia en el lenguaje de programación y sistema operativo: CORBA fue diseñado para liberar a los ingenieros de las limitaciones en cuanto al diseño del software. Posibilidad de interacción entre diferentes tecnologías: uno de los principales beneficios de la utilización de CORBA es la posibilidad de normalizar las interfaces entre las diversas tecnologías y poder así combinarlas. Transparencia de distribución: ni cliente ni servidor necesitan saber si la aplicación está distribuida o centralizada, pues el sistema se ocupa de todo eso. Transparencia de localización: el cliente no necesita saber dónde ejecuta el servicio y el servicio no necesita saber dónde ejecuta el cliente. Integración de software existente: se amortiza la inversión previa reutilizando el software con el que se trabaja, incluso con sistemas heredados. Activación de objetos: los objetos remotos no tienen por qué estar en memoria permanentemente, y se hace de manera invisible para el cliente.

Ventajas    

Es un sistema heterogéneo, los elementos interconectados HW y SW de diferentes fabricantes pueden integrarse. El cliente puede extender la funcionalidad del servidor Es de fácil instalación para el usuario. No se requiere instalación de servidor.

Desventajas  

Puede presentar problemas de saturación, embotellamiento interrupción o perdidas de mensajes en la red. Bajo seguridad, es posible acceso a todo el sistema por parte de los usuarios.



Las especificaciones tardan en desarrollarse, y en consecuencia las implementaciones tardan en salir al mercado

Related Documents

Arquitectura
June 2020 28
Arquitectura
August 2019 73
Arquitectura
April 2020 39
Arquitectura
May 2020 31
Arquitectura
November 2019 71
Arquitectura
October 2019 48

More Documents from "Hth HaRrii Sanchez"

Diagrama De Flujo.docx
November 2019 30
Exterior.pdf
November 2019 11
November 2019 7
Cachorros..docx
November 2019 11