The writing of parallel application on global computing environment is made difficult due to the volatility, dynamic, heterogeneity of large scale middleware as well as the lack of standardized programming interface for such system. The later is the most important problem because it glues the application to the middleware. Workflow systems provides an alternate solution to the standard way to describe parallel applications. A workflow splits a process in smaller activities and coordinates the activities execution. This way of managing a process has been adapted to parallel and distributed application creation. In this domain, each application is composed of several activity and the dependencies between those activities are translated to communication and synchronization. YML is a workflow system dedicated to parallel application over GRID, peer to peer and metacomputing environment.
In a workflow system, the user provides a description of its application which consists in the application graph. The application graph is used to create and execute activities accurately when all of the dependencies of one activity are meets. A scheduler manage the execution of an application graph. It manages the activity creation as well as the data migration needed. In order to validate and convert the application graph to a form well suited to the scheduling, YML provides an application compiler. The compiler analyzes the application graph, checks for its validity and expand the graph to an intermediate representation. Most workflow do not address the activity creation and rests on third party software for the creation of activity. YML integrates the activity creation aspect in order to help in the design of middleware independent application. This task is handled by the component generator service.
YML rests on a domain specific language based on XML. This language is called YvetteML and is used at the same time to control the workflow system and to describe and execute applications. The YvetteML language has been defined in the context of this project. The language allows the definition of activities and the definition of applications as well as monitoring of execution requests. This language is at the heart of the system and is used as communication inside and outside of YML.