SOA and Web services
Web services are technologies that allow applications to communicate with each other in a platform- and programming language-independent manner. A Web service is a software interface that describes a collection of operations that can be accessed over the network through standardized XML messaging. It uses protocols based on the XML language to describe an operation to execute or data to exchange with another Web service. A group of Web services interacting together in this manner defines a particular Web service application in a Service-Oriented Architecture (SOA).
While Web services allow dynamic features to combine multiple services into applications, you still have to build the services first. Programming languages in computer science are continually evolving. As applications began communicating with each other, the concept of defined universal interfaces for objects became important, allowing objects on other platforms to communicate even if they were written in other programming languages and ran on other operating systems.
The IT perspective
From an IT viewpoint, an SOA defines a software architecture that comprises loosely coupled distributed components cooperating through a communication conduit, which enables the construction of composite applications. SOA aims to bring about component reuse, irrespective of implementation language or host platform, and as such can be thought of as simply an extrapolation of good software engineering practices, taking us from class reuse to service reuse-a true component architecture.
If services are a natural step forward in the development of component-based architectures, then the enterprise service bus (ESB) that links them can be seen as an evolution of the hub-and-spoke integration style. The ESB removes the hub as a single point of failure and brings scalability, intelligent routing, security, and mediation, all based on SOAP and WS* open standards.
Our SOA Offerings
NewStar Software Servies has adopted the SOA approach across all of our service offerings. Our SOA Practice team comprises of highly experienced IT consultants who are trained in the principles and best practices and we leverage them wherever possible.
The following SOA service offerings are available to your organization and are delivered in conjunction with our SOA Certified NewStar Architects:
SOA Executive Training
What is achieved
- Built for Change - Invest in the design and development of services upfront so that when change happens, the impact to the business and the solution is minimized.
- Business and IT Alignment - Emphasis on the collaborative design and development of solutions with business involvement throughout the software development lifecycle.
- Loose Coupling - Adherence to the design of service interfaces and test scenarios prior to service development. This ensures systems are loosely coupled and allows for the replacement/upgrade of systems without impacting the 'other side' of the contract.
- Agile Methodology - Recognition that the traditional waterfall methodology with its emphasis on developing to static requirements is not realistic.
- Legacy Service Enablement - Leverage existing software/systems by avoiding the "rip and replace" mentality. Instead, expose existing legacy system functionality through a reusable services layer.
- Standards - Adoption and adherence to standards such as Web Services, XML and industry domain models to ensure every service is not only reusable but is actually reused to the maximum extent possible.
Implementing the SOA the right way
The figure below depicts a well-designed SOA. (this picture is provided by an Opensource software community / group)