Executable Cloud Software

Web SOA Object Designer

The Web SOA Object Designer example shown below is the design for the 'Merge Addresses Into Document' job in the  Postal Merge example which is shown on a separate page.  This example shows streams of address and document objects being merged to produce streams of mailing objects.  Notice that in the example below both the input and the output are streams of objects rather that single objects.

The page below allows the user to define the properties of  the executable object.  The system assigns the Wrapper Object ID, the Input Object ID, and the Output Object ID automatically.  An executable object can be defined to execute anything, so the user enters the name of their executable in the Executable Name drop down list..  The user can optionally enter an initial estimated execution time in the Minutes and Seconds boxes.  As the system accumulates a history of the execution times of the object, the system refines the initial estimate.  The user can optionally enter a description of the object in the Description box.  An object can be interactive.  An interactive object is one that can pause and ask the user for input during its execution.  If an object is interactive, the Is Interactive box is checked. If the object can accept an input stream of objects the user checks the Input is a Stream box.  If the object can produce a stream of output objects, the user checks the Output is a Stream box.  The definition of the object, the input object definition and the output object definition are then stored in the database.  If the user desires, a template can be generated to help establish the link between the users executable and its 'wrapper'.  Skeletal template wrappers can be generated for most of the common programming languages such as C, C++, FORTRAN, Java, C#, etc. Users can also 'custom wrap' their own programs.  Executable objects can be programs written in any language, scripts, batch files, etc.

Web SOA Object Designer (in the edit mode)

The web SOA Object Editor, shown below, allows the user to design the objects input and output requirements. The user clicks the 'Edit' button next to the Input or Output ID to go to this view. The Label is a constant shown to the left of the the value when it is displayed.  The Tag is the internal tag of the value.  The Units ia a constant shown to the right of the value when it is displayed.  The Default Value and the Bounds are is optional.  The Type can be chosen from a list of types such as string, integer, double, etc.  A type can also be an object so an object can contain objects.  The Control Type can be chosen from a list of control types such as TextBox, TextField, ComboBox, Label, etc.  The example above shows the input object definition for an object called 'PostalMerge'.  The Postal Merge object takes a 'stream' of  Mailing List Address objects and merges them with a single selected Mailing List Document object thus producing a 'stream' of  Documents Ready To Be Mailed objects.  The next object down stream would be the Document Mailer object.  This object would take the 'stream' of Documents Ready To Be Mailed objects and finish the mailing process by generating the physical documents to be mailed on printers.  This sounds like a serial process unless you consider the possibility that a stream could be segmented and segments assigned to a number of parallel computers.  If no changes are made the user can press the 'Finished' button to return to the SOA Object Editor view.

Web Input/Output Object Editor

When changes are made to the object, the 'Save' and the 'Exit Without Saving' buttons replace the 'Finished' button as shown below. The 'Values have changed'  label in the lower right corner reminds the user that something has changed in the object.

When the user is finished editing the input or output object, they can either press the 'Save' button to save their changes or press the 'Exit Without Saving' button to discard the changes. When the user presses the 'Save' button, a final validation is performed. If the validation fails, a error message is displayed. When the user corrects the problem, the error message disappears and the changes are saved. and control is transferred back the the SOA Object Editor view. If the used presses the 'Exit Without Saving' button, a warning message is displayed and the user has the option of discarding the changes or to continue to make changes.