From Optflux
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 40: | Line 40: | ||
*The programmer is forced to "think-before-programming", easing the code reuse. | *The programmer is forced to "think-before-programming", easing the code reuse. | ||
− | ==Philosophy== | + | ==Philosophy:== |
The AIBench platform was conceived to facilitate the development of a wide range of applications based on generic input-process-output cycles where the framework acts as the glue between each task. The framework manages three key concepts that are constant in every AIBench application: operations, data-types and views that realize the MVC design pattern. The developer only needs to focus on how to separate and structure the problem specific code into objects of these three entities. The framework will carry out the rest of the work to generate a completely executable final application, including: | The AIBench platform was conceived to facilitate the development of a wide range of applications based on generic input-process-output cycles where the framework acts as the glue between each task. The framework manages three key concepts that are constant in every AIBench application: operations, data-types and views that realize the MVC design pattern. The developer only needs to focus on how to separate and structure the problem specific code into objects of these three entities. The framework will carry out the rest of the work to generate a completely executable final application, including: | ||
Line 52: | Line 52: | ||
Programming over AIBench is a lightweight task, since it makes use of Java Annotations, thus easily enforcing the MVC model upon the programmers. | Programming over AIBench is a lightweight task, since it makes use of Java Annotations, thus easily enforcing the MVC model upon the programmers. | ||
− | ==Operation Model== | + | ==Operation Model:== |
An AIBench operation is a simple Java class with some annotations that define its INPUT/OUTPUT. For example: | An AIBench operation is a simple Java class with some annotations that define its INPUT/OUTPUT. For example: | ||
Line 92: | Line 92: | ||
Currently the dynamic generation of dialogs, maps Data-types with controls following the policy of the following table. | Currently the dynamic generation of dialogs, maps Data-types with controls following the policy of the following table. | ||
− | <table border="1" cellspacing="0" cellpadding="4" width="100%" bordercolor="#000000"> <tr valign="top"> <td width="50%" bgcolor="#000000"> <p class="western"><strong style="color: #ffffff">Data type</strong></p> </td> <td width="50%" bgcolor="#000000"> <p class="western" align="justify"><strong style="color: #ffffff">Control used</strong></p> </td> </tr> <tr valign="top"> <td width="50%"> <p class="western"><font size="2">Primitive Type (int, float, double, char)</font></p> </td> <td width="50%"> <p class="western" align="justify">Text field</p> </td> </tr> <tr valign="top"> <td width="50%"> <p class="western"><font size="2">Boolean</font></p> </td> <td width="50%"> <p class="western" align="justify">Check-box</p> </td> </tr> <tr valign="top"> <td width="50%"> <p class="western">Enum type (Java 1.5)</p> </td> <td width="50%"> <p class="western" align="justify">ComboBox with each option</p> </td> </tr> <tr valign="top"> <td width="50%"> <p class="western">A class with a constructor with one parameter of type String (primitive wrapper, String...)</p> </td> <td width="50%"> <p class="western" align="justify">Text field</p> </td> </tr> <tr valign="top"> <td width="50%"> <p class="western"><font size="2">java.io.File</font></p> </td> <td width="50%"> <p class="western" align="justify">Text field with a “Find...” button that brings | + | <table border="1" cellspacing="0" cellpadding="4" width="100%" bordercolor="#000000"> <tr valign="top"> <td width="50%" bgcolor="#000000"> <p class="western"><strong style="color: #ffffff">Data type</strong></p> </td> <td width="50%" bgcolor="#000000"> <p class="western" align="justify"><strong style="color: #ffffff">Control used</strong></p> </td> </tr> <tr valign="top"> <td width="50%"> <p class="western"><font size="2">Primitive Type (int, float, double, char)</font></p> </td> <td width="50%"> <p class="western" align="justify">Text field</p> </td> </tr> <tr valign="top"> <td width="50%"> <p class="western"><font size="2">Boolean</font></p> </td> <td width="50%"> <p class="western" align="justify">Check-box</p> </td> </tr> <tr valign="top"> <td width="50%"> <p class="western">Enum type (Java 1.5)</p> </td> <td width="50%"> <p class="western" align="justify">ComboBox with each option</p> </td> </tr> <tr valign="top"> <td width="50%"> <p class="western">A class with a constructor with one parameter of type String (primitive wrapper, String...)</p> </td> <td width="50%"> <p class="western" align="justify">Text field</p> </td> </tr> <tr valign="top"> <td width="50%"> <p class="western"><font size="2">java.io.File</font></p> </td> <td width="50%"> <p class="western" align="justify">Text field with a “Find...” button that brings an file chooser dialog</p> </td> </tr> <tr valign="top"> <td width="50%"> <p class="western">Other class (can only take the value from the CLIPBOARD)</p> </td> <td width="50%"> <p class="western" align="justify">Combo box with the instances of the same class available in the clipboard</p> </td> </tr> <tr valign="top"> <td width="50%"> <p style="margin-bottom: 0cm" class="western">Array</p> <p class="western"><br> </p> </td> <td width="50%"> <p class="western" align="justify">The control inferred with the bellow criteria, plus a list and an “add” button to put elements in the array</p> </td> </tr> </table> |
− | + | ==Plug-in Architecture:== | |
− | |||
− | |||
− | |||
− | == Plug-in Architecture | ||
The AIBench framework is powered by a versatile plug-in engine. This plug-in engine is ready to accept modification at several levels: | The AIBench framework is powered by a versatile plug-in engine. This plug-in engine is ready to accept modification at several levels: | ||
− | *SERVICES PROGRAMMER | + | *SERVICES PROGRAMMER |
*CORE PROGRAMMER | *CORE PROGRAMMER | ||
**CORE: Manages the operations, invoking them and keeping track of their results and invocation history. | **CORE: Manages the operations, invoking them and keeping track of their results and invocation history. | ||
Line 110: | Line 106: | ||
[[Image:aibench_plug.png]] | [[Image:aibench_plug.png]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
= OptFlux Architecture = | = OptFlux Architecture = | ||
− | Version 2.3 (first fully open version of OptFlux) is composed of | + | Version 2.3 (first fully open version of OptFlux) is composed of six main plug-ins all of which are distributed by default in the downloadable archives of OptFlux. Some extra plug-ins are also distributed in the main version although they are not part of what we call "the core". |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
This six plug-ins are the following: | This six plug-ins are the following: |