NAME

Gestinanna::ContentProvider::XSM - Provides state machines

SYNOPSIS

my($machine, $output) = Gestinanna::ContentProvider -> pipeline(
    \%ARGS, \%info,
    'state-machine' => 'Gestinanna::ContentProvider::StateMachine',
);

In XML (on a portal-like page):

<box class="state-machine" id="/sys/login"/>

DESCRIPTION

State machines provide an easy way to write a controller for a web application. They tie the views and the model together and track where the client is in the flow. By using a content provider, multiple state machines can be placed on a page. Only the data from the client destined for that state machine is given to it. Because of the way state machines work in Gestinanna, they will not get confused or do an action multiple times because another state machine is being used on the same page. For the most part, each is given the illusion that they control the entire page.

The user interface for state machines allows the client to request that a particular state machine take the entire page. Thus, a selection of state machines can be placed on a single tab in the front page of a portal. The user can then select one to run, or use the state machine entirely embedded in the portal page, whichever is most comfortable.