developerWorks: You're listening to developerWorks interviews, where we feature conversations with technical luminaries and thought leaders from a variety of disciplines, on topics of interest to technology professionals. I'm your host, Scott Laningham. Our guest today is Bobby Woolf, a member of IBM Software Services for WebSphere Consulting team. Bobby is a co-author of "Enterprise Integration Patterns" and the "Design Patterns SmallTalk Companion." He's also a developerWorks blogger, and he joins us today to talk about a topic I would think close to his heart, among many, SOA quality management.
Bobby, good to have you on again.
Woolf: Great. Thanks for having me on again.
developerWorks: Tell me right off the top now, what do you mean by quality management in an SOA environment? And it sounds obvious but maybe it isn't.
Woolf: Yes, it's a little bit tricky. First, we've got to kind of review what SOA is. SOA makes applications into composite applications, meaning that they're no longer monolithic or even tiered.
Rather, a composite application is composed from many services. These services will often be deployed independently in separate processes on separate host machines and will be maintained by separate development teams deploying new versions on separate schedules. All of the separate development of services will make it more difficult to develop and maintain a composite application that provides a single coherent user experience we all expect. Development of composite applications will be easier because of all the reusable services, and maintenance will be easier because the composite application will automatically inherit fixes and enhancements made to the individual services.
But there's also the potential for changes to the services to adversely affect the composite applications -- effects which the application has no control over. So I really feel like it's more important than ever for the service developers and the composite application developers to coordinate, to ensure that the services are what the applications need and change in ways that help the applications not harm them.
developerWorks: So you know it sounds like testing, but it's more than just testing?
Woolf: Yes, it is more than just testing. One unfortunate thing about testing is that in the end often it's too little too late. It gets saved for last and it gets squeezed between development running late and pre-announced release dates which can't change. I really feel sorry for testers trying to fit in decent testing under those circumstances. It doesn't leave enough time for sufficient testing. And even if testing finds significant problems, there's no time to resolve these problems without totally sacrificing the schedule. And then the testers get blamed for messing up the schedule. It's really not a really good situation.
So rather than waiting for testing at the end, the focus needs to be on making sure there will be no problems to find in the final testing. Don't just make a change to a service just to find out in final testing that several applications get wrecked by the change, and don't just deprecate and sunset a service version just to find out that there's several applications which depend on the service and can't be updated in time. That's just spelling trouble. Rather, what you want to do is, you want to have development look before it leaps. When they're planning changes to services, they need to consider the impact that those changes will have on other services and composite applications.
This requires knowing and keeping track of which applications are using which services and how so that you can predict the consequences and plan on how to handle any adverse effects proactively. This requires a lot of organizational knowledge, not only about the code but also about the business tasks and how they're being reused -- a scale of coordination that many organizations are not accustomed to. And all that organization is why SOA quality management is more than just testing. It goes through the entire development process.
developerWorks: Now you know beyond just the obvious desire any business has to ensure quality, what else about SOA quality management is important to business? I mean you're already talking about it, but what else can you tell us about that?
Woolf: Well, in a nutshell, SOA quality management will help the business maximize the value it derives from SOA, because it focuses on making sure that software results meet business objectives. An important goal of SOA we like to say is to better align IT with the business, with increased reuse of IT components and by enabling IT to more flexibly respond to business change. This requires focusing on service discovery and evolution not just as an IT activity but also as a business activity.
SOA quality management helps ensure that IT aligns with the business, or at least that you know when the IT is not aligning with the business. It helps get the business involved as part of the service discovery process and focuses the whole organization on end-to-end development of quality services that support business flexibility.
developerWorks: What about the SOA lifecycle, though? How does it fit into that lifecycle?
Woolf: It fits in real nicely with the existing lifecycle that IBM already espouses. SOA quality management really applies to every phase of the SOA lifecycle: model, assemble, deploy and manage. All of it uses SOA quality management. It is the process to verify that the services meet the functional and operational business requirements. It ensures that the services modeled do what the business needs not only in terms of functionality, but also in terms of service level agreements for quality of service. Ones like response time, capacity and security.
It ensures that the services that are delivered match what is modeled, because that matches the needs of the business. It ensures that the services are deployed with an agreed upon quality of service and management and monitoring confirms that the services are operating as intended. SOA quality management makes sure not only that the SOA lifecycle is followed, but that it produces the results the business intends.
developerWorks: Now I know, Bobby, that some people digest this kind of stuff through a focus on roles and responsibilities maybe instead of on these higher level concepts. So could you kind of break it down a little bit in that term, I mean, roles and responsibilities?
Woolf: Yes, I'd be glad to. It's a little bit tricky but here's a shot. With SOA in general, seemingly everyone in the organization seems to be involved in making SOA successful. And SOA quality management is no different. You can't just dump it off on the business analysts or on the testers. They'll make sure that it succeeds for their part of the process but not necessarily for the complete business and for IT as a whole. So to keep that from happening, everyone needs to be responsible for quality.
Now having said that, there are five main roles which tend to be key players in SOA quality management. Here are those roles.
First, the business executive who is the person or people who identifies the key business goals and models them. Second, the IT executive who establishes processes for quality management of services and their operating environment and makes sure those processes are being followed. Third is the developer who discovers services based on business goals and builds implementations of those services. Fourth is the tester who ensures that the services built indeed actually meet the business goals they're supposed to. And fifth is the deployment manager who makes sure only validated services are deployed and maintains an audit trail of what changes are deployed.
So these roles work together to ensure that the business defines the goals IT needs to meet and that the services IT develops and the operating infrastructure it installs meet the goals of the business.
developerWorks: So now Bobby, tell me what's new about IBM's SOA quality management approach.
Woolf: Okay. It's not completely new; it's an evolution of what IBM has been doing with SOA for over a year now. Now, IBM is continuing to flush out the story that explains to its clients how to be successful with SOA. It's an evolving story, as we add more and more details.
SOA quality management provides greater depth to explain how to align IT with the business, how business gets involved with discovering and designing services and how to ensure that the composite applications being deployed match the way the business works and its rapidly evolving business environment. So this is part of what IBM has been calling SOA governance, and it is more detail about how to perform this particular aspect of governance.
developerWorks: You know I should mention right there that we've got some, it was from a year ago at the Rational conference, but we've got some great podcast material from last year that's still on the Web site, conversations about governance with Danny Sabbah and some other Rational execs, some good stuff there.
Why don't we turn quickly to the products that IBM offers around all of this? And maybe if you could kind of give us a sense of that at a high level and kind of how they map to what you've been talking about?
Woolf: Sure I'll be glad to. I wish I could answer this question quickly, but frankly IBM has a lot of really neat products that work with SOA and now SOA quality management. So let me try to go through those at kind of a high level, like you said.
First of all a lot of IBM's existing products for SOA development can also be used to be helpful with SOA quality management. These products include ones that you're probably familiar with: WebSphere Business Modeler, WebSphere Integration Developer, Rational Software Architect, WebSphere Services Registry and Repository, Rational Clear Quest and Tivoli Composite Application Monitor, which we also call IT CAM. That's not the complete list of products but these are some of our main SOA products that are also real useful for SOA quality management. You may already have some of these products, and if so you'll be able to continue to use them for SOA development and also start using them to do SOA quality management as well.
Now in addition, Rational has two new products specifically for SOA quality management. Rational Tester for SOA Quality, which helps you perform automated regression and functional testing for Web Services, and then also Rational Performance Tester Extension for SOA Quality which helps with performance testing of applications implemented using Web Services. So let me give you a bit more detail about these two new products.
Rational Tester for SOA Quality makes it easy to test Web Services without writing code. It uses a Web Services BPEL to create test skeletons that you then edit graphically. The tests are data driven, so mostly you just have to fill in the test parameters and the expected results. It also supports making tests that are more sophisticated by enabling you to drill down into the Web Services details like SOAP and WS security, to make sure that the messages are being built as you expect.
Now, the second product, WebSphere Performance Test Extension for SOA Quality is actually an extension of the first product. What it adds is scalability testing. You model the client load, then it generates the Web service clients to create that load. It not only tells you when there are throughput problems but it also helps you identify where the bottlenecks are and what's causing them. Also another thing about IT CAM that I mentioned earlier, it's an existing product but it has some new features for SOA quality management. These new features are dashboards that help you evaluate how well your composite application is meeting your business's quality goals. For example, the health monitoring dashboard gives you enhanced visibility into several different IBM products such as the services that are running in WebSphere Process Server, services that are being invoked using WebSphere ESV, and services that are being invoked using WebSphere Data Power.
So that's just a quick review of how existing products and a couple of new products that we have that help you with SOA quality management. Obviously we have a lot more detail available on IBM's Web site.
developerWorks: Now what about IBM Professional Services to assist in implementing SOA quality management. What's available there?
Woolf: Well, within IBM Global Services is a division called Global Technology Services. And they can provide consulting to help you with all phases of SOA quality management: the strategy, designing it, planning it and implementing it. This helps your business set up the organization and technical structure that it's going to need and to learn the necessary skills in order to be successful with SOA quality management. Again, there's a lot more information available on IBM's Web site.
developerWorks: Cool, I was going to ask you that next. I mean, as far as other places to go and to read up and learn more about this. Now I know certainly there's the SOA and Web Services zone on developerWorks and I'm sure there is some of this content there although people will not find an SOA quality management heading, per se. But other things that you want to mention?
Woolf: Right, yes, we're just starting to publish information on SOA quality management. So that you're going to see more information coming over weeks and months on this. And my discussion here on this podcast is really just the tip of the iceberg. Everybody warned me, don't do a two hour podcast so we're just going over stuff quickly. There's a lot more information available on IBM's Web site already currently today and there will be more in the future.
IBM has Web pages that already discuss SOA governance in general and SOA quality management is part of that and so more information is being added there. We have two conferences coming up that are going to have presentations that relate to SOA quality management. Those conferences are IBM Impact and the Rational Software Development Conference. So we'll have links for these resources and a whole bunch of other stuff on the Web page for this podcast on IBM's Web site.
developerWorks: Absolutely. And I'll add those links and any others that you want to send me to include as well and add them to my blog for those subscribing to the blog. So we'll just cover them from all directions, then.
Bobby, thanks so much for doing this. It was pretty short notice, and you pulled it together quickly. So we really appreciate it.
Woolf: Oh, you're welcome. I'm glad we were able to do it.
developerWorks: Our guest again has been Bobby Woolf, a member of the IBM Software Services For WebSphere Consulting team. Find out more about SOA quality management in the SOA and Web Services Zone at ibm.com/developerworks. There are resource links related to this podcast on our podcast page at ibm.com/developerworks/podcasts, as well as in my blog which you can navigate to with one click from the podcast page.
For everyone at developerWorks, I'm Scott Laningham. Talk to you next time.
- SOA Quality Management page
- IBM Rational quality management
- IBM SOA Quality Management wiki
- developerWorks Rational zone
- developerWorks podcasts

Scott Laningham, host of developerWorks podcasts, was previously editor of developerWorks newsletters. Prior to IBM, he was an award-winning reporter and director for news programming featured on Public Radio International, a freelance writer for the American Communications Foundation and CBS Radio, and a songwriter/musician.
Comments (Undergoing maintenance)
