Please navigate to the bottom of the page for Table of Contents

Tuesday, January 22, 2013

SOA interview questions

In this post we will review a few key aspects that you should understand about SOA based services. In my experience, there is no substitute for actual experience developing SOA based services, but this introduction should get you enough to start.


What is SOA?
SOA is an architecture for building applications using reusable, interoperable services which have well defined business functionalities and can be orchestrated to achieve a specific functionality by utilizing them together.

4 facts you should know about SOA Services



1.       SOA separates business functions into services (endpoints), which are made accessible over a network in order to allow users to combine and reuse them in their applications.
2.       The SOA services can be developed in different languages and OS’es as long as they follow the SOA principles.
3.       Services are unassociated and loosely coupled units that do not directly rely on each other for their full functioning. Rather than services embedding calls to each other in their source code, they use defined protocols that describe how services pass and parse messages using description metadata.
4.       Orchestration is a process where business functionality from various services are combined in a system fully aware of all available services and the associated metadata that defines these services and their characteristics.

SOA principles
SOA principles were first defined by Thomas Erl. These 8 principles are underlying to any good architecture that utilizes SOA design to build their products and services:

1.       Standardized service contract: Services adhere to a communications agreement, as defined collectively by one or more service-description documents.
2.       Service loose coupling: Services maintain a relationship that minimizes dependencies and only requires that they maintain an awareness of each other.
3.       Service abstraction: Beyond descriptions in the service contract, services hide logic from the outside world.
4.       Service reusability: Logic is divided into services with the intention of promoting reuse.
5.       Service autonomy: Services have control over the logic they encapsulate.
6.       Service statelessness: Services minimize resource consumption by deferring the management of state information when necessary
7.       Service discoverability: Services are supplemented with communicative meta data by which they can be effectively discovered and interpreted.
8.       Service composability: Services are effective composition participants, regardless of the size and complexity of the composition.

Explain some of the common terms in a SOA based architecture
SOA registry is a metadata store for services which describes what each services can do, their location, and communication protocol.

SOA workflow helps define work flow using the services in a SOA registry.

Service broker reads the work flow and takes services from the SOA registry and ties them together.

SOA supervisor ensures that services do not have issues. It deals mainly with performance issues of the system so that appropriate service levels are met.

Service Contract
Service Contract defines the “What” of a service. Think of it as a contract agreement (aka protocol) between the service and the consuming application (aka client). More specifically, it describes parameters and return values for a method.

Service Address
Service Address defines the “Where”. In other words, where can the clients find this service. Address is a URL, which points to the location of the service.

Service Binding
A Service can offer many different bindings. Bindings are the “How” you connect, access and communicate with the service. For example, SOAP over HTTP or BINARY over TCP.

2 comments: