Service Oriented Architecture

The Service-Oriented Architecture (SOA) is a software architecture that defines the use of services, to support software user requirements. 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. On the other hand an enterprise service bus (ESB) is messaging middleware that provides the secure interoperability and message transport services between application “services” in a service oriented architecture (SOA) computing environment.

Winfoware emphasis on SOA while having a complete view of BPM, Business Service, EA and Technical Service. We empower SOA as business approach and practice for the association and Incorporation of various enterprise building blocks including technology gears. We have developed SOA methodologies set in position with various industry standard methodologies, frameworks, lifecycles and best practices. Winfoware key SOA architects & SOA developer team is highly trained and experienced in implementing various lifecycles, methodologies and technology component implementation for many industry verticals. Our development team is also experts in tools like SOA-Layers, IBM-Websphere process Integrator, Websphere SOA-ESB & Open ESB, JBoss SOA & BPM etc.

SOA application development challenges:

  • Issues in services utilization 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.
  • Problems in determining the end user requirements since the requirements no longer can be derived from a single source. It can come from multiple stakeholders who may be geographically distributed.
  • Issues in arranging 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.
  • Different services offer different degrees of service coupling. Document-based services are more loosely couple than non document-based (i.e. parameter-based) services.
  • Difficult task in conducting SOA application test as it requires a well-coordinated effort from all services providers to ensure all services are available.
  • Problems in services interaction because of different interfaces, e.g. document-oriented message exchange; parameters-oriented message exchange, supported by different services.

How do we undertake above challenges:
Winfoware approach is to first study an existing agile methodology and identifies gaps in the methodology. The second is to study the Web Services development steps to identify the steps specific to Web Services. The third is to study the Web Services characteristics and its best practices. The result of these is the proposed methodology for Web Services development.


We follow the workflow steps for Web Services development which are:

  1. Gather user requirements.
  2. Analyze business components to be reused or create new service.
  3. Design the Web Service (WS).
  4. Develop WS by implementing business logic with the used of interface and implementation classes. The interface class is where the service interface will be exposed for consumption and the implementation class is actual implementation of the services derived from software components
  5. Build WS by wrapping component into WS.
  6. Deploy WS to the target web server based on the deployment script (which is server specific).
  7. Test and debug WS using web service client (where the client is server specific).
  8. Publish WS if publishing to service registry is required.

Finally by equalling agile software development steps and Web Services development steps, we are able to extend Web Services specific steps into the agile development methodology.