Re: URI design, part 2

"Eric J. Bowman" <[email protected]>
Newsgroups gmane.comp.web.services.rest
Organization Bison Systems Corporation
Message-ID <[email protected]>
"Eric J. Bowman" wrote:
> 
> Making informed decisions about which constraints to apply, is making
> use of REST as a tool for long-term development.  It may not be
> feasible to apply all the constraints initially, if REST is truly what
> your system needs.  In which case your system design can account for
> this, becoming more RESTful over time, instead of painting yourself
> into a corner where the system needs re-architecting rather than
> implementing another constraint as an extension.
> 

This is why Roy's thesis is an invaluable tool, at least for me anyway
as I've been at this since '93 and had a front-row seat at the
transition from the old Web to HTTP 1.1 -- Roy's experience applying
his concepts to a system I was familiar with is included in his thesis,
which helped me to incrementally apply REST to my own work as I gained
understanding of it.  Now, I can confidently design systems today which
may be easily extended to be fully RESTful tomorrow.

So I really don't stress about the unRESTful aspects of my systems,
they're "by design" and will continue to work themselves out over time.
Which is exactly what you want from an architectural style, particularly
for the Web.  Successful websites tend to grow users over time, and it
ain't easy to chuck one system for another.  What's needed is a system
which uses progressively less resources per user, as usage increases.

(Just check out the shoddy uptime records of certain big boys on the
block to see how badly this desirable property is needed, and note that
they don't begin to implement REST.)

Using REST as a tool enables the development of such systems by allowing
the architect to chart a steady course, deciding which constraints (like
identification of resources) are crucial to get right from the get-go,
and which may be put off until they satisfy a cost-benefit analysis.

For example, most popular CMS software defaults to no-cache.  But this
doesn't really matter until you're starting to bump into the transfer
limits of your hosting plan, at which time you can implement caching,
after having some time to test the setup first. You can then fine-tune
your cache settings over time, and later integrate with a CDN.  This is
usually done ad-hoc, what I'm saying is that knowledge of REST can make
this go smoothly rather than being a comedy of errors (quite common).

If your system doesn't grow to need it, then you can probably do without
all the added development expense (plus complexity driving up long-term
maintenance costs) of implementing non-native caching on that CMS. REST
is your friend when it comes to planning for and managing these expenses
and complexities vis-a-vis your cashflow.  Budgeting for ho-hum websites
is easy; successful websites are another story entirely, where knowledge
of REST as a tool can be your competitive edge in funding growth from
cashflow instead of debt or outside capital while turning a profit --
instead of piling up red ink on wasteful infrastructure.

Yeah, I know.  That just isn't how things are done on the Web!  :-D

-Eric
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.