Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capítulo I
Capítulo I
cliente / servidor
M. C. S. Gustavo Pelez C.
04/09/2014
Definicin de arquitectura
Una arquitectura es un conjunto de
reglas, definiciones, trminos y
modelos que se emplean para
producir
un
producto.
04/09/2014
Definicin
La
arquitectura
Cliente/Servidor
agrupa conjuntos de elementos que
efectan procesos distribuidos y
computo cooperativo.
04/09/2014
La arquitectura cliente/servidor es un
modelo para el desarrollo de sistemas de
informacin, en el que las transacciones
se dividen en procesos independientes
que cooperan entre s para intercambiar
informacin, servicios o recursos.
04/09/2014
04/09/2014
Qu es el Cliente?
Conjunto de Software y Hardware que invoca
los servicios de uno o varios servidores.
Los Clientes interactan con el usuario,
usualmente en forma grfica. Frecuentemente
se comunican con procesos auxiliares que se
encargan de establecer conexin con el
servidor, enviar el pedido, recibir la respuesta,
manejar las fallas y realizar actividades de
sincronizacin y de seguridad.
04/09/2014
Caractersticas:
El Cliente oculta al Servidor y
la Red.
Detecta e intercepta peticiones
de otras aplicaciones y puede
redireccionarlas.
Dedicado a la cesin del
usuario ( Inicia...Termina ).
El mtodo ms comn por el
que se solicitan los servicios
es a travs de RPC (Remote
Procedure Calls).
04/09/2014
Funciones
Comunes
del
Cliente:
Mantener y procesar todo el
dialogo con el usuario.
Manejo de pantallas.
Mens e interpretacin de
comandos.
Entrada de datos y validacin.
Procesamiento de ayudas.
Recuperacin de errores.
Generacin de consultas e
informes sobre las bases de
datos.
Qu es el Servidor?
Conjunto de Hardware y Software que responde
a los requerimientos de un cliente.
Los Servidores proporcionan un servicio al
cliente y devuelven los resultados. En algunos
casos existen procesos auxiliares que se
encargan de recibir las solicitudes del cliente,
verificar la proteccin, activar un proceso
servidor para satisfacer el pedido, recibir su
respuesta y enviarla al cliente.
04/09/2014
Qu es el Servidor?
Deben manejar los interbloqueos, recuperacin
ante fallas, y otros aspectos afines.
La plataforma computacional asociada con los
servidores generalmente, es ms poderosa que
la de los clientes.
Por lo que se utilizan PCs poderosas,
estaciones de trabajo, minicomputadores o
sistemas mainframe.
Deben manejar servicios como administracin
de la red, mensajes, control y administracin de
la entrada al sistema ("login"), auditora y
recuperacin y contabilidad.
04/09/2014
Tipos de Servidores:
Servidor de Archivos (FTP, Novell).
Servidor de Bases de Datos (SQL,
CBASE, ORACLE, INFORMIX).
Servidor de Comunicaciones.
Servidor de Impresin.
Servidor de Terminal.
Servidor de Aplicaciones (Windows NT,
Novell).
04/09/2014
10
04/09/2014
11
Arquitectura Cliente-Servidor
En
el
mundo
de
TCP/IP
las
comunicaciones entre computadoras se
rigen bsicamente por lo que se llama
modelo Cliente-Servidor, ste es un
modelo que intenta proveer usabilidad,
flexibilidad,
interoperabilidad
y
escalabilidad en las comunicaciones.
04/09/2014
12
Arquitectura Cliente-Servidor
El trmino Cliente/Servidor fue usado por
primera vez en 1980 para referirse a PCs en
red.
Este modelo empez a ser aceptado a finales
de los 80s. Su funcionamiento es sencillo: se
tiene una mquina cliente, que requiere un
servicio de una mquina servidor, y ste realiza
la funcin para la que est programado (hay que
notar que no tienen que tratarse de mquinas
diferentes; es decir, una computadora por s
sola puede ser ambos cliente y servidor
dependiendo del software de configuracin ).
04/09/2014
13
El Modelo Cliente-Servidor
Desde el punto de vista funcional, se
puede
definir
la
computacin
Cliente/Servidor como una arquitectura
distribuida que permite a los usuarios
finales obtener acceso a la informacin en
forma transparente an en entornos
multiplataforma.
04/09/2014
14
El Modelo Cliente-Servidor
En el modelo cliente servidor, el cliente
enva un mensaje solicitando un
determinado servicio a un servidor (hace
una peticin), y este enva uno o varios
mensajes con la respuesta (provee el
servicio) (Ver Figura 1).
04/09/2014
15
Figura 1
04/09/2014
16
El Modelo Cliente-Servidor
En un sistema distribuido cada mquina
puede cumplir el rol de servidor para
algunas tareas y el rol de cliente para
otras.
La idea es tratar a una computadora como
un instrumento, que por s sola pueda
realizar muchas tareas, pero con la
consideracin de que realice aquellas que
son ms adecuadas a sus caractersticas
04/09/2014
17
18
En
otras
palabras
la
arquitectura
Cliente/Servidor
es
una
extensin
de
programacin modular en la que la base
fundamental es separar una gran pieza de
software en mdulos con el fin de hacer ms
fcil el desarrollo y mejorar su mantenimiento
04/09/2014
19
Caractersticas Funcionales
Esta arquitectura se puede clasificar en
cinco niveles, segn las funciones que
asumen el cliente y el servidor.
04/09/2014
20
04/09/2014
21
22
Tercer nivel
La lgica de los procesos se divide entre los
distintos componentes del cliente y del servidor.
El diseador de la aplicacin debe definir los
servicios y las interfaces del sistema de
informacin, de forma que los papeles de cliente
y servidor sean intercambiables, excepto en el
control de los datos, que es responsabilidad
exclusiva del servidor.
En este tipo de situaciones se dice que hay un
proceso distribuido o cooperativo.
04/09/2014
23
Cuarto nivel
El cliente realiza tanto las funciones de
presentacin como los procesos.
Por su parte, el servidor almacena y
gestiona los datos que permanecen en
una base de datos centralizada.
En esta situacin se dice que hay una
gestin de datos remota.
04/09/2014
24
Quinto nivel
El reparto de tareas es como en el nivel anterior,
el gestor de base de datos divide sus
componentes entre el cliente y el servidor.
Las interfaces entre ambos, estn dentro de las
funciones del gestor de datos y, por lo tanto, no
tienen impacto en el desarrollo de las
aplicaciones.
En este nivel ocurre lo que se conoce como
bases de datos distribuidas.
04/09/2014
25
Caractersticas Lgicas
Una de las principales aportaciones de esta
arquitectura a los sistemas de informacin, es la
interfaz grfica de usuario. Gracias a ella se
dispone de un manejo ms fcil e intuitivo de las
aplicaciones mediante el uso de un dispositivo
tipo ratn.
En esta arquitectura los datos se presentan,
editan y validan en la parte de la aplicacin
cliente.
04/09/2014
26
04/09/2014
27
04/09/2014
28
Arquitecturas de desarrollo
Una arquitectura orientada a servicio, es un esquema de
tecnologa de informacin o estrategia en la cual las
aplicaciones cuentan con servicios disponibles en una
red tal como la World Wide Web (WWW).
04/09/2014
29
Arquitecturas de desarrollo
Implementar una arquitectura orientada a
servicios
puede
involucrar
desarrollar
aplicaciones que usan servicios, quedando las
aplicaciones disponibles como servicios tal
que otras aplicaciones puedan usar estos
servicios ambos.
Un servicio provee una funcin especfica,
tpicamente una funcin de administracin, tal
como analizar un historial crediticio de
individuos o procesar una orden de compra.
04/09/2014
30
Arquitecturas de desarrollo
Un servicio puede proveer una funcin nica
discreta, tal como convertir un tipo de moneda
en otra, o ejecutar un conjunto de funciones
administrativas
relacionadas,
tal
como
manipular varias operaciones en un sistema
de reservaciones de una lnea area.
04/09/2014
31
Arquitecturas de desarrollo
El concepto de SOA no es nuevo. Las
arquitecturas orientadas a servicios han sido
usadas por aos. Lo qu distingue una SOA de
otras arquitecturas es que est dbilmente
acoplada. Dbilmente acoplada significa que el
cliente de un servicio es esencialmente
independiente del otro servicio.
04/09/2014
32
Arquitecturas de desarrollo
La forma como un cliente (que puede ser otro
servicio) se comunica con los servicios no
depende de la implementacin del servicio.
Significativamente resulta que el cliente no tiene
que conocer mucho acerca del servicio para
usarlo.
Por ejemplo el cliente no necesita conocer en
que lenguaje est codificado el servicio o en qu
plataforma corre.
04/09/2014
33
Arquitecturas de desarrollo
04/09/2014
34
Arquitecturas de desarrollo
04/09/2014
35
Arquitecturas de desarrollo
C/S 3 capas
Presentacin
Negocio
Presentacin
Presentacin
Negocio
Datos
Negocio
Negocio
Datos
Datos
BD
04/09/2014
36
Arquitecturas de desarrollo
Arquitectura basada en
componentes
Componente de software:
Unidad de composicin que posee un conjunto
de interfaces y un conjunto de requisitos y que
puede desarrollarse e incorporarse a otro sistema
compuesto por otros componentes de forma
independiente en tiempo y espacio.
04/09/2014
37
Arquitecturas de desarrollo
Sistema basado en componentes
Conjunto de mecanismos y herramientas que
permiten la creacin e interconexin de
componentes de software, junto con una
coleccin de servicios para facilitar la labor de
los componentes que residen y se ejecutan en
l.
04/09/2014
38
Arquitecturas de desarrollo
Modelos basados en componentes
CORBA (Common Object Request Broker Architecture)
COM (Component Object Model)
DCOM COM distribuido
Java RMI (Remote Method Invocation)
JavaBeans
Java RPC (Remote Procedure Call)
04/09/2014
39
Arquitecturas de desarrollo
Arquitecturas orientadas a Servicios
(SOA)
Los componentes no resuelven el problema de la
interoperabilidad, para ello surgen las arquitecturas
basadas en servicios.
04/09/2014
40
Arquitecturas orientadas a
Servicios (SOA Service-Oriented
Architecture).
Servicios Web: Son componentes de software reusables
y dbilmente
acoplados que encapsulan su
funcionalidad en una forma semntica y que adems
estn distribuidos y accesibles a travs de protocolos
estndares de Internet.
Son independientes del lenguaje de programacin
Son independientes de la plataforma
Usan estndares de Internet
04/09/2014
41
Protocolos de comunicacin:
42
04/09/2014
43
Caractersticas de SOA
1. Bajo acoplamiento
2. Request/Response (Solicitud/respuesta)
3. Sncrono (Este es un problema)
04/09/2014
44
1. Desacoplado
2. Publicacin-subscricin
3. Asncrono
04/09/2014
45
04/09/2014
46
Arquitecturas de desarrollo
04/09/2014
47
Arquitecturas de desarrollo
Cada arquitectura
necesitar uno o
varios servicios de
Internet
para
funcionar.
Los
servicios
pueden ser desde
los mas sencillos
hasta
los
ms
complejos:
04/09/2014
Sistemas operativos
Servidor de Directorios
Servidor de Base de datos
Servidor Web
Servidor de Correo
Servidor de Aplicacin
Servidor de UDDI
Servidor DNS
Servidor de transferencia
de archivos
Servidor de Noticias
48
49
50
GNU Linux
Open LDAP
Postgresql
Apache
Sendmail
Tomcat
Axis
Bind
Java Web Services Developer Pack
04/09/2014
51
04/09/2014
52
53
54
55
Aspectos claves
(1) Definicin interfaces vs. implementacin mtodos
remotos
Interfaz remoto: define el comportamiento del objeto
remoto
Conjunto de definiciones de mtodos accesibles por los dems
objetos del sistema
Separacin entre definicin del interfaz remoto e
implementacin del comportamiento
Alternativas:
1. Mismo lenguaje para definicin e implementacin (ej.: Java
RMI)
2. Uso de un IDL (interface definition languaje) independiente
del lenguaje de implementacin (ej.: CORBA)
Aspectos claves 2
(2) Referencias a objetos remotos (referencia remota)
Objetos remotos residen en la mquina que los crea
Es donde almacenan su estado (atributos)
Es donde ejecutan su comportamiento (mtodos)
04/09/2014
57
Aspectos claves 3
(3) Invocacin transparente de mtodos remotos
Modelos de invocacin
Invocacin esttica: la interfaz del objeto remoto es conocida en tiempo de
compilacin
Basado en la generacin/uso de representantes (stubs y skeleton)
Cliente invoca el stub correspondiente, que gestiona la invocacin real del objeto
remoto
Paso de parmetros
Para tipos bsicos: paso por valor (copia-restauracin)
Para objetos locales: paso por valor de objetos serializados (copia-restauracin)
1. Serializar: convertir objeto en una cadena de bytes
2. Transferir copia serializada del objeto
3. Deserializar: reconstruir el objeto en la mquina de destino
04/09/2014
58
Aspectos claves 3
Ubicacin de objetos remotos (binding)
Necesidad de mecanismos para obtener referencias remotas
binding esttico: en tiempo de compilacin
La ubicacin del objeto remoto es fija y conocida a priori
El compilador genera directamente la referencia remota
04/09/2014
59
04/09/2014
60
04/09/2014
61
Para qu sirven?
Estos servicios proporcionan mecanismos de
comunicacin estndares entre diferentes
aplicaciones, que interactan entre s para
presentar informacin dinmica al usuario. Para
proporcionar interoperabilidad y extensibilidad
entre estas aplicaciones, y que al mismo tiempo
sea posible su combinacin para realizar
operaciones complejas, es necesaria una
arquitectura de referencia estndar.
04/09/2014
62
Cmo funcionan?
El siguiente grfico muestra cmo
interacta un conjunto de Servicios Web:
04/09/2014
63
04/09/2014
64
04/09/2014
65
66
67
04/09/2014
68
04/09/2014
69
SOAP
Para optimizar el rendimiento de las
aplicaciones basadas en Servicios Web,
se
han
desarrollado
tecnologas
complementarias a SOAP, que agilizan el
envo de los mensajes (MTOM) y los
recursos que se transmiten en esos
mensajes (SOAP-RRSHB).
04/09/2014
70
Lenguaje de Descripcin de
Servicios Web
Por otro lado, WSDL (Lenguaje de Descripcin
de Servicios Web), permite que un servicio y un
cliente establezcan un acuerdo en lo que se
refiere a los detalles de transporte de mensajes
y su contenido, a travs de un documento
procesable por dispositivos. WSDL representa
una especie de contrato entre el proveedor y el
que solicita.
WSDL especifica la sintaxis y los mecanismos
de intercambio de mensajes.
04/09/2014
71
04/09/2014
72
04/09/2014
73
Servicios Web
Son componentes de software reusables y
dbilmente
acoplados que encapsulan su
funcionalidad en una forma semntica y que
adems estn distribuidos y accesibles a travs
de protocolos estndares de Internet.
Son independientes del lenguaje de programacin
Son independientes de la plataforma
Usan estndares de Internet
04/09/2014
74
04/09/2014
75
Protocolos de comunicacin
XML: (eXtensible Markup Language)
Describe informacin que se intercambia.
SOAP: (Simple Object Access Protocolo)
Servicio de mensajera.
WSDL: (Web Services Descripcin Language)
Describe funcionalidades y donde se localiza en
internet
un Web Service.
UDDI: (Universal Description Dicovery and Integration)
Mecanismo para publicar y descubrir servicios Web.
04/09/2014
76
Ejemplo 1-3
<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header>
<m:reserva
xmlns:m="http://empresaviajes.ejemplo.org/reserva"
env:role="http://www.w3.org/2003/05/soap-envelope/role/next"
env:mustUnderstand="true">
<m:referencia>
uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d </m:referencia>
<m:fechaYHora>2001-11-29T13:20:00.000-05:00</m:fechaYHora>
</m:reserva>
<n:pasajero
xmlns:n="http://miempresa.ejemplo.com/empleados"
env:role="http://www.w3.org/2003/05/soap-envelope/role/next"
env:mustUnderstand="true">
<n:nombre>Pepe Ejemplo</n:nombre>
</n:pasajero>
</env:Header>
04/09/2014
77
Ejemplo 2-3
<env:Body>
<p:itinerario
xmlns:p="http://empresaviajes.ejemplo.org/reserva/viaje">
<p:ida>
<p:salida>Nueva York</p:salida>
<p:llegada>Los
Angeles</p:llegada>
<p:fechaSalida>2001-12-14</p:fechasalida>
<p:horaSalida>ltima hora de la tarde</p:horaSalida>
<p:preferenciaAsiento>pasillo</p:preferenciaAsiento>
</p:ida>
04/09/2014
78
Ejemplo 3-3
<p:vuelta>
<p:salida>Los Angeles</p:salida>
<p:llegada>Nueva
York</p:llegada>
<p:fechaSalida>2001-1220</p:fechaSalida>
<p:horaSalida>mediamaana</p:horaSalida>
<p:preferenciaAsiento/>
</p:vuelta> </p:itinerario>
<q:alojamiento
xmlns:q="http://empresaviajes.example.org/reserva/hotel
es">
<q:preferencia>ninguna</q:preferencia>
</q:alojamiento>
</env:Body>
</env:Envelope>
04/09/2014
79
04/09/2014
80
WSDL
Web Services Description Language - es un lenguaje
basado en XML para describir servicios Web y cmo
acceder a ellos (protocolo vinculante, formato de los
mensajes, etc.)
Permite separar la descripcin de la funcionalidad
abstracta que ofrece un servicio de los detalles
concretos de su descripcin como "cmo" o "dnde" se
ofrece esa funcionalidad.
El editor WSDL es una potente herramienta que permite
crear y editar archivos WSDL grficamente, y la
automatizacin de la mayor parte de las tareas
relacionadas con estos procesos.
04/09/2014
81
04/09/2014
82
04/09/2014
83
04/09/2014
84
04/09/2014
85
04/09/2014
86
04/09/2014
87
04/09/2014
88
04/09/2014
89
04/09/2014
90
04/09/2014
91
92
93
04/09/2014
94
95
96
97
98
99
100