Free Newsletters

   All InfoWorld Newsletters
Real World SOA | David Linthicum » When Thinking SOA Performance..Don't Think REST vs. SOAP...Think Design

January 16, 2007 | Comments: (0)

When Thinking SOA Performance..Don't Think REST vs. SOAP...Think Design


There has been an ongoing debate over the value of REST and the value of SOAP, when it comes to SOA. Ss much as been said about it, I did not think I could add much value to the discussion.

Of course, the issues go well beyond performance, but lately I've been working with a number of companies that are focused on just that...SOA performance.

Indeed, Web Services are slow. There, I said it. They are very synchronous in nature, and do cause concern for those building a SOA around Web services (Keep in mind that Web services are only one type of technology you may use to build your SOA). However, tossing new standards and technology at the problem won't get you there. Instead, you need to think at a more fundamental level...the design of the service.

Truth-be-told is most developers have gotten accustomed to having commodity resources available in their deployment environments, meaning memory, CPU, bandwidth, I/O, etc., and many don't think "service efficiencies" when designing (if they do design), programming, and deploying a Web service. In fact I'm reviewing services now that with just some rethinking in terms of how they leverage resources, including when, how often, and why...they are increasing service performance by 200 percent in many cases. Also, the whole "too course grained" or "too fine grained" thing becomes issues as well.

The key issue is that most service developers don't understand service design yet, and build them without a clear understanding of the consequences of some of their design decisions. They build them, deploy them, get them working and any performance issues can be blamed on the inefficiencies of SOAP. While SOAP can take part of the wrap, as can the overall set of standards, most of the issues that cause performance problems can be tracked back a human with a compiler.

To that end, here are some general guidelines:

1. Design the service to minimize the number of times communications is required with other services, devices, or the container.
2. Consider organic growth of the data and amount of data transmission. Something working well today at 10 transactions-per-second, may die at 100.
3. Perform a practical number of POC performance tests using several design approaches. Make sure to address granularity.
4. Try different enabling standards. Don’t rely on others to tell you that something is faster, prove it within your own problem domain.
5. Think through your service design, and account for efficiency. Perhaps consider CMM level 3 design and review patterns.
6. Don’t be afraid to try new things…a small increase in performance could save you from a lot of problems down the road.
7. Make sure you decompose your services considering usability, functionality, and performance.

Posted by Dave Linthicum on January 16, 2007 09:06 AM


RATE THIS ARTICLE:





 

  •  
  • COMMENTS




Hi All,

Very good points made in the article. When I was designing MyUniPortal I took into considerations the points made in this article and never regretted it. I wrote a message thread regarding this area and the number of people viewing it is almost a thousand a week. Check out the suggestions I made and hopefully it is a complement to this article. Although it is in the JBoss forum the suggestions I made apply to SOA in general.

http://www.jboss.com/index.html?module=bb&op=viewforum&f=121

Hopefully it helps the readers to become successful with SOA and Web Services using SOAP.

Regards,
Tony Anecito

Posted by: Tony Anecito at January 16, 2007 10:08 AM

Technology White Papers

 

InfoWorld Technology Marketplace

» Technology White Papers Library

Technology White Papers by Topic

Technology White Papers E-mail Alert

Find out when the latest white paper is available:
 
 
» BUY A LINK NOW

Sponsored Technology Links