Abstract
With the popularity of Web
Services technology and the increase trend of developing Service-Oriented Architecture
(SOA) software, there is a need for an implementation methodology for Web
Services. This paper addresses the SOA application development challenges, identifies
gaps in agile software methodology for Web Services development, and observes
Web Services characteristics and its best practices. The contribution of this
paper is to extend any existing agile software methodology to include Web Services
Best Practices into the agile software methodology.
Introduction
The Service-Oriented Architecture
(SOA) is a software architecture that defines the use of services, to support software
user requirements [2]. The characteristics of these services are reusable
business components; loosely coupled; building blocks of SOA application with
the intent to provide services to either end user applications or other services
through published and heterogeneous network addressable software component.
The implementation of SOA
application is made possible through the realization of Web Services. Web
Service is a software component representing specific set of business functions
that can be described, published and invoked over the Internet using XML-based
open standards such as SOAP [3], WSDL [4] and UDDI [5]. The SOA application development
involves developing software components for software reuse and wrapping
software components as Web Services for end user applications or other services
consumptions. However, there are gaps in the existing software component
development methodology as it does not include the design and development
factors specific for Web Services.
This paper discusses the research
work done in bridging the gaps by investigating the characteristics and the
best practices of Web Services development. The outcome of the research work is
part of the specification developed for OASIS Framework for Web Services
Implementation (FWSI) [13] Implementation Methodology Sub- Committee [15] (IMSC)
in the effort to develop implementation methodology for Web Services.
SOA Application development challenges
In a dynamic digital economy, the
demand for direct process integration to business partners from organizations and
sharing of information is increasing. Organisations are gradually turning to
SOA application to increase their business agility and IT productivity. The
building blocks for SOA application come from different service providers. The SOA
application development process is complex and tedious. It requires proper
software project management planning and control to ensure systematic approach
for handling and developing SOA application. This is attributed to the fact
that some of these building blocks of services are outside companys boundary.
The confronted challenges for SOA application development are:
- Difficulty in capturing of user
requirements as the requirements no longer derives from a single source.
It can come from multiple stakeholders who may be geographically
distributed.
- Difficulty in collating
different services as not all the services are implemented using the same
technology. Some services could be implemented using C++, C#, Java, PERL,
etc. The hosting of services on different technology platforms also
contributed to the collating difficulties.
- Difficulty in services
consumption due to different types of services provided. Some services
only support asynchronous interaction; some may support synchronous
interaction, etc. This poses difficulty in SOA application.
- Difficulty in services
communication because of different interfaces, e.g. document-oriented
message exchange; parameters-oriented message exchange, supported by
different services.
- Different services offer
different degrees of service coupling. Document-based services are more
loosely couple than non document-based (i.e. parameter-based) services.
- Complicated task in conducting
SOA application test as it requires a well-coordinated effort from all services
providers to ensure all services are available.