Skip NavigationDesign Science: How Science Communicates
Products Solutions Store Support Reference Company View Cart

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.

- top of page -
Copyright © 1996-2017 Design Science. All rights reserved. | Privacy statement