To: cwei@nexaweb.com
From: "Robert J. DuWors" <rjd@csgroup.com>
Hello Coach: I enjoyed your article AJAX: Asynchronous Java + XML at
http://www.developer.com/design/article.php/10925_3526681_2?  Enough so, that I will make a link to it (and save
myself going over the same territory less effectively!).  I like the emphasis on different technologies to achieve largely the
same end.  Mainly because that leaves aside the issues of each specific technology, and keeps the focus more generally on
architecture.   I personally believe theses technologies at their best point to a radical shift in distributed system architecture
much more important than they are in themselves, as outlined regarding
Compositional Architecture at
www.csgroup.com.

What Asyn Javascript + XML (including XLST!) + HTML + CSS has going for it in particular is the ability to
naturally
assemble
the bits and pieces such as particular style sheets and Javascript computations from all over the network, and
re-assemble them in whole or part on the fly.  And effectively relinquishing them when no longer needed - typically in
AJAX by loading entire new pages. There is no really matching ability in OO models which have two things going against
them: the limiting effects of the compile-link-load-execute model which seriously compromises the extent of network wide
sourcing and, worse yet, information hiding.  I believe that it is the latter in particular which dooms OO from going much
further than has been discovered and exploited in the last 30 years.

So the question becomes: given this dramatic increase in expressive power, how do we use it wisely?   The ability to
dynamically create clients on the fly forces consideration of what is the role of the client - in particular what is the role of the
client as a user agent?  How do we differentiation the processes of user agent assembly/re-assembly from instances of user
agent actions/computation plus instances of application data exchanged?  And the long standing question of how do we
keep user agents from becoming too rich or too lean, i.e. what "business rules" go where?  What role does the back end
play and how limit it to work well with dynamic user agents?  Finally, can we achieve designs with interchangeable
implementations that allow for local optimization and preferences of user agents and back-end models while preserving the
core application architecture?  How would we express such an application architecture?  And if we can do that, can we
also address different user of communities of common interest with specifically adapted user agents and models (think of
multiple email clients and multiple email servers)?

I believe that answer is yes as outlined in
Protocol Translating User Agents and Models at www.csgroup.com    There
is also the closely related question of vital interest - how do we keep these architectures secure while permitting necessary
collaborations to take place between individuals and enterprises?  I believe the currently dominate security model, Access
Controls Lists, is in a state of near or actual collapse for distributed systems and the
Distributed Capability Model shows
great promise.

By way of explanations, these presentations began life as working notes to myself anticipating later incorporation into white
papers, the process of which has just begun.  I am actively soliciting feed back and discussion which will be gratefully
received should you wish to make comments.

Many thanks,
Rob DuWors


Subject: Are the Doors Being Opened More Important Than AJAX itself?