Top 10 Reasons Resource-Oriented Architecture Matters
AT&T Interactive R&D での研究テーマの1つはリソース指向アーキテクチャ(ROA)です。しかし、ROAが何であるか、それがなぜ重要であるかに関して多くの混乱があります。 「なぜ重要か」ということに関して話すのは簡単で、定義についてはそんなに心配していません。 If you know what it does, then what it is becomes more of an intuition rather than an abstract concept.
なので、 ROA が重要であるという10の理由を苦も無くあげられます。
Check out Freebase if you haven’t already, and a lot will become clear to you really quickly. In short, the Web has the potential to be a massive database, not just a bunch HTML limited by full-text search. This is what Tim Berners-Lee (who knows a thing or two about the Web) is talking about when he refers to the semantic Web ? or, at least, it is a big part of it. Consider how useful Google is today, working essentially with unstructured text. Now imagine that you could search the world’s data using more refined methods. How useful would that be?
9. リソースは API
We’ve already seen an explosion of new APIs and mashups that combine them together into interesting applications. However, to date, these APIs are generally not uniform, leading to a “Tower Of Babel” problem. Each API operates just a bit differently, slowing adoption and making it difficult to build tools to leverage them. ROA provides a uniform approach to defining and interacting with resources and does away with the “tower of Babel” problem. You could argue that it would never work, except that …
8. Web は ROA が基になっている
Roy Fielding literally wrote the book (okay, it was a paper) on REST, which became a part of geek buzzword bingo with the emergence of Ajax and as an antidote to the complexities associated with Service Oriented Architecture (aka, SOA). But lost in the hype was the fact that Roy was also one of the principal authors of the HTTP protocol. And while HTTP isn’t always used by Web servers, browsers, and proxies exactly the way it was designed, it is still fair to say HTTP is the canonical example of REST principles. And thus that the Web ? the most scalable application ever! ? is based on REST. Since ROA is itself based entirely on REST, the potential of ROA is amply demonstrated by the success of the Web.
One of the biggest obstacles to ROA is that a lot of the content of the Web is buried in the deep Web ? that is, you need to be authenticated to access it. Since virtually every application uses its own authentication mechanism, the benefit of uniform interfaces for resources is substantially diminished. But with the emergence of OpenID and OAuth, this is changing ? rapidly. Virtually all the top Web properties either honor these standards or have plans to, which means that accessing resources across application boundaries will no longer be an obstacle. Instead, we’ll have agents that will aggregate your data on your behalf ? personal search engines, if you will.
Resources can be described using a powerful standard called the Resource Description Framework, allowing for automated discovery and access of resources. In fact, this is what Freebase uses to define schemas and store data. However, far from being an obscure standard known only within the ROA community, RDF is the basis for RSS and Atom, standards used to describe the contents of blogs and podcasts. Any feed reader or mashup tool, from Google Reader to iTunes to Yahoo! Pipes, that knows these formats automatically can consume any content that uses them. This is a powerful illustration of what is possible with RDF and will help stimulate more experimentation around its use and the development of …
There is a lot of interesting development going on around ROA. One of the best examples of this is a mature set of C libraries with bindings for popular agile languages for dealing with RDF. This in turn has lead to libraries like ActiveRDF, a Rails-compatible library for access RDF data stores, and experiments mapping social networks to RDF, among many other things. We are reaching a tipping point in terms of making ROA accessible to application developers. All that is missing is the frameworks to help them tie it all together. (In fact, our own Waves framework is intended to do exactly that.)
The emergence of mature virtualization technologies and the increasing availability of utility-based cloud computing services has simultaneously reduced the cost of providing and consuming information via the Web. Over the next few years, this will lead to massive amounts of data being placed in the cloud. Today, the content of the Web is mostly hypertext but, because it is so inexpensive and easy to do, this will gradually shift until the Web is mostly data. As this shift happens, cloud technologies will evolve to better support publishing data feeds. And the technologies that will be best suited to do that on the Web will be resource-oriented.
Consumers are coming to rely more and more on the Web. Google has trained them to think of the Web as a giant resource for information. Anything from the their bank account balance to travel itineraries to the Federal budget is available almost instantly somewhere on the Web. Increasingly, consumers will come to expect everything to work that way. But the thing is that a lot of this information is really just data. Which is why search engines are exploring ways to use ROA technologies like RDF to enhance their search results with real data, not just hypertext. Furthermore, specialized aggregators are emerging that rely on being able to access data from a wide variety of sources. We see this trend in everything from social networking to banking.
Having all this data on the Web is only valuable if you know how to ask for things. Typically, this has meant learning a query language or providing an advanced search option for your Web site. For some applications, such as airline reservation sites, this has been a constant struggle. However, recent advances in natural language processing and speech recognition will radically change the expected interface for “advanced search.”
Already, consumers are using longer search queries as they get used to more powerful query processors. In addition, voice search is clearly coming into its own. What this means is that you will soon be able to simply say to your computer find me the most affordable yet romantic Italian restaurant that has reservations available Friday around 8 and expect that you’ll be understood. Of course, this is only useful if the data is out there. Conversely, putting it out there becomes a lot more appealing if it is easy for people to find it.
1. モバイル Web
Finally, the biggest thing that will drive all this is the personalization of the Web itself. The Web is no longer something that is only accessible from your desk ? now you’ll carry it with you at all times on your mobile phone. This shift will make the way we currently use the Web seem clunky and primitive by comparison.
Although Web browsing has been available on mobile phones for some time, you didn’t really get the Web, you got this really stripped down WAP version, and it was slow. Today’s so-called smart phones, however, bring you the real Web, and it is getting faster all the time as telecoms race to acquire customers. This vastly increases the value of resources that are available via the Web because of the sheer number of people that will be able to take advantage of them.
In turn, this will increase competitive incentives, forcing companies to become more consumer-centric. Consumers will tire quickly of applications that don’t interoperate seamlessly with the “data cloud,” as they become exposed to more and more that do. At the same time, they will learn to see their data as theirs, and expect that applications share it rather than hoard it.
So there you have it, a powerful, proven architecture, with rich emerging standards and tools that support it, and a convergence of technologies that can leverage it. And that is why ROA matters. In a future post, we’ll infer from this a good operational definition of ROA.
c 2007-9 Dan Yoder. All rights reserved worldwide. These are my personal views, not those of AT&T, or anyone else, for that matter.