Service Virtualization for Modern Applications

By Gaurish Hattangadi (Profile)
Share |
Sunday, November 28th 2010
Advanced

Disruptive innovations such as the internet have repeatedly forced businesses to change quickly or be relegated to history. Every such disruption asks a simple question of service functions in an organization – can they evolve quickly enough? Modern approaches such as service oriented architectures (SOA), along with other similar distributed application architectures, carry great promise and can provide an effective model for lean, agile and componentized IT that can adapt quickly. SOA is one of the most widely adopted enterprise architectural methodologies, but its implementation is anything but simple. Since classical testing methodologies and tools do not fit modern applications well, we have evolved newer more rigorous approaches and products to address increased software complexity and change. Service Virtualization is one of the latest ideas that can provide a faster time to market for software, with higher quality and lesser risk.

Service Virtualization simulates the behavior of software components, to remove dependency constraints on development and testing teams, so that they can deliver software faster, at lower risk and cost.  System dependency constraints can severely limit your development and testing efforts, especially in complex, interdependent environments. Downstream components may be unavailable, poor performing, or unusable. In addition, the time and costs to set up test data scenarios and physical test labs, along with frequent contention for shared resources, can significantly limit the scope of testing and compromise application quality. Service Virtualization automatically captures and creates realistic virtual models of dependent systems, so that the real systems are no longer needed for development and testing.

The term “Virtualization” is also widely used in other contexts, such as storage virtualization and memory virtualization. This paper focuses on the use of virtualization as it applies to the problems of developing and testing modern SOA applications.

The Birth of Service Virtualization

The earliest exposure to virtualization for most IT practitioners is working with hardware virtualization systems such as Citrix or VMware. The premise of hardware virtualization is simple: underutilized hardware is common to IT infrastructure in most organizations. By pooling together hardware resources and unused capacity, and allocating this pooled infrastructure to application developers and testers, enterprises can drive costs out of the IT infrastructure. This is a great idea that has wide penetration throughout enterprises worldwide. But does it capture all of the value we expect for building today’s modern application approaches such as SOA, BPM and Cloud-based environments?

In today’s large enterprise, SOA itself is no longer a unique occurrence, in fact, service-orientation is the baseline for having a lean, agile IT process. The question isn’t really who does SOA anymore, but who delivers quality services faster and cheaper: or, the most reliable modern implementation, with the fastest time-to-market. Service-oriented development and testing has evolved a great deal, we now have sophisticated new development methodologies, testing methodologies and tools that address the needs of these distributed, heterogeneous, multi-tier applications. While SOA speaks of autonomous systems that are integrated yet free to evolve independently, it fails to decouple the development timelines of teams that must share access to shared systems. Large integration and implementation projects are riddled with the sequencing of tasks that involve many shared system constraints that are resistant to hardware virtualization.

Over-Utilized Systems: When Service Virtualization Matters