[DAS] RFC: REST example for DAS 2.0

Andrew Dalke dalke@dalkescientific.com
Wed, 15 Jan 2003 11:48:40 -0700


[Blech!  I'm subscribed to this list as "dalke@dalkescientific.com" since
that is my primary email address.  But my 'From' is "adalke@mindspring.com"
because my ISP won't allow me to do otherwise.  So every message I send
gets held for moderation.  Sorry about that moderators.]

Lincoln Stein:
> As long as there are good Perl/Java/Python 
> APIs to DAS and performance is usable, none of the target audience 
> (applications developers) are going to care in the least whether it's
> SOAP or not. 

I agree.

> My concern with SOAP encapsulation is that it makes it harder to
> stream DAS, at least with my favorite language, Perl.  But I've got my
> fingers crossed that eventually there will be a good streaming SOAP
> for Perl, and at that point all my misgivings go away.

Given my readings, I do not think this will happen
http://www.xml.com/pub/a/2002/07/17/salz.html?page=last
} Note that even though the individual processing is fairly simple,
} the overall process is fairly complex and requires multiple passes
} over the header elements. In a streaming environment -- think SAX,
} not DOM -- that won't work. In fact, it's my bet that headers will
} spell the end of SAX-style SOAP processors. For example, a digital
} signature of a SOAP message naturally belongs in the header. In
} order to generate the signature, you need to generate a hash of the
} message content. How can you do that without buffering?

Brian mentioned DIME, which may.  I do not think that DIME solution
affects my comments on caching and on fetching only new features. 
 
> My understanding of REST is that it's defined by the negative -- it
> isn't SOAP.  That's not going to provide much in the way of
> reusability.

I would rather say that most times SOAP isn't REST.  The papers
I've read offer plenty of example of what a REST-style architecture
is (as compared to the negatice.)

Quoting from  http://www.xfront.com/REST-Web-Services.html 
    *  Client-Server: a pull-based interaction style: consuming
components pull representations.
    * Stateless: each request from client to server must contain all the
information necessary to understand the request, and cannot take
advantage of any stored context on the server.
    * Cache: to improve network efficiency responses must be capable of
being labeled as cacheable or non-cacheable.
    * Uniform interface: all resources are accessed with a generic
interface (e.g., HTTP GET, POST, PUT, DELETE).
    * Named resources - the system is comprised of resources which are
named using a URL.
    * Interconnected resource representations - the representations of
the resources are interconnected using URLs, thereby enabling a client
to progress from one state to another.
    * Layered components - intermediaries, such as proxy servers, cache
servers, gateways, etc, can be inserted between clients and resources to
support performance, security, etc.

Here's the PhD dissertation describing REST
 http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
in full glory.


				Andrew Dalke
				dalke@dalkescientific.com
-- 
Need usable, robust software for bioinformatics or chemical
informatics?  Want to integrate your different tools so you can
do more science in less time?  Contact us!
               http://www.dalkescientific.com/