RE: [ebxml-cppa] RE: [ebxml-msg] RE: [ebxml-cppa] RE: [ebxml-msg] HL7 ORG: Fw: Issues with Web services transport

From
Pim van der Eijk <>
Date
2007-01-17T19:41:48+00:00
ID
011301c73a6f$8081a770$9600000a@SonyVaio
Thread
RE: [ebxml-cppa] RE: [ebxml-msg] RE: [ebxml-cppa] RE: [ebxml-msg] HL7 ORG: Fw: Issues with Web services transport
Hello,

 

Some thoughts on intermediaries. 

 

The CPA is about configurations for business partners, 
so there should be CPAs with "intermediaries" if those are organization that 
provide added business semantic value, i.e. if they are business 
partners. Examples:  market places or publish-subscribe services 
(such as the emergency management TC is defining in the CAP protocol). 
This could be expressed by an ebBP multiparty 
business collaboration involving (at least) three partner 
roles and (at least) two sets of BTAs and (at least) two corresponding 
CPAs. The intermediary has a PartyId. From the ebMS point of view this 
is not different from a peer-to-peer connection.  The CPAs would 
also be regular CPAs. No additional functionality to be standardized or 
supported in products.

 

If an intermediary has some technical function value 
only, it is not a party in any business sense. There would be no role for 
the intermediary at ebBP level.  Examples:  simple store-and-forward 
re-routing intermediaries or for supporting functions like logging, time 
stamping or ebBP choreography observer intermediaries. Perhaps also 
technical functions like encrypting, signing/sealing. At least some of 
these intermediaries would need to have at least some understanding of ebXML 
headers (beyond SOAP intermediaries or HTTP proxies). 

 

EbXML technical intermediaries would not need to 
have any PartyId.  There would need to be an end-to-end CPA for each flow, 
but all the next-hop related features (URL, TLS client 
and server certificates) are determined by the intermediary rather than the 
partner.  Commercial-off-the-shelf ebMS 2.0 products that support CPA 
2.0 can be "tricked" to support this model today and easily if both partners 
load slightly different CPAs (with these next-hop parameters of the trading 
partner replaced by the parameters of the intermediary).  

 

The (technical) intermediary needs to know, minimally, 
for each connected partner, how to map the PartyID to a URL and its transport 
security features. In CPA, different actions (from different partners, CPAIds) 
can be mapped to different URLs and even different security features such as 
certificates.  A reasonable simplification for the technical intermediary 
seems to be to use a single URL and transport certificates for all 
traffic from the intermediary.  There are various commercial and 
custom ebXML Messaging v2.0 products that support this model today in production 
systems. 

 

How should the intermediary handle reliability 
and SyncReplyMode? 

For reliability, it could:

- never supply ebMS2 nextMSH acknowledgments (the 
simplest one), and pass through any acknowledgments coming (ultimately) from the 
true recipient; or

- always supply them if requested (requires a bit more 
ebMS functionality but not much); or 

- allow configuration whether or not to 
expect/supply them based on From/PartyID, CPAId, To/PartyId, Service/Action. 

For SyncReplyMode, it could:

- assume all messaging is asynchronous, so it can 
always close any connection after storing the incoming message for 
transmission;

- be configurable to be either asynchronous or 
synchronous, for acknowledgments, signals and/or responses, based on 
From/PartyID, CPAId, To/PartyId, Service/Action. It this case it would need to 
know how long to keep connections open and have more complex error 
handling.

In both cases, all options other than the 
first requires a configuration mechanisms potentially as complex as CPA 
(for all pairs of trading partners and other intermediaries using the 
intermediary). At least my experience suggests it is reasonable to 
simplify this to the simplest solution. Again, there are various products 
that support this today.

 

To summarize, with technical (non-business partner) 
intermediaries regular CPAs can be used end-to-end, except that their "next 
hop" related information needs to be tweaked to support the intermediary. 
CPA could introduce a native "intermediary" concept, but the business case is 
not very strong.  Intermediary configuration can be (and is) simplified to 
quite simple mechanisms that are only dependent on connected trading partner, 
not on the ultimate partner or business process related 
parameters.

 

Pim

 

N.B. The above uses some ebMS2/CPA2 jargon for 
SyncReplyMode which may or may not map to 
ebMS3.

 

Pim van der Eijk

OASIS European 
Representative

Email: 

Mobile: +31 6 
22502011

OASIS Symposium: 
"eBusiness and Open Standards:
Understanding the Facts, Fiction, and 
Future"
15-18 April 2007 San Diego, CA USA
http://www.oasis-open.org/events/symposium/

 

From: David RR Webber (XML) 
[mailto:] 
Sent: 17 January 2007 15:52
To: 
Durand,Jacques R.
Cc: ; Dale Moberg; 

Subject: [ebxml-cppa] RE: [ebxml-msg] 
RE: [ebxml-cppa] RE: [ebxml-msg] HL7 ORG: Fw: Issues with Web services 
transport

Dale / Jacques,

 

Yes - this is all good.  

 

I did look at the original postings and outcomes from Chris' Ferris 
deliberations on all this back in 2000/2001 - and the issue with encrypted 
payloads with digital signatures.

 

So the v2.x does have some support for intermediary delivery by using the 
CPA - and what I'm suggesting is a very simple base case - with limited 
handling derived from the partner ID and message type checking only - and then 
onward routing to explicit endpoint ports accordingly.  So the intermediary 
can acts as an aggregator - and then drop deliver to exact locations based on 
ID/type and the CPA between the aggregator and the external partner.

 

Anyway - this all sounds encouraging.  What I'll do is report back and 
ask them to review the deliberations to this point - and then we can look at 
specific use cases with them and review those together.  Seems like we 
should be able to provide a base implementation model to handle 80:20 processing 
for them to at least get started.

 

Thanks, DW

"The way to be is to do" - Confucius (551-472 
B.C.)

-------- 
  Original Message --------
Subject: [ebxml-msg] RE: [ebxml-cppa] RE: 
  [ebxml-msg] HL7 ORG: Fw:
Issues with Web services transport
From: 
  "Durand, Jacques R." <>
Date: Tue, January 16, 
  2007 11:44 pm
To: "Dale Moberg" <>, 
  <>,
<>
Cc: 
  <>

  

  

  
>Jacques’s case can be construed as a 
  termination of the ebMS message and then followed by an internal integration 
  using SOAP. This 

  
>functionality is add-on functionality of a 
  MSH (which is almost always found in real implementations of a 
  MSH).

  
 

  
Right - this is a case of an "ultimate MSH" still 
  acting as SOAP intermediary when there are other SOAP nodes behind that are 
  not supposed to understand ebMS (e.g. WS endpoints). So still a simple 
  case w/r to CPA (no MSH intermediary per say) as I guess the CPA would not 
  apply to these ultimate SOAP nodes (correct me, 
Dale)

  
I have not mentioned the other way to deal with the 
  HL7 application-level intermediation, which is to use an MSH as intermediary 
  forwarding to another MSH. We are gathering reqs for these scenarios which 
  clearly will lead to introducing a new messaging role (not in core V3) in the 
  messaging model - e.g. "intermediating" in addition to sending and receiving. 
  It appears that a CPA would be needed for such an 
  intermediary.

  

  
Jacques

  

  
  From: Dale Moberg 
  [mailto:] 
Sent: Tuesday, January 16, 2007 7:56 
  PM
To: ; Durand, Jacques R.; 
  
Cc: 
  
Subject: RE: [ebxml-cppa] RE: 
  [ebxml-msg] HL7 ORG: Fw: Issues with Web services 
  transport

  

  

  
Hi 
  David,

  

  
If the forwarding and 
  routing amount to distinct ebXML conversations, then the situation is really 
  two ebXML messages between two pairs of participants, call them A and B and B 
  and C. Then CPAs exist for each of the two 
  conversations.

  

  
If there are 
  additional requirements (such as A’s signature has to be transferred to C), 
  then WSS would allow a lot of new combinations in ebMS 3 that are not 
  mentioned in ebMS 2.0. But CPP/CPA are still between the source and 
  destination parties of an ebMS messaging 
  conversation.

  

  
So far ebMS 3.0 has 
  not specified exactly what to do with SOAP intermediaries. Nor is there 
  agreement as to whether there is a need for ebXML intermediaries with 
  distinctive behavior. You can always have SOAP intermediaries, but it is not 
  clear that there will be specific ebMS MEPs involving them. I think we have 
  some proposed requirements to consider in this area but we have deferred 
  consideration until we get some core ebMS 3.0 profiles 
  completed.

  

  
Jacques’s case can be 
  construed as a termination of the ebMS message and then followed by an 
  internal integration using SOAP. This functionality is add-on functionality of 
  a MSH (which is almost always found in real implementations of a 
  MSH).

  

  
Dale

  

  

  

  
  

  
From: David 
  RR Webber [mailto:] 
Sent: Tuesday, January 16, 2007 7:23 
  PM
To: 'Durand, Jacques R.'; 
  
Cc: 
  
Subject: [ebxml-cppa] RE: [ebxml-msg] HL7 
  ORG: Fw: Issues with Web services 
  transport

  

  
Jacques,

  

  
This most 
  helpful.  I believe your answers goes a long way to addressing this for 
  IHE/XDS.

  

  
One further 
  question before I forward this to them.

  

  
At NIH we are 
  using multiple CPAs in situations where forwarding and routing is occurring – 
  therefore – the intermediary has a CPA in place between the originator and 
  themselves as well as the CPA between the recipient and NIH.  Clearly 
  this allows for additional controls and aspects about the transport to be 
  contained in these additional CPA(s) and then accessed by CPAid in the 
  envelope.  

  

  
Does this 
  potentially offer additional configuration options for the intermediary?  
  My sense is probably “Yes”?

  

  
Thanks, 
  DW

  

  

  

  
From: 
  Durand, Jacques R. [mailto:] 
Sent: Tuesday, January 16, 2007 4:53 
  PM
To: David RR Webber (XML); 
  
Cc: 
  
Subject: RE: [ebxml-msg] HL7 ORG: Fw: 
  Issues with Web services transport

  

  
The document is 
  interesting as it clearly raises the issue of application-level intermediation 
  (contrasting the "service application" with the "worker applications"), for 
  which the SOAP model is only a foundation - and a simplistic one w/r to 
  routing - yet one that should be leveraged.

  
It shows the need to 
  represent and process differently what we could call "application 
  meta-data"  and application data, the former being intended for the 
  intermediary (more horizontal SOAP headers, e.g. WSA, are probably too 
  low-level here).

  
An analogy could 
  be the use of "topics" in the publish-subscribe 
  model.

  

  
> Does anything in ebMS V3.0 
  mitigate this?

  

  
So I'd say that ebMS3 
  does (much) better than ebMS2 on this. Both distinguish app meta-data in form 
  of business header elements - including payload manifest - distinct from 
  payload parts, helping an (unspecified)  forwarding function. But when 
  the "worker application"  is wrapped as a Web service deployed on the 
  back-end (as it typically would in an SOA model) the ebMS V3 model is much 
  friendlier to the needed conversion into a service invocation: in V3 the ebMS 
  header being just a SOAP header bloc like any, and leaving the SOAP body free 
  for business payload, can be stripped from the SOAP message by the MSH acting 
  as intermediary. What remains can just be a plain Web service invocation, 
  ready as is to forward (you would never guess it has been an ebMS message...). 
  We have prototyped this at Fujitsu. One issue with ebMS2 is the SOAP body used 
  by the ebMS header, forcing payloads in attachments, and hard to deal 
  with when using end-to-end security (with V3, you could even have 
  security headers that the MSH would not touch,if intended to ultimate 
  destination - V3 Part 2 will be more explicit on this). 
  

  

  
The paper also makes 
  a very sound observation regarding cases where the application needs to know 
  authentication credentials as context to its processing ("is this request to 
  this service allowed for this type of client?"). You typically want to deal 
  with this before the request hits the application service or server 
  supporting it, yet this kind of application-level authorization (which is 
  closer to access control) is out of infrastructure scope in the 
  current Web service security model (WS-Security) - and current WSS 
  implementations do not seem to facilitate this. Clearly the application-level 
  intermediation pattern is key to supporting this. I believe a decent support 
  has been proposed in V3 in the "message authorization" section which still 
  leverages WS-Security as much as possible.

  

  
Jacques

  

  

  
  

  
From: David 
  RR Webber (XML) [mailto:] 
Sent: Thursday, January 11, 2007 7:51 
  AM
To: ebxml-cppa
Cc: 
  
Subject: [ebxml-msg] HL7 ORG: Fw: Issues 
  with Web services transport
Importance: 
  High

  

  
Does 
  ebXML CPA address some of these issues?  I believe it 
  might.

  

  

  

  
Could 
  CPA's between participants provide the missing information - or enough for 
  common uses?

  

  

  

  
Does 
  anything in ebMS V3.0 mitigate this?

  

  

  

  
I also 
  think that the idea we've been working on in BCM/ebSOA/BP of a pan-ebxml 
  context mechanism - could also be a next peice - so a shared context could be 
  retained across participants - that summarizes the salient information needed 
  to deliver correctly.

  

  

  

  
Please 
  let me know so I can reply back the HL7 list with our 
  considerations?

  

  

  

  
I'm 
  seeing this notion of an Uber-WS infrastructure gaining ground - so you call 
  that Uber-API - and then delivery occurs in the dialect for a 
  partner.

  

  

  

  
Of 
  course I beleive ebXML provides a B2B superset here that plain WSDL clearly is 
  not able to match.

  

  

  

  
Thanks, 
  DW

"The way to be is to do" - Confucius (551-472 
  B.C.)

  

  
    

    

    
To: 

  
    

    

    
************************************************
To access the Archives of this or other lists or change 
    your list settings and information, go to: http: 
    //www.hl7.org/listservice(See attached file: Issues with Web Services as a 
    Message Transport Dec 11 2006 R1.pdf)