JMSL™ Numerical Library architecture

Applications built using Java™ are by nature flexible and extremely portable. Applications written in Java compile to the freely available Java virtual machine (JVM) and the resulting application can run on any system that implements the JVM. Equally important is that Java is easy to use, allowing for rapid development and deployment, which reduces costs and improves programmer productivity.

With its JMSL Numerical Library for Java applications, Rogue Wave adds robust numerical analytics to the broad set of Java capabilities. The JMSL Library extends the foundation of the Java language to accommodate new classifications for numerical analysis, delivering the only fully supported and documented Java numerics solution with the reliability of the industry-standard IMSL Numerical Library.

The JMSL Library is a complete collection of mathematical, statistical, and charting classes for developing numerical applications. The JMSL Library is written 100 percent in Java and easily fits into any Java application.

The diagram below illustrates the building blocks, such as complex numbers, that Rogue Wave developed to perform higher mathematics and statistics in Java.


To illustrate how the JMSL Library can be used in standalone or web environments, select any of the architecture pages below.

The JMSL Library for standalone applications

The JMSL Library can be used to quickly and efficiently write standalone desktop applications. Programmers can use the JMSL Library both for numerical computations and for charting. Most Java™ GUI applications are built using the standard Swing™ components. JMSL Library charts are specifically designed to work easily with Swing.

The diagram below illustrates how to take advantage of Java with the JMSL Library used in a standalone environment. The JMSL Library provides advanced numerical analysis to desktops and laptops with the convenience of Java's object orientation and platform independence.


The JMSL Library web architecture

The diagram below demonstrates how the JMSL Library brings advanced numerical computation to Java™ in a web environment.

The JMSL Library can be used for programming on the web tier. Results are computed and then sent to the browser in the form of text (HTML) or images (PNG). Typically, the JMSL Library on a web server would be used with Java servlets and/or Java server pages (JSP). However, it can also be used with other Java-based web frameworks.

The HttpSession is used to hold the state of a session between calls to the web server by a particular browser. It is a standard part of a J2EE web server. Its use is optional.


The JMSL Library with an applet

An applet is a Java GUI application that runs in the browser. The internal architecture of an applet is the same as it is for a GUI desktop client. The applet allows applications utilizing the JMSL Library to be deployed across the web to a browser, providing advanced numerical analysis capability to a web setting.


The flow of control is as follows:

  1. The browser sends an HTTP request to the web server
  2. The web server returns an HTML page, containing a reference to an applet
  3. The browser parses the HTML page, displays the text, and asks the web server for the applet files
  4. The web server returns the applet files stored in the Jar archive format
  5. The web browser receives the Jar files and passes them to the Java virtual machine (JVM) for execution
  6. The JVM executes the classes in the Jar files and displays the result to the screen through the browser

The JMSL Library using Java web start

Java web start (JWS) allows applications to be downloaded from the web, cached locally, and run on the desktop like regular desktop applications. This provides the benefits of fast client application execution while still enabling automatic application updates via the web.


The first time the application is used, the flow of control is as follows:

  1. The browser sends an HTTP request to the web server
  2. The web server returns a JNLP file, containing XML describing the application
  3. The browser passes the JNLP file to Java web start (JWS)
  4. JWS parses the JNLP file and requests the application's Jar files from the web server
  5. The web server returns the requested Jar files
  6. JWS receives the Jar files and saves them in a disk cache
  7. JWS passes the Jar files from the cache to the Java Virtual machine (JVM) for execution
  8. The JVM executes the classes in the Jar files and displays the result to the screen
  9. After the application has been downloaded and cached, it can be run again starting at step seven

Learn more about our capabilities.