Comunicación Con Cliente

Embed Size (px)

Citation preview

  • 8/19/2019 Comunicación Con Cliente

    1/12

    COMUNICACIÓN CON CLIENTE/SERVIDOR (SOCKETS)

    Cliente-Servidor.Es el modelo que actualmente domina el ámbito de comunicación, ya quedescentraliza los procesos y los recursos. En el cual el cliente es una aplicación,

    en un equipo, que solicita un determinado servicio y existe un software, en otroequipo, que lo proporciona.

    Los servicios pueden ser:a) Eecución de un pro!rama.b) "cceso a una #ase de $atos.c) "cceso a un dispositivo de %ardware.

    So!et.$esi!na un concepto abstracto por el cual dos pro!ramas &posiblemente situadosen computadoras distintas) pueden intercambiarse cualquier fluo de datos,!eneralmente de manera fiable y ordenada.Los soc'ets proporcionan una comunicación de dos v(as, punto a punto entre dosprocesos. Los soc'ets son muy versátiles y son un componente básico decomunicación entre interprocesos e intersistemas. *n soc'et es un punto final decomunicación al cual se puede asociar un nombre.

    +ara lo!rar tener un soc'et es necesario que se cumplan ciertos requisitos:.  -ue un pro!rama sea capaz de localizar al otro.

    .  -ue ambos pro!ramas sean capaces de intercambiarse información.

    +or lo que son necesarios tres recursos que ori!inan el concepto de soc'et:a)  *n protocolo de comunicaciones, que permite el intercambio de octetos.b)  *na dirección del +rotocolo de /ed &$irección 0+, si se utiliza el +rotocolo

    12+30+), que identifica una computadora.c)  *n n4mero de puerto, que identifica a un pro!rama dentro de una computadora.

    2on un soc'et se lo!ra implementar una arquitectura clienteservidor. La

  • 8/19/2019 Comunicación Con Cliente

    2/12

    comunicación es iniciada por uno de los pro!ramas &cliente). 5ientras el se!undopro!rama espera a que el otro inicie la comunicación &servidor). *n 6oc'et es unarc%ivo existente en el cliente y en el servidor.

    6i el cliente lanza una demanda de conexión y el servidor acepta la conexión, este

    abre un soc'et en un puerto diferente, para que pueda continuar escuc%ando en elpuerto ori!inal nuevas peticiones de conexión, mientras que atiende a laspeticiones del cliente conectado. El cliente y el servidor pu7eden a%oracomunicarse escribiendo o leyendo en sus respectivos soc'ets.

    Los tipos de soc'et definen las propiedades de comunicación visibles para laaplicación. Los procesos se comunican solamente entre los soc'ets del mismotipo. Existen cinco tipos de soc'ets.

    El 2liente act4a de la si!uiente forma..  Establece una conexión con el servidor &2rea un soc'et con el servidor)..  5andar mensaes al servidor o Esperar un mensae de 8l.&2onsultas).9.  Esperar su respuesta o contestarle &existen casos en que este paso no es

    necesario)..  /epetir los pasos y 9 mientras sea necesario.;.  2errar la conexión con el servidor.

    El servidor act4a as(..  0nicializa un puerto de comunicación, en espera de clientes que intenten

    conectarse a 8l &2rea un server6oc'et)..  *na vez que se conecta al!uien, crea un %ilo de eecución para este usuario

    mientras que el t%read principal vuelve al paso . Esto com4nmente se %ace paraque el servidor puede atender a varios clientes al mismo tiempo.

    9.  6e comunica con el cliente mediante el soc'et creado entre el cliente y 8l..  Espera que el cliente se vaya o lo bota el mismo servidor &2ierre el soc'et entre

    ellos) y elimina el t%read de comunicación entre ellos.

    Las propiedades de un soc'et dependen de las caracter(sticas del protocolo en elque se implementan. El protocolo más utilizado es 12+, aunque tambi8n esposible utilizar *$+ o 0+

  • 8/19/2019 Comunicación Con Cliente

    3/12

    •  Socket de flujo: da un fluo de datos de dos v(as, confiable, y sin duplicados sin

    l(mites de !rabación. El fluo opera en forma parecida a una conversacióntelefónica. El tipo del soc'et es 6>2?@61/E"5, el cual en el dominio de 0nternetusa 12+ &1ransmission 2ontrol +rotocol).

    •  Socket de datagrama: soporta un fluo de mensaes de dos v(as. En un soc'et

    de data!rama podr(a recibir mensaes en diferente orden de la secuencia de lacual los mensaes fueron env(ados. Los l(mites de !rabación en los datos sonpreservados. Los soc'ets de data!rama operan parecidos a pasar cartas %aciaadelante y %acia atrás en el correo. El tipo de soc'et es 6>2?@$=/"5, el cual enel dominio de internet usa *$+ &*ser $ata!ram +rotocol).

    •  Socket de paquete secuencial: da una conexión de dos v(as, secuencial y

    confiable para data!ramas de una lon!itud fia máxima. El tipo de soc'et es6>2?@6E-+"2?E1. Ao %ay protocolo en 0nternet implementado para este tipo desoc'et.

    "O#RAMA CLIENTE

    Este se conecta a un servidor indicando el nombre de la máquina y el n4meropuerto &tipo de servicio que solicita) en el que el servidor está instalado. *na vezconectado, lee una cadena del servidor y la escribe en la pantalla:

    import ava.io.BC import ava.net.BC class 2liente D  static final 6trin! >61 F Glocal%ostHC  static final int +*E/1>F;IIIC  public 2liente& )  D

      try  D  6oc'et s'2liente F new 6oc'et& >61 , +uerto )C  0nput 6tream aux F s'2liente.!et0nput6tream&)C  $ata 0nput 6treamJ fluo F new $ata 0nput 6tream& aux )C  6ystem.out.println& fluo.read*1K&) )C  s'2liente.close&)C    catc%& Exception e )  D  6ystem.out.println& e.!et5essa!e&) )C

          public static void main& 6trin!MN ar! )  D  new 2liente&)C   

    http://www.mitecnologico.com/Main/DataInputStream?action=edithttp://www.mitecnologico.com/Main/DataInputStream?action=edit

  • 8/19/2019 Comunicación Con Cliente

    4/12

    "RO#RAMA SERVIDOR

    El pro!rama servidor se instala en un puerto determinado, a la espera deconexiones, a las que tratará mediante un se!undo 6>2?E1. 2ada vez que sepresenta un cliente, le saluda con una frase Gola cliente AH. Este servidor sólo

    atenderá %asta tres clientes, y despu8s finalizará su eecución, pero es %abitualutilizar ciclos infinitos &w%ile&true)) en los servidores, para que atiendan llamadascontinuamente.1ras atender cuatro clientes, el servidor dea de ofrecer su servicio:

    import ava.io.B C import ava.net.B C class 6ervidor  D  static final int +*E/1>F;IIIC  public 6ervidor& )  D  try  D  6erver 6oc'et s'6ervidor F new 6erver 6oc'et& +*E/1> )C  6ystem.out.println&GEscuc%o el puerto G O +*E/1> )C  for & int num2li F IC num2li P 9C num2liOOC ) D  6oc'et s'2liente F s'6ervidor.accept&)C 33 2rea obeto  6ystem.out.println&G6irvo al cliente G O num2li)C  >utput 6tream aux F s'2liente.!et>utput6tream&)C  $ata >utput 6tream fluoF new $ata >utput 6tream& aux )C  fluo.write*1K& Gola cliente G O num2li )C  s'2liente.close&)C  33 2ierra w%ile

      6ystem.out.println&G$emasiados clientes por %oyH)C    catc%& Exception e )  D  6ystem.out.println& e.!et5essa!e&) )C      public static void main& 6trin!MN ar! ) D  new 6ervidor&)C 

  • 8/19/2019 Comunicación Con Cliente

    5/12

    $.%.$. COMUNICACIÓN CON R"C

    El mecanismo !eneral para las aplicaciones clienteservidor se proporciona por elpaquete /emote +rocedure 2all &/+2). /+2 fue desarrollado por 6un5icrosystems y es una colección de %erramientas y funciones de biblioteca.

     "plicaciones importantes construidas sobre /+2 son A06, 6istema de 0nformaciónde /ed y AK6, 6istema de Kic%eros de /ed.

    *n servidor /+2 consiste en una colección de procedimientos que un clientepuede solicitar por el env(o de una petición /+2 al servidor unto con losparámetros del procedimiento. El servidor invocará el procedimiento indicado ennombre del cliente, entre!ando el valor de retorno, si %ay al!uno. +ara ser independiente de la máquina, todos los datos intercambiados entre el cliente y elservidor se convierten al formato External $ata /epresentation &

  • 8/19/2019 Comunicación Con Cliente

    6/12

    $.%.' TOLERANCIA DE ALLOS

    La difusión de los sistemas distribuidos incrementa la demanda de sistemas queesencialmente nunca fallen.

    Los sistemas tolerantes a fallos requerirán cada vez más una considerableredundancia en %ardware, comunicaciones, software, datos, etc.La r8plica de arc%ivos ser(a un requisito esencial.1ambi8n deber(a contemplarse la posibilidad de que los sistemas funcionen a4ncon la carencia de parte de los datos.Los tiempos de fallo aceptables por los usuarios serán cada vez menores.

    $.$ SINCRONIACIÓN DE RELO*ES

    El t8rmino sincronización se define como la forma de forzar un orden parcial o totalen cualquier conunto de eventos, y es usado para %acer referencia a tresproblemas distintos pero relacionados entre s(:

    .  La sincronización entre el emisor y el receptor..  La especificación y control de la actividad com4n entre procesos cooperativos.9.  La serialización de accesos concurrentes a obetos compartidos por m4ltiples

    procesos. aciendo referencia a los m8todos utilizados en un sistemacentralizado, el cual %ace uso de semáforos y monitoresC en un sistema distribuidose utilizan al!oritmos distribuidos para sincronizar el trabao com4n entre losprocesos y estos al!oritmos

    $.$.%.  RELO*ES +SICOS

    La idea es proveer de un 4nico bloque de tiempo para el sistema. Los procesos pueden usar lamarca f(sica del tiempo provista o le(da de un relo central para expresar al!4n orden en elconunto de acciones que inician. La principal ventaa de este mecanismo es la simplicidad,aunque existen varios inconvenientes: el correcto re!istro del tiempo depende en la posibilidadde recibir correctamente y en todo momento, el tiempo actual desple!ado por el relo f(sicoC loserrores de transmisión se convierten en un impedimento para el orden deseado, el !rado deexactitud depende de las constantes puestas en el sistema.

    •  Los valores de tiempo asi!nados a los eventos no tienen porqu8 ser cercanos alos tiempos

    reales en los que ocurren.

    •  En ciertos sistemas es importante la %ora real del relo:

    • 

    6e precisan reloes f(sicos externos &más de uno).•  6e deben sincronizar:

    •  2on los reloes del mundo real.

    •  Entre s(.

  • 8/19/2019 Comunicación Con Cliente

    7/12

    $.$.$ RELO*ES LÓ#ICOS

    Las computadoras poseen un circuito para el re!istro del tiempo conocido como

    dispositivo relo.Es un cronómetro consistente en un cristal de cuarzo de precisión sometido a unatensión el8ctrica que la cual oscila con una frecuencia bien definida. " cada cristalse le asocian dos re!istros:

      /e!istro contador.

      /e!istro mantenedor.2ada oscilación del cristal decrementa en GH al contador. +ero, cuando elcontador lle!a a GIH:

      6e !enera una interrupción.  El contador se vuelve a car!ar mediante el re!istro mantenedor.

    6e puede pro!ramar un cronómetro para que !enere una interrupción GxH veces

    por se!undo, a cada interrupción se denomina marca de relo .+ara una computadora y un relo no interesan pequeRos desfasaes del reloporque todos los procesos de la máquina usan el mismo relo y tendránconsistencia interna, lo que importan son los tiempos relativos.En caso de varias computadoras con sus respectivos reloes es imposible!arantizar que los cristales de computadoras distintas oscilen con la mismafrecuencia por lo tanto %abrá una p8rdida de sincron(a en los reloes &de software),es decir que tendrán valores distintos al ser le(dos.La diferencia entre los valores del tiempo se llama distorsión del relo y podr(a!enerar fallas en los pro!ramas dependientes del tiempo.Lamport demostró que la sincronización de reloes es posible y presentó unal!oritmo para lo!rarlo.

    Lamport seRaló que la sincronización de reloes no tiene que ser absoluta:

    •  6i procesos no interact4an no es necesario que sus reloes est8n sincronizados.

    •  =eneralmente lo importante no es que los procesos est8n de acuerdo en la %ora,

    pero s( importa que coincidan en el orden en que ocurren los eventos.

    +ara ciertos al!oritmos lo que importa es la consistencia interna de los reloes:

    •  Ao interesa su cercan(a particular al tiempo real &oficial).

    •  Los reloes se denominan reloes ló!icos.

  • 8/19/2019 Comunicación Con Cliente

    8/12

    $.$.& USOS DE LA SINCRONIACIÓN MANE*O DE CAC,E COMUNICACIÓNEN #RU"O ECLUSIÓN MUTUA ELECCIÓN TRANSACCIONES ATÓMICAS EINTERLO0UEO

    Me1ori2 C234

    En los sistemas de arc%ivos convencionales, el fundamento para la memoriacac%8 es la reducción de la E36 de disco &lo que aumenta el rendimiento), en un6"$ el obetivo es reducir el tráfico en la red, si los datos necesarios parasatisfacer la solicitud de acceso no se encuentran en la memoria cac%e, se traeuna copia de servicio al usuario y los accesos se llevan a cabo con la copia dememoria cac%8.La idea es conservar all( los bloques de disco de acceso mas reciente, para as(manear localmente los accesos repetidos a la misma información y no aumentar el tráfico de la red. La memoria cac%8 con escritura directa equivale a usar elservicio remoto para accesos de escritura y explotar la memoria cac%e 4nicamentepara accesos de lectura.2omunicación en !rupos6i una máquina tiene un receptor de *12, todas las máquinas debensincronizarse con ella. 6i nin!una máquina tiene un receptor de *12:

    S  2ada máquina lleva el re!istro de su propio tiempo.S  6e debe mantener el tiempo de todas las máquinas tan cercano como sea

    posible.

    E5l67i8n M6t62

    2uando un proceso debe leer o actualizar ciertas estructuras de datoscompartidas, primero in!resa a una re!ión cr(tica para lo!rar la exclusión mutua y!arantizar que nin!4n otro proceso utilizará las estructuras de datos al mismotiempo. En sistemas monoprocesadores las re!iones cr(ticas se prote!en consemáforos, monitores y similares. En sistemas distribuidos la cuestión es máscomplea.

    Tr2n72ione7 At81i27

    Las t8cnicas de sincronización ya vistas son de bao nivel:El pro!ramador debe enfrentarse directamente con los detalles de:

      La exclusión mutua.

  • 8/19/2019 Comunicación Con Cliente

    9/12

      El maneo de las re!iones cr(ticas.  La prevención de bloqueos.  La recuperación de fallas.

    6e precisan t8cnicas de abstracción de mayor nivel que:>culten estos aspectos t8cnicos y permitan a los pro!ramadores concentrarse en

    los al!oritmos y la forma en que los procesos trabaan untos en paralelo. 1alabstracción la llamaremos transacción atómica, transacción o acción atómica. Laprincipal propiedad de la transacción atómica es el Gtodo o nadaH, es decirC se %acetodo lo que se ten(a que %acer como una unidad o no se %ace nada.

    $.& NOMINACION CARACTER+STICAS 9 ESTRUCTURAS

    Aominación es una correspondencia entre obetos de datos ló!icos y f(sicos. +or eemplo, los usuarios tratan con obetos de datos ló!icos representados por nombre de arc%ivos, mientras que el sistema manipula bloques de datos f(sicosalmacenados en las pistas de los discos. =eneralmente un usuario se refiere a un

    arc%ivo utilizando un nombre, el cual se transforma en un identificador num8ricode bao nivel, que a su vez se corresponde con bloques en disco. Estacorrespondencia multinivel ofrece a los usuarios la abstracción de un arc%ivo, queoculta los detalles de cómo y donde se almacena el arc%ivo en disco.

    E7tr6t6r27 de No1in2i8n: Existen dos conceptos que %ay que distin!uir enrelación con al correspondencia de nombres en un 6"$. 1ransparencia deAominación. El nombre de arc%ivo no revela nin!4n indicio sobre de la ubicacióndel almacenamiento f(sico del arc%ivo. 0ndependencia de *bicación, Ao esnecesario modificar el nombre de un arc%ivo cuando cambia su ubicación en elalmacenamiento f(sico.

    E7:6e12 de No1in2i8n; ay tres enfoques principales para los esquemas denominación en un 6"$. En el enfoque mas sencillo, los arc%ivos se nombran conuna combinación del nombre de su anfitrión y su nombre local , lo que !arantizaun nombre 4nico dentro de todo el sistema. +or eemplo, en 0bis, un arc%ivo seidentifica de manera 4nica con el Aombre "nfitrión Local, donde nombre local esuna ruta semeante a las de *A0

  • 8/19/2019 Comunicación Con Cliente

    10/12

    S  El nombre de un obeto, por eemplo un recurso o servidorC especifica lo quebusca un proceso.

    S  *na dirección especifica dónde se encuentra el obeto.S  *na ruta especifica cómo lle!ar a%(. La modificación no autorizada del i+%one

    >6 constituye una fuente muy importante de inestabilidad, interrupciones de los

    servicios y otros problemas.

    6e pueden clasificar a las violaciones de se!uridad en tres cate!or(as:

    •  Liberación no autorizada de información. >curre cuando una persona no

    autorizada tiene la posibilidad de leer y tomar ventaa de la informaciónalmacenada en una computadora. 1ambi8n se incluye el uso no autorizado de unpro!rama.

    •  5odificación no autorizada de información. Este tipo de violación se da cuando

    una persona tiene la posibilidad de alterar la información almacenada en unsistema computacional.

    •  #loqueo no autorizado de servicios. 6e da cuando una persona no autorizada

    bloquea la capacidad de al!4n usuario autorizado, a accesar la informaciónalmacenada en un sistema computacional.

    La se!uridad en los sistemas computacionales puede dividirse en dos tipos:

    •  6e!uridad externa: &llamada com4nmente se!uridad f(sica), se encar!a de re!ular 

    el acceso al %ardware del sistema, incluyendo: discos, cintas, re!uladores y nobrea's, acondicionadores de aire, terminales, procesadores.

    •  6e!uridad interna: se encar!a del acceso y uso del software almacenado en el

    sistema. " diferencia de la se!uridad f(sica, existe el tema de autenticación, en elcual el usuario se re!istra &lo!in) en el sistema para accesar a los recurso de%ardware y software del mismo.

    Servidor DNS

    •  1raducir su nombre de dominio en una dirección 0+

    •   "si!nar nombres a todas las máquinas de una red y trabaar con nombres de

    dominio en lu!ar de 0+s.*n servidor $A6 permite acceder a un dominio en internet entre los millonesexistentes. #ásicamente su función es atender a las peticiones %ec%as por losdistintos pro!ramas que acceden a internet y resolver la dirección 0+ asociada aldominio consultado. 2uando el servidor recibe una consulta realiza una b4squedaen caso de que ese servidor no dispon!a de la respuesta, el servidor comienza la

    b4squeda a trav8s de uno o varios 6ervidores $A6 %asta encontrar una respuestapositiva o ne!ativa.

    $.&.& RESOLUCION 9 DISTRIUCION

    Re7ol6i8n de no1

  • 8/19/2019 Comunicación Con Cliente

    11/12

    que permite realizar esta operación &por lo !eneral, inte!rada en el sistemaoperativo se llama UresoluciónU.2uando una aplicación desea conectarse con un %ost conocido a trav8s de sunombre de dominio &por eemplo, Ues.'ios'ea.netU), 8sta interro!a al servidor denombre de dominio definido en la confi!uración de su red. $e %ec%o, todos los

    equipos conectados a la red tienen en su confi!uración las direcciones 0+ deambos servidores de nombre de dominio del proveedor de servicios.

    Di7tri

  • 8/19/2019 Comunicación Con Cliente

    12/12

    .  *na dirección especifica donde 8sta9.  *na ruta especifica cómo esta a%(

    2ada uno de estos identificadores representa un atascamiento más apretado de la

    información:.  Los nombres son mapeados en direcciones. Este mapeo es necesario para laaplicación en eecución, puesto que la sintaxis y la semántica de nombresdependen enteramente de qu8 tipos de entidades se están nombrando y tambi8nqu8 uso se está %aciendo de ellas

    .  Las direcciones son mapeadas en los routeadores.

    $.&.? MODELO DE TERR9

    Los mensaes remitentes entre los procesos y obetos soportados por un sistemaoperativo precisa la presentación para el sistema operativo de los nombres de losobetos que los procesos quieren !anar acceso a. El problema es cómo localizar obetos nombrados. Esto está directamente conectado a la !erencia del espaciode nombre y las estructuras de la facilidad de nombramiento.

    2omo %a visto, acto de servidores de nombre como a!entes obli!atoriosdistribuidos que amarran el nombre de un obeto para una cierta cantidad de suspropiedades, incluyendo la posición del obeto. "l!unos servidores de nombrepueden almacenar información acerca de los obetos particulares. 1ales servidoresde nombre se llaman las autoridades que nombra o servidores autoritarios denombre para eso obetan. El problema es cómo distribuir servidores de nombre,esto es, que de las estructuras de una facilidad de nombramiento es el meor.

    Los criterios diferentes pueden ser tomados en cuenta al desarrollar la facilidad denombramiento para sistemas de cómputo distribuidos. En la etapa de análisis de laestructura de facilidad de nombramiento, usaremos la mayor parte de importantede esos criterios, a saber actuación. Este criterio es importante para un ambientedistribuido porque que %ay usualmente un n4mero de redes interconectadas &lomismo es cierto en caso de una red de área local conectando un n4mero !randede computadoras personales y 3 o los puestos de trabao, y los servidoresdiferentes), lo cual insin4a que el costo de comunicación entre clientes yservidores de nombre es el cuello de botella principal en localizar recursosremotos. En este caso, la actuación de averi!uaciones del servidor de nombre esdominada por el n4mero de servidores de nombre que deben ser a los que se

    !anó acceso y el costo de !anar acceso a esos los servidores de nombre.