[Functional Assets Required to Make Highly Available Nontrivial Distributed Systems] 


Methodology, components & tools > Model-based dev. framework
 

The framework for developing interactive applications that was created as part of the FARMHANDS project was devoted to the evaluation of the real possibility of building interactive components from a platform-independent modelling tool prior to deploying the corresponding services on a specific platform.

The main objective was designing and building a system to allow the development and execution of interactive applications in a way that reusability, scalability, performance and end-user platform independency constraints were satisfied. By ensuring this, the same application could potentially have as a final deployment platform either a web platform, an IP or a MHP set-top box, there would be no need to re-implement it again, and most importantly, it would still take advantage of the specific properties of each option. Such a framework allows the interactive analist and modeller to forget about the specific objective platform(s), which saves the need for a highly-specific and expensive knowledge and technical skills, and at the same time, shifts the abstraction working level for the definition of the interactive system.

An interactive application can be logically modelled as a state machine. Each state is defined by the client-UI (which content may be provided by an external service provider) and transitions occur to change between states. These transitions can be a result of user activities (such as pressing a button on the TV remote), external events (a signal, a change in the electronic programme guide EPG) or even a timeout. Transitions may be even linked to certain constraints evaluation.

Bearing all these details in mind, the first step is the definition of the application specification in an XML dialect, using the framework's tool for specifications creation. The basis of such definition is the flow of interactive screens of the application and the communication protocol with the external services. This XML specification is generic and platform-independent, and will be later on processed differently by each particular output device. To allow that, the XML description is compiled to produce a bytecode, to be interpreted by a virtual machine which will execute it on the objective platform.

This framework reduces the effort to handle new platforms and their possibilities, separating the development of new functionalities from the knowledge about the specificities of each particular environment. Thus, the first is not affected by a reduced or poor management of the second.