introduction
WSPER ("whisper") is the specification of an abstract SOA framework which can potentially be implemented with any SOA infrastructure or combination of SOA infrastructure elements.
The framework concepts extend and combine the concepts of WSDL, SCA/SDO and BPEL. The main goal of the framework is to create a service oriented, process centric and model driven application model from the point of view of the business logic that needs to be expressed when building composite information systems.
The framework is expressed as a programming language which enables the encoding of business knowledge in both a deployment and platform independent way. WSPER aims at achieving portability and interoperability of the business logic as well as the standardization of the skills necessary to build a service oriented architecture.
The WSPER specification and licensing model are designed to enable anyone to write compilers to specific targeted platforms. wsper.org will provide a compiler's reference implementation based on an open source infrastructure.
FAQ
Is WSPER an acronym?
WSPER stands for web, service, process, event & resource which are the key ingredients of the language.
WSPER is published with a fairly restrictive licensing model, why?
WSPER is published under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0. It will be so while WSPER is being designed. The v1.0 of the specification will be published for royaltee-free, unrestricted commercial usage and with the capability to create derivatives, however, WSPER.org will reserve the rights to incorporate these derivatives in the WSPER specification.
When do you expect to have the v1.0 completed?
WSPER.org intends to publish 2 versions (v0.8 and v0.9) prior to the 1.0 in order to seek community feedback and participation. The reference implementation will start after v0.9 is published to help refine the specification.
The samples that you provide are using some java syntax, is WSPER part of the Java world?
WSPER is an abstract framework, which means that even the syntax will be abstracted such that vendors will be able to create whichever syntax they feel most appropriate for target audiences. The goal of the WSPER specification is to help people converge on the concepts and the programming model of composite information systems, not to fight over syntax or platform merits. WSPER is intended to compile just as well on top of java, .net or other platform, as well as enabling the composition of assets which have been written in both platform.
How does WSPER relate to standards such as WSDL, SCA/SDO or BPEL?
The standards community has been doing an incredible job at publishing implementable, complementary standards, while minimizing overlaps and gaps. However, the level at which these standards have been defined is not suitable for creating an application model usable by large classes of developers. Actually, no single group has looked at the standards of SOA and specified an application model from it.
WSPER itself is quite different from the concepts enumerated in these standards, however, it has been designed to be compiled into artifacts specified in these industry standards.
How does WSPER relate to other efforts that aim at simplifying the way business logic is expressed?
We live in a distributed world, there is no single system today that can be build without leveraging other systems in its environment (be it local or remote). Whether it is data or business logic, or both, systems can be build better without the need to replicate data and business logic that already exist somewhere. Yet, no programming model today is geared towards describing such systems. Inter system communication is something that developers have to stitch together. Programming models provide help at the wire level but not at the system construction level. Current efforts like spring, SCA or OGSi are geared towards isolating the code from middleware specific APIs but this is not enough because a POJO or a BPEL based model does not have the capability to express the business logic of such systems. All this goes in the right direction, but there is no programming model today that starts the other way, from the system description.
WSPER is a programming language, how could you possibly claim that it is model driven?
It seems that somewhere in the late 90s, early 2000s the software community has created an unnecessary dichotomy by introducing model driven concepts and opposing them to code. In reality, every programming formalism is based on an explicit metamodel (even OO or structured programming of course) and processing instructions. WSPER is designed as a metamodel where some of the elements are "implementable", i.e. can be associated to a series of processing instructions, just like a method in the OO metamodel. Please see the primer for a more detailed discussion on this topic.