Web Cube I.S.W.B. Prasetya 1 , T.E.J. Vos 2,⋆ , and S.D. Swierstra 1 1 Dept. of Inf. and Comp. Sciences, Utrecht University, the Netherlands 2 Instituto Tecnológico de Informática, Valencia, Spain Abstract. This paper introduces a refinement of Misra’s Seuss logic, called Web Cube, that provides a model for programming and reasoning over web applications. It features black box composition of web services so that services offered by large systems, such as that of a back-end database, can be treated abstractly and consistently. It inherits the light weight feature of Seuss, which relies on an abstract view towards con- currency control, which leads to a less error-prone style of distributed programming, backed by a clean logic. 1 Introduction Nowadays, sophisticated web applications are built using technologies like PHP, ASP, and servlets. Most are built by directly implementing them over these tech- nologies, resulting in implementations where it is hard to separate implementa- tion details from the core design problems. Debugging, let alone verification, is in general very hard. This is not a good practice. In theory, it is better to first design an application in an abstract-level modelling language. This is the development sequence that we will assume in this paper. At the design level, verifying critical properties is still feasible. Once verified, the design can be im- plemented. Subsequently, a more practical method, e.g. testing, can be used to validate the consistency between the implementation and the design. Web Cube is a programming model, which means it provides useful concepts and structures for constructing models of web applications and specify their critical properties. It also comes with a logic to verify a model against its properties. Web Cube is based on Misra’s formalism for distributed and concurrent systems called Seuss [14]. As a modelling language Seuss is quite generic. Web Cube is more concrete than Seuss. It provides concepts which are quite specific for the domain of web applications, so that a Web Cube model can be implemented more directly. This paper explains Web Cube’s concepts and the semantics of its black box logic, which is its strongest feature. We do not at the moment offer a public implementation of Web Cube. There is a prototype, implemented by translat- ing Web Cube source to Web Function library [10] written in the functional language Haskell. It is worth mentioning that alternatively it is often possible to implement a domain specific language by embedding it in a general purpose language, e.g. as the embedding of financial contract combinators in Haskell [11]. One could envisage a similar implementation of Web Cube in Haskell or in ⋆ This work has been partially supported by the Generalitat Valenciana ref. GV05/261. E. Najm et al. (Eds.): FORTE 2006, LNCS 4229, pp. 77–92, 2006. c IFIP International Federation for Information Processing 2006