Dynamic Coupled Services
In the past few days I have been thinking about a blog entry from an old acquaintance of mine from Austin, TX, Jeff Shineider. He has some interesting ideas around SOA (Service Oriented Architecture) and Java. Primarily, I was intrigued by his discussion on Dynamically Coupled Services. I believe that there are some interesting opportunities for some cool new software applications that can be drawn from his discussions .
Developers have been exploring ways to decouple software components for a while. Web Services have been the latest incarnation of this effort. Thanks in part by the work done by pioneers like Adam Bosworth we have a simple way to create loosely coupled services. These services can be available from just about any provider on the network. Next, the natural thing is to understand how these services can be dynamically combined together. Or as I like to call say, dynamically assembled for a particular purpose.
I have been doing a lot of work around WSRP (Web Services for Remote Portlets) where services are basically portlets that can be federated out to any consumer. There are two main concepts in WSRP, producers' software that exposes applications using the WSRP standard on the network and consumers' software that aggregates WSRP applications. Consumers are typically a portal-like infrastructure. Producers do not have to be portals. There are WSRP implementations in Java, .NET, and other varieties out there.
WSRP is a good first step in creating an environment where components can be dynamically coupled, or assembled together. A lot more work needs to go into making them aware of each others' capabilities and requirements. Another angle to explore are the possibilities for business users to become more self-sufficient in terms of using the web. By working with services and the combination of those services , non-technical users will be able to model different applications without having to touch the code. Of course someone needs to build the services, but once they are out there anybody with the right set of tools should be able to stitch them together. Perhaps even simpler... just check a few boxes, select a few options in a drop down menu, drag and drop a few icons and voila!