• radical virtualization of all the technical details unimportant for the service level;
• loose coupling of services to enable a maximum of freedom of choice, orchestration, and evolution of services; and
• domain specificity, to be directly usable by the addressed user community.
+ loose coupling
+ managed evolution
• constructing technological bridges between the four levels,
• developing technologies to control the interplay between the different levels of abstraction, and
• supporting and controlling service-level agreements for development time and runtime.
• gather, use, and maintain the user's knowledge at his abstraction level and within his own application domain;
• keep it as declarative as possible: use policies to gather the do's and don'ts like compliance issues, business rules, and so on. Good candidate formalisms seem to be logics—simple XOR/AND structures, as in WSPolicy, but also temporal and first-order logics—for which automatic proof and reasoning algorithms exist;
• sketch the solution's backbone as a model and refine it along the design life cycle, introducing a "one-thing" approach that avoids the cultural and technological gaps still customary in today's IT. Here, widespread formalisms are Petri-net-like, but finite state machines with fork/join parallelism are simpler and cover the majority of the practical cases; and
• use the knowledge to evaluate the models and provide guidance to generate or modify the models in away that conforms to it. Central here is the capability of automatic proof of the (logic) constraints on the models, as in model checking, and the automatic synthesis of processes from (temporal) logics, which can be extended toward theorem-proving-backed planning.