Technical Architecture Group

7 Nov 2006


See also: IRC log


TV, Noah, Norm, Ed, Henry
Dan, Dave, Tim



<scribe> Chair pro-tem: Ed

Approve minutes

-> http://www.w3.org/2006/10/31-tagmem-minutes.html


Next meeting: 14 Nov 2006

Any regrets? None heard.

<noah> I will be here on the 14th, but probably not the 21st

Accept this agenda?

-> http://www.w3.org/2001/tag/2006/11/07-agenda.html


Backplane meeting

Henry: Hypertext CG have issued a note and called a meeting.
... I'm going with my TAG hat on because it's nearby.

Henry's submission: http://www.w3.org/2006/08/backplane/

Henry: User Agent becomes the platform and the backplane becomes "the operating system" so we better design one.

TV: That's an interesting summary, but in the hope of not killing the work before it starts, let's not call it an OS.
... The analogy is correct, but a real OS does a lot of stuff with hardware and managing APIs and things that aren't applicable here.
... If you throw in the OS word, it'll just raise controversy.

Henry: Fair enough.

TV: I'm also saying this because at the web app. workshop of a couple of years ago there was already disagreement about the OS-nature of the work.
... What this is talking about and what OSes of 2006 actually do is quite different.
... I haven't been involved in this work for about 6 months, but what we observed was that a lot of web applications are relying on a core set of services and they're reinventing them over and over.
... In some sense, if you look at SMIL, Voice, the visual web, SVG, etc., essentially everyone is doing the same thing: having some data, accessing it some how, and rendering it somehow for the user.
... The backplane thought was that some of this could be factored out so that it could be common.
... So the backplane is talking about what services are available, but don't call it an OS.

Henry: Point taken; I'll remove the word, but leave the question it provokes.

<ht> http://www.w3.org/2006/08/backplane/

Henry: Let's consider the document.

<ht> http://lists.w3.org/Archives/Member/tag/2006Nov/att-0002/backplane_thoughts.html

Ed: It's a shame Tim and Dan aren't here because this seems to be a different view of the web.

Noah: I had understood a lot of Tim's concerns (about web services) to have been about use of URIs and HTTP; the backplane is more about HTML.

Henry: Compositionality is not highly emphasized here. You could start from the notion of compositionality: XML as nested domains. The other is to start from ACTION: from events.

<noah> Actually, I don't know the backplane well enough to say it's "more" about HTML, but I heard Ed say a lot about HTML, and I certainly think HTML is more pertinent to the backplane discussion than it has been to our Web Services discussion.

Henry: The backplane is focusing on events. You [Ed] might well be right that an alternative that Tim and I might like better is to focus on the hierarchical structure of documents and their islands of semantic import in namespaces.
... The CDF feeds into this, of course.

Noah: I had assumed that the two were viewed as two sides of the same coin.
... I would have thought that if you believe in this at all, success is having the two (eventing and compositionality) come out together.
... In passing, I note, that composability may also be relevant to the tagSoup discussion.

<ht> Ah, I was forgetting Tim's preferred hook for this, namely self-describing

Noah: The self-describing web tends to be viewed recursively.

Henry: At the moment, you basically have to read whole documents. Although you can do it asynchronously, all you can do is build a tree with them.
... That's just not what you want to do all the time. I'd like to see a place to say that.

TV: These are two ends of a spectrum.
... You start at the root, you recurse through, following your nose and all the right things happen.
... That's one end.
... The middle of the continuum is where you have not only the hierarchy, but you also have interaction. There are changes in the read/event/print loop.
... And at the other end of the spectrum, you have today's HTML pages with AJAX. Because there's no abstraction, every programmer basically redevelops the read/event/print loop.
... The part of the app that you keep rewriting that you should only have to write once is that aspect where you listen to events and bind your event handlers. Responding to events, you do your post and copy the returned bits into the DOM.
... There's no architecture behind what we're doing now, so everyone reinvents the interaction paradigm.
... In the world were you do everything with your bare hands, you can do all of it.

Henry: That connects up with something else that occurred to me: one of the odd things about the AJAX/Web2.0 world we're in today is the print part of the loop; you have to set properties on outerHTML to get something to the reader.

TV: It's odd here, but it's also odd in every other architecture we've had. In most UIs, you put some value somewhere and it just shows up in all the right places.
... Today, if you do an AJAX request to get a number back, and you want to put it on the page in two places, you have to do it all with your bare hands.
... If you take something reasonably complex, like Google Calendar, you find that the user agent side is a mess of frames and iframes and things. The server side is actually a well behaved, reasonable model.
... What flows back and forth is actually an Atom stream that's fully coherent.
... Those are the two extremes and you actually see everything in between as well.
... So there's interest in making some of the user-facing code simpler and more reusable.

Henry: Bullet points:
... Push vs. pull
... Pipelines (a la XProc)

TV: The goal isn't to eliminate the need for writing JavaScript, that'll just start a religious argument
...Rather: I think you should say that the things that are simple, that everyone knows how to do, you shouldn't have to write a lot of custom script for

Noah: I think what JS gives people is the ability to change the platform without reinstalling the client.
... When something becomes stable enough, it's useful to talk about having it turn up in the platform.
... But there are different ways to build function libraries. You can do it with JavaScript that's imperative, or you can do it with JavaScript that quietly interprets other declarative code.

<ht> ... and then you can have a declarative platform, at a higher level

<ht> ... But I also agree that you have to be able to do the e.g. Google-maps innovation by writing large amounts of imperative code

<ht> ER: AJAX is getting pervasive already

Noah: Suppose someone has a drag-and-drop library. They need a fairly sophisticated platform to even explore that space.

<ht> NM: But it's not baked into the browser yet

Noah: The interesting question is, does the code that goes with that library have an imperative programming model, or is it interpreting something more declarative.
... Then when the library moves into the platform, you lose all the imperative stuff and you get all the "least power" benefits.

Henry: That's precisely why I made the pipeline observation, because if what you want to do is a sequence of operations (XSLT, validation, XInclude, etc.) then you should be able to describe that and get the benefits that you just mentioned because all of those functionalities are already in the platform.
... Not that that applies to drag-and-drop; that's an interesting alternative example.
... We were just making the same point, I think.

Noah: Ah, now I see. I think you should turn the slide around, as you just did.
... Then pipelines as an example in the domain where it applies make sense, though I'm not sure that's in the 80/20.

Henry: The third point: Making events the common currency does seem to beg the same questions as blackboard architectures in AI and they always fail.

TV: They fail because of a scaling issue.
... The question to ask is, to what level of scalability does scalabilyt matter in an architecture that you put together for web applications.

<ht> The kind of scalability I'm talking about is the n(n-1) problem that arises as we combine n components

TV: I think if you try to get an architecture that scales too far, it will fail for the simple cases that are the current focus

<ht> not data-scalability

Henry: That's not the direction I was worried about, I was worried about the fact that such architectures assume that there will be some universal language that all systems will be able to interpret.
... The common language problem seems like it *is likely to arise* in the blackplane architecture being described.

TV: I agree the problem might arise, but if you keep it for pure data and data interchange and some level of eventing where the events are just for changing and rendering data...

Henry: That's not what's going to happen and you know it; people are going to start designing events to have one part of the application communicate with another.

TV: I agree, if events are the exclusive means of communication, there will be a problem

Henry: next point: What about extensibility and versioning?
... There isn't any mention of this.

TV: You could essentially be seen as saying, "don't do this because of all these problems"
... I think it behooves us as the TAG to say if you can't do this because of all these problems, what can you do?

Henry: I think you're right. This reads as criticism and it needs to be changed in tone so that it makes clear some issues that do need to be squarely in view.

Ed: But we don't want them to do these things in isolation right?

Henry: Yes, but I don't think we've solved any of these.
... They seem to be perilously close to getting into "DLL hell"
... Modularity is good in principle, but it has the problem of managing your modules.

TV: The APIs that web apps build on are so shallow that they seem to be managing to avoid the DLL hell problem.
... As long as you use shallow, type-sensitive data APIs, you don't end up with a very deep versioning problem.
... Because you're binding to a very shallow API, the changes you have to make are relatively managable.

Noah: The reason you get really bad DLL hell on an OS is because a broad range of things you do tend to use the same shared libraries. On the web, for a variety of reasons, you don't get so much common code.
... Typically, if I go to one particular Google map mashup today and then another five minutes later, they don't communicate with each other so the problems are less severe.
... As things like the live clipboard arise, I think there may be a data format hell.

TV: I think the data format hell is a real possibility.
... If you compare Windows and Unix, the Unix answer to DLLs was to have a common API and communicate by shipping data around.
... The way mashups work today is much closer in spirit to the socket-based data linkage of Unix.

Henry: And the final thing was: What can I bookmark? What constitutes a resource in this world?
... What you see on your screen is a long way from the URI that you typed.

TV: I think it may be a mistake for the TAG to assume that it can say the same things with this modern technology that it could say with older mechanisms like URIs for HTTP

Noah: If you look at what Google Maps does, it's a short step from what is provided now to something that provides URIs for each of the steps.

TV: More importantly, is the URI mechanism that we have today rich enough to express everything we need to express. I don't think so.

Noah: But then the question is about what the contract is between the client and the server.
... The client is typically responsible for interpreting any fragment ids supplied to
... it, but that doesn't say much about constructing new ones.
... I don't think there's in all cases a prohibition against the client "constructing"
... URIs by altering things after the ? or even in the path segments before.
... These manipulations are legal insofar as the authority for the URI has documented
... the URI assignment policy. Given that, in many cases, the Javascript doing
... that manipulation is sourced from that authority, I think it's often acceptable.
... So, it's not clear to me that client side construction of URIs is limited
... to minting new fragids.

Scribe realizes those two sentences are in conflict; attributes that to scribal error.

Henry: I'm not going to send this in as representing the TAGs opinion, but I will take all of it and factor it into what I send to the workshop tomorrow morning.

<scribe> Chair: Vincent

Issue metadataInURI-31

<noah> email announcing new version: http://lists.w3.org/Archives/Public/www-tag/2006Nov/0042.html

Vincent: Can you summarize?

Noah: Certainly.

<noah> Latest draft: http://www.w3.org/2001/tag/doc/metaDataInURI-31-20061107.html

<noah> Main change in section 2.8: http://www.w3.org/2001/tag/doc/metaDataInURI-31-20061107.html#confusingmalicious

Noah: We discussed the finding at the f2f
... I think it's fair to say that with the exception of major concerns about Section 2.8, the other changes were straightforward.
... I have completely rewritten 2.8.
... I started with a URI that ended ".jpeg" and served an executable media type. Reactions were mostly negative.
... What I took away was that the concerns were: 1. generally users are confused, in a broad sense, about expectations on the web and extensions in URIs;
... 2. when you actually try to save a file, what happens and when is it appropriate to look at the extension in the URI
... and 3. something about when people attempt to use this maliciously.

Vincent: Probably next week; I just wanted an update.
... Any questions?

Ed: Basically, I think this addresses the concerns that I had. I still have some discomfort, but I'm fine with it as it stands.

Noah: Did I cover what the TAG wanted at the f2f?

Ed: I think so.

Noah: Good, because as I went over the minutes, I had some confusion.
... To clarify: I realized after I left Vancouver that part of the story was a link around an image and not about a "naked" image tag.

Ed: You say maliciousness is not acceptable, but there's nothing here that's going to prevent that.

Noah: If you look at my examples, I used to have a jpeg-that-wasn't-a-jpeg, but now all the names and media-types basically line up.

Ed: The examples I've seen in the real world are: a thumbnail that you click on to open the image but the link is really to an executable. It opens an image (to render the image), but also may do something malicious.

Noah: I thought people wanted the "click to save" example, but if the "click and execute" example was what was intended, you should let me know.

<DaveO_TAG> On the issue of MetadataInURI, the topic has come up on REST-discuss.

Vincent: I'll make sure Dan looks; hopefully next week we can approve it.

<DaveO_TAG> Roy expressed some reservations about the doc

Noah: There's been a stream of public comments that have included some criticism, but I hope this draft addresses those concerns.

Vincent: Noah's action is completed.

<DaveO_TAG> He said "Er, not since it was completely rewritten -- I haven't even reviewed it."

<noah> Actually, I'd say we have a mix of positive and negative comments, and I am optimistic that the draft addresses at least some of the concerns. I need to doublecheck which other concerns I may have missed.

<DaveO_TAG> "The first sentence, for example, is problematic."

Issue genericResources-53

Vincent: I think we're done, but Ian had some minor comments.

TV: My view is that they're editorial and we shouldn't open the issue again.
... Anyone on the team can fix them, but as editor, I'm not willing to go through the cycle again.

<noah> I have logs of comments on metadata in URI from Roy on March 28. DaveO: do you have something newer from him?

Vincent: I'll take a look and see if I can get them addressed

<noah> If it's on REST-discuss, we need to get him to send to www-tag (and it's getting late)

Issue tagSoupIntegration-54

Vincent: What's next?

Norm: Does it make sense to see how the backplane workshop falls out? That seems related to me, but maybe it's not.

Vincent: Should we consider attempting to draft a finding on this issue?

Noah: I think we should agree not to do a finding until there's more discussion.

Vincent: You're right, it's certainly too early to draft something, but having someone committed to edit a putative finding might be a good thing.
... But maybe it's too early for that too.

TV: I don't think the backplane meeting will shed much light on this issue.

Henry: I think the backplane folks are likely to say "Yeah, if you solve those problems it'll make what we're doing more valuable". But they aren't going to address those problems.

Vincent: Ok, let's see what happens in the next few days or weeks.

Any other business?

<DaveO_TAG> Roy said something on REST-Discuss

<DaveO_TAG> at http://tech.groups.yahoo.com/group/rest-discuss/message/6708

Vincent: Ok. Teleconference next week.


Summary of Action Items

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.127 (CVS log)
$Date: 2006/11/14 18:09:46 $