Migrating from WebEQ Developers Suite to the MathFlow SDK
The WebEQ Developers Suite is no longer available for
purchase. While existing customers and licensees will continue to be supported,
Design Science recommends that WebEQ customers begin transitioning from
WebEQ-based components to the MathFlow components that replace them. This
page discusses migration strategies for each of the main WebEQ components.
Replacing the WebEQ Input Control
The WebEQ Input Control is an applet-based equation editor. Its
behavior and appearance can be customized through the use of applet parameters.
It is typically integrated with web applications through the use of a JavaScript
API that enables an application programmer to get and set the current equation
in MathML format.
The WebEQ Input Control is being replaced by a family of three MathFlow
components.
- The Simple Editor is designed for applications where end-users
must enter mathematical equations with little prior training and only the
meaning of the math matters. Online assessment and tutoring systems are good
examples.
- The Style Editor is tailored to the needs of content authors, and
provides precise control over the visual appearance of math expressions. It
is the ideal choice for applications where authors are creating content for
publication, such as a web-based editorial system.
- The Structure Editor targets professional XML workflow users.
Such users need fine control over visual presentation, as well as its
underlying MathML structure. It is the best choice for demanding publishing
workflow applications.
Thus, the first step in migrating from the WebEQ Input Control to a MathFlow
Editor component is to think carefully about the needs of your end users, and
select the appropriate MathFlow Editor component. However, in most cases,
the Simple Editor is the most direct replacement for the WebEQ Input Control
as components emphasize simplicity and ease of use.
After you have identified the proper MathFlow Editor component, a small
amount of Java programming is required. All MathFlow components require a
license key for deployment, and in the case of applets, this key must be
compiled into the applet code. The MathFlow SDK provides sample code and
documentation, making this a simple and straightforward step for even a novice
Java developer.
Once you have prepared your editor applet for deployment, it will be
necessary to update the integration between the editor applet and your web
application. There are two areas to consider:
- Applet tags will need to be updated to refer to your new applet
name and JAR files. The applet parameters recognized by the MathFlow
Editor applets are almost entirely backwardly compatible with those accepted
by the WebEQ Input Control. However, since some parameters have been
deprecated, this would be a good time to review your application's usage of
applet parameters, and update them as well if indicated.
- JavaScript code used to get, set or manipulate the current equation
should also be reviewed and updated. While most methods have not
changed, some deprecated methods have been eliminated, and some others have
been changed for greater consistency. Consequently, existing code should be
reviewed and updated as necessary.
Replacing the WebEQ Equation Server
The WebEQ Equation Server is a command line utility (also accessible via a
Java API) used predominantly to generate image files from MathML markup in XML
documents. It is frequently used to generate equation images on a server
from MathML markup generated by an end user of the WebEQ Input Control in a web
page.
The WebEQ Equation Server is being replaced by the MathFlow Document and
Equation Composers.
- MathFlow's Equation Composer component utilizes Design Science's
high-performance MathML rendering engine for high-quality layout and
typography and produces a variety of formats, including GIF, PNG and EPS.
- MathFlow's Document Composer component applies the Equation
Composer to all MathML instances in an XML or HTML document, turning them
into image files linked into the page.
Abstractly, the Document Composer is the more direct replacement, as both the
MathFlow Document Composer and WebEQ Equation Server operate by scanning a
document, and processing the MathML within it. However, in practice, the
WebEQ Equation Server is often used to convert a single equation at a time.
In these cases, the MathFlow Equation Composer is apt to be a better
replacement, leading to simpler code with less intermediate processing.
A second consideration in choosing a MathFlow Composer replacement is that
the MathFlow composers are available both as Java libraries and as Windows
executables and DLLs. The Windows versions of the MathFlow components are
faster, have better typography and generate EPS, while the Java versions can be
used easily in Mac OS, Linux and Solaris environments, integrate well with other
Java applications, and use the same rendering engine as the MathFlow Editor
components for greater fidelity between the onscreen appearance in an editor and
the final output. The right choice for your application will therefore
depend on your requirements. The command line arguments and APIs are
nearly identical between the Java and Windows versions, so the choice of
replacement component has minimal effect on the effort required to transition
from WebEQ.
Once you have selected a replacement component, it is necessary to update
code used to integrate the WebEQ Equation Server into your application.
There are two areas requiring attention:
- The MathFlow Composer components use somewhat different command line
arguments and APIs. In nearly all cases, the analogous parameter or
method name is clear, but existing code will have to be updated.
- The WebEQ Equation Server used a stateless composition model
where all rendering parameters had to be specified for each invocation.
By contrast, the MathFlow Composer components maintain state, allowing for
rendering parameters to be set once at initialization time, and reused
multiple times during a single session. While the stateless model can
easily be emulated by the MathFlow Composer components by merely setting all
parameters on each invocation, existing code should be reviewed to see if
simpler, more efficient implementation may be possible.
Replacing the WebEQ Editor and Publisher
The WebEQ Editor is an end user equation editor application. Similarly,
the WebEQ Publisher is an end user tool for converting math equations embedded
in a text document from one format to another. Since the MathFlow SDK provides
components suitable for integration with other applications, not end user
applications, there are no direct replacements for these tools. However,
equivalent end user applications may be easily developed from MathFlow
components.
The WebEQ Editor is most closely aligned with the MathFlow Style Editor
component, and a standalone equation editor application based on the Style Editor
can easily be constructed by a java programmer. However, some of the
application-level functionality of the WebEQ Editor would have to be replicated.
Our intention is to include sample code for an editor application similar to the
WebEQ Editor in future versions of the MathFlow SDK.
In many cases, MathType
is an effective replacement for the WebEQ Editor. One can paste MathML
into MathType, and by using MathType's translator preferences one can specify
equations will be pasted from MathType in MathML format. Alternatively, MathType
can be used to save equation images as well, which is another important use case
for the WebEQ editor. Thus, in most situations where the WebEQ Editor is
used, MathType matches the WebEQ Editor's functionality, and offers many
additional editing and usability features as well.
The WebEQ Publisher is a utility application allowing an end user to utilize
the functionality of the WebEQ Equation Server via a graphical user interface.
While there is no directly analogous MathFlow component, the MathFlow SDK
contains sample code for an application that is similar in spirit and invokes
the MathFlow Document Composer via a graphical user interface. Thus,
replacing the WebEQ Publisher with a custom application utilizing the MathFlow
Document and/or Equation Composers is a straightforward development task.
Replacing Other WebEQ Components
The WebEQ Viewer Control is an applet that merely displays MathML.
Today, however, there are better options for displaying MathML in web pages.
In many situations, one can rely native rendering in Firefox, or on the
MathPlayer add-on to Internet Explorer. In Opera and Safari, MathML is acceptably
rendered purely using CSS (See
A MathML for CSS
profile for more information). By using client-side JavaScript,
high-quality MathML rendering across a range of browsers is possible. The
MathJax project expects to release
state-of-the-art JavaScript libraries for this purpose in Fall of 2009.
The WebEQ Developers Suite contains Grapher, Evaluator and Comparator
components. These components rely on a very basic content MathML
evaluation engine capable of computing the values of elementary functions at a
point. These components have not yet been incorporated into the MathFlow
line of components. However, if you have a need for such functionality,
please contact us so we can
take your needs into account when prioritizing future MathFlow component
development.
|