Technology is changing faster than ever. Today, many organisations are looking up to SOA as an architectural solution to provide a robust computing platform in order to connect to legacy systems. In this architectural paradigm there is a focus on exposing software as a service rather than an application.
One of the challenges faced by SOA is managing services of metadata. A Service is an individual or a smaller code base running on separate machines with separate deployment cycles, that clearly addresses the targeted problem domains. As and when there is an increase in number of services in the architecture, we will also notice several problems.
How do we maintain and manage pool of services?
How do we add new services and remove the deprecated ones?
How to provide "High Availability" of Services to consumers?
How do clients determine the IP and port for a service that exist on multiple hosts?
An improper service design can lead to duplicate service creation with no re-usability. To overcome these challenges, Service Registry and/or Repository and Service Discovery should be considered right from the design of SOA Implementation.
SOA Service Registry and/or Repository
An SOA Service Registry is the core component of SOA Governance. The Service registry allows service providers to discover and communicate with consumers efficiently, creating a link between service providers and service customers. The primary focus of Service Registry is to provide fast, easy access to communication, and to operate among different applications with a limited human intervention.
An SOA registry supports the UDDI (Universal Description, Discovery and Integration) specification, an XML- (Extensible Markup Language) based registry that was developed for the purpose of making systems interoperable. Publication of a service requires proper description of a Web service in terms of business, service, and technical information. Once, the services are published the registry will create the dependencies, associations and versions of these services and metadata.
Benefits of SOA Service Registry:
Service Registry plays an important role in SOA implementation which helps in managing services metadata.
Service Registry is a constantly evolving catalog of information about the available services in an SOA implementation
Service Registry helps in managing service located in different places (internally, externally) and in different life-cycle states (under development, in-plan, deployed or retired)
Service Repository is where metadata of services and related SOA artifacts, such as policies can be stored.
Service Registry and/or Repository Provides an integrated SOA Governance Solution management.
Provides access to search facilities, notification services, and optimizes service reuse.
Managing the Service life-cycle and visibility to all SOA assets with their related artefacts.
SOA Service Discovery
Service discovery is the process of locating web service providers, and retrieving web services descriptions that have been previously published. The primary mechanism involved in performing of Service Discovery is a service registry, which contains relevant metadata about available and upcoming services as well as pointers to the corresponding service contract documents that can include SLAs.
In modern architectures nodes come and go and you need to decouple individual service instances from the knowledge of the deployment topology of your architecture.
After the discovery process is complete, the service developer or client application should know the exact location of a Web service (URI), its capabilities, and how to interface with it.
Benefits of SOA Service Discovery
Discovery of the service, its status, and its owner will be critical to achieve the benefits of SOA reusability.
Dynamic service registration and discovery becomes much more important in these scenarios in order to avoid service interruption.
Handling Fail over of service instances
Load balancing across multiple instances of a Service
The Service Registry/Repository and Service Discovery play a major role in SOA lifecycle. During Service Modeling, a registry and repository can be used to create or reuse service metadata, vocabularies and XML schemas. During service development, a registry and repository can be used to locate services for reuse and to enable service composition. During service deployment, service descriptions stored in a registry and repository are used by runtimes such as ESB (Enterprise Service Bus) to enable dynamic interaction between services.
If you would like to find out more about how APIs could help you make the most out of your current infrastructure while enabling you to open your digital horizons, do give us a call at +44 (0)203 475 7980 or email us at Salesforce@coforge.com