Upload
lucia-zambrano-franco
View
140
Download
3
Embed Size (px)
Citation preview
Tema 6: Comparativa CORBA/Servicios Web
Introducción
n Para establecer una comparativa, es preciso tener en cuentan CORBA se introdujo en 1991 y Servicios Web en el 2000
n CORBA es una solución más madura y mucho más completa
n Microsoft nunca ha querido apoyar CORBA
n Orden de exposiciónn IIOP/SOAPn Implementación de clientes y servidoresn Estandarización de APIsn Soporte para servicios estándarn Otros aspectosn Conclusiones
IIOP/SOAP (1)
n Interoperabilidadn Con SOAP, todavía existen algunos problemas de
interoperabilidad (inexistentes en IIOP)
n Eficiencian IIOP es un protocolo binarion SOAP representa la información en XML
n Los mensajes ocupan más y es preciso parsear XML
n Por tanto, IIOP es más eficiente que SOAP
IIOP/SOAP (y 2)
n Uso en Internetn SOAP normalmente usa HTTP
n Todos los firewalls reconocen HTTPn Adecuado para integraciones en Internet
n En la práctica, es difícil usar IIOP sobre Internetn Existen firewalls que no reconocen IIOP (aunque hay terceros
que venden proxies de IIOP)n Existen túneles de IIOP sobre HTTP, pero no son óptimos
n Se precisa usar una tecnología ampliamente aceptadan Microsoft no fabrica implementaciones de CORBA (aunque hay
terceros que lo hacen)n El soporte para Servicios Web está presente en cualquier
plataforma
Implementación de clientes y servidores
n Definición de interfacesn IDL es más legible que WSDL
n Pero la idea es generar WSDL automáticamente
n Implementación de clientesn Ambos pueden usar proxies (más sencillo) o invocar
operaciones dinámicamente (más complejo)
n Implementación de servidoresn Los objetos CORBA pueden tener estado, mientras que los
puertos de los servicios web no lo tienenn El POA de CORBA permite implementar servidores eficientes
y escalablesn No existe algo equivalente al POA para Servicios Web
n Sin embargo, puede no ser necesarion Ej.: en Java, los Servicios Web se ejecutan en contenedores
(web o EJB), eficientes y escalables
Estandarización de APIs
n El API CORBA está estandarizadan Es posible cambiar de fabricante CORBA sin que ello afecte
al código fuente
n Las APIs de Servicios Web no están totalmente estandarizadasn No afecta a la interoperabilidad (los protocolos están
estandarizados), pero sí a la portabilidadn Las APIs Java se estandarizan
n Ej.: Apache Axis es una implementación de JAX-RPC
Soporte para servicios estándar (1)
n Localizaciónn Los Servicios de Nombres y Trading de CORBA
conceptualmente son equivalentes a UDDI
n Notificacionesn En CORBA, un operación puede recibir una referencia a un
interfaz remoto como parámetron Es posible aplicar el patrón Observer para enviar notificaciones
entre aplicaciones publicadoras y subscriptoras
n Además, CORBA ofrece servicios específicos para poder enviar notificaciones de forma escalable entre publicadores y subscriptores (Servicios de Eventos y Notificaciones)
n Actualmente SOAP no permite que una operación reciba o devuelva una referencia a un puerto
Soporte para servicios estándar (y 2)
n Transaccionesn Agrupar invocaciones a operaciones remotas dentro de una
misma transacciónn CORBA ofrece un potente Servicio de Transaccionesn Actualmente no existe un Servicio de Transacciones para
Servicios Web
n Seguridadn Restringir los usuarios que pueden invocar una operación
remotan CORBA ofrece un potente Servicio de Seguridadn Actualmente no existe un Servicio de Seguridad para
Servicios Web
Otros aspectos
n “Industry momentum”n Se “habla mucho” de Servicios Web
n Es normal porque es una tecnología muy reciente
n Se habla menos de CORBAn En normal porque ya está muy asentada
n Unas reflexiones ...n ¿ No es Servicios Web una reinvención de CORBA ?n ¿ Cuánto tiempo pasará hasta que la tecnología de Servicios
Web se equipare con CORBA ?n Desde un punto de vista técnico, ¿ no hubiese mejor adoptar
CORBA como tecnología universal de integración ?n Seguramente sí, pero Microsoft no ha querido ...
Conclusiones
n Integración de aplicaciones en Internetn En general, la tecnología de Servicios Web es la opción (aún
con sus limitaciones)n En general, CORBA no es una opción (aún con su madurez y
funcionalidad)
n Integración de aplicaciones en intranetsn Actualmente CORBA parece la mejor solución, dado que este
tipo de integraciones suelen requerir transacciones, seguridad, eventos, etc.
n Servicios Web podría ser una alternativa para integraciones sencillas (ej.: intercambio de datos)