I have written about iTKO before See - iTKO LISA - Software Validation and Testing at the Speed of Enterprise 2.0. iTKO LISA provides SOA testing and validation services that are designed to meet the challenges of the new world of enterprise 2.0 and agile development. I recently had a chance to talk with them again and spoke with John Michelsen, iTKO’s Founder/Chief Geek; and Chris Kraus, iTKO LISA Product Manager. We covered two main areas of expansion for them: SOA governance and service virtualization.
SOA governance has evolved to include more than setting policies, as a number of vendors now have software offerings in this space. They tend to be standalone applications that put SOA governance policy into software in the form of specifying what needs to be done (i.e. “the system shall…”) and offering content repositories for recording governance decisions and policies.
This is helpful, but Chris said more functionality should be provided for better adaption to the rapidly changing world of SOA application development today. Most of these SOA governance tools are not actionable. With LISA, they have integrated governance vendors’ policies to launch their testing and validation services, so the policies can guide automated testing procedures.
This integration of governance policies is especially important in the dynamic world of agile development, with a constantly shifting development environment. In the old waterfall method, you could assume some stability and the pace was a bit slower. Now every new business solution that consumes services necessitates a testable event. Governance policies need to be more complex as a result and be able to adapt to these changes. The manual step of taking policies out of SOA governance content repositories and validating and enforcing them in the real world slows things down, and sets up space for errors and the need for even more testing. Automated policy application through integration with the testing tools takes these manual steps out of the application life cycle.
We spent a bit more time on service virtualization (SV). iTKO has a very useful white paper on this topic and I took some of the explanations from this work. This is a great area for cost reduction and it is gaining a lot of press. iTKO defines virtualization as the practice of simulating the behavior of a physical asset, such as a server or application, in a software emulator, and hosting that emulator in a virtual environment. The virtual environment behaves enough like the physical environment, that communication with the emulated asset is identical to the real thing. The same concept of virtualization can be applied to hardware and software.
Hardware virtualization creates simulators of hardware behavior, but they are actually intelligent proxies to the physical world. These proxies have the ability to negotiate with the virtual environment in which they are deployed, so they do not require exclusive access to the hardware they represent offering more flexibility. Hardware virtualization has generated a lot of buzz for the realized cost savings.
However, hardware virtualization is limited to virtualizing what actually exists. iTKO takes the concept a step further with service virtualization. Here you can virtualize the behavior of services even before they are developed. What you can virtualize is greatly expanded. Service virtualization can greatly reduce the dependencies between development and QA, and between the core service provider and the business solution service consumer. One team does not have to wait on the other, and the team on the front end of a development cycle has to do less to help those on the back end. It is a win-win. Here is a sceen shot that shows how LISA Virtualize models user and system-to-system decision points throughought the transaction workflow, and captures all needed data according to its relevance to business logic.

In the past, a development team would have to create a mock up to help QA get started, but it was limited as to what might be tested. Core infrastructure service developers would have to create mockups so the business solution developers who relied on these services could begin their work. It took time to create these mockups. More importantly, they had limited value to the business solution service consumers because they were limited in what they could do. Sometimes they were not even used at all.
With service virtualization these steps can be automated. Development teams might save 20 to 30 percent of their effort by not having to do these mockups. More importantly business solution developers can start their work in a robust way months ahead of old schedules since they can obtain a virtualization of all of the behavior of the service under development. You get something that looks and acts like the real thing instead of its shadow. Here the potential savings are exponential. Below is a diagram that shows the before and after of service virtualization.

This seems transformational to me. Chris mentioned that one client was able to do in days what a seven person team was formerly doing in over a year. To be clear, with service virtualization you do not get the actual application that can do real transactions, but you do get a virtualization of that application that looks and acts exactly like this application for testing purposes, and can be modeled to suit the functional, data and performance responsiveness levels needed, long before the actual application is built.
Here are some specific examples of how this service virtualization can help from their white paper.
• Let’s say you need access to a mainframe, but the trouble is you are not the only team with this need, there are dozens of other project teams -- so you have very infrequent access to the mainframe, slowing down development.
• Let’s say you need access to a database, but another team owns the database. You need new stored procedures in that database schema, but it will take some 3 or 4 months of negotiating and design work to produce those stored procedures.
• Let’s say you need access to a web service because there is a new architectural mandate to access legacy systems through web services. However, the proposed web service doesn’t actually exist yet. You company is still shopping the contract, so access is months away.
Service virtualization can eliminate these constraints. For mainframe access, you can build a model of the behavior, and then host it as a virtual service in a virtual service environment. For database access, you can construct a model from the database and make changes as needed within minutes. For web access, you can construct a virtual service from SOAP documents or XML samples, or whatever you can give the Virtualization team.
In a former life, I did enterprise software training, and we were even further down the development lifecycle than testing. There was usually an impossibly short window when the software was ready so we could start to develop the training when it was needed. I wish we had service virtualization then. It would have transformed our ability to have training ready on time. Chris said that some of their customers are using service virtualization for training purposes.
When I wrote my first post on ITKO last year, I titled it Software Validation and Testing at the Speed of Enterprise 2.0. It seems that iTKO has further revived up the speed with these expansions. It is providing an important component to realizing the vision of enterprise 2.0 that is often overlooked. Their blog, iTKO LISA SoapBox, offers a lot of useful conceptual pieces on these issues.