If you're beating the drum for service-oriented architecture, Frank Cohen believes you're going to need a tempo...
change to move successfully from pilots to production. His initiative, called FastSOA, is an alternative architecture that utilizes XML Query Language (XQuery) and a native XML database at midtier to solve scalability and performance issues of Java 2 Platform, Enterprise Edition (J2EE) application server approaches. The idea is that FastSOA would run in parallel to an enterprise's existing architecture.
The problem, Cohen said, is that Web services built with today's commercial and open source J2EE application servers get 1.5 to 2.0 transactions per second (TPS), according to his tests, which he said is not good enough for production demands. "We are expecting FastSOA to deliver performance in the 15 to 20 TPS range, and expect that FastSOA will spark a wide effort to optimize SOA performance overall," said Cohen, who is principal maintainer of the TestMaker open source test utility and framework and director of solutions engineering at Raining Data Corp., Irvine, Calif., which sells an XML database.
Cohen has been conducting tests on J2EE application servers over the past three and a half years. "When I ran Web services performance tests for General Motors two years ago, the results were so poor it killed two projects. SOA developers don't have the tool sets to bring pilots into production," he said. Cohen said he expected the SOAP stack and tools to improve over time. However, he said, "WebLogic, WebSphere, JBoss [and the other servers tested] have gone through two generations, and still performance is slow for SOAP-based Web services."
The FastSOA architecture addresses two layers of the issue, according to Cohen. "SOAP binding application servers give you inefficient [performance]," he said. "And there aren't easy tool sets for people to be doing SOA development that is efficient, scalable and well performing. There's no way of introducing a caching mechanism to SOA, or a policy system to know if you've handled this request recently."
Cohen said enterprises do not have to "throw away their application server or database" to use FastSOA. Rather, "you get performance and scalability gains by adding another tier, a midtier persistence layer. In this tier you have XQuery handle incoming Web service requests, and you use a native XML database in the midtier to do caching. This will provide service acceleration."
Cohen also points out that FastSOA does not require the Raining Data product. "There are a number of open source technologies out there to implement FastSOA," he said.
FastSOA is applicable for both Java and .NET development, but Cohen said he has not run performance tests on .NET Web services deployments so he can't speak to performance issues. However, he said, ".NET uses document literal encoding as the basis of a SOA tool set, so it could give [.NET] a boost up. The alternative in the Java world is SOAP RPC encoded," he said. "We've found from our studies that SOAP RPC does not scale, whereas document literal encoding scales, giving the edge to .NET."
Cohen acknowledges that not everyone is sold on XQuery, a W3C specification. There tend to be two views, he said. "From a software developer's perspective, it's an advanced form of SQL. Another view is that XQuery is a new development platform on par with Java or .NET when they started. People who look at it as an enhancement over SQL think it took too long to bake in the standards process. Years after we started, we're still without a final call on 1.0."
Despite the slow grind through the standards mill, "I believe in XQuery because a native XML environment will have an edge over any object technology such as Java and .NET," Cohen said.
Cohen is in the process of testing FastSOA. Raining Data has commissioned the study, which will be conducted using Raining Data's TigerLogic as the XQuery engine and native XML database. "We'll be testing against Mark Logic [an XML server], eXist [an open source native XML database], and we'll be including Oracle 10g as a baseline to compare relational technology put into service." The tests will run on a BEA WebLogic server, which Cohen said performed the best of the five application servers included in his previous tests. Developers are currently building the code for the test, and Cohen expects to have the tests completed by the end of November. Cohen said there are also plans to publish a FastSOA performance kit later in the year.
While FastSOA is not officially an open source project -- Raining Data will make the decision on that, Cohen said -- developers and architects can provide feedback at www.xquerynow.com, an online community sponsored by Raining Data. Visitors to the site can also download chapters from Cohen's upcoming book, FastSOA, which will be published in 2006.