| A Blog About... |
REST,
Publish / Subscribe,
Atom,
Microformats,
Semantic Web,
Event-Driven Architectures,
P2P,
Web 2.0,
Mobile 2.0,
Ajax,
JSON,
YAML,
Identity,
Copyright,
Multimedia,
Cyberspace.
|
...taking programming beyond: Threads, Message Queues, Client-Server, CORBA, Web Services, SOAs, Agents, Synchronous Architectures, Imperative Programming - and even Applications, Desktops and Documents |
| Duncan Cragg... |
| ...works for ThoughtWorks UK; originally from April 2002 to July 2007 and now recently re-joined. Previously worked as a Web Architect for the Financial Times. |
| ...went to both UCL and Imperial College of the University of London (in the Eighties); specialising in Logic during his MSc. |
| ...wonders when his LinkedIn Account will be useful |
...has a phone-cam, and used it on himself once, just before his weekly shave:
 |
| ...can be contacted by
|
|
| |
| |
January 26, 2010 13:46
Right, I'm pleased to say that I've now implemented enough of the
Fjord language
on Node.js to be able to run the
Instrument example
that I introduced it with. As yet, this runs in memory only - i.e., no disk, no
network.
Here's the code on GitHub with tests
that show how it works. The language has changed a little so I'll show the example here
again, copied over from the test code, in order to explain the differences.
...
January 6, 2010 17:03
Well, I've put together the first few lines of Fjord, implemented on Node.js.
Here's the description on GitHub: Fjord is a language for expressing domain logic as match-rewrite functions over mashable JSON Web objects.
I'm developing Fjord very openly, in the hope someone out there will be interested in getting involved in helping guide its design and implementation. I suppose code speaks louder than blog posts.
...
December 11, 2009 08:22
Following on from my recent article where I
derived FOREST,
this article offers the beginnings of a JSON unification and rewriting language that
can be used in a FOREST architecture.
Why JSON, not XHTML, now? Well, I recently discovered that
JSON is overtaking XHTML
in interest, and I was further inspired by Kris Zyp's recent announcement of his
JSON Schema
Internet-Draft.
Fjord is a language for describing how the state of a JSON resource at any time depends
on both its current state and on the state of other JSON resources that it links to via
hyperlinks.
Fjord is a Norwegian word, probably pronounced 'fiyourd', and might stand for some
combination of the words: 'Functional JSON Object/Observer Resource/Rule/Rewrite
Dependencies/Declarations'. Or maybe it's just because they're
truly awesome, an' I wanna go.
Fjord also gives me an opportunity to show some examples of the "end-user" view of a FOREST
interaction; starting with a simple finance example.
...
November 25, 2009 21:29
Say we want to integrate multiple applications which handle order processing. OK, that's
got to be one of the dullest starts to a blog post. Never mind, bear with me...
So, we have applications on separate servers for handling and driving data such as
orders, product descriptions and catalogues, stock lists, price lists, tracking, packing
notes and delivery notes, invoices, payments, etc.
We may choose an SOA approach, of course. But let's say our sponsors have heard of this
cheaper alternative: REST! Which to them means 'using Web technology to save money'.
Now .. suppose we push the time slider right back to before Mark Baker and the SOA -vs-
REST Wars - or the 'SOAP -vs- REST Wars' as people naively called it. To when REST was
simply (!) a description of the Web's architectural style...
What if we revisit the applicability of the Web, and its abstraction into REST, to the
architecture of machine-to-machine distributed systems - to something like our order
processing integration?
I think we'd quickly arrive at something that looks more like
FOREST
than, say, AtomPub...
...
October 9, 2009 17:14
Updated: October 11, 2009 11:46
Since the day in 2006 that our
dialogue
took place with an imaginary eBay Architect, he has been promoted to imaginary
Enterprise Architect in an investment bank! Convinced by the merits of REST, he took
his enthusiasm for it into his new job and embarked on architecting a trading system
using REST or ROA as an alternative to SOA.
Now, he hit upon a snag: he had a REST "bank server" generating bids on an instrument
and POSTing them into that instrument's REST "market server". But then he had two
copies of his bid! One held by the bank server on one URI, and the other in a "bid
collection" held by the market server's instrument - on another URI.
He asked himself: "Which URI is the real one? Which host 'owns' the bid? Is the market's
copy just a cache? If so, why does it have a new URI? Why doesn't the market host know
the URI of the bank's original bid? Why can't servers become clients and just GET the
data that their own data depends upon?" The server seemed to be dominating the
conversation, not letting its 'client' server have a say in things.
Our worried Enterprise Architect noticed that such Service-Orientation permeated REST
practice: there were "REST APIs" to Web sites, or "Web services" with a small 's'. Even
AtomPub had a "service document"! Some patterns, like AtomPub, offered just simple
read/write data services through the full HTTP method set. Some simply used such a
read/write interface as a wrapper around more complex service functions.
He wondered: "Where's the Web in REST integration? The Web works great without PUT and
DELETE: isn't using GET on its own RESTful enough?"
So, remembering something I said about "Symmetric REST", he contacted me again...
...
October 6, 2009 10:28
- Functional Observer REST = Hyperdata Interdependency requiring Symmetric REST
- Hyperdata Interdependency = a resource's state is a Function of its linked resource context
- Symmetric REST = servers become clients in order to Observe the dependencies of their resources
...
|
| |
|
|