September 20, 2007 -
It's an exciting time for developers. Many development teams are working on exposing services in service-oriented architectures (SOAs) or, at least, integration projects with SOA-enabled applications like Office 2007 or BizTalk. As these projects get underway, some teams find there's something missing: a rich, interactive user-interface that takes advantage of the services offered by their SOA implementation.
Analysts have coined the term Web-oriented architecture (WOA) to describe the technologies forming the foundation for rich Internet applications. Whether you've adopted Windows Vista's XAML or ASP.NET AJAX, you've discovered WOA. It's unlikely you've anticipated the true effects, however, that a WOA can have on the performance of your SOA-enabled applications.
The primary cause of poor application perfo rmance in a WOA is an increased rate and size of requests and responses. Predictable usage patterns suddenly balloon into a quagmire of erratic requests. Instead of following a designated application flow, users are suddenly clicking around, loading data willy-nilly, while the browser is covertly updating live data and handling user requests.
The server that once serviced thousands of concurrent users is suddenly only able to service a fraction of its former capacity. The network is clogged with three or four times the amount of traffic, giving the server and delivery infrastructure that bloated sensation that comes from handling just one more request.
The server slows down and with it, your application. Taxed with managing more requests more often, the overhead of session management combined with processing requests chews up resources. The browser begins firing queries about the status of its last request. The additional TCP retransmits generated cause more congestion on the network as intermediary devices try to keep the traffic flowing as smoothly as possible.
Then your application starts missing connections. Timeouts on the server caused by the overload of requests and congestion on the network cause real-time updates to fail. Requests generated by the user are suddenly lost in the ether or take longer to return, resulting in performance problems with your application and causing acceptance of your Web application to plummet.
You and your network counterpart scramble to find the answer, and then realize that you've both got a case of network-oriented angst (NOA). It's no coincidence that this acronym, when spoken rapidly, is the same sound developers make when they encounter the performance effects of combining a WOA with a SOA.
There are ways around NOA, but the one best suited to your environment, application infrastructure and budget is dependent upon a number of factors that are unique to your organization. It will likely require coordination between you, the server and network administrators as the factors that affect application performance are increasingly distributed across disparate ar eas of expertise.
If you're already experiencing network issues, one of more of these options should help. If you're concerned about preventing NOA altogether, upgrading the hardware on the network before you deploy WOA- and SOA-enabled applications may be what's needed to ensure optimal performance.
Lori MacVittie is a technical marketing manager at F5 Networks, Inc.