SOA + WOA = NOA
How to head off performance bottlenecks.
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.
Making Your Connections
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 h andling 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 wit h 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 connec tions. 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.
Unclogging the Network
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.
- Performance tuning. A few tweaks of your application server may solve the issues inherent with deploying Web 2.0 applications. Incr ease the TCP timeout value to be in-line with the rate of requests coming from your client. This will reduce the number of connections that time-out due to network congestion and will further reduce the overhead of TCP connections as existing connections can be reused.
- Modify polling intervals. If your application polls for updated data, check the timing of the interval and consider increasing it to reduce the chattiness of your application. This reduces the number of requests and alleviates some of the burden on the server.
- Increase browser connections. Try modifying the configuration limits on the number of simultaneous connections allowed by the browser. This requires a registry edit for Internet Explorer, and may not be an acceptable option. Increasing the connections available will remove delays introduced by the client ctions for Web-based applications. Some IP switches have built-in features to improve security, acceleration, compression and optimization of applications.
- Deploy an IP application switch. These network devices, some of which are .NET enabled, are designed to efficiently manage connections for Web-based applications. Some IP switches have built-in features to improve security, acceleration, compression and optimization of applications.
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.