Rapid Application Development with XML, XSL and Ajax
MoreMotion Application Framework
Application Studio
Product Features
MoreMotion AF
Big Projects
Without Coding
Comparison Table
Java Technology
Component Based Arc.
XML & XSL Technologies
Online Help Documents

MoreMotion is an open source Java based (API) web application framework.

 

The biggest difference of the MoreMotion AF to the other Java based web frameworks is the way the dynamic web pages are generated; MoreMotion employs XSL technology instead of JSP or JSF.

 

XSL technology decreases the dependability on the server side programs and the data in XML format can be rendered in many different ways on the user interface. 

 

For example; one would need different JSP codes to render the same data as the options of a combo box or as the rows of a table whereas the a simple XML data provided by one Java class can be formatted as follows with some simple XSL instructions.

 

Data:

<root>
  <products>
    <item>
      <ID>12</ID>
      <NAME>Desktop Computer</NAME>
    </item>
    <item>
      <ID>37</ID>
      <NAME>Color Printer</NAME>
    </item>
  </products>
</root>

 

XSL Code:

<!-- combo box -->

<select name="combobox1" class="c3">

  <xsl:for-each select="/root/products/item">

    <option value="{ID}"><xsl:value-of select="NAME"/></option>

  </xsl:for-each>

</select>

 

<!-- Table -->

<table cellspacing="0" cellpadding="0" width="100%">

  <xsl:for-each select="/root/products/item">

    <tr>

      <td <xsl:value-of select="ID"/></td>

      <td><xsl:value-of select="NAME"/></td>

    </tr>

  </xsl:for-each>

</table>

 

 

In addition to the organizing the generation of the dynamic pages with XSLT processing, the MoreMotion AF also provides other high level services.

 

 

Data Services

 

MoreMotion AF invokes the Data Service classes as configured to populate the data required by the dynamic pages and converts them into XML format. The MoreMotion package includes many useful data service classes that covers the most of the needs of an application.

 

In order to achieve the "products" data that is used in the above example, it is just enough to make the following configuration definition. 

 

<jdbcConnection name="SuperStore">

  <driver>org.gjt.mm.mysql.Driver</driver>

  <dburl>jdbc:mysql://localhost:3306/SuperStoreDB</dburl>

  <user>root</user>

  <password>mmsa</password>

</jdbcConnection>

 

<dataSource name="products">

  <class>org.moremotion.mmcomp.reldb.ReldbQueryDataService</class>

  <conn>SuperStore</conn>

  <query>SELECT * FROM product</query>

</dataSource>

 

 

MScript
 

MoreMotion AF supports a scripting language called MScript. MScript can be used embedded in the configuration to make the configuration parameters dynamically. 

 

As shown below, it is possible to define the values of the parameters dynamically according to the values of the request parameters, session variables or system parameters.

 

<dataSource name="products">

  ... 

  <query>

   SELECT * FROM products 

   @doif(CAT_ID != '')

     WHERE CAT_ID = @vof(CAT_ID)

   @doend()

  </query>

</dataSource>

 

The provided function set can be extended with new functions by implementing the MoreMotion's MScriptFunction interface with Java.

 

 

Process Management

 

In order the applications that have sophisticated bussiness logic to be realized easily, the MoreMotion AF supports a concept called Process Management. MoreMotion Process Management is a sucessful implementation of the MVC design pattern and it foresees the bussiness logic is divided into pieces called "Process" is managed through the configuration.

 

MoreMotion PM goes one step beyond the standard MVC implementations by isolating the process classes (there are no action forms or view classes) from the user interfaces and by letting the execution flow is steered dynamically with MScript.

 

A Process is only responsible to process the records given to it. It has no idea whether the records are coming from the user interface or from provided by a superior class. 

 

In the example below, a process template is calling a query process and for each record returned by the query process, a process that sends email is invoked.

 

<process name="LocalCustomers">

  <conn>SuperStore</conn>

  <class>org.moremotion.mmcomp.reldb.ReldbQueryProcess</class>

  <query>SELECT * FROM customer WHERE COUNTRY_CODE = 0</query>

</process>

 

<process name="SendEmail">

  <class>org.moremotion.mmcomp.mailer.TextMailProcess</class>

  <smtpAccount>siteAdmin</smtpAccount>

  <to>@vof(EMAIL)</to>

  <subject>Informing ...</subject>

  <message>

  Dear @vof(NAME),

  .....

  </message>

</process>

 

<processTemplate name="InformLocalCustomers">

  <callQueryProcess name="LocalCustomers">

    <calProcess name="SendEmail"/>

  </callQueryProcess>

</processTemplate>

 

To invoke the process templates with the user commands, "MoreMotion Face" Javascript functions can be used in the pages as shown in the example below.

 

<form mo:type="ProcessForm">

  <input type="button" mo:type="Command"

   onclick="PMgr.getEnclosingForm().submit('InformLocalCustomers')"

  />

</form>

 

 

MoreMotion Face & Ajax

 

MoreMotion is shipped with an Ajax powered Javascript framework called “MoreMotion Face”. While many Java based web frameworks leave the developers alone on the user interface side and expect to have their own Javascript and Ajax solutions, the MoreMotion Face provides a rich set of Ajax compatible components and a Javascript API to develop highly interactive user interfaces for the applications.

 

With the help of the rich Ajax functions provided by the MoreMotion Face, the processes can be invoked and the desired parts of the pages can be refreshed with the data acquired by the data sources. Most of the time no additional Javascript coding is necessary to do that.

 

<td onclik="AjaxMgr.refreshAreas({...})">Refresh</td>

 

 

Open Source Software

 

MoreMotion Application Framework is Free Software.

 

It is licensed under the LGPL v3.0. The LGPL allows using of MoreMotion AF in both open source and commercial projects. The LGPL guarantees that MoreMotion and any modifications made to MoreMotion will stay open source, protecting our and your work. 

 

Please visit http://www.moremotion.org for more information.

 

 

Home Products Resources Support & Services Buy Company
F.A.Q Technical Support About us
Forum Consulting Contact
Video Screencasts Training Courses
Download Center  
MOR YAZILIM - Rapid Application Development with XML, XSL and Ajax
Privacy Terms of use MOR YAZILIM 2002-2010 All rights reserved