RE: [wsia] Can a producer make look & feel changes?

From
Vadhri, Srinivas <>
Date
2002-03-19T17:35:34+00:00
ID
Thread
RE: [wsia] Can a producer make look & feel changes?
The 
more we discuss on this, I feel the big issues are Rights and License 
agreements between the producer and  consumer. For example, after 
sale/integration consumer support? Who owns what piece ? Assuming that the 
consumer offers the bundled services (bundled from various producers) 
and acts as a producer - imagine like a Pyramid - if the end user runs into a 
problem what happens? And there are issues, like stated below, what if the 
consumer alters the service that the producer provided?

 

Besides Security and Integration standards, soft issues 
like ownership and Customer Support (who supports what, and where do you draw 
the line) are going to be BIG hurdles before Web Services becomes 
ubiquitous. Does it warrant a seperate Working Group? I dont 
know.....

 

Srinivas Vadhri

CommerceOne

  
-----Original Message-----
From: Sean Fitts 
  [mailto:]
Sent: Monday, March 18, 2002 9:29 
  PM
To: Eilon Reshef; 'Greg Giles'; 
  
Subject: RE: [wsia] Can a producer make 
  look & feel changes?

A couple of comments to the 
  points raised by both Elion and Greg.

As Elion outlines, the roles of 
  Producer and Consumer are separate from 
the topology of the software being 
  used and the choices of what tasks to 
perform where.  I believe that 
  the goal is to keep the roles as clean as 
possible.  Within those 
  roles, the Producer defines what may be changed 
and the Consumer decides 
  what changes to actually make.  How this
works is an issue to be 
  decided in defining the interfaces between the two.

There was (as I 
  read it) an implication in Greg's question that the choice
of what tasks to 
  perform where would influence the protocol used to
communicate between 
  Producer and Consumer.  I don't believe that this 
is the case (at 
  least not in my understanding).  The interface between
Consumer and 
  Producer will be defined using WSDL and may be bound
to any number of 
  protocols (including, but not limited to SOAP/HTTP).  I 
expect that 
  we will not have them talk using HTML/HTTP, though the
messages may contain 
  markup intended for display to the end-user.  Greg,
if I misread your 
  question, just ignore this.

Lastly, on the issue of property driven 
  adaptation vs. markup driven
adaptation, I wasn't present at the smaller 
  group discussion, so I may be
covering old ground.  However, I have 
  significant concerns about the property
driven approach that extend beyond 
  back-compatibility.  To me, the property 
driven approach implies that 
  the producer must predict all of the changes that 
a consumer may want to 
  make (since they are responsible for implementing 
them).  This may 
  seem attractive from a Producer control standpoint (which 
I agree is an 
  important issue), but I think it will have the effect of limiting 
  the
re-use of services.  Certainly our experience to date suggests 
  that it is very 
hard, if not impossible to predict the ways in which 
  Consumers may want to
adapt services and so I would argue we should err on 
  the side of flexibility.

I understand the complexities that Elion 
  outlines, but I think it is possible to
balance them and achieve both our 
  goals.  It is also worth noting that many 
of the same issues must be 
  addressed to allow Consumers to describe changes
to the internal flow and 
  behavior of services they are using, so I don't think we
will be able to 
  avoid them entirely anyway.

As an aside, I also have concerns about the 
  property based approach from the
standpoint of how work is 
  distributed.  This is a minor concern, but I would
prefer to see a 
  design which is less centralized.

That's my $0.02.  
  Thoughts/comments?

Sean

At 11:39 PM 3/18/2002 -0500, Eilon 
  Reshef wrote:

  Greg and team,
 
I think that there is an 
    understanding and agreement that allowing Producers to control the 
    modifications offered to the Consumers is an important (and mandatory) 
    requirement, for the reasons you have mentioned and for others (branding 
    being one).
 
From that point on, the discussion seems to split into two areas: 
    enforcement and roles.
 
From an enforcement perspective, there is 
    a realization that it's technically unfeasible to provide technical means to 
    ensure that Consumers don't "illegally" temper with the presentation. Since 
    the presentation eventually passes through their servers, they can 
    physically change it. This doesn't seem to be a major issue, since the 
    Consumer can also practically screen-scrape the Producer's public Web site 
    even if the application at hand is not published as an WSIA Web Service. 
    (And, BTW, there used to be a company called Patkai which I think provided 
    technologies for signing XSL and HTML fragments. However, I assume that this 
    wasn't a large enough business problem, as I think the company is no longer 
    in business). Having said this, we still need to define - as part of the 
    interface - what is it that the Consumer may change and assume that 
    business agreements will enforce the rules specified in this interface. 
    
 
Following from the point above, it remains to decide on the 
    roles of the Producer and the Consumer as it applies to 
    customization, and more technically, on the interfaces between them. We can 
    suggest that the Producer does the customization using a mechanism such as 
    Properties (in which case there's no real issue of control by the Producer) 
    or we can suggest that the Consumer does the customization (in which case 
    some sort of a definition language should be put in place to denote the 
    allowed adaptation). (Naturally, there could also be a combination). As you 
    noted, this question touches on the fundamentals of the interface/contract 
    between the Producer and the Consumer.
 
Based on preliminary discussions 
    within the smaller use-cases group, I think that there is a general 
    consensus that Property-driven customization (i.e., Producer customizes the 
    presentation based on context data from the Consumer) is cleaner and in 
    general preferable. In this model, the Consumer sends the Producer a set of 
    property values, and the Producer morphs the presentation accordingly. 
    Natural implementation questions that come up in this context are how are 
    properties defined (specifically, are they part of WSDL? schema?); how are 
    values communicated (one at a time, all together?); when (statically as 
    property sheets? part of the GetMarkup call? a separate SOAP operation?); 
    what is the lifetime of the values (session? persistent?); etc. Lots of 
    interesting questions - we haven't discussed any of those in depth yet, 
    although several early thoughts have been brought up by different members of 
    the team during the early discussions.
 
There is, however, a significant 
    concern among some members of the team that providing just a Property-based 
    approach may impede turning of existing Web applications into customizable 
    WSIA services, as this may require changing the original applications. 
    (Interestingly enough, I just had a short discussion about that point 
    exactly with Rich from IBM earlier today). Thus, the idea of stream-based 
    manipulation was brought as a potential method to "point" to existing pages 
    (e.g., via XPATH), define a set of pre-defined transformations (as in your 
    suggestion #4 below) so that they can be carried by the Consumer without 
    code modifications by the Producer.
 
At a personal level, I have my doubts whether a 
    Consumer-driven "external" approach is very practical, for several 
    reasons:
==> An 
    external "pointer" language has to be defined, presumably by this committee. 
    Note that the closest thing that we have out there is XPATH, but it only 
    applies to XML (and hence XHTML) and does not apply even to HTML, let alone 
    CSS, Flash, etc.
==> The external "pointer" language has to pretty strong. For 
    example, it has to refer to multiple instances of entities on the same page 
    (e.g., there may be multiple elements on an HTML page that need to be 
    changed when "something" changes to "red"). Also, there's the issue of how a 
    single value is applies across multiple pages, each of which may demand a 
    completely different set of "pointers", what happens if the pages are very 
    dynamic, and what if JavaScript is involved.
==> Even the existing "pointer" language for 
    XML - namely, XPATH - doesn't seem to be adequate for complex XHTML. This is 
    because trying to point deep into a complex XHTML document is impractical to 
    define, let alone maintain as the structure of the document changes. And, 
    XPATH modifications of a document result in a new document which may 
    invalidate other XPATHs that point to the same document.
==> In the end of the day, no 
    matter how rich set of transformation WSIA will pre-define, Producers will 
    always need to be able to provide their own (e.g., when the Consumer selects 
    "red", show all buttons with varying shades of red), so a Property-based 
    approach must be part of the overall solution in any 
    case.
 
Note that some of the issues above can be resolved in different ways. 
    For example, in the XHTML case, one can still use XPATH, yet suggest that 
    Producers to add XHTML attributes to "help" the XPATH locators find elements 
    within the page (Rich told me that this is the WSXL recommendation). 
    However, in either case, introducing stream-based manipulation doesn't come 
    without a cost. First, it significantly complicates the requirements from 
    the Consumer, which has to implement all the pre-defined transformations on 
    multiple output types. And, from an architecture perspective (i.e., a 
    design-by-contract paradigm) it prevents Producers from separating the 
    question of "what" is allowed to change on the pages from the "how", so that 
    when the Producers make changes to their applications (e.g., they rewrite it 
    to support customization as part of its implementation, or use a commercial 
    product for that), the Consumers are naturally exposed to those details, 
    which would otherwise be considered internal. And, finally, my main concern 
    is that the stream-based customization is naturally more complex than the 
    Property-based one, WSIA will spend considerable time on this 
    capability.
 
Naturally, the discussion above follows from the typical balance 
    between a clean interface (Property-based) and a backwards-compatibility 
    requirement (support existing applications).
 
One idea on how to approach this 
    issue is based an interesting observation that Bill Cox (BEA) made today in 
    the WSRP meeting. (Bill: sorry if I am misrepresenting your thoughts). He 
    noted (on a slightly different issue) that the fact that a particular 
    vendor's toolset (e.g., IBM, Oracle, BEA) needs to address a certain 
    business requirement (e.g., support legacy Web applications) doesn't 
    necessarily mean that the protocol at hand must natively 
    address it. 
 
For example, it is very conceivable to assume that a certain portal 
    vendor will provide - as part of its portal toolset - both a core Portal 
    Server that consumes "clean" WSIA services (Property based) and also 
    an WSIA Adaptation Server that adapts existing applications to become 
    WSIA Web Services. This WSIA Adaptation Server is the piece of code that can 
    handle XPATH logic, etc., but doesn't necessarily have to be the same actor 
    (server/process/module) as the Consumer itself. In fact, that server may 
    hide all those somewhat messy details from WSIA Consumers, which may be 
    different organizations using different platforms. 
    
 
If I 
    understand correctly, I think this is more or less a variation of what you 
    proposed as approach #2, in which case the enterprise (Producer) uses an 
    intermediary that takes its existing applications and converts them into a 
    WSIA Web Service. Like any adapter/broker, that intermediary can be bundled 
    with a specific Portal offering or provided separately by third-party 
    vendors.
 
Thoughts, ideas, comments?
 
Eilon
 
PS: I am also cc-ing the WSRP group, as in this 
    short period of time until responsibilities between the two groups are 
    decided, this may come up in the WSRP discussions as well. 
    
      -----Original Message----- 
      From: Greg Giles [mailto:] 
      Sent: Monday, March 18, 2002 9:02 PM 
      To:  
      Subject: [wsia] Can a producer make look & feel 
      changes?

      Hi All, 
      There seems to be an assumption that the producer should not be 
      concerned 
      with look & feel changes, this should be the role of the 
      consumer. 
      I'd like to present a scenario based on a real world situation that 
      may 
      question this assumption (sorry if this is covering old ground which 
      I 
      missed during the f2f): 

      - A large enterprise wants to publish a WSIA service to its partners 
      e.g. 
      the memory configurator 
      - This is a value added service for which it charges 
      - The enterprise also hosts tools that allows the partner to change 
      look & 
      feel (colors, URLs, gifs) 
      - The partner wishes to display the network design application in 
      context 
      with the rest of the page e.g. show additional URLs to data sheets for 
      the 
      products being configured 

      In this scenario, for a fee the partner signs an SLA with the 
      enterprise, 
      customizes the look & feel (hosted at the enterprise). Then embeds 
      the 
      service inside their system, using the data passed to display the 
      context 
      sensitive info. 
      Since this is a fee based service the partner expects the enterprise 
      to 
      manage all the complexity, also the enterprise wishes to limit look 
      & feel 
      changes contractually and by offering a service that supports 
      only 
      acceptable changes. 

      If look & feel is done by the consumer, the output the partner can 
      receive 
      is HTML/HTTP. 
      However in order to make the context changes it would be far more 
      useful to 
      have SOAP/HTTP. 

      There are at least four potential approaches: 
      1. Have the enterprise host both a producer and consumer (consumer, 
      acting 
      as an intermediary, makes the look & feel changes). The partner 
      hosts 
      another consumer to pull out the relevant info and create the context 
      hooks. 
      This requires the consumer to support incoming HTML/HTTP 
      2. Have the intermediary support outbound SOAP/HTTP (to easily support 
      the 
      context hooks), and continue to have the look & feel modification 
      exist 
      within the intermediary (consumer) 
      3. Have the producer support look & feel modifications 
      
      4. Have the look & feel modifications as a generic set of 
      functions that can 
      be implemented by both the consumer or producer 

      This also touches on another topic which is the protocol required 
      between 
      producer and consumer, which I'll leave to another email :-) 
      

      Thoughts or comments? 
      Greg 

      ---------------------------------------------------------------- 
      
      To subscribe or unsubscribe from this elist use the 
      subscription 
      manager: <http://lists.oasis-open.org/ob/adm.pl>