Service Oriented Architecture (SOA) Basics
* SOA is an architecture that relies on service-orientation as its fundamental design principle. Service-orientation describes an architecture that uses loosely coupled(Loose coupling describes a resilient relationship between two or more systems or organizations with some kind of exchange relationship) services to support the requirements of business processes and users.
* SOA is a design for linking business and computational resources (principally, organizations, applications and data) on demand to achieve the desired results for service consumers (which can be end users or other services).
* SOA may be built on Web services standards (e.g., using SOAP) that have gained broad industry acceptance. These standards (also referred to as web service specifications) also provide greater interoperability and some protection from lock-in to proprietary vendor software. One can, however, implement SOA using any service-based technology
Why Service Oriented Architecture?
* Enables flexible connectivity of applications or resources.
* Promotes encapsulation which enables re-use: each aspect of your business is captured and implemented in only one place, so changing it is straightforward.
* Requires the use of implementation independent interfaces which means that heterogeneous systems can be integrated, and changes to one lead to fewer negative effects.
* Enabler for process modeling and automation. With clearly defined interfaces between all business systems, you can start modeling (and changing) the business process captured by them at a level above individual systems.
Why testers should know SOA testing?
* Usually testers test a web based application based on UI is a general practice. But testing application implemented on SOA technology needs testing the web services. SOA-based environments can include many services which exchange messages to perform tasks. Depending on the design, a single application may generate millions of messages. Managing and providing information on how services interact is a complicated task. Hence It becomes essential for the testers to test these services whether they are functioning properly.
What is a Web Service?
A web service is a collection of protocols and standards used for exchanging data between applications or systems . A Web Service is a software component that is described via WSDL and is capable of being accessed via standard network protocols such as but not limited to SOAP over HTTP Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks like the Internet in a manner similar to inter-process communication on a single computer. Web service is any piece of software that makes itself available over the Internet and uses a standardized XML messaging system
What is SOAP?
* SOAP (Simple Object Access Protocol) is a simple XML-based protocol to let applications exchange information over HTTP
* This is a communication protocol which communicates between different Apps
* It is a format for sending messages and is designed to communicate via Internet
* SOAP is platform and language independent and is developed as a W3C standard
What is JMS?
* Java messaging service is the standard API for sending and receiving messages . It has two message protocols: point to point and pub/sub instead of only one, as many earlier middleware systems did. Additionally, JMS also doesn't care whether you use a wire or wireless protocol, and provide different levels of message delivery assurance as well.
What is ESB?
* ESB( Enterprise Service Bus) is a set of tools and programs that can share information based on messages. The messages (mostly xml) are created and published and received over TCP/IP by deamons/applications/adapters that listen to the protocol
* Most ESB providers now build ESBs to incorporate SOA principles and increase their sales, e.g. Business Process Execution Language (BPEL).
What is WSDL?
* WSDL stands for Web Services Description Language
* WSDL is written in XML
* WSDL is an XML document
* WSDL is used to describe Web services
* WSDL is also used to locate Web services
* WSDL is a W3C standard
* 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
What is SCA?
* The Service Component Architecture "provides an open, technology neutral model for implementing IT services that are defined in terms of a business function and make middleware functions more accessible to the application developer. SCA also provides a model for the assembly of business solutions from collections of individual services, with control over aspects of the solution such as access methods and security.
SOA Testing challenges
* Different service implementation
- Web Service (WSDL)
- SCA (SCDL)
- EJB
- Others (JMS or XML/MQ)
* Distribute environment
- Loose coupled services are developed independently by different parties.
- Services may depend on the implement of other services
- Hard to do problem determination
* Test need to be as early as possible
- How can we start testing a service though its dependency services are not available?
- How to do testing the process while some dependency service are not available?
* Test need to be as much as possible
- How to verify service implementation is good
- How to verify a set of service operations can work together
* Automatically test business process
- How to test a process with human tasks?
- How to test an timeout branch?
* Event Driven Programming model with SOA
- Fire and forget model: no answer to a service call
- Publish and subscribe model: one to many
* High Skill requirement to tester
- Tester must code test cases manually
- Many standards and programming model to understand
1 comment:
nice blog, it would be great if you start articulating about technical areas also in testing
Post a Comment