Andrej Koelewijn

  • Home
  • About
  • Publications
  • Departments
    • agile
    • architecture
    • cloud
    • java
    • mobile
    • open standards
    • oracle
    • oss
    • other
    • soa
    • software development
    • tablet
    • Uncategorized
    • web
  • Subscribe via RSS

REST is a distributed data model

February 12th, 2009  |  Published in open standards, soa  |  20 Comments

I’m sure some will not agree with my statement, and some will think, duh, that’s so obvious, but i think this needs to be said: REST is a distributed data model.

REST is not a simplified way to implement Web Services. It’s also not a way to call Remote Procedures with a Javascript friendly syntax.

Let’s look at the facts:

  • REST is about resources. Resource is just another word for object, or record.
  • REST is also about URLs. URLs that identify resources. Just like ids can identify objects or records.
  • And, often overlooked, REST is also about links. Resources use URLs to link to other resources. Just like foreign keys can link records to other records.

Again: resources, urls, and links. Similar to records, primary keys and foreign keys. All accessible with a few standardized operations, in multiple formats.

Organisations can publish data models, which can have links to data models of other organisations. So now you can have data models that are not limited to one database inside an organisations, but spread out over a large number of organisations. A true common model for a vertical. For example, a governmental data model which integrates all data stored in different parts of the government (oops, maybe too scary…)

Now, what good is a data model, without a good way to query it?

I think Yahoo Query Lanuage (YQL) might shows us the future of query engines. It might right now not be everything we need to query REST data models, but it sure shows that it’s possible to have a query engine that allows you to query REST resources. Such a query engine would enable you to join a number of distributed resources and simply find the data your need. Something like:

select *
from   rest r1
,      rest r2
where  r1.url = "http://taxes.gov/companies"
and    r3.url = "http://sandiego.gov/companies"
and    r3.tax_company_url = r1.company

Now, there are a lot of issues to solve before this is a reality, security and performance for example, but it would be really powerful if the internet could be turned into one big database.

So, as you can see, REST is a true architectural alternative to other ways of doing SOA: message queueing and remote procedure calls. Not just a simpler alternative.

A lot more good info on REST can be found in Stefan’s Tilkov REST presentations.

  • http://shaharsol.com/ Shahar Solomianik

    That’s fascinating!

  • http://shaharsol.com Shahar Solomianik

    That’s fascinating!

  • http://blog.nawroth.com/ Anders Nawroth

    This is interesting with regard to what Martin Fowler thinks about databases and integration: “If you switch your integration protocol from SQL to HTTP, it now means you can change databases from being IntegrationDatabases to ApplicationDatabases.”
    See: http://www.martinfowler.com/bliki/DatabaseThaw.html

  • http://blog.nawroth.com/ Anders Nawroth

    This is interesting with regard to what Martin Fowler thinks about databases and integration: “If you switch your integration protocol from SQL to HTTP, it now means you can change databases from being IntegrationDatabases to ApplicationDatabases.”
    See: http://www.martinfowler.com/bliki/DatabaseThaw.html

  • http://www.andrejkoelewijn.com/ akoelewijn

    Thx for the link, interesting article. If we ever get good REST query engines, we can have our cake and eat it too:
    * application databases, no more integration in the database
    * an integrated view, which allows us to use a simple set based query language to query from these loosely coupled databases.

  • http://www.andrejkoelewijn.com/ akoelewijn

    Thx for the link, interesting article. If we ever get good REST query engines, we can have our cake and eat it too:
    * application databases, no more integration in the database
    * an integrated view, which allows us to use a simple set based query language to query from these loosely coupled databases.

  • http://blog.nawroth.com/ Anders Nawroth

    I commented further in a blog post, mainly on the article by Tony Bain. http://blog.nawroth.com/2009/02/future-of-rdbmss.html

  • http://blog.nawroth.com/ Anders Nawroth

    I commented further in a blog post, mainly on the article by Tony Bain. http://blog.nawroth.com/2009/02/future-of-rdbmss.html

  • Pingback: Your data wants to be free :: Andrej Koelewijn

  • http://www.andrejkoelewijn.com/ andrejk

    On a smaller scale: the smallest, but most trusted, social network is my own social data. I think it would be very useful if google would use my delicious bookmarks, or friendfeed data, when it returns search results. Anything i bookmarked with delicious should score high in google results if it is relevant to my search terms.
    This comment was originally posted on http://theappslab.com/)” rel=”nofollow”>AppsLab

  • Hutch Carpenter

    Jake – this is something that I think works well inside an enterprise as well. For a couple reasons:
    1. You hit on the creepiness factor. It’s more natural inside an organization.
    2. The need to have access to actions that provide the implicit social graph.
    On #2, let me elaborate. Not everyone is going to take the time to update their explicit connections. A better solution is to capture connections between people based on what they do normally. If I’m regularly clicking/rating/commenting on your content, there’s a good chance you’re at least part of my "informaiton graph" if not my social graph as well.
    Next time I run a search, it would make sense to see your content at the head of the line if you have something related.
    I also think of another aspect. Even if your content is of lower quality (i.e. few ratings, clicks or comments), there’s a good argument that it should be included higher in my search results assuming you are stronger in my social graph. Why? Because I’m comfortable reaching out to you for more information to make up for shortfalls in the information your content provides. We can discuss what I’m looking for. I won’t do that with a colleague whom I don’t know from elsewhere in the organization.
    I articulate this more fully in this blog post, Social-Filtered Search: http://bit.ly/42pjnQ
    BTW – I was formerly the product marketing manager for BEA Systems Pathways social search. Which is now Oracle, of course!
    This comment was originally posted on http://theappslab.com/)” rel=”nofollow”>AppsLab

  • http://theappslab.com/ Jake

    Yeah, they could do a lot with discovery to help you find new information. This would be a way to push their own bookmarking service. It does make sense to constrain the social data to what you provide, without including other people’s stuff.
    Maybe Yahoo will finally do something with Delicious :) Don’t hold your breath though.
    This comment was originally posted on http://theappslab.com/)” rel=”nofollow”>AppsLab

  • http://theappslab.com/ Jake

    There definitely will need to be a way to draw people into participating beyond just asking them and talking about how useful it is. What you suggest might work, and there are some other tools that we can use to nudge people into interacting.
    I’m hoping to test this out a bit on Connect first.
    This comment was originally posted on http://theappslab.com/)” rel=”nofollow”>AppsLab

  • joel garry

    Sortasyncronicity – this digg is on the right column of this page: http://feeds.digg.com/~r/digg/container/technol…;
    This comment was originally posted on http://theappslab.com/)” rel=”nofollow”>AppsLab

  • http://theappslab.com/ Jake

    Yeah, I saw that in my reader earlier today. At some point soon (12-18 months), the networks are going to have to pour buckets of money into better security and authentication and controls to keep out the baddies.
    Exactly why some people only consume within the firewall, not that it’s 100% safe and secure, but at least you’re protected by HR and Legal.
    This comment was originally posted on http://theappslab.com/)” rel=”nofollow”>AppsLab

  • Pingback: Enterprise 2.0: the real meaning of web 2.0 for your business :: Andrej Koelewijn

  • http://ophir.radnitz.name/ Ophir

    Brilliant, thank you.
    This comment was originally posted on http://debasishg.blogspot.com/)” rel=”nofollow”>Ruminations of a Programmer

  • http://www.userinsight.com/ product usability

    Google should still have alot of things to discover because there are still alot of things that you can’t search in the google. It should have a huge of meaning per tpoic to enhance the knowledge of each readers.
    This comment was originally posted on http://theappslab.com/)” rel=”nofollow”>AppsLab

  • http://www.blogger.com/profile/12747021276714622760 charlieC

    Thank you for highlighting this much forgotten issue about user-defined queries on K/V DBs.
    While some headaches with scaling RDBMs can be solved by replacing it with a K/V store, indexing/searching such a database is still cumbersome.
    As you said, CouchDB solves this by it’s map/reduce views. Not sure about the performance on this, but it really has potential.
    This comment was originally posted on http://debasishg.blogspot.com/)” rel=”nofollow”>Ruminations of a Programmer

  • Pingback: Tim Berners-Lee on Linked Data :: Andrej Koelewijn

Tags

activemq agile bi camel css esb google governance grails groovy gtalk html5 internet ipad ivy J2EE java javascript jaxrs jmx jquery lean linkeddata linux maven mule noiv openoffice opensource Open Source oracle osgi oss rdbms rest scrum servicemix soa sql svg tablet web 2.0 XML xmpp yql

Archives

  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • June 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • September 2007
  • August 2007
  • July 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007
  • February 2007
  • January 2007
  • December 2006
  • November 2006
  • October 2006
  • August 2006
  • July 2006
  • June 2006
  • May 2006
  • April 2006
  • March 2006
  • January 2006
  • December 2005
  • November 2005
  • October 2005
  • September 2005
  • August 2005
  • July 2005
  • June 2005

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org

Recent Posts

  • Self-service architecture to avoid water-scrum-fall
  • Updating a vagrant box
  • Using littleproxy in Mule unit tests
  • Useful site to determine what html5, css3 & svg you can use
  • A Product Owner is a Project Manager

Categories

  • agile
  • architecture
  • cloud
  • java
  • mobile
  • open standards
  • oracle
  • oss
  • other
  • soa
  • software development
  • tablet
  • Uncategorized
  • web

Recent Comments

  • From DevOps to NoOps to NoCollabs :: Andrej Koelewijn on LAC2011 presentation: Scrum under Architecture
  • andrej on Software architecture, PHP and Javascript
  • Pcdiggs on Software architecture, PHP and Javascript
  • Een Scrum Product Owner is een Project Leider on A Product Owner is a Project Manager
  • Using css webfonts in inkscape :: Andrej Koelewijn on Create presentations using inkscape
Buzz
andrkoel: Utrecht hele dag mist, scheveningen zomerse dag... http://t.co/cDRCJHr9
4:35 PM Nov 10, 2011, comment
andrkoel: RT @stefanvdkamp: Beter filmpje van Garret McNamara in de 30 meter hoge golf. http://t.co/9abiWkYX
9:20 AM Nov 10, 2011, comment
andrkoel: Mmm, een uur voor den haag - leiden lijkt te weinig, ga mijn afspraak niet redden...
7:34 AM Nov 10, 2011, comment
andrkoel: Big Data is Useless without Science http://t.co/2I8EiLsH
6:18 AM Nov 10, 2011, comment
andrkoel: Just tried #vagrant to quickly setup virtualbox development environment. Looks good, although provisioning apache through puppet failed...
10:47 PM Nov 09, 2011, comment
 


©2012 Andrej Koelewijn
Powered by WordPress using the Gridline Lite theme by Graph Paper Press.