Friday, May 2, 2008

SOA Testing

Black, White and Gray box testing can be deployed for SOA testing.

  1. Black Box Testing refers to the technique of testing a system with no knowledge of the internals of the system. The testers do not have any access to the source code. They simply provide inputs to the system and verify the output for correctness.
  2. White Box Testing refers to the technique of testing a system with knowledge of the internals of the system. The testers have access to the source code. The tester goes thru the source code and derives the test cases and tries to ensure full code coverage and testing for all boundary conditions.
  3. Gray Box Testing refers to the technique of testing a system with limited knowledge of the internals of the system. In this case, the testers will have access to detailed design documents, WSDLs etc.
Testing Tools
Some of the open source tools used for testing are -
  1. soapUI
  2. Generic SOAP Client
  3. PushToTest
  4. WebInject

Thursday, March 13, 2008

What is Service Oriented Architecture?

A Service Oriented Architecture is essentially a collection of services.
  1. These services communicate with each other.
  2. Services are software components that carry out business processes.
  3. Services have well defined interfaces.
  4. A service is the end point of a connection.
  5. Services are the interfaces to the business logic.
  6. Services are connected to each other with loosely coupled connections
Open Group's definition of SOA -

Service-Oriented Architecture (SOA) is an architectural style that supports service orientation.

Service orientation is a way of thinking in terms of services and service-based development and the outcomes of services.

A service:
  • Is a logical representation of a repeatable business activity that has a specified outcome (e.g., check customer credit; provide weather data, consolidate drilling reports)
  • Is self-contained
  • May be composed of other services
  • Is a “black box” to consumers of the service

What is architecture?

IEEE 1471 defines architecture as -
The fundamental organization of a system embodied in its components, their relationships to each other and to the environment and the principles guiding its design and evolution.

The above definition is too high level for me to give me an idea of what goes into an architecture.

TOGAF says architecture is
  1. A formal description of a system or a detailed plan of the system at component level to guide its implementation.
  2. The structure of components, their inter-relationships and the principles and guidelines governing their design and evolution over time.
This definition is more down to earth and gives me an idea of what artifacts needs to be produced.

It just occurred to me so far I have not defined Service Oriented Architecture and Enterprise Architecture in my blog....

Friday, February 1, 2008

Business Process Modeling

BPM is an enterprise integration technology complementing SOA, EAI, ESB. The business process orchestrates complex system interactions and is itself a web service that converses with other such services.

Modeling business processes

A business process describes how the work is done in an organization. It has specific inputs and outputs, uses resources and performs tasks in a specific order. The business processes are repeatable in nature. It specifies the potential execution order of operations from a collection of web services, the data shared between these web services.

Modeling languages used for BPM include Business Process Modeling Notation (BPMN), Business Process Execution Language (BPEL), Unified Modeling Language (UML), Web Services Choreography Description Language (WS-CDL).

Tuesday, January 15, 2008

Mashup

A mashup is a combination of information from more than one source, mixed up in such way that you create a new useful service.

To create a mashup, you need -
  1. The API or content provider e.g. Google APIs, RSS/ATOM feed, websites - They provide the content
  2. Mashup site - A site to host the mashup. Mashups can be implemented using technologies like servlets, CGI, PHP, ASP, etc or through client side scripting languages like Javascript, applets
  3. Browser - For user interaction and rendering the application graphically