yourfanat wrote: I am using another tool for Oracle developers - dbForge Studio for Oracle. This IDE has lots of usefull features, among them: oracle designer, code competion and formatter, query builder, debugger, profiler, erxport/import, reports and many others. The latest version supports Oracle 12C. More information here.
Cloud Computing
Conference & Expo
November 2-4, 2009 NYC
Register Today and SAVE !..

2008 West
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
Red Hat
The Opening of Virtualization
User Environment Management – The Third Layer of the Desktop
Cloud Computing for Business Agility
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Return on Assests: Bringing Visibility to your SOA Strategy
Managing Hybrid Endpoint Environments
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
How Can AJAX Improve Homeland Security?
Beyond Widgets: What a RIA Platform Should Offer
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
In many cases, the end of the year gives you time to step back and take stock of the last 12 months. This is when many of us take a hard look at what worked and what did not, complete performance reviews, and formulate plans for the coming year. For me, it is all of those things plus a time when I u...
WOA for the Enterprise
An alternative architectural style

Aside from allowing us to detect edit race conditions, the ETag header also allows us to conditionally request a resource. When we request an updated representation of our work item using the GET method, we can optionally pass in an If-Match-None header with the ETag value. This indicates to the resource to only send us back a new representation if the ETag value has changed. If the resource did not change, we receive a "204 No Content" response. This mechanism enables us to save valuable bandwidth and processing time.

Listing 4 shows the complete code to issue the conditional GET request.

Inspecting the Analyzer
Work items are not the only resource that benefit from the Atom representation. When we created our initial work item, we characterized the analyzer as a queue - or collection - of work items. Consequently, it makes sense to represent the status of the analyzer as an Atom feed. To retrieve the feed, we simply issue a GET request on the analyzer URI either from the browser or from a feed reader application. This means, we can at all times remain informed on the state of the analyzer.

Listing 5 shows what the analyzer's Atom feed would look like. The status of work items is either "processing" or "queued." Once a work item has completed, the submitter we'll be notified via the URI supplied in the work item. If the URI is a mailto: address, the analyzer will send out an email notification. Alternatively, if the URI is the location of another feed, the analyzer will publish a result Atom entry into it, potentially kicking off another processing stage.

Don't Assume. Discover
We've have seen how we used the contents of the work item to discover that it could be edited. But how did we discover the URI for the analyzer in the first place?

WOA advocates that all resources be discovered through a single, known entry point. This principle provides a clean separation of concerns between the agent and the network topology. Network applications often document their various entry points. However, once these are published, agents will hard-code them, and then it's almost impossible to change the network topology. Instead, agents should use a single known entry point into the network and discover other resources from it. This enables the application to remain in control of how network resources are distributed. For example, the application may provide alternate URIs based on availability or the location of the requesting agent.

How did we discover the analyzer? We requested an Atom feed of all top-level resources from our entry point. Then we used an XPath expression to find the link to the analyzer, just as we did earlier to find the edit link for our work item. If we want to save ourselves a round-trip, we can use a conditional GET request. If the feed hasn't changed, then our previous analyzer link will still be the same. Problem solved!

We have covered a lot of ground in this article. We defined WOA and REST in broad strokes. Then we put theory to practice and explored how WOA would be applied to an image processing application.

The examples illustrated the benefits of using established representations, such as Atom entries and feeds. The conventions defined by the Atom protocol gave us a well-defined processing methodology. If other processes within our enterprise are modeled using Atom, we will automatically have an intuitive understanding of them. This understanding scales outside of the walls of the enterprise to online web services as well.

We also saw how easy it is to work directly with HTTP, XML, and XPath using a WOA-friendly .NET library, such as MindTouch Dream. Using nothing more than raw HTTP request and response for documentation, we were able to translate resource interactions into running code that required just a few lines. In short, we were able to write our agent code close to the metal and it remained simple.

WOA is enterprise ready; because it's simple, scalable, and extensible, WOA leverages the benefits of HTTP, such as conditional GET and PUT requests. It also promotes the use of semantically rich representations. In our examples, we used Atom documents, but as stated in the introduction, we could have used (X)HTML or RDF documents instead. The specific document format is not as important as how broadly it has semantic consensus, because consensus is the investment to be leveraged. Just think for a moment about how much time you have spent in meetings to reach consensus with others. Now, take a step back, and ponder the value of a representation that has achieved consensus at a global scale.

As always, start small, but with determination, and you will quickly experience these benefits of WOA first hand.


About Steve Bjorg
Steve Bjorg is the co-founder and CTO at MindTouch and the mind behind MindTouch Deki, the first WOA wiki platform. His work experience includes compilers, virtual machines, distributed systems, behavioral type systems, process calculi, and game development. Prior to MindTouch, Steve worked at Microsoft doing product incubation in the Advanced Strategies team.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

SOA World Latest Stories
There is a huge demand for responsive, real-time mobile and web experiences, but current architectural patterns do not easily accommodate applications that respond to events in real time. Common solutions using message queues or HTTP long-polling quickly lead to resiliency, scalability...
We call it DevOps but much of the time there’s a lot more discussion about the needs and concerns of developers than there is about other groups. There’s a focus on improved and less isolated developer workflows. There are many discussions around collaboration, continuous integration a...
The dynamic nature of the cloud means that change is a constant when it comes to modern cloud-based infrastructure. Delivering modern applications to end users, therefore, is a constantly shifting challenge. Delivery automation helps IT Ops teams ensure that apps are providing an optim...
"We started a Master of Science in business analytics - that's the hot topic. We serve the business community around San Francisco so we educate the working professionals and this is where they all want to be," explained Judy Lee, Associate Professor and Department Chair at Golden Gate...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is founda...
"CA has been doing a lot of things in the area of DevOps. Now we have a complete set of tool sets in order to enable customers to go all the way from planning to development to testing down to release into the operations," explained Aruna Ravichandran, Vice President of Global Marketin...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)!

Advertise on this site! Contact advertising(at)! 201 802-3021

SYS-CON Featured Whitepapers