Tag Archives: Service Oriented

Understanding Services Oriented Architecure

Introduction

If you ask a computer expert what is the trend in modern Information Technology on the server-side, you may get the answer web services, SOA(Service Oriented Architecture) or Cloud.  Among these answers, the term SOA is the most confusing. Let us have a simple discussion on basic SOA concept.

What is Services?

Firstly, we have to know more about “services". According to the dictionary, service is  a facility supplying some public demand, and the work performed by one that serves, help, use, benefit other. Services should be non-material equivalent of physical goods. As a matter of fact, it can be a process that creates benefits by facilitating either a change in customers, a change in their physical possessions, or a change in their intangible assets. Computer system especially software is target to model or facilitate the real world services, so a service in the computer system is common. the example of services in computer system are as followings:

  • A Windows Service: Plug and play, Windows backup, DHCP Client,
  • Software Service: Distribution transaction Service, Server resources management, Logging
  • Business Service: Order fulfilment, Customer Management

Services refer to high-level distinctive functional components that encapsulate business or system processes. Conceptually, they are “Lego Block" in the computer system.

SOA overview

A service-oriented architecture (SOA) is basically a collection of services that are able to communicate with each other, SOA is an architectural style to applying loose coupling In the computer system, a service that provided by a service provider is a unit to achieve required end results for a service consumer. Each service is the endpoint of a connection which can be used to access the service and interconnect different services. Furthermore, communication among services can involve only simple invocations and data passing, or complex coordinated activities of two or more services.

SOA common goal

As you know the SOA is confusing, it is not well-defined yet. In fact, architectural guidance is relatively fewer so industry focused on concrete technologies, vendor usually have its solution and tools for SOA, we are now usually developing reference architectures based on software patterns to providing architectural framework for Service-Oriented Architectures (SOA). SOA definition Service-Oriented Architecture is an architecture styles or approach to archive the following goals:

  • Rationalize enterprise integration
  • establish process driven applications
  • Re-use existing services to build new value

SOA heavily relies on standards for implementation:

  • Standard interface definitions
  • Standard data format
  • Standard wire protocols
  • Standard security protocols

Why SOA?

Employing SOA can bring a lot of benefits to an enterprise. Such as Standardized interfaces and data models Re-use, and Composability. some of important service-orientation design principles

  • Standardized Service Contract
  • Service Loose Coupling
  • Service Abstraction
  • Service Reusability
  • Service Autonomy
  • Service Statelessness
  • Service Discoverability
  • Service Composability

Primary Concepts for SOA

  • Service: A mechanism by which needs and capabilities are brought together.
  • Service Description: Artifact declaring all relevant aspects of a service required to interact with the service. Capability: an ability to perform a specific set of functions resulting in a real world effect.
  • Visability: The capacity for those with needs and those with capabilities to see each other and interact.

Characteristics of Services in SOA

The following are the characteristics of services in SOA:

  • Coarse-grained
  • Contract-based
  • Modular
  • Location independent
  • Model-based
  • Stateless

SOA Properties

  • Services offer public interfaces
  • Platform-independent
  • Interfaces are defined using interface description languages (IDL)
  • Stateless interaction, interaction is independent of each other
  • Many protocols are used and co-exist
  • SOA is not equal to Web services
  • Web services realize SOAs

SOA concept diagram

 

Factors for considering SOA implementation

  • Efficient use of system resources
  • service maturity and performance
  • EAI (Enterprise Application Integration): Packaged EAI solutions in future would have SOA as basic tenet and would continue to be the prime choice for large-scale integration.

SOA  Basic Components

SOA1

Patterns and SOA

Patterns based approach can be used for architecting SOA related system or application. Followings are Architectural significant artifact:

  • Object-oriented design patterns
  • General software architecture principle
  • Distributing, messaging, resource management computing related patterns
  • Networked and concurrent objects
  • Component and language integration
  • Process-driven architectures, business objects, and workflow systems
  • Integration of processes and services

Pattern-based reference architecture for SOA

  • Principles are used in a specific way to develop the reference architecture
  • Systemic qualities are concerned.
  • SOAs are implemented in a technology-neutral way
  • Concrete guidelines are also given

The OASIS Reference Model for SOA

Oriented architectures and analysis / comparison. It is also a framework for understanding significant relationships among the entities in a SOA environment. OASIS Reference Model is an 2006

 

SOA and Java EE

Java API and Service are similar, both can utilize proxies. Moreover, RMI patterns are subset of SOA patterns. SCA and SDO are good SOA implementation approaches, standardization is strong in Java, so getting SOA done in Java EE is easy. The available technologies for services

  • JAX-WS
  • JAX-RS
  • SCA, SDO
  • Jini, RMI, EJB
  • WSIT
  • WS-Policy, WS-Security, WS-RM, WS-TX

Java EE platform allow to explore the use of BPM technology in the application, Java EE platform will allow SOA style web services to be exposed with relative ease. EJB architecture based system was easily extensible to SOA style web services., however layering analysis may be required, if the EJB components are not nearly a services.

OSGi

OSGi, created for Java-based systems, provides a framework for modular systems. OSGi makes it possible to define the dependencies of each individual module with the others and enables users to control the lifecycle and dynamically change each component of the system.

OSGi is a specification and the most common implementations can be counted as Equinox, Apache Felix and Knoplerfish.

 

It is worth to further discuss some of the concept and related tecnologies, please come again…

Peter