Web Development

Web Oriented Architectures

By Jonathan Erickson, May 07, 2008

...and why Mozilla adopted the Deki Wiki

Joining us today are Aaron Fulkerson and Steve Bjorg, co-founders and CEO and CTO, respectively, of Mindtouch, a company that focuses on open source wiki collaboration and content management, and Mike Shaver, Mozilla Chief Evangelist.

DDJ: Steve, what is a "web oriented architecture"?

Steve Bjorg: Web-Oriented Architecture is an alternative to Service-Oriented Architecture. WOA is fundamentally about "open" systems that communicate over "open" and established protocols and formats. In WOA, HTTP takes center-stage as the communication protocol between applications and web-services. Beyond that, the exchange format is also web-centric and is often XHTML, RSS, RDF, or other such formats. In WOA, web-services embrace the same technological design principles that web-applications have been following for years: communication between services is stateless, formats are open and extensible, and data exchanges are cacheable. All desirable properties for creating large scale, ad-hoc networks of connected, heterogenous web-services.

DDJ: What is the Deki Wiki and does it adhere to the ideals of a web
oriented architecture?

Steve Bjorg: MindTouch Deki Wiki was designed from the ground-up to operate in a world where the core platform can be extended by web-services that may reside anywhere on the network or the web. By going the WOA+REST route instead of SOA+SOAP, the requirements for extending the application dropped considerably. There is no SOAP processing stack with complicated WSDL documents, an SOA registry, and what have you. Instead, someone can easily create an extension to Deki Wiki using any number of languages, including PHP, Python, or .NET with very little machinery. But the use of WOA principles runs even deeper than that. Even internally, Deki Wiki delegates parts of its functionality to REST web-services. This enables these parts to be later moved to other machines or shared across multiple instances of the platform without requiring a single line of code to be changed. Why? Because from the
ground up, our engineers programmed for a WOA world where all services are remote and the foundation for data exchange is the common HTTP protocol.

DDJ: From what I understand, the Mozilla Foundation has selected Deki Wiki as the future platform for its developer community. Why did Mozilla settle on Deki Wiki?

Mike Shaver: We have indeed decided to migrate the Mozilla Developer Center to Deki Wiki, and that process is already well underway. Mozilla has a large volume of developer-relevant information, ranging from traditional documentation and sample code to test suites and bug tracking data, as well as a number of active discussion forums and RSS streams. We were looking for a system that would give us the tools to combine and "remix" those data sources creatively, and Deki Wiki is designed with exactly that goal in mind. The extensive API will let us pull in information from all over the project, making MDC a much more valuable resource for web developers and Mozilla developers alike. Exporting that developer information out to the world

Because Deki Wiki is designed as a distributed application, it will be quite straightforward for us to integrate content and data from other parts of our world, without creating a maintenance nightmare by hacking on the core code or trying to program to underpowered APIs. More than any other Wiki system we looked at, Deki Wiki feels designed to be extended as a platform for web applications and we're really looking forward to having that power available to our community.

DDJ: What can individual developers take from the MindTouch/Mozilla news? How can working developers leverage something like Deki Wiki?

Mike Shaver: Mozilla is a large project, and our Developer Center alone has hundreds of editors collaborating in more than a dozen languages to create tens of thousands of pages of content. With the Jay Cooke release of Deki Wiki, we have more powerful localization tools than ever before, and great support for working with many different types of web content at our significant scale.

You can get started quickly with the VM image that's provided by Mindtouch, and whipping up a new extension or integration point is easy enough that even a Chief Evangelist can do it. :)

DDJ: Where can readers go to learn more about these issues?

Aaron Fulkerson: A good introduction to WOA and the importance of distributed systems can
be found on the MindTouch Technology page where we explain the motivation for designing MindTouch Deki Wiki as a distributed application using
RESTful web-services. Also, our CTO Steve Bjorg, has given several presentations on the design principles underlying RESTful architectures. The slides and video are available on the MindTouch Developer Community on the REST page. Last, but not least, the excellent book by Sam Ruby and Leonard Richardson entitled RESTful Web Services (published by O'Reilly Media) which is a must read for anyone who wants to embrace WOA.

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task.
However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

This month's Dr. Dobb's Journal

This month,
Dr. Dobb's Journal is devoted to mobile programming. We introduce you to Apple's new Swift programming language, discuss the perils of being the third-most-popular mobile platform, revisit SQLite on Android
, and much more!