- From: James M Snell <jasnell@us.ibm.com>
- Date: Tue, 7 Jan 2003 13:26:52 -0800
- To: Walden Mathews <waldenm@optonline.net>
- Cc: Mark Baker <distobj@acm.org>, Sanjiva Weerawarana <sanjiva@watson.ibm.com>, www-ws-arch@w3.org, www-ws-arch-request@w3.org
Just a few drops of milk left. The question is one of *meaning*, not of *substance*. Of course it's still a cow, but that is only meaningful if I know what a cow is in the first place. Sure, based on whatever the situation may be, I can gather all kinds of relevant information at runtime that can tell me the substance of whatever it is and can use dynamic data structures like JROM or whatever to record that information. But unless I have some type of a priori information about cows all of the information I collect is meaningless because I personally can't do anything meaningful with it. Let's take a more practical example. In an HTML form, why do we distinguish between an <input /> and a <textarea /> ? They are both intended for collecting arbitrary text data of variable length. It's not the *substance* of the tag that is important, it's the *meaning* of the tag. One tag allows us to provide a single line of arbitrary text, the other allows us to provide text that includes line breaks, etc. The browser, conforming to relevant specifications has a priori knowledge of the meaning of an <input /> tag vs. a <textarea /> tag. The browser would never know what to do with those tags given nothing but their substance. Since it the browser understands the differences the tags meaning, it understands exactly what it needs to do when it encounters either of them. Dynamic invocation and late/dynamic binding both require a certain amount of a prior information to assign context to the data and processes that are being dynamically invoked or bound. - James Snell IBM Emerging Technologies jasnell@us.ibm.com (559) 587-1233 (office) (700) 544-9035 (t/l) Programming Web Services With SOAP O'Reilly & Associates, ISBN 0596000952 Have I not commanded you? Be strong and courageous. Do not be terrified, do not be discouraged, for the Lord your God will be with you whereever you go. - Joshua 1:9 Walden Mathews <waldenm@optonline.net> wrote on 01/07/2003 01:03:07 PM: > James, I think you're missing the point. Suppose you encounter some beast > after dark. It moos, so you strongly suspect it's a cow, but you can't see > its > coloring at all. It's still a cow. And now I feel as if I've milked this > example. > Thank you, > Walden > ----- Original Message ----- > From: "James M Snell" <jasnell@us.ibm.com> > To: "Mark Baker" <distobj@acm.org> > Cc: "Sanjiva Weerawarana" <sanjiva@watson.ibm.com>; <www-ws-arch@w3.org>; > <www-ws-arch-request@w3.org> > Sent: Tuesday, January 07, 2003 3:48 PM > Subject: Re: Dynamic invocation vs. late/dynamic binding > > > > > > Of course you can! All you need in order to create an abstraction > > > is commonality. Can't you "meaningfully" treat brown cows and black > > > cows as cows? > > > > Not unless you *first* know: a) what "brown" is, b) what "black" is and c) > > what a "cow" is. But I don't thing that's the point. It's easy to collect > > information about an object at runtime (e.g. what color the cow is, > > whether you're using a square vs. a circle, etc)... it's a completely > > different matter to assign *meaning* to that information. E.g. what does > > it *mean* to get a brown cow vs. a black cow? > > > > - James Snell > > IBM Emerging Technologies > > jasnell@us.ibm.com > > (559) 587-1233 (office) > > (700) 544-9035 (t/l) > > Programming Web Services With SOAP > > O'Reilly & Associates, ISBN 0596000952 > > > > Have I not commanded you? Be strong and courageous. > > Do not be terrified, do not be discouraged, for the Lord your > > God will be with you whereever you go. - Joshua 1:9 > > > > www-ws-arch-request@w3.org wrote on 01/07/2003 12:30:16 PM: > > > > > On Wed, Jan 08, 2003 at 01:21:22AM +0600, Sanjiva Weerawarana wrote: > > > > > Late/dynamic binding means being able to manipulate squares and > > circles > > > > > with the Shape interface. Dynamic invocation means being able to > > > > > construct, for example, a "displaySquare" message without > > compile-time > > > > > knowledge of the full Square interface. > > > > > > > > That's fine - WSIF can handle that using something called JROM we > > > > created (see alphaWorks again) to represent arbitrary schema typed > > > > values. > > > > > > > > Clearly, in the absence of magic the information about the interface > > > > (namely the data type defs) is needed at runtime at least (possibly > > > > using xsi:type), so once that's available you're on easy street. > > > > > That seems to be something very different than what I'm talking about. > > > Sorry, I don't see how it relates. > > > > > > > The former enables a client written to access Shape objects, to > > later > > > > > access triangles, ovals, hexagons, you name it. The latter doesn't. > > > > > > > > I guess we're back to the REST vs. WS debate; your program cannot > > > > manipulate those shapes in a meaningful way without an understanding > > > > of what an oval is vs. a square. > > > > > Of course you can! All you need in order to create an abstraction > > > is commonality. Can't you "meaningfully" treat brown cows and black > > > cows as cows? > > > > > Where's the disconnect here? Surely you've used polymorphism before? > > > (which, in case you were wondering, the Shape example isn't trying to > > > demonstrate .. exactly) > > > > > MB > > > -- > > > Mark Baker. Ottawa, Ontario, CANADA. http://www.markbaker.ca > > > Web architecture consulting, technical reports, evaluation & analysis > > > >
Received on Tuesday, 7 January 2003 16:27:08 UTC