Microsoft DotNet
Joel Meulenberg
joelmeulenberg at yahoo.com
Tue Mar 20 01:07:06 CST 2001
Oh, woops, I forgot the last point I was supposed to make:
So if we are to reach the distributed programming/apps/services utopia
that we all long for, I suspect we will need as our foundation, not
just agreed upon messages (defined with XML DTDs), but also agreed upon
conceptual models.
+Joel
--- Joel Meulenberg <joelmeulenberg at yahoo.com> wrote:
> > The presentation is on Wednesday. Any feedback you could give me
> > before then is appreciated.
>
> Here are some typos I noticed:
>
> Typo on the slide about CLR:
> "...the familiar *drag-and-drog* design time environment of VB..."
>
> "to re-written" -> "or re-written" (?) on slide about CLR -
> continued:
> "Besides changing a check-box, no code has to be changed to
> re-written
> to support the separate platforms."
>
> Typo: "allready" and "build-in" on the "Advantages/Disadvantages"
> slide.
>
>
> Here are some real thoughts:
>
> This paragraph caught my mind:
> <QUOTE>
> XML is just a universal, ASCII database definition lanaguge. It gives
> meaning (indexes, records, fields, etc) to text through the use of
> tags. XML is very good at "object orienting" data; it can be used to
> give a complete description of a service, book, vehicle,etc.
> </QUOTE>
>
> (**Warning: You're about to be subjected to a stump speech.** : ) )
>
> I've seen a lot of similar statements in much of what's been written
> about XML. Many authors suggest that the fruits of XML are better
> than
> their predecessors (e.g.- EDI standards like X12 and EDIFACT or even
> a
> "flat" file with corresponding "file layout" metadata that supplies
> field labels/descriptions). Some even claim that XML-based stuff is
> better because XML documents provide meaning/semantics. In truth,
> XML
> only supplies labels/syntax/grammar - just like its predecessors.
>
> (But XML-based standards are an improvement over previous standards
> in
> that XML is the agreed upon metalanguage for defining the standard
> transaction sets, documents, messages, etc. The preceding standards
> never had an agreed upon metalanguage (as far as I know), but they
> certainly could have.)
>
> But I'm not just saying all this to be picky or critical; I have a
> suggestion... : )
>
> To really get beyond the labels/syntax of XML documents/messages and
> into "meaning", I think we need supporting conceptual data models. A
> conceptual model can be represented as an entity relationship
> diagram,
> a UML class diagram, etc. The model explains the domain of discourse
> -
> i.e.- the thingies we're talkin' about, how the thingies are related,
>
> their functional dependencies, etc. and it provides a framework
> within
> which to begin to understand the meaning of all those labels and
> collections of fields found in XML documents.
>
> Now it may sound like I'm just getting all abstract, theoretical, and
> stuff, so I'll give an example to bring it down to the concrete:
>
> Say you work for a health plan like Priority Health and you've got an
> XML DTD that defines a standard structure for a message for
> transmitting information about members (i.e.- the customers who are
> covered by insurance). Say you want to use it to communicate member
> info from system X (at company A) to system Y (at company B). Now
> let's say that the inventor of that DTD for communicating member info
> defined a "Member ID" field (sort of the identifier) together with a
> bunch of name, address, phone number, etc. fields.
>
> Now the programmer writing the code in system Y to do something with
> these XML-based member info messages looks at the corresponding
> structures in system Y and finds, say, a MEMBER table. Or, wait, no,
> better yet, he finds some kind of API for adding members - it might
> even be based on Microsoft's dotNet. This API expects to receive a
> bunch of member info including a member ID, name, address, phone
> number, etc. From there the system takes care of internalizing the
> member info.
> So the programmer hooks up systems X and Y by feeding the XML-based
> member info messages from system X into system Y using this API.
>
> Or, heck, better yet, lets say that the creators of system X and
> system
> Y "agreed on" using this XML standard for member info messages. So
> we
> can just assume that system Y knows how to consume these messages
> being
> produced by system X.
>
> Somebody gets these two systems talking to each other. System Y
> consumes member info messages from System X, just as advertised.
> Things are working. Everything seems cool.
>
> Things run perfectly for a few days or weeks. Then one day, someone
> runs a report out of system Y and notices all kinds of duplicate
> records for members. The person sees, for example, records like
> this:
>
> 373997744-10 Meulenberg Alana 1475 Capricious Dr. Genocide
> MI
> 366081234-10 Meulenberg Alana 1475 Capricious Dr. Genocide
> MI
>
> What happened?
>
> Some programmers have to "look under the hoods" of systems X and Y to
> see what might be the matter. They find that System X has a "member"
> table. And System Y has a "member" table too. The tables even have
> similar columns. So what's the problem?
>
> Well after a deeper investigation, it turns out there is a semantic
> mismatch between system X and system Y (and maybe even between
> company
> A and company B !).
>
> System X considers a "member" to be a person covered under a
> particular
> contract or policy. Every time a person gets covered under a
> different
> contract, a new "member" record is stored in the MEMBER table. So
> the
> member ID uniquely identifies the combination of a human with some
> coverage contract.
>
> On the other hand, System Y considers a "member" to be an individual
> human being. In system Y, when a person gets covered under a new
> contract/policy, their member ID is simply associated with another
> contract ID. In other words, system Y has a member entity, a
> contract
> entity, and an associative entity for relating members to contracts
> (and vice versa). A member can be covered under many contracts and a
> contract can cover many memebers.
>
> This stuff is kinda painful to describe with words. It's much better
> explained visually with ER diagrams or UML class diagrams.
>
> Hopefully this illustrated the point that XML doesn't really address
> the problem of semantics.
> (And this was just a simple example of semantic mismatch.)
>
> (Matt, you also described XML as a "database definition lanauge".
> Interestinly, the way one would typically define a DTD doesn't
> describe
> what's going on in system Y because system Y has a many-to-many
> relationship between members and contracts. Typically, a DTD could
> call for members to be nested within contracts (sort of a 1-to-many
> relationship from contracts to members). Or it could call for
> contracts to be nested within members (a 1-to-many relationship from
> members to contracts). The truth of the matter -- that there's a
> symmetrical many-to-many relationship between members and contracts
> --
> would be absent from a typical DTD.)
>
>
> Finally, just to support my claim that I'm not spouting off
> dope-induced ideas, the HL7 standards body has a similar notion.
> They
> don't just define HL7 messages ("HL7: Now with purple horseshoes and
> fortified with 100% of the recommended daily allowance of XML!");
> they
> also define a Reference Information Model (i.e.- the "RIM"). Their
> RIM
> provides a framework within which to begin to understand the meaning
> of
> all those labels and collections of fields found in HL7 messages.
> You
> can read about it here:
> http://www.hl7.org/Library/standards.cfm
>
> +Joel
>
>
> __________________________________________________
> Do You Yahoo!?
> Get email at your own domain with Yahoo! Mail.
> http://personal.mail.yahoo.com/
>
__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail.
http://personal.mail.yahoo.com/
More information about the grand-rapids-pm-list
mailing list