Click here to Skip to main content
Click here to Skip to main content

SOA Interview Questions: Part 1

, 19 Sep 2013
Rate this:
Please Sign up or sign in to vote.
Software Architecture interview questions (Service Oriented Architecture interview questions: Part 1).

Contents

Introduction

In my previous article we had concentrated on Design Patterns and UML which are the most important fundamentals for architecture interviews. One of the other areas which needs to be strong for architects is an understanding of SOA.

Again I repeat, do not think that you will get an architecture position by reading interview questions. But yes there should be some kind of a reference which will help you quickly revise what the definitions. Just by reading these answers you get to a position where you are aware of the fundamentals. But if you have not really worked on these you will surely fail with scenario based questions. So use this as a quick revision rather than as a shortcut.

To give you a practical understanding I have put all these design patterns in a video format and uploaded on http://www.questpond.com/FreeDesign1.htm. You can visit http://www.questpond.com and download the complete architecture interview questions PDF which covers SOA, UML, Design Patterns, Togaf, OOPs, etc.

Previous parts of the architecture interview questions

You can download the software architecture interview questions PDF here: Download Software Architecture Interview Questions

UML interview questions, Part 1: SoftArch5.aspx

Happy job hunting......

(B) What is SOA?

SOA stands for service oriented architecture. Before we define SOA let's first define a service. In the real world, a service is what we pay for and we get the intended service. For instance you go to a restaurant and order food. Your order first goes to the counter and then it goes to the kitchen where the food is prepared and finally the waiter serves the food.

Figure: Restaurant and services

So in order to order an item from a restaurant you need three logical departments / services to work together (counter, kitchen, and waiter).

In the same manner in software world, these services are termed as business services. They are self contained and logical. So let’s first define a business service, SOA definition will be just an extension of that.

Definition of business service: It’s a logical encapsulation of a self contained business functionality.

For instance the figure ‘order system’ shows a simple ordering system which is achieved by different services like payment gateway, stock system, and delivery system coming together. All the services are self contained and logical. They are like black boxes. In short we do not need to understand the internal details of how the business service works. For the external world it’s just a black box which takes messages and serves accordingly. For instance the ‘payment gateway’ business service takes the message ‘check credit’ and gives out output: does the customer have credit or not. For the ‘order system’ business service ‘payment gateway’ service is a black box.

Figure: Order system

Now let’s revise some bullet points of SOA before we arrive to the definition of SOA.

  • SOA components are loosely coupled. When we say loosely coupled that means every service is self contained and exists alone logically. For instance we take the ‘payment gateway’ service and attach it to a different system.
  • SOA services are black boxes. In SOA, services hide there inner complexities. They only interact using messages and send services depending on those messages. By visualizing services as black boxes, services become more loosely coupled.
  • SOA service should be self defined: SOA services should be able to define themselves.
  • SOA services are maintained in a listing: SOA services are maintained in a central repository. Applications can search the services in the central repository and use them accordingly.
  • SOA components can be orchestrated and linked to achieve a particular functionality: SOA services can be used/orchestrated in a plug and play manner. For instance, the figure ‘Orchestration’ shows two services ‘Security service’ and ‘Order processing service’. You can achieve two types of orchestrations from it: one you can check the user first and then process the order, or vice-versa. Yes, you guessed right, using SOA we can manage a workflow between services in a loosely coupled fashion.

Figure: Orchestration

So let's define SOA.

SOA is an architecture for building business applications using loosely coupled services which act like black boxes and can be orchestrated to achieve a specific functionality by linking together.

(I) In SOA do we need to build systems from scratch?

No. If you need to integrate or make an existing system as a business service, you just need to create loosely coupled wrappers which will wrap your custom systems and expose the systems functionality in a generic fashion to the external world.

(I) Can you explain business layers and plumbing layers in SOA?

In SOA we can divide any architecture in two layers. The first which has direct relevance to the business as it carries out business functions. The second layer is a technical layer which talks about managing computer resources like database, web server, etc. This division is needed to identify a service. Consider the figure ‘Simple order system’. It has various components which interact with each other to complete the order system functionality.

Figure: Simple order system

The simple order system can be divided in to two layers (see figure 'business and plumbing layer' - one which is business related and second which is more technical related). You can see the plumbing layer consisting of data access layer, AJAX, and yes more technical stuff.

Figure: Business layer and plumbing layer

(I) What’s the difference between services and components?

Services are logical grouping of components to achieve a business functionality. Components are implementation approaches to make a service. The components can be in Java, C#, C++ but the services will be exposed in a general format like Web Services.

(A) Can you describe the complete architecture of SOA?

Figure ‘Architecture of SOA’ shows a complete view of an SOA. Please note this architecture diagram is not tied up with implementations of Microsoft, IBM etc. It’s a general architecture. Any vendor who implements SOA needs to fulfill the below SOA components. How they do it is completely their own technological implementation.

Figure: Architecture of SOA

The main goal of SOA is to connect disparate systems. In order that these disparate systems work they should message each other. ESB (Enterprise Service Bus) acts like a reliable post office which guarantees the delivery of messages between systems in a loosely coupled manner. ESB is a special layer which delivers messages between applications. In the figure we have shown a huge plump pipe. It’s not hardware or some wire etc. It’s a group of components/software which helps you send and receive messages between the disparate applications. Do not try to code your own ESB, you can think of buying one from Microsoft, IBM, Oracle, Progress, etc.

  • SOA registry is like a reference database of services. It describes what each service does, where they are located, and how they can communicate. It’s a central reference of meta-data for services.
  • SOA workflow allows us to define a work flow using services in the SOA registry. We will read more about BPM in further questions.
  • Service broker reads the work flow and takes services from the SOA registry and ties them together. Service brokers are normally middleware like EAI (Enterprise application Integration) products. You can get a list of decent EAI from Sun, Microsoft, and IBM etc.

Process manager is nothing but a collection of SOA registry, SOA workflow, and service broker.

SOA supervisor is a traffic cop ensuring that services do not have issues. It deals mainly with performance issues of the system so that appropriate service levels are met. If any of the services have performance problems it sends messages to the proper infrastructure to fix the issue.

Note: The above explanation is of the general architecture for SOA. Any vendor (Microsoft, IBM, SUN, etc.) who gives a solution for SOA should have the above components in some or the other manner. As this is a software architecture book, we will not be covering specific vendor implementations. We would advise the reader to map this to their vendor products for a better understanding.

(I) Can you explain a practical example in SOA?

(I) What are ends, contract, address, and bindings?

These are the three terminologies on which SOA service stands. Every service must expose one or more ends by which the service can be made available to the client. The End consists of three important things: where, what, and how:

  • Contract (What): Contract is an agreement between two or more parties. It defines the protocol how clients should communicate with your service. Technically, it describes parameters and return values for a method.
  • Address (Where): An Address indicates where we can find this service. Address is a URL, which points to the location of the service.
  • Binding (How): Bindings determine how this end can be accessed. It determines how communication is done. For instance, you expose your service, which can be accessed using SOAP over HTTP or binary over TCP. So for each of these communication mediums, two bindings will be created.

Below figure show the three main components of the end. You can see the stock ticker is the service class, which has an end hosted on www.soa.com with HTTP and TCP binding support and using the Stock Ticker interface type.

Figure: Endpoint Architecture

Note: You can also remember the end point by ABC where A stands for Address, B for bindings, and C for Contract.

(I) Are web-services SOA?

SOA is a thinking, it’s an architectural concept, and web service is one of the technical approaches to complete it. Web services are the preferred standards to achieve SOA.

  • In SOA we need services to be loosely coupled. A web service communicates using the SOAP protocol which is XML based, which is very loosely coupled. It answers the what part of the service.
  • SOA services should be able to describe themselves. WSDL describes how we can access the service.
  • SOA services are located in a directory. UDDI describes where we can get the web service. This is nothing but the implementation of the SOA registry.

Other interview questions PDF

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Shivprasad koirala
Architect http://www.questpond.com
India India

I am a Microsoft MVP for ASP/ASP.NET and currently a CEO of a small
E-learning company in India. We are very much active in making training videos ,
writing books and corporate trainings. Do visit my site for 
.NET, C# , design pattern , WCF , Silverlight
, LINQ , ASP.NET , ADO.NET , Sharepoint , UML , SQL Server  training 
and Interview questions and answers


Comments and Discussions

 
QuestionNot able to download any PDF you mentioned sir, it is saying 404 Not Found. PinmemberSivakumar_Aruchamy1-Feb-14 10:15 
GeneralThank You PinmemberMember 1052239213-Jan-14 20:01 
GeneralNice representation PinmemberTanumay9911-Nov-13 22:47 
GeneralNice article PinmemberSea_Moon30-Sep-13 2:56 
QuestionWell done PinmemberNicolai Kjaersgaard26-Sep-13 8:10 
GeneralMy vote of 5 PinprofessionalMohammed Hameed10-May-13 4:27 
GeneralMy vote of 3 PinmemberLakamraju Raghuram25-Jan-12 18:10 
GeneralThanks PinmemberMember 17282516-Aug-10 1:06 
General[Message Deleted] PinmemberSinov23-Jun-09 13:11 
GeneralRe: Really garbage ? PinmemberShivprasad koirala23-Jun-09 15:11 
GeneralGarbage... PinmvpDave Kreskowiak15-Apr-09 5:15 
GeneralRe: Garbage... PinmemberShivprasad koirala15-Apr-09 18:22 
GeneralRe: Garbage... PinmvpDave Kreskowiak16-Apr-09 1:34 
Shivprasad koirala wrote:
I have not written that you will get a job.

 
No, you implied it by titling your articles as "interview questions".
 
Shivprasad koirala wrote:
if you have a interview tommorrow then probably you will call it something else

 
Nope. It's still garbage. You either know it before hand or you don't. If you don't know it, then don't waste your prospective employers time and apply for the job. The reason I have the job I do now is because I'm the 4th person to apply for it in a year. The previous people all passed phone interviews, face-to-face interviews, and did well, but when they sat their butts down in the chair in their cube, they couldn't do a damn thing. They knew the answers to the interview questions, but didn't have any experience (they lied about it), nor any clue how to apply what they knew.
 
The last person before me, had someone else do the phone interview, then he came in for the face-to-face interview and knew the answers to common interview questions for that job, even some questions you don't normally get in an interview, and passed. He boasted about how he wrote operating systems for embedded devices, and yada, yada, yada, but when his ass hit the chair, he couldn't (no joke here!) drag and drop an icon to copy a file in Windows.
 
I got the job on the third try I applied for it and have since made a very good impression with my abilities and work ethic. I didn't know everything I needed to know to get the job. Where I emphasized my skills is my extremely strong ability to pick up something I don't know, learn it VERY quickly, and be productive with it in, at most, a few days.
 

A guide to posting questions on CodeProject[^]



Dave Kreskowiak
Microsoft MVP
Visual Developer - Visual Basic
     2006, 2007, 2008




JokeRe: Garbage... PinmemberMember 480469021-Apr-09 5:23 
GeneralRe: Garbage... PinmvpDave Kreskowiak21-Apr-09 5:53 
GeneralRe: Garbage... PinmemberShivprasad koirala21-Apr-09 14:27 
GeneralRe: Garbage... PinmvpDave Kreskowiak21-Apr-09 16:55 
GeneralRe: Garbage... PinmemberAnuj Tripathi31-Jan-10 1:15 
GeneralMessage Automatically Removed PinmvpDave Kreskowiak31-Jan-10 15:11 
GeneralRe: Garbage... PinmvpShivprasad koirala31-Jan-10 17:17 
GeneralRe: Garbage... PinmemberAnuj Tripathi23-Feb-10 7:05 
GeneralRe: Garbage... Pinmembermallasharad1-Feb-10 4:51 
GeneralRe: Garbage... PinmvpDave Kreskowiak1-Feb-10 15:04 
GeneralRe: Garbage... PinmemberEd Guzman9-Oct-10 19:06 
GeneralRe: Garbage... PinmvpDave Kreskowiak9-Oct-10 19:48 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web04 | 2.8.140709.1 | Last Updated 19 Sep 2013
Article Copyright 2008 by Shivprasad koirala
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid