In order to bring SOA beyond the confines of internal enterprise activity, redefining a platform of global scale, the overall architecture and communication exchange of the SOA4All components is layered upon the standard protocols of the Internet and World Wide Web. By publishing service descriptions as Web-addressable resources, SOA4All aims to create a very open and loosely coupled global architecture.
However, it is not just the communication protocols, which provide the foundation of SOA4All. Rather we have attempted to adopt and extend the fundamental design principles of the Web as well.
In 1998, Tim Berners-Lee published his personal view on the design principles of the Web; though it remains his self-proclaimed “motherhood and apple pie” draft, the following principles remain paramount to the success of the SOA4All model:
- Software Engineering:
- Simplicity – A language which uses fewer basic elements to achieve the same power is simpler.
- Modularity – System and language design features should be broken into relatively loosely bound groups of relatively closely bound features when possible.
- Networked/Distributed Systems:
- Tolerance – Be liberal in what you require but conservative in what you do – while this principle does not blunt the need for a perfectly clear protocol specification which draws a precise distinction between a conformance and non-conformance, it is no excuse for a product which contravenes a standard.
- Decentralization – Avoid single common points involved in any operation which tend to limit the way the system scales, and resultantly produce a single point of complete failure.
- Dynamic/Evolutionary Systems:
- Independence – Design a system to be a part of an as-yet unspecified larger system. A critical property here is that the system tries to do one thing well, and leaves other things to other modules. It also has to avoid conceptual or other centralization, as no two modules can claim the need to be the unique center of a larger system.
- Least Powerful Language – The less powerful the language, the more you can do with the data stored in that language. If you write it in a simple declarative from, anyone can write a program to analyze it in many ways. (link)
Finally, it is worth mentioning: “The World Wide Web Consortium was founded in 1994 on the mandate to lead the evolution of the Web while maintaining its interoperability as a universal space.” (link)
Based upon these general Web design principles, SOA4All has developed a more extensive set of design principles:
- Openness implies that in principle everybody can contribute as a provider or consumer of information beyond the boundaries of enterprises, meaning that different roles will be made possible depending on the circumstances. Service communication means have been standardized, enjoy broad vendor-support and can therefore be taken off-the-shelf for SOA4All. This particularly refers to early Web Service standards such as SOAP, WSDL and UDDI.
- Usability refers to abstracting from Web service technicalities as far as possible in order to allow provide simple interfaces for all users. SOA4All also implements information hiding principles: services are made independently available which can then be accessed without knowledge of their underlying platform implementation.
- Interoperability is needed and provided through the integration of different proprietary, legacy and existing solutions through open standards.
- Decentralization changeability and dynamicity implies that services can appear, be modified, and disappear in an uncontrolled fashion. Thus, the provisioning and modification of services must be under the distributed control of peers rather than being controlled by a central authority. The word “peers” refer to the entity managing the service, being a company or an individual. As a result, SOA4All will follow decentralization paradigms, as it happens currently with the publishing procedures on the Internet, but respecting the rules associated to the aforementioned peers.
- Publication as a means for n:m communication. The scalability of the Web as a communication platform is based on persistent publication versus targeted messaging. The first one adapts best to broad and potentially anonymous communication. Current (Web) service technology is still mostly geared towards targeted messaging.