Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INTRODUCCION
ORDEN DE EXPOSICION
1- IIOP/SOAP
2- Implementacin de clientes y servidores
3- Estandarizacin de APIs
4- Soporte para servicios estndar
5- Otros aspectos
6- Conclusiones
IIOP/SOAP 1
Interoperabilidad
Con SOAP, todava existen algunos problemas de interoperabilidad (inexistentes en IIOP)
Eficiencia
IIOP es un protocolo binario
SOAP representa la informacin en XML
Los mensajes ocupan ms y es preciso parsear XML
Por tanto, IIOP es ms eficiente que SOAP
IIOP/SOAP 2
USO DE INTERNET
SOAP normalmente usa HTTP
Todos los firewalls reconocen HTTP
Adecuado para integraciones en Internet
En la prctica, es difcil usar IIOP sobre Internet
Existen firewalls que no reconocen IIOP (aunque hay terceros que venden proxies de IIOP)
Existen tneles de IIOP sobre HTTP, pero no son ptimos
Se precisa usar una tecnologa ampliamente aceptada
Microsoft no fabrica implementaciones de CORBA (aunque hay terceros que lo hacen)
El soporte para Servicios Web est presente en cualquier plataforma
IMPLEMENTACION DE CLIENTES Y
SERVIDORES
Definicin de interfaces
IDL es ms legible que WSDL
Pero la idea es generar WSDL automticamente
Implementacin de clientes
Ambos pueden usar proxies (ms sencillo) o invocar operaciones dinmicamente (ms complejo)
implementacin de servidores
Los objetos CORBA pueden tener estado, mientras que los puertos de los servicios web no lo tienen
El POA de CORBA permite implementar servidores eficientes y escalables
No existe algo equivalente al POA para Servicios Web
Sin embargo, puede no ser necesario
Ej.: en Java, los Servicios Web se ejecutan en contenedores (web o EJB), eficientes y escalables
ESTANDARIZACION DE APIs
Localizacin
Los Servicios de Nombres y Trading de CORBA conceptualmente son equivalentes a UDDI
Notificaciones
En CORBA, un operacin puede recibir una referencia a un
interfaz remoto como parmetro
Es posible aplicar el patrn Observer para enviar notificaciones
entre aplicaciones publicadoras y subscriptoras
Adems, CORBA ofrece servicios especficos para poder enviar notificaciones de forma
escalable entre publicadores y subscriptores (Servicios de Eventos y Notificaciones)
Actualmente SOAP no permite que una operacin reciba o devuelva una referencia a un
puerto
Soporte para servicios estndar 2
Transacciones
Agrupar invocaciones a operaciones remotas dentro de una
misma transaccin
CORBA ofrece un potente Servicio de Transacciones
Actualmente no existe un Servicio de Transacciones para Servicios Web
Seguridad
Restringir los usuarios que pueden invocar una operacin
remota
CORBA ofrece un potente Servicio de Seguridad
Actualmente no existe un Servicio de Seguridad para Servicios Web
CORBA Web Services
PROTOCOLOS
GIOP/IIOP HTTP
TCP/IP TCP/IP
CORBA Stubs-Skeletons/SOAP
CORBA Stubs-Skeletons
La compilacin de IDL da como resultado stubs (lado del cliente) y skeletons (lado del
servidor).
ORB decodifica la solicitud, la pasa al skeletons. La solicitud de servicios skeletons le
devuelven al cliente una respuesta si corresponde al stubs.
SOAP
La especificacin SOAP incluye:
una sintaxis para definir mensajes
reglas de codificacin / serializacin para intercambio de datos
Convenciones para representar RPC.
IDL/WSDL
IDL
IDL es un lenguaje que permite definir una serie de interfaces y los mtodos (funciones) de
esos interfaces para la comunicacin entre dos o ms aplicaciones. Este es un medio por el
cual la implementacin del objeto les dice a los clientes qu operaciones estn disponibles y
cmo invocarlas.
WSDL
WSDL es un formato que se utiliza para describir servicios web. WSDL describe la interfaz
pblica a los servicios Web.
Est basado en XML y describe la forma de comunicacin, es decir, los requisitos del
protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados
en su catlogo.
Las operaciones y mensajes que soporta se describen en abstracto y se ligan despus al
protocolo concreto de red y al formato del mensaje.
Corba Services/UDDI
CORBA Services
CORBA Services son interfaces independientes del dominio que utilizan muchos programas de
objetos distribuidos.
Por ejemplo el servicio de nombres que permite a los clientes encontrar objetos basados en
nombres y el Servicio de Negociacin, que permite a los clientes encontrar objetos en
funcin de sus propiedades.
UDDI
UDDI proporciona un mecanismo para que los proveedores de servicios anuncien sus servicios
en un formulario estndar y para que los consumidores de servicios consulten los servicios de
inters.
Una entrada UDDI consta de pginas en blanco, pginas amarillas y pginas verdes.
IIOP/HTTP
GIOP/IIOP
Para que un cliente solicite un programa en algn lugar de una red, debe tener una
direccin para el programa (IOR).
El GIOP es el protocolo que permite al programa establecer una conexin con un IOR y luego
enviarle solicitudes y recibir respuestas.
IIOP es el protocolo ms representativo que utiliza la capa de transporte de Internet TCP.
Otras posibles capas de transporte SNA de IBM y el IPX de Novell.
HTTP
SOAP utiliza el protocolo HTTP para la comunicacin entre mensajes. Los dos mensajes que
utiliza son request para enviar informacin del cliente al servidor y response como respuesta
del servidor al cliente.
CDR/XML
CDR
Una representacin comn de datos (CDR) proporciona una manera de codificar y
decodificar datos para poder intercambiarlos de forma estndar.
XML
Una solicitud SOAP es un documento XML.
El orden es importante.
SOAP admite todos los tipos y tipos simples derivados de tipos simples definidos en W3C XML
Schema.
CDR binary encoding
CORBA CORBA
Short Struct
Long Sequence
Ushort Union
Tipos
Ulong Array
Float Referencia a
Double Objetos
Tipos
Char
String
Boolean
Octet
Enum
Array
XML Unicode encoding
Web Web
Services Services
Short ID
Long IDREF
Integer ENTITY
Ulong Tipos ENTITIES
Float NOTATION
Double NMTOKEN
Tipos NMTOKENS
Boolean
String
Datetime
Date
Time
Year
PROCESO DE DESARROLLO - CORBA
4. Crear los mtodos que se deseen exponer del servicio web utilizando el
atributo WebMethod (si no se utiliza este atributo en la declaracin del
mtodo, entonces este no podr ser visto fuera del servicio web)