Service-Oriented Architecture (SOA)
This refers to the policies, practices and frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer. Services can be invoked, published and discovered, and are abstracted away from the implementation using a single, standards-based form of interface. (CBDI)
The goal for a SOA is a global network of collaborating services, which is published and available for invocation on the Service Bus. Adopting SOA is essential to deliver the business agility and IT flexibility promised by Web Services.
SOA aims to allow users to string together fairly large chunks of functionality to form ad-hoc applications that are built almost entirely from existing software services. The larger the chunks, the fewer the interface points required to implement any given set of functionality; however granularity of services need to considered. The benefit of SOA is to allow simultaneous use and easy mutual data exchange between programmes from different vendors without additional programming or making changes to the services.
Services are unassociated, loosely coupled units of functionality that have no calls to each other embedded within them. Each service implements one specific action, such as filling out an online application for an account.
Each SOA building block can play one or both of two roles:
- 1. Service provider: The service provider creates a web service and possibly publishes its interface and access information to the service registry. The Universal Description Discovery and Integration (UDDI) specification defines a way to publish and discover information about Web services. Other service broker technologies include, for example) ebXML (Electronic Business using eXtensible Markup Language) and those based on the ISO/IEC 11179 Metadata Registry (MDR) standard.
- 2. Service consumer: The service consumer or web service client locates entries in the broker registry using various find operations and then binds to the service provider in order to invoke one of its web services.
Ultimately, most capabilities will be delivered and consumed as service(s). We can support, manage, and implement SOA for organisations. We provide focused and specialised assistance in specific phases of a SOA implementation.
In order to efficiently use a SOA, we propose the architecture should meet the following requirements:
- Interoperability among different systems and programming languages that provides the basis for integration between applications on different platforms through a communication protocol.
- The desire to create a federation of resources must be present.
- SOAP, RPC
- Web services
- Java RMI
- WCF (Microsoft's implementation of web services now forms a part of WCF)
Our Service Offering
Kwezi Software Solutions has extensive experience in implementing SOA based on Web Services and Restful.
We provide/propose a new SOA solution for existing infrastructure, or review existing SOA and recommend enhancements (where applicable) which are aligned with industry standards and best practices. This includes assessments of system architecture, implementation methodology, data and process designs, technical system configurations and performance factors (service granularity).
We determine business requirements for the solution. These requirements are then translated into technical system requirements.
We develop and/or refine Service-oriented modelling.
We can develop, test and deploy all system components and objects as defined in the design specifications.
We can manage the implementation phases and resourcing of a SOA solution. We believe it is fundamental to project success to involve the business community within an organisation.
We can provide ongoing maintenance of a SOA solution/implementation.