lately I have been testing application based on Service-Oriented Architecture (SOA) so just thought of sharing some of the details with you.

Service-Oriented Architecture, or SOA, enables IT departments to make the transition from an application-centric view of the world to a process-centric view, And, because the integration mechanism of SOA (usually Web Services) enables loosely coupled integration, IT departments can upgrade or change applications without impacting other applications.

When it comes to testing SOA applications, one has to look beyond functionality and performance (load) testing.

Service Oriented Architecture (SOA) is a design framework for realizing rapid and low-cost system development and improving total system quality. SOA uses the Web services standards and technologies and is rapidly becoming a standard approach for enterprise information systems. Web services face significant challenges because of particular requirements. There are many problems that are to be addressed when applying the SOA paradigm to a real-time system, which include response time, support of event-driven, asynchronous parallel applications, complicated human interface support, reliability, etc.

Oasis defines SOA as — “An architectural style whose goal is to achieve loose coupling among interacting software agents / services.”

In SOA, application logic is in the middle-tier for me it was Tuxedo, operating within numerous technologies most of the time its integration with third party applications.

(image taken from http://www.sun.com/)

To test SOA, you need to go far beyond merely testing a user interface or browser screen as you never find an attractive UI while testing these apps as most of the time you’ll be sitting at backend verifying XML’s with UNIX , Tuxedo or Tibco and weblogic logs.

(image taken from http://www.tibco.com/)

Web Services (WSDL/SOAP) will be an important component for many SOAs.

Let’s discuss them a bit.

SOAP is a simple XML based protocol to let applications exchange information over HTTP.

Or more simply: SOAP is a protocol for accessing a Web Service. It is important for application development to allow Internet communication between programs.

Today’s applications communicate using Remote Procedure Calls (RPC) between objects like DCOM and CORBA, but HTTP was not designed for this. RPC represents a compatibility and security problem; firewalls and proxy servers will normally block this kind of traffic.

A better way to communicate between applications is over HTTP, because HTTP is supported by all Internet browsers and servers. SOAP was created to accomplish this.

SOAP provides a way to communicate between applications running on different operating systems, with different technologies and programming languages.

WSDL (Web Services Description Language) is an XML-based language for describing Web services and how to access them.

Bsically WSDL is a document written in XML. The document describes a Web service. It specifies the location of the service and the operations (or methods) the service exposes.

when you deploy the code in your test environment normally the wsdl url is present in /init.properties file, before building the code just make sure that the correct URL to which Webservice need to hit is added.

Once code is build then deply the ear files into weblogic servers and just restart them.

In order to efficiently use a SOA, one must meet the following requirements:

  • Interoperability between different systems and programming languages should be present.
  • Desire to create a federation of resources. Establish and maintain data flow to a federated data warehouse. This allows new functionality developed to reference a common business format for each data element.

In my next publication I’ll cover testing webservices using tools like soapUI and Parasoft SOATEST

~Himanshu~

Advertisements