UBL TC Face to Face

When:  Apr 28, 2003
Associated with  UBL Naming and Design Rules SC
Description:

==========
Agenda: Schedule for Face to Face, London: Monday Opening plenary (Lisa will present) Afternoon: Danish Bankers (Stig Korsgaard) - Lisa needs to talk to Stig to set time and date. Discussing the weeks schedule Local vs. Global Tuesday AM: Common Core Components Document PM: Code Lists? finalised?? Context Methodology (overview) (Eduardo) Containership (after 2pm) (Arofan, Gunther) - Would like to invite Tim McGrath and Mike Adcock to attend this section of meeting, ask them when they are available. Namespace and Versioning (overview) Embedded Documentation (overview) Wednesday (We should schedule call in, Eve Maler said she will call in, anybody else?) (7-10am ET noon-3pm UK) AM: Containership PM: more Local vs Global Thursday (We should schedule call in, Eve Maler said she will call in, anybody else?) (7-10am ET noon-3pm UK) AM: edit NDR Doc Subgroup: Context Methodology PM: Gunther's paper on Naming Length and Truncation Rules. PM: edit NDR Doc Friday (Lisa not there) Mark to present Closing NDR Plenary

==========
Minutes: Present: Mavis Cournane, Eduardo Gutentag, Gunther Stuhec, Stig Korsgaard, Mark Crawford, Michael Grimley, Lisa Seaburg. (All UBL) Sung Hyuk Kim, Thomsa Bikeev, Hisano Sugamata, Luc Mouchot, Bernd Boesler (ATG2 representatives) Items for Discussion 1. Discussion of week's schedule 2. Local vs Global LS: Since the last F2F nothing has moved or changed in the NDR document. We need to come up with a list of issues, divide up the work and get it done. Local vs Global has taken alot of our energies and will be a large part of our debate and discussions. EG: Discussions are entrenched and we will not arrive at a decision ourselves. We should send it to the UBL list and vote on it. LS: Arofan Gregory said that he had a few more questions and might change his vote. LS: We do not have quorum but we could have a straw poll. EG: Since this is such a critical issue, therefore it merits being done over emial. MC: One of the reasons we have ATG here is to enter in to a detailed discussion on this issue. They have very strong ideas on this subject. EG: Who is ATG here. Gunther Stuhec, Mark Crawford, Lisa Seaburg, Stig Korsgaard and Arofan Gregory are members of UBL and of ATG. The purpose of a straw poll is an idea on how the positions are divided. MC: Let's take a straw poll. 4 for local, 9 for global. EG: Lisa should lead the discussions. LS: We have two hours today, Wed pm 12-17:00. Eve will call in from 12-2 on Wed to discuss it. In total we have 7 hours of discussion time. MC: We have put together a list of pros and cons from the October F2F. ATG have a list of pros and cons from their March F2F. As a first step we should review those to refresh our minds and give Gunther an opportunity to talk about his paper to set the stage for his discussions. We could recast on Wed combining the pros and cons from the two groups and Gunther's paper. LS: Our initial position was local. EG: Correct, we revised our decision to Global at the Burlington F2F. LS: Let's look at the F2F minutes 1-4 October 2002 UBL NDR SC Meeting. In these minutes we said This is a first cut of our analysis of positives and negatives: Local element characteristics: + Vocabulary can have multiple elements with same name Global element characteristics: + Fragment processing is uncomplicated + Can be reused directly - All elements must have unique names Qualified element characteristics: + Customizers can safely define unqualified elements . Instances can look clean with defaulting Unqualified element characteristics: + *Very* clean, simple instances - Customizers can't safely define unqualified elements - Unusual design choice; in most vocabularies all elems are qualified [Excerpt taken from the Minutes] EG: Back at the F2F in October we saw local elements have one thing that is positive i.e. a vocabulary can have multiple elements with the same name. A global element con is that they must have unique names within the unique namespace. GS: What did we mean by fragment processing? EG: When you have to take something from an instance to put in another instance or something from a schema into another schema EG: For local "Types are required to be re-bound to foreign elements in attempts to reuse individual components of the UBL Library" was another point. GS: I don't see this as a very negative issue for local. EG: for global " Going forward, there is a cost to ensuring that each new element name is unique." I don't really buy that. MC: I do, I think this cost is worth bearing. GS: I see alot of naming collisions if we use global. This is not a tool or perl script issue. It is more generic. The best example is identifier. The global declared element is ID. You have many different identifiers with specific restrictions. Sometimes you have to restrict identifier which is problematic for globally declared elements. The names of the globally declared elements will be very long. From my analysis some databases can't handle these long names. Also for truncation rules they are difficult to write for these long element names. I often truncate object classes. You have globally declared elements that can conflict with other ones. You need an awful lot of exception rules to restrict successfully. MC: Let's now look at the ATG Minutes to see the pros and cons identified. Venetian Blind - Global Types, Local Elements, May be qualified Pros a. Binding reflects OO serialization (.Net, JAVA) b. Supports type reuse c. well accepted d. makes for short tag names Cons a. Does not support element reuse (even if namespace qualified) except indirectly through binding the whole type in which it is declared to an element in the outer schema reuse b. Allows for the same element to be bound to multiple types c. Allows the same element name to be used for multiple semantically non-equivalent elements d. Requres type aware processor to be able to conclude the semantic equivalence of two elements e. Makes reuse of XPath based logic difficult (XSLT and content based logic) Garden of Eden - Global Elements, Globally Declared Types, FullyQualified Pros a. Instance document is semantically unambiguous b. An element in the instance points to the type c. Elements and types are reusable d. Does not require type aware processors e. Makes reuse of XPath based logic easy f. Supports building TBG required library g. Makes mapping between EDIFACT and XML possible at the element level Cons a. Not well known b. Makes for long tag names c. Increases file size d. Does not directly support OO serialization e. Does not support long term direction of IT f. The ability to extend using both type and element can create standardization issues g. Creates many more tag names than venetian blind (some estimates are in the hundreds of thousands) Much discussion on merits/drawbacks of each. Mark had mini meeting with TBG1 and laid out pros and cons of both. Consensus of TBG1 was: ¨ Global elements are preferred over local ¨ Semantic clarity in the instance document without reliance on tools such as XPath is a requirement ¨ The tag names should be harmonized with the CCTS naming conventions ¨ ATG should be delivering a semantically unambiguous glossary of tags [Excerpt taken from ATG Minutes] GS: I will now show my paper. See draft-stuhec-globVloc-02.doc. It shows more pros for the Venetian Blind approach rather than the Garden of Eden. One of my main points is inconsistency of tag names for global elements. MC: How is that a global element issue. Is that a library inconsistency? GS: No it is as a consequence of using globally declared elements. EG: I don't see the relationship. Here you try to design a system with several parts. If you want it to function in the longterm without breakage you would define interfaces and you would not want to integrate other people stuffs. The LCSC defines tag names which interferes with your architecture as they have to be globally unique within the namespace. Gunther's example is where they are inconsistent in their work. MC: Exactly this is a result of inconsistency within LCSC. TB: In system design I am responsible for my part. The system you have is very inter-dependent. EG: How does this problem step from local vs global. GS: If we want to have consistency where you define only one address to be used in the same way. What happens if the address of the organization is different to the party. MC: If you have in place a very rigid harmonization and approval process whose primary responsible is to ensure all the name issues have been resolved in a consistent manner do you still have an issue? GS: The problem is for example sometimes you qualify a specific structure of an ABIE e.g. BuyerContactType and SellerContactType. Sometimes you use Address which is very generic, and another time you are using very qualified and specific names. WE have seen if you are defining very specific, qualified names that makes the schemas huge with lots of redundancy. SK: Something I don't understand. I agree that there is a role for harmonization and for that to take out inconsistency. I do know mark you raised issues of inconsistency. MC: This is a different one. TB: Here you have one thing which is a question of policy that is dependent on people obeying rules. Another question is about a highly inter-dependent system. Agreed there will be harmonization. I am questioning this policy thing. What happens in our organizations is that the XML guys get hit by all the inconsistencies done upstream. EG: I still cannot see in what manner having local elements would prevent you from having inconsistencies. MC: What I hear you saying is that there is inconsistency in the application of CCTS rules. GS: I am saying that local elements would prevent inconsistencies. TB: Venetian Blind would hide all of the inconsistencies and would be very forgiving, however it would not improve anything. GS: No it would positively impact it e.g. BuyerPartyAddressType, SellerPartyAddressType. Defining a new aggregation BuyerParty, you will have for all the same aggregations the same names. If you wanted to define Address within BuyerPartyType you can truncate Address because it is locally defined and refers to BuyerPartyAddressType. The advantage is that you will always have the same tag names in it. EG: But they are from totally different types. For me that is a problem. If you look at it when you are reading the instances it can be very confusing because you have BuyerPartyTypeAddress and SellerPartyTypeAddress and hidden behind is the fact that they are different structures. TB: Does that matter for the machine. EG: No but the purpose of XML is that it is human readable. TB: Being able to parse and validate via the type is very elegant. GS: Truncation is very easy with locally declared elements. One of my customers wants to exchange 20m messages daily. EG: Use ASN1 then. GS: We don't want to do this. MC: If someone wants to do 20m transactions why not use EDI? GS: WE are talking about how we can use XML directly in our systems without mappings. One of the biggest disadvantages of EDI is mappings. EG: This is a different type of mapping. LS: Let's summarize what was discussed so far: Problems with Global - Inconsistency of tag names - Difficult truncation rules - Long names Positives for Global - Reuse elements and stylesheets Problems with Local - Tools must be type aware, stylesheet reuse. - Elements cannot be reused, only types. - no harmonization is done for local elements as there is nothing to harmonize. Positives for Local - Easier to generate tag names. EG: There are many attractive things about local but this was trumped by issues of reusability and it would take a very strong argument to convince me to go back. LS: You would only register your Types if you go local not your elements. GS: You can search the registry for types. MC: But let's say you used a different set of elements for types I have some real problems because they are not registered so you won't get type reuse as well. GS: That is not right. It is not necessary to harmonize the elements. MC: So TBG 17 (harmonization is no longer required How can you tell someone you used the wrong set of local elements. GS: These can be generated automatically from the dictionary entry names. It is not necessary to look at the locally declared elements just the dictionary entry names. MC: In the instance document? I can have 12 different elements called Name with a different meaning. We never agreed that our work documents were only focused on machine processable. They must be human readable as per our original goals. GS: They are human readable. MC: You have yet to give me a technical reason why our accepted solution won't work. TB: It is not about working or nor working. MC: That was our reason for review. We took a formal decisions. MHC: Yes he said it could not be implemented. MC: We have heard lots of "preferred" but I don't see what is not implementable. GS: I talked to Dave Carlson about these ones. The biggest problem is the implementation itself. One of them it does not align to the OO approach. You are defining some Types and some Objects may be based on those types. That is exactly what you are doing in locally defined elements i.e. defining types only and using objects based on those specific types. What we are doing in the Garden of Eden approach is defining elements additionally. It is very hard to do this implementation. Maintenance would have to be done twice. If you define global defined elements you have do maintenance on them and on the type. If you would like to express this in different interfaces in different applications it becomes very difficult. There is no way to represent globally declared elements in Databases you need pseudo-classes as global. This means MC: Why do I need to represent globally declared elements in DBs. GS: If we would like to reuse across applications. TB: Type based schema and instance based tag names are reused which is very high maintenance. People could parse against the instances or the schema. As a standard you would probably prefer to give people one option only. EG: We are only concerned here with schemas. We are counting on UBL conformant tools and to be UBL conformant these tools will have to do certain things in a conformant way. TB: If I am an implementer, you can use any parser but you will need some applications to apply business logic to the document. there are two ways to parse the message in two different ways. You can parse it in the current XPATH way i.e. tag based or you can parse it schema based. The way to do it is ambiguous. GS: I have an example See "Generating ABAP-Objects for SAP development environment" in draft-stuhec-globVloc-02.doc. MC: Is this a production system. GS: Yes. If you need some additional elements you must define pseudo classes that refer to a datatype. MC: If I understand, your argument is there is no way to handle global elements in the database. GS: Not just in our SAP DB. I have done a rationale Rose experiment also and you need to define pseudo classes also. If you generate SAX interface you will always see these pseudo classes and the developer will not know what their purpose is. Additionally, I experimented with Tamino and encountered the same issues. MC: You have stored the Types with all of the elements defined within them so what is the problem. GS: In the database table for example, what happens if the ID of buyer has different characteristics to shipping ID. You need 2 different elements. Tamino DB handles this as follows: If you use local declared elements it puts all the information in to one column but if you define globally the Tamino DB defines an additional row, one is called ShippingID and BuyerID automatically. This means you have different rows so you have to put the information in to two different rows. EG: How is this a problem. GS: This is not the normal way for DBs. You need some manual maintenance you have to group the information manually. You then get in to manual extensions. I am trying to always use the same model in each case. The biggest advantage of XML is that you can use the same model in different applications without transformation/conversions. You can develop your model structure in one environment and port it to another which is very attractive to us. BB: You don't have a separating tier. LM:For me Class is a Type, the Attribute is an element and we want to harmonize the types. It is not necessary to harmonize the attribute. GS: I am saying that I would like to harmonize the elements. LM: If the class is harmonized then so is the attribute. GS: The characteristics are described on different classes/types. If you define a new characteristic you define a new type. Summary of above implementation issues. Gunther experimented with Tamino from Software AG (native XML), SAP system (not native XML compliant), J2EE environment 1.3, Rational Rose and perl developed environment. The results he put forward were: - pseudo classes had to be used for declared elements in every application - additional maintenance has to be done to merge pseudo classes if they express the same information Tomorrow We start with the Common Core Component Types. We will present it and it won't take all morning. This will be led by Gunther. See draft-stuhec-ccc-09.doc. ----------------------------------------------- Mavis Cournane Cognitran Ltd. Co-chair UBL NDR SC

==========
Attendance:

Achieved quorum: false
Counts toward voter eligibility: true

Individual Attendance
  • Members: 14 of 1 (1400%)
  • Voting Members: 0 of 0 (0%) (used for quorum calculation)
Company Attendance
  • Companies: 8 of 1 (800%)
  • Voting Companies: 0 of 0 (0%)

Quorum rule: 51% of voting members