What's the difference between services and components?

Services are logical grouping of components to achieve 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.

What are ends, contract, address, and bindings?

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

Contract is an agreement between two or more parties. It defines the protocol how client should communicate with your service. Technically, it describes parameters and return values for a method.

An Address indicates where we can find this service. Address is a URL, which points to the location of the service.

Bindings determine how this end can be accessed. It determines how communications 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 communications medium two bindings will be created.
Below figure, show the three main components of 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 Stock Ticker interface type.

soa interview questions

How do you store your Services in a location so that they can be dynamically discovered ?

A common approach is to use an implementation of the Java UDDI (Universal Description, Discovery, and Integration) specification, such as the free and open source Apache jUDDI project. A UDDI registry provides a standard way of storing information about web services and the organizations that provide them. Registries allow you to store, query, and update the information surrounding your SOAP-based web services. 

The concept of SOA is nothing new, however why everyone started to talk about SOA only in the last years ?

Yes I agree the basic concept of SOA aren't new, however some technology technology changes in the last 10 years made service-oriented architecture more practical and applicable to more organizations than it was previously. Among this:

  • Universally-accepted industry standards such as XML, its many variants, and Web-services standards have contributed to the renewed interest in SOA.
  • Data governance frameworks, which are important to a successful SOA implementation, have well test and refined over the years.
  • A variety of enabling technologies and tools (e.g., modeling, development, infrastructure/middleware, management, and testing) have matured.

Understanding of business and business strategies has grown, shifting attention from technology to the people, cultural changes, and process that are key business success factors.

How can you monitor your business, once that SOA has been adopted ?

Business Activity Monitoring (BAM) is a key aspect in monitoring your business and thus the running of your SOA. In short, Business Activity Monitoring (BAM) is a set of tools that allow you to manage aggregations, alerts, and profiles to monitor relevant business metrics (Key Performance Indicators, in short KPIs). It gives you end-to-end details of your business processes, providing accurate information about the status and results of various operations, processes, and transactions so you can address problem areas and resolve issues within your business.

Within the JBoss BPM Suite you have the capabilities with the Business Activity Monitor (BAM) dashboard to generate almost any report you might need around the data sources at your disposal.:

soa interview questions

What is the most important skill you need to adopt SOA ? technical or cultural ?

Surely cultural. SOA does require people to think of business and technology differently. Instead of thinking of technology first (e.g., If we implement this system, what kinds of things can we do with it?), practitioners must first think in terms of business functions, or services (e.g., My company does these business functions, so how can I set up my IT system to do those things for me most efficiently?).It is expected that adoption of SOA will change business IT departments, creating service-oriented (instead of technology-oriented) IT organizations.

Is SOA really needed on your opinion?

SOA is not for everyone. While SOA delivers significant benefits and cost savings, SOA does require disciplined enforcement of centralized governance principals to be successful. For some organizations, the cost of developing and enforcing these principals may be higher than the benefits realized, and therefore not a sound initiative.

References of this SOA interview questions :