Previous Next        Current Page: NeXtMidas User's Guide / Basic Concepts / System Overview
back
FAQs   
Release Information   
Getting Help   
Basic Concepts   
   - Summary of Capabilities   
   - System Overview   
      - Key Components   
      - Directory Structure   
   + Shell   
   + Option Trees   
   + Commands   
Result Parameters   
XML Support   
Files   
System Operation   
Macros   
Java WebStart   
Graphics   
X-Midas Interoperability   
Third-Party Compatibility   
Installation and Customization   
Running NeXtMidas Independently   
Timelines - Keywords, Updating, Known Issues   
WebSwing to deploy NeXtMidas as a Web App   
Glossary   
Installing and Using Docker   
Using Gradle To Build NextMidas   
NeXtMidas Support for Continous Integrations with GitLab   


System Overview

NeXtMidas is a highly portable Java-based class library for data acquisition, signal processing, and graphical display applications and a set of runtime objects that preserve context to enable a cohesive session of transitory command-oriented actions. A NeXtMidas session is launched as a conventional application from a terminal window or as an applet from an HTML document. Provision is also made to execute single commands in a one-shot mode without the overhead of session startup and shutdown.

NeXtMidas is programmable by the user. New commands are created using either Java or the built-in NeXtMidas macro language. Commands written in Java generally execute faster but require more time to code and debug. Macro commands can be defined relatively quickly, but performance may suffer. Although there is no inherent limitation to the type of command that can be added to NeXtMidas, the system infrastructure is designed to aid in creating and executing commands that perform signal acquisition, processing, and display.

A key capability of the NeXtMidas macro facility is support for distributed applications running on different platforms. In this context, it is common to see the graphical components of the application implemented as one or more NeXtMidas macros that coordinate their activities with number-crunching commands executed by X-Midas.

The reason for this division of labor is simple. Signal processing applications often combine numerically intensive algorithms with complex graphics. Numerical code can be efficiently and portably coded in FORTRAN and C, which are the languages of choice in environments like X-Midas. The graphics code, on the other hand, may not be quite so demanding of computational efficiency but is notoriously difficult to write portably unless constructed in a language like Java, which is designed specifically to provide platform independence. Thus, the graphical front end of a signal processing application is most sensibly implemented in a system like NeXtMidas whose native tongue is Java.

This section introduces key NeXtMidas concepts and terminology for those unfamiliar with any of the previous Midas incarnations. It comprises the following subsections:


back