Standard ebXML

Anuncio
Abstract. En este documento trazamos el standard profile de ebXML comparándolo con la tecnología Web
Service de W3C. Hemos supuesto que el lector está familiarizado con Web Service del W3C y el standard
ebXML. No obstante, para definir el escenario típico de actuación trazamos un proceso típico de
negociación en ebXML.
• Introducción
Situación de partida: Dos organizaciones precisan realizar negocios y deciden implementar el standard
ebXML.
El proceso de negocio e−Business entre dos empresas que desean realizar transacciones comerciales mediante
comercio electrónico basado en el standard ebXML es como describimos a continuación. Para intercambiar
información ambas utilizarán el ebXML Messaging Service como servicio que les resuelve la problemática de
transporte de la información entre ellas.
Fase de implementación
Como sabemos, en el ebXML Repository encontramos una colección de procesos y escenarios de negocio
adecuados para transacciones entre empresas de un determinado sector de la industria así como perfiles
específicos ofertados por las empresas implicadas. En esta fase nuestra empresa decide incorporarse al sistema
ebXML y requiere darse a conocer. Para ello inicialmente pedimos al registro las especificaciones ebXML y
las aprendemos.
Una vez conocemos las especificaciones, implementamos nuestro perfil de negocio ebXML CPP
(Collaboration Protocol profile).
Finalmente solo nos queda publicar nuestro perfil CPP para que seamos visibles en el mundo ebXML y
estemos en disposición de ser descubiertos por otras empresas interesadas en nuestro negocio. El CPP
describe las características soportadas en el proceso, los requisitos obligatorios así como información técnica
ebXMLelección de algoritmos de encriptación, certificados de encriptación y elección del protocolo de
transporte−[1]−.
Fase de búsqueda del perfil de negocio del futuro socio y negociación del pliego de condiciones de la
transacción
En esta fase nuestra empresa solicita al registro información del futuro socio de negocioperfiles y
escenarios−−. Con esta información estamos en buena disposición para entender las capacidades y requisitos
de negocio de la empresa socio tales como el tipo de proceso de negocio en el que está interesado, los
mensajes que deben ser intercambiados, los mecanismos de transporte, la seguridad e integridad del proceso,
etc.
En el mundo real se negocia el pliego de condiciones entre las partes y ebXML no es una excepción. Así, el
siguiente paso que debemos acometer es el ponernos de acuerdo con nuestro socio. Para ello, enviamos un
contrato al socio denominado en ebXML CPA (Collaborative Partner Agreement). El CPA debe reflejar los
perfiles CPP de ambas empresas.
A partir de aquí, negociamos con nuestro socio adaptando el CPA a nuestros procesos e intereses hasta que
llegamos a un contrato definitivo para poder empezar la transacción entre las partes. El CPA contiene la
información para configurar correctamente el software que utiliza cada una de las partes para el intercambio
electrónico de la información[1]. En esta fase es muy aconsejable que el personal clave de negociación de
1
ambas compañías se conozcan en persona para intercambiar impresiones antes de empezar la relación
eBusiness.
Fase de transacción
Ahora ya podemos efectuar transacciones con nuestro socio. El CPA se ha acordado en la fase anterior y las
transacciones se efectuarán de un modo predefinido donde ambas empresas han jugado un rol participativo en
el diseño del intercambio de información útil de negocio. Las transacciones consisten en mensajes ebXML
que son enviados sobre el servicio de mensajería denominado ebMS(ebXML Messaging Service) que el
standard nos ofrece.
• Escenario típico e implementación
Teniendo claro el proceso de transacción podemos ya establecer un escenario típico.
Los actores implicados son las dos empresas que van a establecer relaciones comerciales y el registro ebXML
(ebXML Registry/Repository). Estos actores están conectados mediante una infraestructura con elementos
intermedios de interconexión, de seguridad como firewall y redes.
Para la implementación del servicio ebXML de entre las opciones que nos ofrece el mercado hemos elegido la
plataforma J2EE de Sun Microsystems
La Plataforma J2EE abarca las áreas clave en el desarrollo de e−business:
• Desarrollo de la conectividad con el cliente (client−tier) −applets, aplicaciones, business partners,
web browsers,etc.donde se utiliza el servicio web
• Implementación del servicio web incluyendo la lógica workflow, la lógica de transformación de datos,
la lógica de negocio y la de acceso a los datos. Esta funcionalidad que existe detrás de web service es
la que realiza el trabajo en nombre de los clientes.
• Proporciona solución a la conexión al back−end del sistema , el cual incluye una o más bases de
datos, información existente en la empresa, business partners que publican sus propios servicios web,
y un contexto de almacenamiento compartido para utilizar información a través de diferentes
sistemas.
El entorno J2EE para web service tiene la siguiente estructura:
La conectividad del cliente ebXML: el tipo de cliente es Business Partner. Cuando un socio de negocio hace
una petición a un web service, el recipiente del tipo de documento XML es un Java servlet. El servlet ,objeto
java basado en petición/respuesta, está gestionado por el entorno del container y puede contestar usando
cualquier protocolo (HTTP,FTP,POP,etc.)
En la plataforma J2EE el componente EJB invoca los web service de los socios utilizando los APIs JAX.* que
Java proporciona[3]:
Usa el Java API para registros XML (JAXR) para buscar los CPPs publicados en el ebXML Registry
Usa el Java API para mensajes XML (JAXM) para enviar SOAP o mensajes ebXML al servicio web externo.
Usa el Java API parsing para XML (JAXP) y el Java API binding para transformar datos Java en formato
adecuado XML
En la siguiente figura se muestra el uso de los APIs JAX.* al invocar un business web service
2
III. Trazado del Standard Profile según el modelo GII de ITU en ebXML
Una vez definido y explicado el escenario típico de funcionamiento en ebXML podemos trazar el del standard
profile según el modelo GII
Hemos de hacer algunas consideraciones previas :
• No hemos trazado el standard profile de los elementos intermedios y englobamos en uno el de los tres
actores: las empresas y el registro.
• Los standard profile de las empresas son el mismo y tenemos que distinguir las situaciones de intercambio
con el ebXML Registry donde el protocolo de aplicación es el CPP y la situación de negociación entre
empresas donde el protocolo es el CPA.
• El registro tendrá como protocolo de aplicación el CPP y no tendrá HCIF..
ebXML (Empresa A/B &EbXML Registry)
Nivel
Entidad
funcional
Función de Función de
AF
Aplicación aplicación
Funciones
Middleware
Funciones
Baseware
Tecnologías de
Implantación
Componente EJB
CPP (ebXML Registry <−>
Empresa A)
Protocolo de
aplicación
AP
Programación de
Aplicaciones
API
Control de Servicio SCF
Gestión
MnF
Protocolo
Middleware
MP
Programación
Básica
BPI
Almacenamiento y
SPF
procesado
CPA ( Empresa A <−>
Empresa B), XML
Java API para
CPP/CPA(JSR−157), JAXR
(JSR 93),Servlet API
MSH(abstract service interface)
MSH(messaging service layer y
mapping to various transport
protocols),MIB,Agente SNMP
ebMS (SOAP 1.1),HTTP, FTP,
SMTP,MIME package
Llamadas al sistema,XTI
Java API:JDBC, JAXM
(JSR−67)−JAXP,JAXB
JVM
Sun Solaris
(ebXML Registry)
Interfaz
HCIF
Hombre−Máquina
Protocolos
NF
Baseware
Microsoft Windows 9x/NT
UDP,TCP 802.2(LLC)
IP 802.3 MAC
10 BASE T
3
ARP
Funciones Baseware
Network Function(NF): Aquí incluimos aquellas funciones de transporte y control entre entidades en
localizaciones separadas en la GII
Interfaz Hombre−Máquina(HCIF): En la fase de implementación y negociación precisamos de interfaz donde
pedir los modelos de negocio del sector y del partner de interés y reflejar el feedback entre las
empresas(proceso asíncrono).
Almacenamiento y procesado (SPF): En las entidades lógicas que ejecutan componentes middleware y de
aplicación y almacenan información tenemos la JVM .y una Sun Solaris. En el estándar, como hemos visto,
define el ebXML Registry donde se almacenan los BPSS y CPP. Lo incluimos entre paréntesis por ser un
actor propio del escenario típico.
Funciones middleware
Protocolo Middleware(MP): El standard define el ebXML Message Service. El ebMS proporciona el camino
standard de comunicación para intercambiar información del proceso de negocio entre empresas. El servicio
proporciona funciones de seguridad que incluyen identificación, autenticación,autorización, privacidad,
mensajes firmados, no repudio y loggin.
El mensaje está compuesto de dos estructuras de información: una cabecera que se utiliza para routing y
entrega de los mensajes, una parte de payload usada para la comunicación entre las empresas. El servicio
proporciona un camino de intercambio de información B2B en el payload de una forma fiable y segura..
La parte payload puede no ser un documento XML(por ejemplo, una información para una transacción EDI).
La información del Payload puede ser una concatenación de documentos de negocio XML o de otro tipo de
formato((imágenes binarias, información de negocio, etc) Con ebMS enrutamos el payload correctamente al
interior de la aplicación. Así , el mensaje tiene un protocolo envoltorio de comunicación
exterior(outer−communication protocol) el cual es específico para el protocolo de transporte y un protocolo
envoltorio independiente para el mensaje. El mensaje ya envuelto es empaquetado con MIME(Context
type:multipart).
El servicio consiste en tres partes lógicas
El abstract service interface: que incluye la funcionalidad para enviar y recibir, notificar y preguntar.
La messanging service layer controla las reglas de funcionamiento del negocio usando el CPA. Incluye
seguridad y funciones para asegurar la fiabilidad del mensaje. Cualquier violación de las reglas del CPA
provoca un error en el sistema de intercambio.
El mapping to various transport protocols incluye SMTP,HTTP y FTP. El servicio de mensaje define
formatos para todos los mensajes a través de componentes distribuidos, incluyendo el registro y las
aplicaciones de usuario. No pone restricciones acerca del contenido del payload Soporta notificaciones de ida
, de petición/respuesta y ambas pueden ser síncronas o asíncronas. También soporta secuencias de payloads
en los casos donde existe multiplicidad de mensajes intercambiados.
MSH
4
Para enviar y recibir mensajes ebXML es necesario el manejador MSH (ebXML Message Handler). Las
principales funcionalidades del MSH son el envío de mensajes, asegurar su integridad, seguridad(a varios
niveles−−tanto a nivel de mensaje como de transporte−−). El mensajeado (envío y recepción) está basado en
SOAP con accesorios o funciones de mejora(SOAP with attachment) sobre cualquier protocolo de
transporte(SMTP, HTTP ,FTP),persistencia( para monitorizar y auditar ), etc. Cualquier MSH es capaz de
proporcionar el protocolo de transporte deseado, capacitar seguridad, aplicar los algoritmos de encriptación
acordados, etc. Como ya comentamos en la primera parte del documento, una vez se ha llegado a un acuerdo
al final del CPA , ambas partes obtienen una copia del CPA. El CPA se instala entonces en el MSH. En el
caso de realizar varias negociaciones el MSH gestiona el mensaje con el CPA correspondiente a cada negocio.
Gestión(MnF): Aquí incluimos la gestión de los protocolos de transporte y el MSH con las partes lógicas del
servicio messaging service layer y mapping to various transport protocols.
Control del servicio(SCF):Nuevamente incluimos aquí el MSH aunque en este caso le asociamos la parte
lógica de abstract service interface que proporciona el control de la interacción en ebMS.
Programación básica: (BPI) Como JAXM actúa sobre SOAP: las interfaces lógicas entre las funciones
middleware y las baseware son las siguientes :XTI, llamadas al sistema, y los siguientes APIs de Java:
JAXM(JSR 67):Messaging
JAXP(Para procesado XML −JSR05)
JAXB((Java API for XML databinding,JSR 31)
Función de aplicación
Función de aplicación(AF): Como hemos comentado en la implementación de ebXML, en J2EE la función de
aplicación está modelada por un objeto componente EJB el cual recibe las peticiones vía servlet , consulta el
registro , envía la información al servicio middleware ebMS y dirige el parseado.
Protocolo de aplicación: El protocolo de aplicación depende de si la comunicación es entre empresa y registro
o entre empresa y empresa. En el primer caso es el CPP y en el segundo el CPP.. También incluimos XML
como protocolo básico en aplicaciones Web service.
Programación de aplicaciones (API): Aquí Java[2] nos ofrece su API específico para servlets , para obtener
información y gestionar los CPPs en el Registry JAXR( JSR 93) y el Java API para implementar ebXML (JSR
157).
IV. Web Service de W3C vs ebXML de OASIS
En este punto ya estamos en disposición de realizar una comparativa basada en el standard profile trazado del
escenario típico ebXML con el de Web Service de W3C
Para cada función del modelo GII vamos a destacar las diferencias más significativas.
Función de aplicación
En la función de aplicación destacamos 2 aspectos :
Los 2 modos de usar XML: en Web service W3C para ordenar los argumentos en una llamada a
procedimiento remoto(RPC) y usar XML para crear proceso de negocio. Lo que tenemos claro es que un B2B
5
document no es una RPC( los procesos de negocio requieren una comunicación asíncrona antes que la
síncrona y requiere funcionalidades obligadas de encriptación, no repudio, firma digital,etc.)
El protocolo en W3C es XML. XML no es efectivo para empaquetar datos binarios( documentos XML y
posee codificación especial para empaquetar código binario). Para documentos B2B es óptimo MIME ya que
empaqueta cualquier formato de datos (ebXML empaqueta con MIME). En ebXML con los protocolos
CPP/CPA logramos ajustar cada relación e−Business en un proceso óptimo de transacción entre las socios .
Estos aspectos nos indican que Web service W3C no es adecuado para transacciones B2B. El origen de
ebXML es el B2B. Extraemos de esta forma las relaciones :
Web Service− Departamento empresarial− Intranet
ebXML− Socio B2B Extranet
Funciones middleware
En las funciones middleware la principal diferencia es el protocolo middleware
En Web Service de W3C es SOAP y en ebXML es ebMS.
SOAP vs. ebMS
Simply Object Access Protocol (SOAP), el equivalente del RPC (Remote procedure Call) basado en Web
utilizado en comunicaciones servidor a servidor, utiliza XML para el control sintáctico y formato del mensaje
a través de Internet. La seguridad viene proporcionada por mecanismos shttp, firewall y filtrado por IP. En el
protocolo se asume un solo servidor SOAP el cual no incluye ninguna extensión para soportar mecanismos
sintácticos derivados de XML que proporcionen modelos de negocio como es el caso de ebXML. .Como ya
conocemos ebMS hemos destacamos sus características principales comparándolas con las de SOAP mediante
la siguiente tabla
.
capacidad
Protocolo robusto y fiable
Control empaquetado
Estructura del mensaje
Envelope validatión
Firma digital
Encriptación soportada en mensaje
Encriptación soportada en payload
Control de aplicación back−end
SOAP
TCP/IP
Basado en XML
XML+DTD Schema
Control limitado vía UDDI
NO SOPORTADO
NO
Con transmisión SSL
NO
ebMs
TCP/IP SMTP
XML.MIME+attachments
XML+business templates
Total validación con CPA
Soportado por certificados XML
SI
SI
XML mapping+ACK
Observando la tabla nos afianzamos en la opinión de no utilizar web service en B2B y las relación
anteriormente expuesta se refuerza.
Respecto a BPI tenemos que destacar que la diferencia entre JAXM y JAX/RPC(aunque en el standard
aparecen en funciones distintas en J2EE están en la misma capa de programación) es análoga a la diferencia
entre MOM (message oriented middleware) y RPCs. JAMX esta equipado a través de aplicaciones tipo MOM
mientras que JAX/RPC está diseñado específicamente para RPC.
6
Funciones baseware
En las funciones de red observamos la orientación Intranet de Web Service de W3C y la extranet de ebXML.
Como explicamos en el standard, aparece interfaz HCIF debido al proceso asíncrono de la negociación .
Finalmente destacamos las diferencias en el almacenamiento. Web service utiliza registro UDDI mientras que
ebXML utiliza un registry/repository. La diferencia entre un registro y un repositorio es la siguiente:
Un registro almacena meta−datos acerca de objetos del repository y las operaciones que puede efectuar son
del tipo(submit, manage,search,etc..),
Un repository:contiene CONTENIDO(objetos), CPA/CPP, BPSS y no tiene equivalente en UDDI(los tmodels
son referencias los documentos WSDL pueden estar almacenados en cualquier lugar). Observamos así la
distinta finalidad de UDDI y ebXML: ebXML está orientado a tener contenido de gestión que fue diseñado,
almacenado y gestionado por una red de parámetros de comercio electrónicos establecidos por las necesidades
sectoriales industriales estableciendo sus BPSS. UDDI fue diseñado para gestionar metadatos asociados a un
servicio web.
V. Conclusiones
Como conclusión extraemos que la relación que observamos en la comparativa se ha afianzado en todas las
funciones del standard profile. Para implementar una colaboración B2B debemos de utilizar el standard
ebXML En transacciones la flexibilidad, seguridad, fiabilidad, confiabilidad, integridad en las relaciones son
una base para llegar a un acuerdo y el estándar ebXML nos ofrece ese marco cosa que Web service de W3C
no. La gran potencialidad estriba en la abstracción y la seguridad que ofrece. La abstracción de datos(BPSS)
en el aspecto le da una exclusividad a medida a la negociación y la seguridad porque proporciona el manto
adecuado para que ambas partes del negocio puedan sentarse a negociar. En cuanto a la implementación , en
Sun Microsystems han hecho una apuesta muy fuerte por ebXML ofreciendo a los desarrolladores los APIs
necesarios. De hecho muchas iniciativas de ebXML están utilizando Java.
En este contexto todo parece indicar que se va imponer como standard global.
VI. Referencias
[1] Eric Chiu. EbXML Simplified−A guide to the new standard for Global E−Commerce.John
Wiley&Sons,Inc.2002
[2] Sang Shin,ebXML What is ebXML? Why ebXML?,Sun microsystems
(http://www.javapassion.com/webservices/ebXML4.pdf, visitado 30/6/2004)
[3] (http://www.cascadetg.com/downloads/XMLJava.pdf, visitado 25/6/2004)
Cada empresa debe adaptar su perfil de negocio a un lenguaje entendible para el resto de las empresas. Esa
semántica entendible la extrae de las especificaciones que el ebXML Registry/Repository le proporciona
Denominamos socio de negocio al cliente o proveedor con quien efectuamos la transacción
Firewall
Red Privada A
Red Privada B
7
Firewall
Red de Telecomunicación
Firewall
Empresa A
(ebXML implementado)
Empresa B
(ebXML implementado)
ebXML
Registry/Repository
Servlets
JSP
EJBs
Business Partner
Applets, aplicaciones
Web browser
Context
Repository
Bases de datos
Sistemas ERP
ebXML
registry
Conectores
firewall
CLIENT TIER
BACK−END SYSTEMS
WEB SERVICE CONTAINER
8
ebXML
ebXML
JAXM
EJB
(Session Bean)
Servlets
JAXP,JAXB
JAXR
Business Partner
ebXML
registry
Petición cliente
2.Localiza el servicio y su descripción CPP
7.Transformación XML
3.Resultado de la petición ebXML
6.Respuesta recibida
1.Registro de CPP en el Repository
4.XML/HTTP/.
5.XML/HTTP
firewall
CONTAINER
CONTAINER
9
Documentos relacionados
Descargar