2. Introducción
n Para establecer una comparativa, es preciso tener en
cuenta
n 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ón
n IIOP/SOAP
n Implementación de clientes y servidores
n Estandarización de APIs
n Soporte para servicios estándar
n Otros aspectos
n Conclusiones
3. IIOP/SOAP (1)
n Interoperabilidad
n Con SOAP, todavía existen algunos problemas de
interoperabilidad (inexistentes en IIOP)
n Eficiencia
n IIOP es un protocolo binario
n 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
4. IIOP/SOAP (y 2)
n Uso en Internet
n SOAP normalmente usa HTTP
n Todos los firewalls reconocen HTTP
n Adecuado para integraciones en Internet
n En la práctica, es difícil usar IIOP sobre Internet
n 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 aceptada
n Microsoft no fabrica implementaciones de CORBA (aunque hay
terceros que lo hacen)
n El soporte para Servicios Web está presente en cualquier
plataforma
5. Implementación de clientes y servidores
n Definición de interfaces
n IDL es más legible que WSDL
n Pero la idea es generar WSDL automáticamente
n Implementación de clientes
n Ambos pueden usar proxies (más sencillo) o invocar
operaciones dinámicamente (más complejo)
n Implementación de servidores
n Los objetos CORBA pueden tener estado, mientras que los
puertos de los servicios web no lo tienen
n El POA de CORBA permite implementar servidores eficientes
y escalables
n No existe algo equivalente al POA para Servicios Web
n Sin embargo, puede no ser necesario
n Ej.: en Java, los Servicios Web se ejecutan en contenedores
(web o EJB), eficientes y escalables
6. Estandarización de APIs
n El API CORBA está estandarizada
n Es posible cambiar de fabricante CORBA sin que ello afecte
al código fuente
n Las APIs de Servicios Web no están totalmente
estandarizadas
n No afecta a la interoperabilidad (los protocolos están
estandarizados), pero sí a la portabilidad
n Las APIs Java se estandarizan
n Ej.: Apache Axis es una implementación de JAX-RPC
7. Soporte para servicios estándar (1)
n Localización
n Los Servicios de Nombres y Trading de CORBA
conceptualmente son equivalentes a UDDI
n Notificaciones
n En CORBA, un operación puede recibir una referencia a un
interfaz remoto como parámetro
n 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
8. Soporte para servicios estándar (y 2)
n Transacciones
n Agrupar invocaciones a operaciones remotas dentro de una
misma transacción
n CORBA ofrece un potente Servicio de Transacciones
n Actualmente no existe un Servicio de Transacciones para
Servicios Web
n Seguridad
n Restringir los usuarios que pueden invocar una operación
remota
n CORBA ofrece un potente Servicio de Seguridad
n Actualmente no existe un Servicio de Seguridad para
Servicios Web
9. 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 CORBA
n 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 ...
10. Conclusiones
n Integración de aplicaciones en Internet
n 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 intranets
n 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)