Service-Oriented Architecture
SOA Web Services Journal - Enabled SOA Transformation
Leveraging open source principles
Dec. 2, 2005 10:30 AM
The implication for SOA is that the same fate can befall SOA service registries. Whether is it reusing code or adopting a service, there are a lot questions that potential users want to have answered before making a commitment. Obvious questions are: What's planned on the roadmap? Who is supporting the service? What are the known bugs and limitations? Who else is using it?
The final decision is really about mitigating the risk of adoption. The consumer might feel more comfortable if, through the interaction with a service's associated COI, they can get a sense for the service, its user base, and possibly even the consumer's own desire to become a contributing member of the project. The probability of adoption and the actual utilization of a service can be enhanced by enabling a discovery registry to provide easy access to the COI that is supporting the Web service.
Application Lifecycle Management
While SOA's impact on culture might be intuitive, what is not so obvious is its critical impact on application lifecycle management (ALM). Existing tools and software development processes may not be well aligned to support the move to SOA. At a macro level, an organization needs to understand that is it essentially migrating from insular LAN-centric development with a captive group of resources to a more open WAN-centric development environment with a diverse ecosystem of stakeholders.
In a recent interview on the importance of ALM, Gartner analyst Theresa Lanowitz commented that "As we start to bring forward this idea of a services-oriented architecture, and as we start to see services exist in a business-to-business environment, the services exist from two separate companies, and those services possibly are federated together in a loosely coupled environment. So we find the idea of the application ecosystem, the idea of a development ecosystem, is crucial as well, because there are going to be two different organizations creating a service that will have to be used together."
Many organizations are not prepared to address the need to support across the firewall software development with smaller agile teams from either a technology or process perspective. Figure 1 shows the ALM perspective of the potential impact of moving from monolithic IT applications to granular Web services.
From an open source project perspective, the right side of Figure 1 represents "business as usual" for many open source projects (i.e., smaller and geographically distributed individuals and teams employing agile development processes, working on some modularize software function or component, and using the Internet as the backbone for a software development platform). Project governance is often consensus driven and the project home becomes a focal point for code, context, and community.
A case in point is globally distributed development (GDD). The ALM environment that supports a SOA transformation will have to enable an end-to-end life-cycle process across a diverse group of stakeholders and locations. In many cases, offshore development partners and business partners will be critical members of the overall ecosystem.
"With SOA you can have business units create point applications, which publish services that are used by others in the same manner as using functionality from an SaaS (Software as a Service) provider such as Salesforce.com. Along with these opportunities, enhanced collaboration between distributed teams becomes even more important. A shared component-based development methodology is essential, and the use of common technical frameworks is highly desirable," according to Dr. Gautam Shroff, vice president of the Technology Program and head of the Technology Innovation Lab at Tata Consultancy Services, Ltd.
While the image of open source programs from an ALM perspective might be that of an ad hoc collection of developers, the reality is that well-run open source projects have a comprehensive set of ALM processes enabled by agile tools. Table 2 shows some of the characteristics of integrated ALM for SOA. Organizations can determine by inference the core competencies in software development that they need develop in order to address the challenges of SOA transformation.
Summary
As an organization looks to migrate from a large, monolithic application culture to an agile, Web service-based (SOA) culture, it will have to hone new core competencies in managing globally distributed development across the extended enterprise and across its partner ecosystem. The foundational pillars of these new core competencies are: governance, collaboration, ALM, discovery (UDDI registries, etc.), run time quality of service (QoS), and service level agreement (SLA) management. The good news is that most software development organizations should be able to glean some aspects of open source principles and be able to apply them to drive a logical benefit.
Here are some key capabilities and recommendations to consider for addressing the challenges of SOA transformation:
- Get Modular: Maybe the first thing an organization needs to do is to "get modular" about the code it builds. One approach is to use APIs that can be mirrored as a Web service. This allows the user community to decide the correct delivery approach, based on its own voluntary sense of where the control vs. performance balance should be set.
- Get Good at Collaboration: Collaboration is a critical skill in sustaining SOA. "The best companies are the best collaborators. In a flat world more and more business will be done through collaboration within and between companies," as cited by Thomas Friedman in The World is Flat, with respect to how companies will cope in a new flat landscape. Collaboration is an essential skill both for IT and business.
- Employ a Community Source Process: Having access to source code is a benefit to participants in enabling successful SOA initiatives. Whether this is open source, shared source among partners, or simply access to the code that is associated with APIs, the potential users of a Web service are more likely to participate and become effective contributors in the long term usage and life cycle of a Web service if they are enabled to participate at a source-code level.
- Adopt a Common ALM Approach: The ability to apply a common life cycle across the spectrum of definition, design, code/build, test, deployment, and support is an essential part of enabling large-scale SOA implementations. It brings about the required communication and visibility across all stakeholders, including project management, enterprise architecture, engineering, QA, operations, and business end users. ALM also feeds the necessary compliance hygiene for SOX or other governance compliance programs.
- Use Network-Centric Tools: Design teams can no longer be assumed to be collocated. More often than not, today these resources are coming from flexible sourcing partners located in any number of offshore locations. The tools employed have to work efficiently across the Internet, while enabling the necessary security. Where possible, employing WAN-centric open source tools is a benefit as it lowers the cost of entry for participants and does not create a tool barrier to prevent collaboration.
- Support COI: Successful Web services will attract and build associated COIs. The ability to support and sustain these communities requires supporting service-oriented infrastructure (SOI), including communication services and collaborative software development services. SOA initiatives should consider the concept of proactive community development and management.
In general, the theme for success is that it is less about
how you want to do it and much more about
how others want to do it. SOA implementation turns ordinary IT organizations into suppliers of shared services that are subject to the same constraints as traditional software vendors in terms of delivering expected functionality, support, and QoS. In other words, being successful at SOA means there is some amount of "selling" to be done in order to drive adoption and success. Applying open source principles maybe a beneficial step along the way.
About Michael KochanikMike Kochanik is vice president of alliances at CollabNet (www.collab.net), a provider of on-demand distributed application lifecycle management solutions for software development. Mike has been a major contributor to the creation of network-centric IT strategies that leverage open source software and community-based development processes at Global 1000 organizations.