OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-dev message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]

Subject: Response to Damian

  Funny - this never got out.

-------- Original Message --------
Subject: Warning: could not send message for past 2 hours
Date: Fri, 20 Aug 2004 17:34:52 -0700 (PDT)
From: Mail Delivery Subsystem <MAILER-DAEMON@smtp-relay-7.sea.adobe.com>
To: dnickull@adobe.com

    **      THIS IS A WARNING MESSAGE ONLY      **

The original message was received at Fri, 20 Aug 2004 14:59:31 -0700 (PDT)
from inner-relay-1 []

   ----- Transcript of session follows -----
,,,,... Deferred: Connection reset by outbounds6.obsmtp.com
Warning: message still undelivered after 2 hours
Will keep trying until message is 5 days old

Senior Standards Strategist
Adobe Systems, Inc.

Reporting-MTA: dns; smtp-relay-7.sea.adobe.com
Arrival-Date: Fri, 20 Aug 2004 14:59:31 -0700 (PDT)

Final-Recipient: RFC822; regrep@lists.oasis-open.org
Action: delayed
Status: 4.2.0
Last-Attempt-Date: Fri, 20 Aug 2004 17:34:52 -0700 (PDT)
Will-Retry-Until: Wed, 25 Aug 2004 14:59:31 -0700 (PDT)

Final-Recipient: RFC822; kathryn.r.breininger@boeing.com
Action: delayed
Status: 4.2.0
Last-Attempt-Date: Fri, 20 Aug 2004 17:34:52 -0700 (PDT)
Will-Retry-Until: Wed, 25 Aug 2004 14:59:31 -0700 (PDT)

Final-Recipient: RFC822; dmoberg@cyclonecommerce.com
Action: delayed
Status: 4.2.0
Last-Attempt-Date: Fri, 20 Aug 2004 17:34:52 -0700 (PDT)
Will-Retry-Until: Wed, 25 Aug 2004 14:59:31 -0700 (PDT)

Final-Recipient: RFC822; Monica.Martin@Sun.COM
Action: delayed
Status: 4.2.0
Last-Attempt-Date: Fri, 20 Aug 2004 17:34:52 -0700 (PDT)
Will-Retry-Until: Wed, 25 Aug 2004 14:59:31 -0700 (PDT)

Final-Recipient: RFC822; Damian.Rzepczyk@comarch.pl
Action: delayed
Status: 4.2.0
Last-Attempt-Date: Fri, 20 Aug 2004 17:34:52 -0700 (PDT)
Will-Retry-Until: Wed, 25 Aug 2004 14:59:31 -0700 (PDT)

--- Begin Message ---
Hello Damian:

I will try to answer your questions inline.

>> Hi
>> My name is Damian Rzepczyk and I live in Poland.
>> I got your email address from www.ebxml.org <http://www.ebxml.org> 
>> from document ebXML Registry Information Model v2.0. (ebRIM.pdf).
>> There is written you are Team Leader. That's why I decide to write to 
>> you.
>> Now I am working in project connected to ebXML. We want to build 
>> ebXML Registry and Repository to store:
>> - business process models
>> - electronic documents schema
>> - Collaboration Protocol Profile CPP
>> My task is to design how to store the CPP i our Repository.
>> So I would ask you some questions.
All of the objects you describe are basically acceptable to place into 
(or reference from) an ebXML Registry-Repository.  The registry itself 
is agnostic to the object.  The information kept about an object is 
determined by the registry metadata model (called Registry Information 
Model or RIM).  Things like ObjectName and ObjectType can be set to 
whatever the objects owner wants.  It is constrained in some 
implementations by having the registry administrator provide a 
pre-determined set of names and obejct types for each registry object.

CPP, CPA, BPSS, WSDL are all XML artifacts.  The registry does not 
realyl care much more than that.

>> One party of this project is GUI WWW interface.
>> We would like to build interface which allow user to enter and edit
>> CPP in the web browser (for example MS Internet Explorer).
>> The problem is that we don't know how to do web page that allow enter
>> and edit CPP. We don't know how to organize that.
There are really 3 different task you describe.  Task one is the ability 
to create a CPP instance by using a GUI.  Task 2 is having the GUI tool 
submit the finished CPP to a registry.  The third task is a 
functionality of the GUI tool to connect to a registry and get() a CPP 
to render, then allow the user to modify it and place it back into the 

There are a lot of dependencies between these tasks, most to do with 
permissions.  Anyone can make a simple GUI (probably a form) to allow a 
person to create a CPP instance.  If you want to then have the same tool 
store it into a registry, it has to have the appropriate permissions to 
store the object into the registry.  It also has to have the ability to 
present a user a GUi to query them for such things as the classification 
of the object, associations, object name etc etc.

The Registry Services Specification discusses the interface you must 
build your tool to in order to facilitate this functionality.  Likewise, 
it also tells you how to later get() a CPP from the registry to modify 
and resubmit.  This would not be a trivial task IMO.

I woudl recommend cleanly separating the tasks.  Use the CPP GUi to 
create or modify existing CPP instances and just save them to your 
locate file system.  Use each registry's GUI to enter the CPP into a 
registry and retrieve copies of the CPP.  

If you use an O/S like windows, when you get() an object form the 
registry, the mimeType of the object will generate an event that goes to 
the Windows Registry and correlates an action (such as using the CPP 
tool to open the CP instance).  

>> After review the ebXML Collaboration Protocol Profile and Agreement v
>> 2.0 we wonder if build Web CPP editor is possible. There are many
>> optional tags in CPP, some tags can appear zero or more times.
>> Do you know some tools for editing CPP?
>> Do you have any idea how CPP editor could look like?
Yes - my previous company had a fully functional CPP Wizard.  We 
designed and built it using Java (swing for presentation).  It was not 
overly difficult but there are a lot of potential gotchas.

>> The other thing I would like to ask is who creates CPP? I mean which
>> person in the enterprise? If the main manager could create CPP for him
>> enterprise? Could main manager know things which must be entered to
>> CPP? Or that should be person who know software and hardware in the
>> enterprise? For example software engineer, which knows
>> TransportProtocol, EndPoint, Security, etc.
It would have to be an actor who knows all the questions you would have 
to answer to make a CPP instance.

>> I asking that question because we would like to create some online
>> help for our CPP editor and we would like know how to explain thing
>> for end user.
>> The next question is how store CPP in SQL database.
>> There are 2 solutions:
>> 1. Store whole CPP XML file in one column in table.
I think this is probably dependent upon your contemplated use of the 
CPP.  If you are going to use individual tokens from a CPP to configure 
something (a Business process execution or a message exchange) it may be 
more effective to simply have a reader class to grab the tokens you 
need.  You can use JDOM and simply do a


I woudl adovocate keeping any classes specific to the CPP model to the 
outside of a core application.  If you are going to be developing a high 
volume ebXML messaging server, it may be better to read and tokenize all 
the variables into a Database and work with them in an internal data 
format.  This is likely less expensive than having hundreds of CPP's 
loaded into virtual memory and walking DOM trees to get tokens.

>> 2. Divide the CPP on tags, and store CPP in few tables. For example 
>> divide CPP on PartyInfo, SimplePart, Packaking, Signature. Then 
>> divide PartyInfo, divide SimplePart, and so on.
>> Could you tell me which solutions is better?
That is dependent upon your use cases.  One common way a lot of vendors 
wokred with this is to parse the CPP's and grab the bare minimal set of 
items needed to exchange messages and keep it in a local configuration 
file.  The problem with this is as you builkd higher level functionality 
into your stack, you will end up needing most of the tokens.  Example - 
things like a maximum allowable number of concurrent conversations are 
not needed to send one message, but to constrain a series of messages 
sent to a partner over a long time frame, you may need that.

>> The 1 is very easy for implement. But later is more dificult to edit 
>> that CPP in web browser. The searching is more difficult, too. For 
>> example how to find CPP which have tp:partyName == "Acme"? For all 
>> CPPs stored in repository, parse CPP and check if tag tp:partyName == 
>> "Acme"?
>> The 2 is very complex. But later is easier to do editor in web browser.
>> And searching is easier (SELECT * FROM PartyInfo WHERE partyName = 
>> "ACME" ).
This question is specific to using an SQL query syntax.  I would think 
about how big your product is going to scale in order to determine 
requirements, then works backwards.

>> One more issue. What if the one client digitaly sign CPP, and put 
>> signature to CPP XML in tag tp:Signature. Then client put CPP in our 
>> repository. We divide it and put all values to tables. When second 
>> client want to download the first client CPP, we will get values from 
>> tables, and put to XML. But then the signature won't meet the CPP XML 
>> file :(
>> So if I think properly, we must not divide signed CPP? If we get 
>> signded CPP we must store it in one field in table?
Dale MOberg can probably shed some light on that.

>> Could you help us, and tell us what you think?
>> Or could you pick the person which can answer my questions?
>> Best regards:)
>> Damian Rzepczyk

Senior Standards Strategist
Adobe Systems, Inc.

--- End Message ---

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]

Search: Match: Sort by:
Words: | Help

Powered by eList eXpress LLC