|
|
YOUR FEEDBACK
SOA World Conference
Virtualization Conference $50 Savings Expire June 24, 2008... – Register Today! Did you read today's front page stories & breaking news?
SYS-CON.TV
|
TOP THREE LINKS YOU MUST CLICK ON AJAX & SOA
The Big Shift with AJAX and Web Service Bus Architectures
AJAX and Web Service Bus architectures enable the shift from request and response to message and event-driven architecture
By: Kevin Hakman
May. 16, 2007 02:30 PM
Digg This!
Page 2 of 2
« previous page
Greg Wilkins of the Jetty Servlets Project also contends that the browser only provides two HTTP connections. So if one is always-on for instant information feeds, the other must be left for traditional request/response processes like getting images, files, and information that need not be sent instantly. The exciting thing from a developer or architect's point-of-view is that persistent HTTP can blur the dividing line between client and server so that very low-latency events and messages at the client become the equivalent of events and messages at the server. And the conceptual diagrams of distinct client and server actors working across an Internet cloud get replaced with an "event cloud" in which both the connected clients and servers exist using server-side and client-side message buses to publish information to topics so that other parts of the system subscribing to those topics can intercept and handle the information accordingly. Assuming support for 10,000 concurrent connections, the benchmarks being reported by vendors mean a single CPU implementing these techniques can be just as scalable as today's application servers doing request/response handling. I personally wouldn't use this technique if I were Google or Yahoo, both of which serve millions of users concurrently. However, for business productivity solutions where end-user communities are typically far less than 10,000, message- and event-based application architectures have much to offer as a general implementation technique for AJAX RIAs. Having such a capability opens a wide range of potential applications and solutions that could be deployed using AJAX and further diminishes the gap between what's feasible in a browser and what requires pre-installation of specific runtimes or client software. Real-time applications like chat, streaming stock quotes, alerts and notifications in dashboards, and other types of collaborative applications become feasible, while avoiding the high cost of desktop-installed software or the overhead and user disdain of downloading and upgrading plug-ins. Moreover, such capabilities over HTTP are far more firewall-friendly than applet or plug-in approaches that may require additional firewall ports being opened - something business security folks abhor. Further messaging concepts also include the notion of queues, which are not only useful in real-time data solutions, but also when combined with offline persistence. Multiple AJAX toolkits have shown offline data capabilities. For example, Firefox now has native support for this capability and Internet Explorer allows 1MB of storage per domain. These capabilities assist in tasks like synchronization when a user goes back online. So AJAX event and message paradigms can also ease the composition of GUIs in much the same way that Visual Basic development is streamlined by registering listeners for various events. Consider an application architecture where both services as well as GUI components can publish and subscribe to topics. On the client side, there's an event and message bus implemented in JavaScript connected via request/response. And there are persistent HTTP connections to the server-side message bus that connects the services through common governance, policy management, and SLA infrastructure. In such an architecture, instead of procedurally coding a request/reply to a service that explicitly handles the response data and updates the GUI, a user can use the publish/subscribe and asynchronous call interfaces in various AJAX toolkits to set up event listeners and event handlers that wrap calls to the services. That object then becomes a reusable bit of code that can be dropped into various solutions. Next, a GUI component, such as a data grid, can be configured to listen for the availability of new information from that service and so too can a history list, a log, and detail windows subscribed to information from those services. Thus, when data comes back from the service, an event is thrown and the GUI objects listening for that event handle it. These approaches enable faster and more manageable development, and enforce reusable modular design patterns that facilitate efficient work among development team members. This leads to greater reuse of assets with much less chance of getting tangled in procedural JavaScript hairballs of code.
Enterprise Service Bus and Beyond However, let's get back to business and to the heterogeneous, diverse, and more complex reality that most of us creating business solutions must grapple with. While Google Maps stands out as exemplary, it's also an anomaly in the context of 99% of the business we do every day as creators and users of software solutions. Google has the advantage of being able to create, maintain, and optimize that one phenomenal service and publish that one sexy GUI for others to use or overlay in mashups with data from other data relevant to geographic contexts (and without having to generate revenue from it too). But what happens if you have five services to implement and manage? Probably doable without much other infrastructure, right? What about 50 or 500? What about 5,000 services? Not to mention the hundreds of application screens that will interact with those services. Those might seem like large numbers compared to simple use cases and solutions. But the reality for independent software vendors, solutions consultants, and corporate IT shops creating enterprise solutions is that support for hundreds (if not thousands) of services is or will soon be required as enterprises mandate interoperation with their SOA infrastructures in their procurement and vendor selection processes. (Figure 4) When dealing with integration challenges due to the number of components in a system like those, it's been generally accepted that message bus architectures address these kinds of issues best. In fact, Sun's JSR-208 specification Java Business Integration (JBI) has an Enterprise Services Bus at its core, extended for use with a variety of Web Service types. Beyond Java, TIBCO's implementation of the JSR-208 specification in its recently announced ActiveMatrix product has demonstrated support for .NET containers and services as well on the same infrastructure. Thus the homogenous three-tier, platform-specific architectures of the past decade are giving way to heterogeneous service-oriented systems managed by service-bus architectures, even crossing the great Java versus Microsoft dividing line. Services can be implemented in a variety of languages, but are then normalized into XML, SOAP, JSON, or other formats for consumption by other systems of potential varying types. Systems with multiple service endpoints can leverage message bus architectures at the core to provide needed integration conduits between systems, enabling massively distributed systems with centralized governance and policy management by virtue of the bus. In contrast, from a policy and governance point-of-view, the three-tier Web application server world is inherently more difficult to manage across disparate systems that don't share the common infrastructure of the bus. The good news is that these bus architectures are designed so that you can plug your existing assets into them. So get on the bus.
Less Code, More Use of Ready-Made Parts But as we discussed before, in business environments things can get more complex, quickly. Google and craigslist have the enviable simplicity of being publicly accessible. In the business world, not everyone is privileged to access a service, do certain tasks, or see certain information. Here again, centralized policy management across a message bus architecture greatly reduces the complexity of creating AJAX and SOA solutions and deals with cross-domain security issues in a managed context.
Conclusion Page 2 of 2 « previous page LATEST AJAXWORLD STORIES
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
|
SYS-CON FEATURED WHITEPAPERS MOST READ THIS WEEK |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||