Showing posts with label SOA. Show all posts
Showing posts with label SOA. Show all posts

Wednesday, August 6, 2014

SOA

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.

SOA VS WEB SERVICES

 SOA vs WEB SERVICES

Web services are used to build applications that can send/receive messages using SOAP over HTTP. A web service is a publicized package of functionality offered over the web. SOA is a set of architectural concepts used for the development and integration of services. Web services can be used to implement SOA. But it is only a single method of realizing SOA based applications.

What are Web Services?

A Web Service is a method of communication over the network. According to W3C, a Web service is a system dedicated for supporting machine-to-machine transactions over a network. It is a Web API described in WSDL (Web Service Description Language), and Web services are usually self-contained and self-describing. Web services can be discovered using UDDI (Universal Description, Discovery and Integration) protocol. By exchanging SOAP (Simple Object Access Protocol) messages typically over HTTP (with XML), other systems can interact with Web services.
Web services are used in number of ways such as RPC (Remote Procedure Calls), SOA (Service Oriented Architecture) and REST (Representational State Transfer). There are two automated design methodologies for developing Web services. The bottom-up approach deals with first creating the classes and then using WSDL generation tools to compose these classes as Web services. The top-down approach deals with defining the WSDL specifications and then using code generation tools to generate the corresponding classes. Web services have two major usages. They can be used as reusable application-components and /or to connect web applications running on different platforms.

What is SOA?

SOA (Service-oriented architecture) is a set of architectural concepts used for the development and integration of services. SOA deals with distributed computing, in which, consumers consume a set of interoperable services. Multiple consumers can consume a single service and vice versa. Therefore, SOA is often used to integrate multiple applications that use different platforms. For SOA to properly operate, services should be loosely coupled with operating systems and the technologies of underlying applications. SOA developers create services using units of functionality, and make them available over the internet. Web services can be used to implement SOA architecture. In that case, web services become the units of functionality of SOA accessible over the internet. Web services can be used by anybody without being concerned about the platforms or the programming languages used for developing them. SOA is directly built upon the principle of service-orientation, which talks about services with simple interface that can be accessed independently by users without worrying about the actual platform implementation of the service.

What is the difference between SOA and Web Services?

There are some key differences between Web services and SOA. Web services define a web technology that can be used to build applications that can send /receive messages using SOPA over HTTP. However, SOA is an architectural model for implementing loosely coupled service based applications. Web services can be used to implement SOA applications. Even though web service approach to SOA has become very popular, it is only a single method of implementing SOA. SOA can be implemented using any other service-based technology (e.g. CORBA and REST).

Easy Way to Handle Android Notifications

Android Notifications Android Toast class provides a handy way to show users alerts but problem is that these alerts are not persist...