Está en la página 1de 100

Contexto de la programacin

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

Se denomina cliente al proceso que inicia


el dilogo o solicita los recursos y
servidor, al proceso que responde a las
solicitudes.
Es el modelo de interaccin ms comn
entre aplicaciones en una red.

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

Funciones de los Servidores

Acceso, almacenamiento y organizacin de datos.


Actualizacin de datos almacenados.
Administracin de recursos compartidos.
Ejecucin de toda la lgica para procesar una
transaccin.
Procesamiento comn de elementos del servidor (Datos,
capacidad de CPU, almacenamiento en disco,
capacidad de impresin, manejo de memoria y
comunicacin).
Gestin de perifricos compartidos.
Control de accesos concurrentes a bases de datos
compartidas.
Enlaces de comunicaciones con otras redes de rea
local o extensa

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

Arquitectura Cliente - Servidor

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

La aplicacin de este concepto tanto a clientes


como servidores se entiende que la forma ms
estndar de aplicacin y uso de sistemas
Cliente/Servidor es mediante la explotacin de
las PCs a travs de interfaces grficas de
usuario; mientras que la administracin de datos
y su seguridad e integridad se deja a cargo de
computadoras centrales tipo mainframe.
La mayora del trabajo pesado se hace en el
proceso llamado servidor y el o los procesos
cliente slo se ocupan de la interaccin con el
usuario.
04/09/2014

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

Primer nivel el cliente


Asume parte de las funciones de presentacin de la
aplicacin, ya que siguen existiendo programas en el
servidor, dedicados a esta tarea.
Esta distribucin se realiza mediante el uso de
productos para el "maquillaje" de las pantallas del
mainframe. Esta tcnica no exige el cambio en las
aplicaciones orientadas a terminales, pero dificulta su
mantenimiento.
El servidor ejecuta todos los procesos y almacena la
totalidad de los datos. En este caso se dice que hay una
presentacin distribuida o embellecimiento.

04/09/2014

21

Segundo nivel, la aplicacin


Est soportada directamente por el
servidor, excepto la presentacin que es
totalmente remota y reside en el cliente.
Los terminales del cliente soportan la
captura de datos, incluyendo una
validacin parcial de los mismos y una
presentacin de las consultas.
En este caso se dice que hay una
presentacin remota.
04/09/2014

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

En cuanto a los datos, cabe sealar que


en la arquitectura cliente / servidor se
evitan las duplicidades (copias y
comparaciones de datos), teniendo
siempre una imagen nica y correcta de
los mismos, disponible en lnea para su
uso inmediato.

04/09/2014

27

Todo esto tiene como fin que el usuario de


un sistema de informacin soportado por
una arquitectura cliente / servidor, trabaje
desde su estacin de trabajo con distintos
datos y aplicaciones, sin importarle dnde
estn o dnde se ejecuta cada uno de
ellos.

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

Evolucin de la arquitectura de los


Sistemas Informticos
C/S 2 capas
Sistemas monolticos

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:

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

42

Funcionamiento de los Servicios Web

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

Arquitectura EDA (Event-Driven


Architecture)

1. Desacoplado
2. Publicacin-subscricin
3. Asncrono

04/09/2014

45

Arquitectura ESB (Enterprise


Service Bus)
1. Orquestacin
2. Administracin y monitorizacin
3. Seguridad
4. Confiabilidad, escalabilidad y disponibilidad

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

Propuestas Open Sources y


Licenciadas
Para cada servicio de los mencionados
anteriormente existen propuestas en el
mercado donde van desde las de cdigo
abierto (Open Sources) las cuales se
distribuyen de manera gratuita y
normalmente bajo la licencia GPL
(General Public License)
04/09/2014

49

Propuestas Open Sources y


Licenciadas
Existen empresas que han creado sus
productos desde cero o basados en las de
cdigo abierto en cuanto a funcionalidad y
caractersticas.
Algunas
de
estas
empresas se encuentran IBM, Microsoft,
HP, BEA Logic, Sun, Oracle, etc. Donde el
uso de sus productos esta regido por una
licencia propietaria.
04/09/2014

50

Propuestas Open Sources y


Licenciadas
Productos de Cdigo Abierto tenemos a:

GNU Linux
Open LDAP
Postgresql
Apache
Sendmail
Tomcat
Axis
Bind
Java Web Services Developer Pack

04/09/2014

51

Propuestas Open Sources y


Licenciadas
Productos de Cdigo Licenciado tenemos a:

Windows 2003 Server


HP-UX
Active Directory de Microsoft
SQL Server
IIS (Internet Information Server)
Exchange Server
Oracle Application Server 10g

WebSphere Application Server


DNS de Windows 2003 Server

04/09/2014

52

Modelo de objetos distribuidos


Objetivo: Extender el paradigma de orientacin a objetos
al desarrollo de sistemas distribuidos
Modelo RPC se ajusta bien a arquitecturas 2-tier
2 papeles bien diferenciados
cliente: realiza peticiones
servidor: recibe peticiones

La lgica de aplicacin est en el cliente o en el servidor

Difcil extender RPCs en desarrollo arquitecturas 3-tier o


n-tier
Componentes del sistema pueden actuar a la vez como clientes
y servidores
En n-tier la lgica de aplicacin se divide en componentes
modulares reutilizables se ajustan mejor a un modelo
orientado a objetos.
04/09/2014

53

Modelo de objetos distribuidos 2


Finalidad: Disear e implementar sistemas
distribuidos
que
se
estructuren
como
colecciones
de
componentes
modulares
(objetos) que puedan ser manejados fcilmente
y organizados en capas para ocultar la
complejidad del diseo.
Posibilidad de invocar y pasar como argumento
diferentes comportamientos
Posibilidad de aplicar patrones de diseo orientados
a objetos en la implementacin del sistema
distribuido
04/09/2014

54

Modelo de objetos distribuidos 3


Idea base: Extender el concepto RPC para su uso en un
modelo de computacin distribuida orientado a objetos
Un objeto es una entidad identificable de forma nica en todo el
sistema

Objetos encapsulan los recursos disponibles en el


sistema distribuido
Estado: representado por los atributos del objeto
Comportamiento: representado por los mtodos del objeto

La particin de la aplicacin y su distribucin se basa


en el uso de esos objetos
La comunicacin se lleva a cabo mediante la invocacin
de los mtodos de esos objetos
04/09/2014

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)

Generacin automtica de elementos complementarios


a partir de la definicin del interfaz (stubs (1), cdigo de
partida para las implementaciones)
(1) Un stub puede simular el comportamiento de cdigo existente (tal como un procedimiento en una mquina remota) o ser el sustituto
04/09/2014
56
temporal para un cdigo an no desarrollado.

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)

En los procesos cliente se manejan referencias remotas a esos objetos


Determinan de forma unvoca la ubicacin de un objeto en el sistema distribuido
puntero que referencia un objeto distribuido residente en otra mquina

Informacin tpica asociada a una referencia remota


Direccin IP de la mquina donde reside el objeto remoto
No. de puerto de escucha asignado por el sistema de objetos
Identificador nico del objeto (nico dentro de la mquina que lo crea)

Normalmente su contenido no es accesible directamente


Gestionado por los stub de los clientes y por el servicio de binding

Uso de las referencias remotas


En la invocacin remota de los mtodos exportados por el objeto remoto
Como argumento que se pasa en una invocacin a otro objeto

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

Invocacin dinmica: la interfaz del objeto remoto no es conocida en tiempo de


compilacin
Requiere una serie de pasos previos para descubrir el interfaz

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

Para objetos remotos: paso de referencias remotas

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

binding dinmico: en tiempo de ejecucin


El objeto remoto tiene asociado un nombre
La referencia remota se recupera de un servidor de nombres

binding dinmico uso de servicios de nombres

04/09/2014

Mantiene una B.D. con pares (nombre objeto, referencia remota)


Funciones bsicas:
registrar pares nombre-referencia (bind())
localizar referencia asociada a un nombre (lookup())
Nombres pueden ser
transparentes a la ubicacin
no transparentes a la ubicacin
Espacio de nombres puede ser
plano
jerrquico (en rbol)

59

Gua Breve de Servicios


Web

04/09/2014

60

Qu son los Servicios Web?


Existen mltiples definiciones sobre lo que son los
Servicios Web, lo que muestra su complejidad a la hora
de dar una adecuada definicin que englobe todo lo que
son e implican. Una posible sera hablar de ellos como
un conjunto de aplicaciones o de tecnologas con
capacidad para interoperar en la Web.
Estas aplicaciones o tecnologas intercambian datos
entre s con el objetivo de ofrecer unos servicios. Los
proveedores ofrecen sus servicios como procedimientos
remotos y los usuarios solicitan un servicio llamando a
estos procedimientos a travs de la Web.

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

Figura 1 - Los servicios Web en Funcionamiento

63

Aplicacin Servicio Web


Segn el ejemplo del grfico, un usuario
(que juega el papel de cliente dentro de
los Servicios Web), a travs de una
aplicacin, solicita informacin sobre un
viaje que desea realizar haciendo una
peticin a una agencia de viajes que
ofrece sus servicios a travs de Internet.

04/09/2014

64

Aplicacin Servicio Web


La agencia de viajes ofrecer a su cliente
(usuario) la informacin requerida. Para
proporcionar al cliente la informacin que
necesita, esta agencia de viajes solicita a
su vez informacin a otros recursos (otros
Servicios Web) en relacin con el hotel y
la compaa area.

04/09/2014

65

Aplicacin Servicio Web


La agencia de viajes obtendr informacin
de estos recursos, lo que la convierte a su
vez en cliente de esos otros Servicios
Web que le van a proporcionar la
informacin solicitada sobre el hotel y la
lnea area. Por ltimo, el usuario
realizar el pago del viaje a travs de la
agencia de viajes que servir de
intermediario entre el usuario y el servicio
Web que gestionar el pago.
04/09/2014

66

Aplicacin Servicio Web


En todo este proceso intervienen una
serie de tecnologas que hacen posible
esta circulacin de informacin.
Por un lado, estara SOAP (Protocolo
Simple de Acceso a Objetos). Se trata de
un protocolo basado en XML, que permite
la interaccin entre varios dispositivos y
que tiene la capacidad de transmitir
informacin compleja.
04/09/2014

67

Aplicacin Servicio Web


Los datos pueden ser transmitidos a
travs de HTTP , SMTP , etc. SOAP
especifica el formato de los mensajes. El
mensaje SOAP est compuesto por un
envelope (sobre), cuya estructura est
formada por los siguientes elementos:
header (cabecera) y body (cuerpo).

04/09/2014

68

Estructura de los mensajes


SOAP

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

Aplicacin Servicios Web


Durante la evolucin de las necesidades
de las aplicaciones basadas en Servicios
Web de las grandes organizaciones, se
han
desarrollado
mecanismos
que
permiten enriquecer las descripciones de
las operaciones que realizan sus servicios
mediante anotaciones semnticas y con
directivas que definen el comportamiento.

04/09/2014

72

Aplicacin Servicios Web


Esto permitira encontrar los Servicios
Web que mejor se adapten a los objetivos
deseados. Adems, ante la complejidad
de los procesos de las grandes
aplicaciones empresariales, existe una
tecnologa que permite una definicin de
estos procesos mediante la composicin
de varios Servicios Web individuales, lo
que se conoce como coreografa.

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

Funcionamiento de los Servicios


Web

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

Introduccin al Editor WSDL


WTP 1.5.1

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

Ejemplo: creacin de un archivo


WSDL
Permite crear un archivo WSDL para un
servicio web simple que llamaremos
"InternationalTime".
Este servicio Web recibe como parmetro
un lugar compuesto por el nombre de una
ciudad y el nombre de un pas, y devuelve
su tiempo actual.

04/09/2014

82

Ejemplo: creacin de un archivo


WSDL
Para empezar a
crear el archivo
WSDL, abra el
men Archivo y
seleccione Nuevo
- otro - XML WSDL.

04/09/2014

83

Ejemplo: creacin de un archivo


WSDL

Nos pedir que escriba el


nombre del archivo que se
crear. Para el ejemplo se va
nombrar
el
archivo
"InternationalTime.wsdl".
Despus dar clic en el botn
Siguiente para ir a la pgina
siguiente.
Aceptar
los
valores
predeterminados en la pgina
Opciones de WSDL.
Debe tener un aspecto como
el siguiente: (figura)

04/09/2014

84

Ejemplo: creacin de un archivo


WSDL
Dar clic en el botn Finalizar para cerrar el
cuadro
de
dilogo.
Se
crear
automticamente un esqueleto WSDL,
que nos da un punto de partida excelente
para describir nuestro servicio Web. El
esqueleto debe tener el siguiente aspecto:

04/09/2014

85

Ejemplo: creacin de un archivo


WSDL
Se da el nombre de la operacin de
servicio Web a "getInternationalTime".
Para ello, basta con hacer doble clic
sobre el ttulo de la operacin y escribir
el nuevo nombre, como se muestra a
continuacin.

04/09/2014

86

Ejemplo: creacin de un archivo


WSDL
A continuacin vamos a especificar los
formatos de entrada y de salida de este
servicio. Para ello, pulsaremos primero en
la flecha que aparece junto a la operacin
de entrada:

04/09/2014

87

Ejemplo: creacin de un archivo


WSDL
Se abrir un editor en lnea de esquema:
una nueva pestaa aparecer en la parte
superior del editor indicando as:

04/09/2014

88

Ejemplo: creacin de un archivo


WSDL
En el editor de esquemas en lnea, se establece el tipo
de elemento a conseguir InternationalTimeRequest. En
este caso particular, dado que el parmetro de entrada
es un lugar compuesto por el nombre de una ciudad y el
nombre de un pas, se va a crear un nuevo tipo complejo
dando
clic
derecho
en
el
elemento
InternationalTimeRequest y seleccionando Set Tipo Nuevo.
En el cuadro de dilogo Nuevo Tipo seleccionar tipo
complejo y colocar el nombre a "Location". A
continuacin aadir los elementos "Country" y "City" de
tipo String y establezcer el atributo tipo en "All".

04/09/2014

89

Ejemplo: creacin de un archivo


WSDL
Una vez terminado, el elemento de
ubicacin debe tener el siguiente aspecto.

04/09/2014

90

Ejemplo: creacin de un archivo


WSDL
Volver a la pantalla principal del editor
WSDL
dando
clic
en
su
ficha
correspondiente:

04/09/2014

91

Ejemplo: creacin de un archivo


WSDL
Paso siguiente, fijar el formato de la salida de la misma
manera que se hizo para la entrada. Empezar dando clic
en la flecha que aparece junto a la salida de la siguiente
manera.
El editor en lnea de esquema se abrir. En ella, se
establece
el
tipo
del
elemento
getInternationalTimeResponse dando clic derecho y
seleccionando Set Tipo - Usuarios.
Puesto que el servicio web devuelve el tiempo de un
lugar determinado, se elige a partir del momento de lista
Tipo y dar clic en Aceptar y guardar los cambios
realizados en el archivo WSDL.
En este punto no necesitaremos ms al editor de
esquemas en lnea, as que lo cerramos.
04/09/2014

92

Ejemplo: creacin de un archivo


WSDL
Terminado! desde la
pantalla principal del
editor
WSDL
se
puede dar clic en la
ficha
"Fuente",
situado en la parte
inferior de la pantalla
para ver el cdigo
XML que se ha
generado
automticamente.
04/09/2014

93

Ejemplo: creacin de un archivo


WSDL
Por ltimo hay que
verificar
que
el
archivo WSDL es
vlido. Para hacer
esto, dar clic en el
archivo y seleccionar
Validar.

04/09/2014

94

Ejemplo: creacin de un archivo


WSDL
En caso de que haya algn problema con
el contenido del archivo, stos aparecern
en la ventana de Problemas.
Si la ventana de problemas no es visible
en la mesa de trabajo (workbench), se
puede mostrar al seleccionar en el men
principal: Ventana - Show - Vista Problemas
04/09/2014

95

Comunicacin entre componentes


Existen diversas dificultades tcnicas a la hora
de llevar a la prctica las arquitecturas
orientadas a servicios. Entre stas estn la
comunicacin entre las distintas capas y
componentes que constituyen la aplicacin, la
gestin de peticiones y el balanceado de carga
entre servidores cuando un mismo componente
reside en varios de ellos (para aplicaciones muy
grandes con muchos clientes), la gestin de
transacciones entre componentes y algunas
otras cosas ms.
04/09/2014

96

Comunicacin entre componentes


Existe la posibilidad de escribir un protocolo de
comunicaciones propio que se ocupe de todas
estas cuestiones, pero por supuesto se trata de
una opcin muy poco realista dada la
complejidad que conllevara. Para responder a
estas necesidades de los programadores,
diversos fabricantes y asociaciones de la
industria crearon servicios y protocolos
especficos orientados a la interaccin
distribuida de componentes. Aunque existe una
gran variedad, de todos ellos los ms
importantes sin duda son:
04/09/2014

97

DCOM (Distributed Common


Object Model),
la propuesta de Microsoft, ligada a sus sistemas
Windows. Se trata de algo ms que un protocolo
de invocacin remota de procedimientos (RPC)
ya que su ltima encarnacin, COM+, incluye
servicios avanzados para balanceado de carga,
gestin
de
transacciones
o
llamadas
asncronas. Los parmetros son transmitidos a
travs de la red mediante un formato binario
propio
llamado
NDR
(Network
Data
Representation).
04/09/2014

98

RMI (Remote Method Invocation),


Es la metodologa de llamada a
procedimientos remotos de Java. No se
centra en la definicin de interfaces para
compatibilidad binaria de componentes ni
en otros conceptos avanzados, y se basa
en la existencia de un cliente y un servidor
que actan de intermediarios entre los
componentes que se quieren comunicar.
Es una tecnologa bastante simple, que es
fcil de utilizar para aplicaciones bsicas.
04/09/2014

99

CORBA (Common Object Request


Broker Architecture).
Se trata de una serie de convenciones que describen
cmo deben comunicarse entre s los distintos
componentes, cmo se deben transferir los datos de las
llamadas y sus resultados o cmo se describen las
interfaces de programacin de los componentes para
que los dems sepan cmo utilizarlos. Fue desarrollado
por el OMG (Object Management Group) en la segunda
mitad de la dcada de los '90, y es el modelo que ms
xito ha tenido en el mundo UNIX. Su mtodo de
empaquetado y transmisin de datos a travs de la red
se llama CDR (Common Data representation). Existen
diversas implementaciones de distintos fabricantes.
Estos
04/09/2014

100

También podría gustarte