U.S. patent application number 09/681349 was filed with the patent office on 2002-06-13 for method for accessing complex software applications through a client user interface.
Invention is credited to Dewhurst, Sebastian, Gerring, Matthew, Hawkins, Ian Robert.
Application Number | 20020073180 09/681349 |
Document ID | / |
Family ID | 24950109 |
Filed Date | 2002-06-13 |
United States Patent
Application |
20020073180 |
Kind Code |
A1 |
Dewhurst, Sebastian ; et
al. |
June 13, 2002 |
METHOD FOR ACCESSING COMPLEX SOFTWARE APPLICATIONS THROUGH A CLIENT
USER INTERFACE
Abstract
A method for configuring and executing a software application
with a client user interface, the method including the steps of
accessing a master configuration file containing an array of
configuration variables controlling the execution of the software
application, preselecting a subset of configuration variables from
the array of configuration variables contained in the master
configuration file, generating the client user interface to modify
only the subset of configuration variables, transmitting the client
user interface to a client computer, receiving the subset of
configuration variables as modified on the client computer,
applying the subset of configuration variables against the master
configuration file, executing the software application in
accordance with the master configuration file on a computational
server, the execution of the software application producing an
output result, and transmitting the output result to the client
computer.
Inventors: |
Dewhurst, Sebastian;
(Valrico, FL) ; Gerring, Matthew; (Farindgon,
GB) ; Hawkins, Ian Robert; (Oxfordshire, GB) |
Correspondence
Address: |
SMITH & HOPEN PA
15950 BAY VISTA DRIVE
SUITE 220
CLEARWATER
FL
33760
|
Family ID: |
24950109 |
Appl. No.: |
09/681349 |
Filed: |
March 23, 2001 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09681349 |
Mar 23, 2001 |
|
|
|
09734048 |
Dec 12, 2000 |
|
|
|
Current U.S.
Class: |
709/220 |
Current CPC
Class: |
G06F 30/23 20200101;
G06F 2111/10 20200101 |
Class at
Publication: |
709/220 |
International
Class: |
G06F 015/177 |
Claims
1] A method for configuring and executing a software application
with a client user interface, the method comprising the steps of:
accessing a master configuration file containing an array of
configuration variables controlling the execution of the software
application; preselecting a subset of configuration variables from
the array of configuration variables contained in the master
configuration file; generating the client user interface to modify
only the subset of configuration variables; transmitting the client
user interface to a client computer; receiving the subset of
configuration variables as modified on the client computer;
applying the subset of configuration variables against the master
configuration file; executing the software application in
accordance with the master configuration file on a computational
server, the execution of the software application producing an
output result; transmitting the output result to the client
computer.
2] The method of claim 1 further comprising the step of storing in
the master configuration file access instructions to a plurality of
computational servers available to execute the software
application.
3] The method of claim 1 further comprising the step storing in the
master configuration file configuration settings for displaying a
plurality of languages in the client user interface.
4] The method of claim 1 further comprising the step storing in the
master configuration file licensing information for managing
available licenses to permit the execution of the software
application.
5] The method of claim 1 further comprising the steps of: receiving
substantially concurrently a plurality of subsets; storing the
plurality of subsets prior to execution on the computational
server; executing each subset as the computational server becomes
available for processing.
6] The method of claim 5 further comprising the step storing in the
master configuration file queuing data for establishing a relative
execution priority of the plurality of subsets.
7] The method of claim 5 further comprising the step of
transmitting a processing status report to the client user
interface.
8] The method of claim 1 further comprising the steps of writing
the preselected subset of configuration variables to a template
file wherein the form and appearance of client user interface is
defined by the template file.
9] The method of claim 1 further comprising the step of
preselecting a default measurement unit for at least one variable
of the preselected subset of configuration variables.
10] The method of claim 1 further comprising the step of
preselecting a plurality of measurement units selectable for at
least one variable of the preselected subset of configuration
variables.
11] The method of claim 1 further comprising the step of
preselecting a default value for at least one variable of the
preselected subset of configuration variables.
12] The method of claim 11 further comprising the step of
establishing permissible bounds for the at least one variable of
the preselected subset of configuration variables.
13] The method of claim 12 further comprising the step of
establishing permissible bounds for the at least one variable
relative to the value of a second variable.
14] The method of claim 1 further comprising the step of
establishing a text string description for at least one variable of
the preselected subset of configuration variables.
15] The method of claim 1 further comprising the step of
establishing an input means for accepting a plurality of linear
values for at least one variable of the preselected subset of
configuration variables The method of claim 1 further comprising
the step of predefining at least one graphic representation of the
subset of configuration variables for display on the client user
interface.
16] The method of claim 16 further comprising the step of modifying
the at least one graphic representation responsive to a
modification in at least one variable of the preselected subset of
configuration variables.
17] The method of claim 16 further comprising the step of
displaying at least one dimension value in visual proximity to the
at least one graphic representation.
18] The method of claim 18 further comprising the step of making
visible a first dimension value responsive to a modification of a
first variable of the preselected subset of configuration variables
and making the first dimension value invisible responsive to a
modification of another variable of the preselected subset of
configuration variables.
19] The method of claim 1 further comprising the step of displaying
a plurality of images on the client user interface, at least one
variable of the preselected subset of configuration variables being
modified responsive to the selection of an individual image within
the group of the plurality of images.
20] The method of claim 1 wherein a plurality of master
configuration files may be accessed and modified.
21] The method of claim 1 wherein a plurality of software
applications may be executed.
22] A method for remotely accessing at least one software
application with a client user interface, the method comprising the
steps of: accessing at least one master configuration file
containing an array of configuration variables controlling the
execution of the software application; replacing a preexisting
configuration variable in the at least one master configuration
file with a machine readable identifier; accepting a user-defined
configuration variable corresponding to the preexisting
configuration variable from a client computer; and replacing the
machine readable identifier with the user-defined configuration
variable.
23] The method of claim 23 wherein a plurality of user-defined
configuration variables are accepted and replace a plurality of
corresponding machine readable identifiers.
24] The method of claim 24 wherein the step of accepting the
plurality of user-defined configuration variables from the client
computer further comprises retrieving a file post containing the
plurality of user-defined configuration variables.
25] The method of claim 24 wherein the step of accepting the
plurality of user-defined configuration variables from the client
computer further comprises retrieving a delimited string post
containing the plurality of user-defined configuration
variables.
26] A method for configuring and executing at least one software
application with a client user interface, the method comprising the
steps of: establishing a computational server running the at least
one software application; establishing an application server
communicatively coupled to the computational server; establishing a
communications pathway from the application server to at least one
client computer, the communications pathway adapted to transmit
data for displaying a graphic user interface on the client
computer; accessing at least one master configuration file
containing an array of configuration variables controlling the
execution of the software application; preselecting a subset of
configuration variables from the array of configuration variables
contained in the at least one master configuration file;
establishing a template file wherein the subset of configuration
variables and the appearance of the graphic user interface are
defined by the template file; storing the template file on a
storage medium communicatively accessible by the application
server; transmitting the template file to the client computer;
responsive to receiving an array of modified configuration
variables from the client computer, applying the array of modified
configuration variables to the at least one master configuration
file; executing the at least one software application in accordance
with the at least one master configuration file on the
computational server; outputting a result; transmitting the result
to the client computer.
Description
BACKGROUND OF INVENTION
[0001] 1. Field of Invention
[0002] This invention relates to a method for accessing software
applications, and more specifically to a method of generating a
client user interface for executing complex, pre-configured
software applications.
[0003] 2. Background of the Invention
[0004] For the great majority of consumer software applications,
considerable resources are attributed to the design of the user
interface (herein "UI"). Not only are well developed UIs
aesthetically pleasing to the end user, they also serve to reduce
the perceived complexity of a software application. Major players
in the operating system market such as Microsoft.RTM. and
Apple.RTM. strongly market the ease of use and attractiveness of
their UIs. Nearly every major release of the Windows.RTM. operating
system has included a substantial revision of the UI. Even the
latest version of the Windows line of operating system, XP, touts
its UI: "the familiar Windows interface has been enhanced to make
it even easier to use. New visual cues help you find important
information, and the redesigned Start menu makes it easier to
access the programs you use most frequently." Microsoft's major
competitor in the operating system market, Apple, bills its new
Aqua.TM. interface with the following copy: "Your operating system
can contribute to screen clutter by spawning multiple windows.
Navigating deep structured file systems, for instance, involves
opening more and more windows, obscuring your view of the desktop.
Mac OS X eliminates the problem of multiplying windows by focusing
many of its applications in a single window. Key system components
like the new Finder, Mail and the System Preferences panel are
presented in a single window. The result? A clean uncluttered
look." UI enhancements lower the learning curve for operating a
software application. Careful thought and consideration in the UI
design leads to systems that place information in clearly
understood format and in anticipated locations.
[0005] Even for traditionally command-line (herein "CL") operating
systems, UI applications such as GNOME, KDE, and X Window are
notoriously well known. GNOME (GNU Network Object Model
Environment) is a graphical user interface (herein "GUI") and set
of computer desktop application for users of the Linux computer
operating system. It's intended to make a Linux operating system
easy to use for non-programmers and generally corresponds to the
Windows desktop interface and its most common set of applications.
Matthias Ettrich launched the KDE project in October 1996 with the
goal of making the UNIX platform more attractive and easy to use
for computer users who are familiar with a graphical interface
instead of typed commands. Today, KDE is used with Linux, Solaris,
FreeBSD, OpenBSD, and LinuxPPC. X Window is primarily used in
networks of interconnected mainframes, minicomputers, and
workstations. It is also used on the X terminal, which is
essentially a workstation with display management capabilities but
without its own applications.
[0006] Despite the interest and investment in GUIs for virtually
every computer platform, CL interfaces continue to thrive, albeit
in less consumer-oriented products, and more particularly, in
batch-file driven applications.A batch file is a text file that
contains a sequence of commands for a computer operating system.
It's called a batch file because it batches (bundles or packages)
into a single file a set of commands that would otherwise have to
be presented to the system interactively from a keyboard one at a
time. A batch file is usually created for command sequences for
which a user has a repeated need. Commonly needed batch files are
often delivered as part of an operating system. One initiates the
sequence of commands in the batch file by simply entering the name
of the batch file on a command line. In the Disk Operating System
(DOS), a batch file has the file name extension ".BAT". (The best
known DOS batch file is the AUTOEXEC.BAT file that initializes DOS
when one starts the system.) In UNIX-based operating systems, a
batch file is called a shell script. In IBM's mainframe VM
operating systems, it's called an EXEC.
[0007] For current software applications, batch file processes are
often used in complex engineering and financial tools. An example
of an application which may be batch-driven is the CFX.RTM. family
of engineering software products developed by AEA Technology plc
based in Oxfordshire, United Kingdom (herein "AEA"). However, even
with major improvement in making new versions of CFX.RTM. easier to
use, the learning curve for users takes weeks to months to
overcome. An application such as CFX.RTM. must be general enough to
handle computational fluid dynamic problems ranging from supersonic
flow to heat transfer to vascular flow. Therefore, the general
purpose, and therefore complex, interface associated with such
applications cannot be supplanted without a substantial loss of
functionality. The general-purpose user interfaces available in
such tools provides a wide range of modeling capability, but
unfortunately results in steep learning curves.As a result, only a
small number of users are capable of creating a ground-up
simulation in CFX, although a large number of users may want access
to the application. For example, a ground up simulation created for
a fluid flow on a five-centimeter pipe may offer an expensive
one-time solution for an on-site engineer. However, if the engineer
wanted to know what would happen if the five-centimeter pipe was
replaced by a three-centimeter pipe, the engineer would have to
contact the highly trained CFX.RTM. user to modify the previously
written simulation to modify the pipe dimensions. This results in a
loss of productivity for both parties: the onsite engineer waiting
for the new results and the CFX.RTM. user distracted from authoring
new simulations.
[0008] It should be noted that GUIs are often provided for complex,
batch-driven applications, yet even best efforts to make a GUI easy
to operate still result in a high learning curve if the
configuration and execution of the application is still complex.
For example, GUIs currently used in drafting and engineering
application may have literally hundreds of nested buttons
accessible in a single screen interface. This information overload
substantially raises the learning curve for operating the software
application, particular when only the modification of a handful of
variables is necessary for the objectives of the end user.
[0009] Another problem with complex, batch driven software is the
inefficient utilization of the licensing fees. Engineering software
such as CFX.RTM. is more costly to license by magnitudes when
compared to even the most expensive software commonly known to
laypersons. Accordingly, licensees of the software wish to utilize
the application as much as possible to obtain a return on their
investment. However, because the learning curve is so high for
complex software applications, usually only a limited number of
users are capable of utilizing the software, even though a large
number of company employees wish to frequently access the
application. Similar to licensing concerns is that of CPU
utilization. Complex and expensive software often requires complex
and expensive computers to run them. An idle CPU represents poor
utilization of a company's investment in its computational
infrastructure.
[0010] Still another problem in the art is that of remote access.
Going back to the example of the onsite engineer, the CFX.RTM.
system would only be available if it was installed on a remote
computer with sufficient computational power to operate, or
alternatively for a remote access application such as CITRIX.RTM.
or Windows Terminal Services (herein "TS"). However, even
CITRIX.RTM. and TS solutions only provide a bitmap emulation of the
local user interface. The onsite engineer is still faced with the
complexities of the software application even though the simulation
has largely been authored but for some modifications in a small
array of variables. Furthermore, even the most efficient terminal
screen emulations generally require a substantial amount of network
bandwidth to operate without distracting latency.
[0011] An ever-increasing area of corporate development is mining
knowledge databases. Companies frequently generate large stores of
information, which, if efficiently accessed, produce substantial
gains in productivity. However, in the field of complex software
applications, sophisticated processes authored by a few highly
trained computer specialists are not accessible by other users in
the company. These processes might be focused on engineering, as is
the case for CFX software, or focused on financial applications
such as Agresso Business World products developed by Agresso Group
ASA headquartered in Oslo, Norway. Regardless of the target of the
applications, valuable intellectual property is left untapped by
the majority of a company simply due to the "front-end" complexity
of the software application.
[0012] Still another problem in the prior art is that of employee
turnover. When an expert user leaves a company, much of the
expert"s knowledge leaves with that person. What is needed is a
method to encapsulate the expert"s work product into a system that
may be easily accessed by novice users even in the absence of the
expert. Value exists in an expert"s ability to apply complex
software solutions to the specific needs of a particular
company.
[0013] A number of patents exist relating to client-server
processing of complex software applications such an engineering
simulations. U.S. Pat. No. 5,778,368 to Hogan et al. and assigned
to Telogy Networks, Inc. describes a system to permit re-use of
real-time embedded software. The Hogan patent does discuss
simulations in client-server architecture. However, the Hogan
patent does not teach the distillation of complex simulations into
end-user, client forms which may be manipulated without specialized
knowledge of the simulation software. U.S. Pat. No. 5,826,065 to
Hinsberg et al. and assigned to IBM Corporation describes an
object-oriented architecture for stochastic simulation of chemical
reactions and transport wherein the programmer only makes certain
user interface options available to permit an end user to configure
the simulation at runtime. However, this is achieved through an
array of simulation objects employed in an object-oriented
architecture. Japanese Patent No. JP408055129A to Oshima and
assigned to Toppan Printing Company describes a batch file-driven
system for image processing but provides no suggestion as to
reducing the complexity of administration and execution. U.S. Pat.
No. 5,872,958 to Worthington et al. and assigned to IBM Corporation
describes a method of modeling hardware component dependencies. The
Worthington does not suggest or describe a streamlined
client-server interface to remove the learning curve and
complexities of sophisticated simulation and financial
software.
[0014] Unfortunately, none of the references available in the prior
art disclose, teach or suggest a solution to the aforementioned
problems.
[0015] Accordingly, what is needed in the art is a method for
generating an easy to use front-end UI for previously configured
complex software applications.
[0016] Another need exists in the art for a method to efficiently
and easily create the above-mentioned front-end UI regardless of
the type of software application.
[0017] Another need exists in the art for a method to more
efficiently utilize CPU time.
[0018] Another need exists in the art for a method to more
efficiently utilize software license seats.
[0019] Another need exists in the art for a method to reduce
bandwidth considerations for remote application configuration,
processing and analysis.
[0020] Another need exists in the art for a method to better
capture enterprise knowledge as it relates to complex software
configuration and processing.
[0021] Another need exists in the art for a method to encapsulate
the expert"s work product into a system that may be easily accessed
by novice users even in the absence of the expert.
[0022] It is, therefore, to the effective resolution of the
aforementioned problems and shortcomings of the prior art that the
present invention is directed.
[0023] However, in view of the prior art in at the time the present
invention was made, it was not obvious to those of ordinary skill
in the pertinent art how the identified needs could be
fulfilled.
SUMMARY OF INVENTION
[0024] The present invention comprises a method for configuring and
executing a software application with a client user interface, the
method comprising the steps of accessing a master configuration
file containing an array of configuration variables controlling the
execution of the software application, preselecting a subset of
configuration variables from the array of configuration variables
contained in the master configuration file, generating the client
user interface to modify only the subset of configuration
variables, transmitting the client user interface to a client
computer, receiving the subset of configuration variables as
modified on the client computer, applying the subset of
configuration variables against the master configuration file,
executing the software application in accordance with the master
configuration file on a computational server, the execution of the
software application producing an output result, and transmitting
the output result to the client computer.
[0025] It should be noted that instead of only a single master
configuration file, a plurality of master configuration files may
be accessed and modified by the present invention. Furthermore, a
plurality of software applications may be executed in a preselected
order wherein the results are aggregated into a single output.
Therefore, the present invention may configure and drive a
plurality of software applications, each employed collectively to
solve a discrete problem.
[0026] In a preferred embodiment of the invention, additional steps
include storing in the master configuration file access
instructions to a plurality of computational servers available to
execute the software application, configuration settings for
displaying a plurality of languages in the client user interface,
and licensing information for managing available licenses to permit
the execution of the software application.
[0027] In order to accommodate a plurality of client computer
requests for processing, additional steps may include receiving
substantially concurrently a plurality of subsets, storing the
plurality of subsets prior to execution on the computational
server, and executing each subset as the computational server
becomes available for processing. Queuing data may be stored to
establish a relative execution priority of the plurality of subsets
and a processing status report may be transmitted to the client
user interface to indicate how long it will take before the results
are computed and ready for review.
[0028] The preselected subset of configuration variables may be
written to a template file wherein the form and appearance of
client user interface is defined by the template file.
[0029] A default measurement unit may be preselected for at least
one variable of the preselected subset of configuration variables.
Such measurement unit might be meters, centimeters, centigrade or
the like. To provide flexibility in data input, a plurality of
measurement units selectable for at least one variable of the
preselected subset of configuration variables may be
preselected.
[0030] A default value for at least one variable of the preselected
subset of configuration variables may also be preselected.
Permissible bounds may be established for the client-inputted
variables for an individual variable. In addition, permissible
bounds may also be established for one variable relative to the
value of a second variable.
[0031] In order that the user interface is easy to understand, a
text string description of each variable may be established. A
plurality of values may be accepted by establishing an input means
to accept a range of values with linear stepping. The values may be
distributed linearly, logarithmically, or arbitrarily.
[0032] In addition to the text descriptions as provided above, the
client interface may be greatly enhanced by predefining at least
one graphic representation of the subset of configuration variables
for display on the client user interface and modifying the at least
one graphic representation responsive to a modification in at least
one variable of the preselected subset of configuration variables.
At least one dimension value in visual proximity to the at least
one graphic representation may be displayed. In addition, a
mouse-over or text box entry event may be used to trigger the step
of making visible a first dimension value responsive to a
modification of a first variable of the preselected subset of
configuration variables and making the first dimension value
invisible responsive to a modification of another variable of the
preselected subset of configuration variables. To further lower the
learning curve necessary to operate the client interface an
additional step may include displaying a plurality of images on the
client user interface, at least one variable of the preselected
subset of configuration variables being modified responsive to the
selection of an individual image within the group of the plurality
of images.
[0033] An important feature of the present invention is the ease in
which complex and legacy software applications may be modified and
executed. A preexisting configuration variable in the master
configuration file is replaced with a machine-readable identifier.
When the modified variables are received from the client computer,
the master configuration file is parsed wherein the corresponding
configuration variable replaces the machine-readable identifier.
The user-defined configuration variables may be accepted as a
binary or ASCII file upload or as a delimited string post.
[0034] A preferred integration of systems for the invention
includes establishing a computational server running at least one
software application, establishing an application server
communicatively coupled to the computational server, establishing a
communications pathway from the application server to at least one
client computer, the communications pathway adapted to transmit
data for displaying a graphic user interface on the client
computer, accessing a master configuration file containing an array
of configuration variables controlling the execution of the
software application, preselecting a subset of configuration
variables from the array of configuration variables contained in
the master configuration file, establishing a template file wherein
the subset of configuration variables and the appearance of the
graphic user interface are defined by the template file, storing
the template file on a storage medium communicatively accessible by
the application server, transmitting the template file to the
client computer, responsive to receiving an array of modified
configuration variables from the client computer, applying the
array of modified configuration variables to the master
configuration file, executing the software application in
accordance with the master configuration file on the computational
server, outputting a result, and transmitting the result to the
client computer.
[0035] It is therefore an object of the present invention to
provide a method for generating an easy to use front-end UI for
previously configured complex software applications.
[0036] It is another object of the present invention to provide a
method to efficiently and easily create the above-mentioned
front-end UI regardless of the type of software application.
[0037] It is another object of the present invention to provide a
method to more efficiently utilize CPU time.
[0038] It is another object of the present invention to provide a
method to more efficiently utilize software license seats.
[0039] It is another object of the present invention to provide a
method to reduce bandwidth considerations for remote application
configuration, processing and analysis.
[0040] It is another object of the present invention to provide a
method to better capture enterprise knowledge as it relates to
complex software configuration and processing.
[0041] An advantage of the invention is that novice users may
utilize complex software applications without enduring a high
learning curve.
[0042] Another advantage of the invention is that specialists who
are trained to use the complex software application need not be
distracted by requests to modify a limited subset of variables in
an existing master configuration file.
[0043] Another advantage of the invention is that a plurality of
novice users may access a library of preexisting software
configurations that already meet the requirements of the computing
task without incurring the expense of configuring a computing task
from the ground up.
[0044] Another advantage of the invention is that a larger number
of users may engage the computational servers, thus better
utilizing existing resources.
[0045] Another advantage of the invention is that a larger number
of users may utilize an existing software license.
[0046] Another advantage of the invention is that users are
provided a rich, graphical interface for what may normally be a
command line software application.
[0047] Another advantage of the invention is that users are
provided graphic feedback responsive to changes in the variables
modifiable in the user interface.
[0048] Another advantage of the invention is that legacy client
hardware and limited bandwidth may easily accommodate the end user
as only configuration variables and post-processing results are
transmitted as opposed to terminal emulation solutions.
[0049] Another advantage of the invention is that an expert user's
ability to apply complex software solutions to the specific needs
of a particular company is encapsulated into the system so that it
may be easily be accessed by novice users even in the absence of
the expert. It is to be understood that both the foregoing general
description and the following detailed description are explanatory
and are not restrictive of the invention as claimed. The
accompanying drawings, which are incorporated in and constitute
part of the specification, illustrate embodiments of the present
invention and together with the general description, serve to
explain principles of the present invention.
[0050] Another advantage of the invention is that a single user
interface may be configured to drive and obtain results from a
plurality of separate underlying applications.
[0051] These and other important objects, advantages, and features
of the invention will become clear as this description
proceeds.
[0052] The invention accordingly comprises the features of
construction, combination of elements, and arrangement of parts
that will be exemplified in the description set forth hereinafter
and the scope of the invention will be indicated in the claims.
BRIEF DESCRIPTION OF DRAWINGS
[0053] For a fuller understanding of the nature and objects of the
invention, reference should be made to the following detailed
description, taken in connection with the accompanying drawings, in
which:
[0054] FIG. 1 is an illustration of the prior art wherein a
plurality of novice users place requests with an expert user to
configure and execute a complex software application.
[0055] FIG. 2 is an illustration of the prior art wherein a
terminal emulation of the complex software application is provided
to remotely located novice user.
[0056] FIG. 3 is an illustration of the creation of a template file
accessible by a remotely located novice user in communication with
a computational server.
[0057] FIG. 4 is an illustration of a computational server
accepting requests for application execution by a plurality of
remotely located client computers.
[0058] FIG. 5 is an illustration of a plurality of remotely located
client computers sending requests for application execution to a
queue which is then fed to a computational server.
[0059] FIG. 6 is an illustration of the creation of a template
library by an expert user.
[0060] FIG. 7 is a flowchart diagram of the method of the
invention.
[0061] FIG. 8 is a diagrammatic view of a preferred embodiment of
the invention.
[0062] FIG. 9 is a screen shot illustration of an exemplary user
interface according to the invention.
[0063] FIG. 10 is a dialog box illustration of a feature of the
invention to accept a parametric range.
[0064] FIG. 11 is a screen shot illustration of an exemplary user
interface showing a change in graphic representation responsive to
a change in numeric input into a form.
[0065] FIG. 12 is a screen shot illustration of an exemplary user
interface showing a change in graphic representation responsive to
a change in numeric input into a form.
[0066] FIG. 13 is a screen shot illustration of an exemplary user
interface showing a change in graphic representation responsive to
a change in numeric input into a form.
[0067] FIG. 14 is a screen shot illustration of an exemplary user
interface showing a change in graphic representation responsive to
a change in numeric input into a form.
[0068] FIG. 15 is a screen shot illustration of an exemplary user
interface showing the display of a dimension value response to a
change in number input into a form.
[0069] FIG. 16 is a screen shot illustration of an exemplary user
interface showing the display of a dimension value response to a
change in number input into a form.
[0070] FIG. 17 is a screen shot illustration of an exemplary user
interface showing the image selection of a triangular arrangement
of tubes.
[0071] FIG. 18 is a screen shot illustration of an exemplary user
interface showing the image selection of a square arrangement of
tubes.
[0072] FIG. 19 is a screen shot illustration of a text
configuration file illustrating multi-language support for the text
string description for menu items displayed in the user
interface.
[0073] FIG. 20 is a screen shot showing the multi-language display
of menu items according to the configuration settings of FIG.
19.
[0074] FIG. 21 is a dialog box illustration of an expression editor
wherein the value of a first variable may be defined by the value
or values of one or more second variables.
[0075] FIG. 22 is a screen shot illustration of a web page
interface for remotely accessing a complex software
application.
[0076] FIG. 23 is a screen shot illustration of an activated menu
item providing selections for a grouping of simulation
applications.
[0077] FIG. 24 is a screen shot illustration of an available
simulation for which FIGS. 11-16 showed some of the variables
available for modification.
[0078] FIG. 25 is a screen shot illustration of saved, client side
configurations.
[0079] FIG. 26 is a screen shot illustration of a queue display
showing a number of completed executions and two pending
executions.
[0080] FIG. 27 is a screen shot illustration of the results as view
by the client interface.
[0081] FIG. 28 is a screen shot illustration of an individual
results graph.
[0082] FIG. 29 is the text of a configuration file which allows for
specification of multiple servers to allow for redundancy if a
server is down.
[0083] FIG. 30 is the text of a configuration file which indicate
the languages to be displayed to end users.
[0084] FIG. 31 is the text of a configuration file which defines
the application software available for use according to license
availability.
[0085] FIG. 32 is the text of a configuration file which specifies
on which computational servers the application software is run.
[0086] FIG. 33 is the text of a configuration file which allows an
administrator to customize the queuing on the computational
servers.
[0087] FIG. 34 is the text of a configuration file which specifies
a data entry box for display on the user interface.
[0088] FIG. 35 is the text of a configuration file which specifies
a data entry box with data checking for display on the user
interface.
[0089] FIG. 36 is the text of a configuration file which specifies
a data entry box with data checking relative to other data for
display on the user interface.
[0090] FIG. 37 is the text of a configuration file which provides
for accepting parameter ranges by adding a range method, the
resultant dialog box is shown in FIG. 10.
[0091] FIG. 38 is the text of a configuration file which provides
graphic representations responsive to data entered in the user
interface and illustrated in FIGS. 11-14.
[0092] FIG. 39 is the text of a configuration file which specifies
three software application that are run responsive to receipt of
data from the user interface.
[0093] FIG. 40 is the text of a configuration file which provides
mapping to individual variables in the template files.
[0094] FIG. 41 is an illustration of the replacement of the machine
readable identifier with an actual value retrieved from the client
interface.
[0095] FIG. 42 is the text of a configuration file of a template
header according to the invention.
[0096] FIG. 43 is the text of a configuration file of user
interface controls according to the invention.
[0097] FIG. 44 is the text of a configuration file of a template
toolbar button graphic and action.
[0098] FIG. 45 is the text of a configuration file of an array of
unit definitions.
[0099] FIG. 46 is the text of a configuration file of a tabbed pane
interface control.
[0100] FIG. 47 is the text of a configuration file of a sub-pane
interface control.
[0101] FIG. 48 is the text of a configuration file of an object for
inputting data.
[0102] FIG. 49 is the text of a configuration file for defining a
logical.
[0103] FIG. 50 is the text of a configuration file for a reference
procedure.
[0104] FIG. 51 is the text of a configuration file for a choice
list.
[0105] FIG. 52 is the text of a configuration file for a selector
object.
[0106] FIG. 53 is the text of a configuration file for a selector
default object.
[0107] FIG. 54 is the text of a configuration file for storing user
entered data.
[0108] FIG. 55 is the text of a configuration file for providing
dynamic graphic feedback.
[0109] FIG. 56 is the text of a configuration file for reusable
groups of diagrams.
[0110] FIG. 57 is the text of a configuration file for a template
specification.
[0111] FIG. 58 is the text of a configuration file wherein data set
by the user interface is associated with the template
specification.
[0112] FIG. 59 is the text of a configuration file wherein a linear
parametric range is allowed for an angle between pipes.
[0113] FIG. 60 is the text of a configuration file specifying the
layout information for displaying results.
[0114] FIG. 61 is the text of a configuration file for immediate
error checking.
[0115] FIG. 62 is the text of a configuration file for storing a
plurality of error messages.
[0116] FIG. 63 is the text of a configuration file for carrying out
errors checks prior to execution of the software application.
[0117] FIG. 64 is the text of a configuration file for carrying out
error checks on repeated data.
[0118] FIG. 65 is an illustration of a subject of a simulation
task.
[0119] FIG. 66 is the text of a configuration file for the
simulation task of FIG. 65 according to the invention.
[0120] FIG. 67 is the text of a configuration file for the
simulation task of FIG. 65 according to the invention.
[0121] FIG. 68 is the text of a configuration file for the
simulation task of FIG. 65 according to the invention.
[0122] FIG. 69 is the text of a configuration file for the
simulation task of FIG. 65 according to the invention.
[0123] FIG. 70 is the text of a configuration file for the
simulation task of FIG. 65 according to the invention.
[0124] FIG. 71 is the text of a configuration file for the
simulation task of FIG. 65 according to the invention.
[0125] FIG. 72 is the text of a configuration file for the
simulation task of FIG. 65 according to the invention.
[0126] FIG. 73 is the text of a configuration file for the
simulation task of FIG. 65 according to the invention.
[0127] FIG. 74 is a screen shot illustration of template file
authoring GUI according to the invention.
[0128] FIG. 75 is a screen shot illustration of a secure login
dialog box for accessing the template file.
[0129] FIG. 76 is a screen shot illustration of a geometry creation
process in a CFX.RTM. GUI.
[0130] FIG. 77 is a screen shot illustration of a boundary
condition definition process in a CFX.RTM. GUI.
[0131] FIG. 78 is a screen shot illustration of a discretization
process in a CFX.RTM. GUI.
[0132] FIG. 79 is a screen shot illustration of a solver parameter
definition process in a CFX.RTM. GUI.
[0133] FIG. 80 is a screen shot illustration of a convergence
monitoring process in a CFX.RTM. GUI.
[0134] FIG. 81 is a screen shot illustration of results
visualization as view via a CFX.RTM. GUI.
DETAILED DESCRIPTION
[0135] FIG. 1 shows the prior art denoted as a whole by the numeral
10. Many organizations utilize complex software applications for
engineering, financial, and database tasks. While a large number of
novice users 20 require the results produced by the software
applications, a bottleneck exists in the workflow as only a limited
number of expert users 30 have the training and experience
necessary to effectively configure and execute the complex
software. Typically, the novice users 20 must make a request to the
expert user 30 for a specific modification to the complex software.
The expert user 30 may already have a library of preconfigured
settings able to accommodate the request, but must manually adjust
those settings and send the job off to one or more computational
servers 40 for processing. When the results are available, the
expert must in turn transmit the results to the novice user 20. In
addition, because only limited number of expert users 30 are
available for sending jobs to the computational servers 40 the
servers may sit idle, thereby failing to utilize their potential of
working continuously. Yet another problem with the prior art is
that of accessibility. Many complex applications as well as legacy
systems are unavailable through a LAN or WAN. Furthermore, client
user legacy hardware and bandwidth limitation incurred by remote,
novice users 20 also restrict access to complex software
applications.
[0136] FIG. 2 illustrates a prior art solution to remote access. A
novice user 20 accesses a client computer 50. The keystroke,
pointing device, and other client-side input means are transmitted
70 to a terminal emulation application which in turn, sends a
bitmap emulation of the local terminal 60 back to the client
computer 50. Such terminal emulations are notoriously well-known in
the art and include commercial applications under the brand names
of CITRIX.RTM., PC ANYWHERE.RTM. and MICROSOFT TERMINAL
SERVICES.TM.. However, terminal emulations have several drawbacks.
They do not distill the complexities of the software application
for the remote, novice user 20, and they require bandwidth
sufficient to render bitmapped displays of the local terminal.
[0137] FIG. 3 illustrates the general concept of the instant
invention wherein an expert user 30 generates a template file 80
that specifies a pre-configured engineering simulation of two pipes
intersecting. The pipe diameters, angles and length may be adjusted
by the novice user 20 without directly modifying the master
configuration file of the pre-configured engineering simulation.
The template file 80 is rendered on the client computer 50 as a
graphic user interface. The novice user 20 may change the default
values displayed in the graphic user interface and then directly
transmit 90 the new values to the computational server 40. The
results are then accessed 100 by the client computer 50 without any
intervention by the expert user 30.
[0138] FIG. 4 shows how a plurality of client computers 50 may
transmit job requests by utilizing the template file 80 to the
computation server 40 and subsequently receive back results 100. In
order to effectively handle overlapping job requests, a queue 110
as shown in FIG. 5 may be established to hold job requests until
the computational server 40 is available to process them. The
computational server 40 may then send 100 the completed results to
a storage means for later retrieval by the client computers 50.
[0139] As shown in FIG. 6, the expert user 30 may anticipate the
various simulations or reports typically required on an ongoing
basis and provide a library of template files 80-82 to accommodate
client requests. FIG. 7 steps through the fundamental process of
the invention wherein a master configuration file is accessed 130,
the master configuration file having an array of configuration
variables. The array is most typically correlated to a batch file
in complex software applications. From the array of configuration
variables, a subset of configuration variables is established 140.
The subset is a parsed down set of configuration data subject to
anticipated modification by the novice user 20. For example, a
master configuration file might contain information on which
computational servers are available for processing, which languages
are available for display and the queuing information to determine
the relative priority of one job over another. None of this
information may be of interest or even understood by the novice
user. The novice user may simply only want a certain financial
report or a certain simulation run without regard to the low-level
configuration settings.
[0140] Accordingly a template file is written 150 which may contain
specifications for the available computational servers 151,
multi-language display data 152, licensing and node locking data
153, batch file queuing configuration 154, status report
configuration 155, interface form and appearance 156, default
values, measurement units and bounds checking configuration 157,
graphic rendering data 158 and variable text description strings
159. The template file also contains instruction for displaying the
simplified user interface on the client computer 50. Although any
number of user interface schemes may be adopted such as
Macromedia"s FLASH.RTM., standard HTML, or the like, it is
preferred that JAVA.RTM. applets be utilized as they provide a
platform independent, rich graphical interface.
[0141] The interface defined by the template is transmitted to the
client computer. Input comprising the subset of configuration
variables is received 170 by through the interface on the client
and then returned for processing. The subset of configuration
variables are applied 180 to the master configuration file and then
the software application is executed 190 in accordance with the
parameters of the master configuration file. The results are then
transmitted 200 to the client computer.
[0142] FIG. 8 shows an exemplary architecture of the process
including a client machine, application server and computational
server. A template store 210 provides a library of preconfigured
application available for modification and execution by the
computational server 40. The library may include engineering
simulations, financial reports or the like. The application server
in a preferred embodiment of the invention is a web server which
receives and transmits data according to the HTTP protocol.
Processing of data on the application server may be handled by the
common gateway interface standard, server-side scripts such as
Microsoft"s Active Server Page (ASP), Allaire's Cold Fusion Script,
or preferably, JAVA.RTM. _servlets which may be invoked as a thread
in a single daemon process. The client machine preferably utilizes
a web browser to render a JAVA-based user interface for modifying
the subset of configuration variables and provide dynamic graphic
feedback to the user. User input is then received 170 by the
application server and applied to the master configuration file by
parsing machine readable identifiers in the master configuration
file and replacing them with user-defined values. The newly
modified master configuration file is then transmitted 230 to the
computational server 40 which then executes the application and
returns 240 the results to a results store 220. The results store
220 may be an email server for immediate delivery of the results to
the end user or may simply be a file directory accessible by the
client computer via an FTP or HTTP request 200.
[0143] It should be noted that for the purposes of this disclosure,
a client-server arrangement is the anticipated system architecture.
However, it would be possible for the client to be a "dumb"terminal
running an emulation application of a web browser application
executed on a computer. Accordingly, the "dumb"terminal might be
better classified as a "client terminal"rather than a "client
computer"since the terminal is not "computing" anything.
Alternatively, the client computer may be the same as the
computational server wherein the end user might have both the
complex user interface available providing all the expert detail
available for the application, or the simplified user interface
which shields the end user of the complexities of configuring and
executing the software application. Indeed, even an expert user
might prefer the accessibility and reusability of the simplified
client interface for repetitive tasks and therefore might utilize
the simplified client interface on the same computer that authors
or executes the complex software application.
[0144] FIG. 9 is an illustration of an exemplary user interface
that would be viewed by the novice user on a client computer.
Graphic rendering data 158 is displayed on the left side of the
application window. It can be seen that the geometry of the
simulation consists of a main pipe diameter, a side pipe diameter,
an angle between the two pipes and the existing pipe length. As
specified in the template file, text description strings 159 are
display on the user interface and default values 157 are provided
in the form fields. It can also be seen that all length fields are
defaulted to a meter ("m") measure unit. However, the meter may be
changed to other units populated in the drop down combo box to the
right of each form field. The angle between the two pipes is
represented by degrees as denoted by the ".degree." symbol.
Responsive to clicking the double-arrows to the right of the first
three variables, the dialog box of FIG. 10 appears. In FIG. 10, a
parametric range for the angle between the two pipes may be
specified. In the example, the start value is 20 degrees with an
end value of 90 degrees with eight steps.
[0145] It can be seen in FIG. 11 that the graphic representation is
dynamically responsive to the modification of the variables in the
forms. For example, it can be clearly seen that the angle between
the two pipes in FIG. 9 and the angle in FIG. 11 are substantially
different solely based on the graphic representation. In FIG. 12,
the dimensions are brought back to the original values in FIG. 9.
In FIG. 13, the side pipe diameter is reduced. In FIG. 14, the side
pipe diameter is increased, the angle between the pipes is
increased and the exit pipe length is decreased.
[0146] It should be noted that graphic representations may take
several forms or alternatively be absent in some applications. The
type of the graphic representations may include 2D or 3D imaging,
processed on the client or server side.
[0147] FIG. 15 illustrates a feature of the invention wherein
responsive to mouse movement, keyboard entry or other preselected
event, the angle between the two pipes is displayed in visual
proximity to the appropriate graphic representation. In FIG. 16,
movement of the mouse cursor fires an event to make the previous
angle value invisible and display the existing pipe length on the
graphic representation. In alternative embodiments, all dimension
information may be displayed simultaneously or made invisible
collectively.
[0148] FIG. 17 illustrates the integration of selectable bitmap
images in the user interface wherein the value of a form field
variable is modified responsive to the selection of a corresponding
image. For example, the tube arrangement for the illustrative
simulation may be triangular, square or rotated square. Responsive
to the selection of the triangular image, the drop down combo box
on the right side of the user interface is updated to reflect the
triangular value. In FIG. 18, the selection of the square
arrangement image updates the drop down combo box to the square
value. In similar fashion, an image may be highlighted, inverted or
otherwise visually noted responsive to the direct selection of a
value within the drop down combo box.
[0149] FIG. 19 shows a graphic user interface configuration file
providing multi-language alternative text for menu items within the
user interface. FIG. 20 illustrates the resultant drop down menu as
viewed through the client interface. FIG. 21 shows an expression
editor dialog box which may be used to define the value of one
variable responsive to the modification of one or more other
variables. For example, the side pipe diameter could be set to half
the main pipe diameter by using the expression 0.5*D1.
[0150] FIG. 22 shows the user interface for selecting an
application made available through a set of web pages, either on an
intranet or internet site. In FIG. 23, a range of applications is
provided including pipework, aircraft and CPI equipment. In FIG.
24, a single application for a T-Junction simulation is provided
and is selectable responsive to a mouse click. The user interface
is then displayed in the client computer and the user enters the
data on each tabbed pane until he or she has set all the
configuration variables for the simulation of interest. At any
point he or she may save the work to disk or restart from a saved
file as shown in FIG. 25.
[0151] Submitted simulations listed in FIG. 26 may be viewed under
the results section of the web pages. In this example, results are
stored on the server so that the information can be easily shared
across a company intranet. However, results may also be
downloadable to the end user over either HTTP or FTP. As shown in
FIGS. 27 and 28, in addition to static images, VRML can also be
used to display 3D images.
[0152] The remaining FIGS. 29-64 and 66-73 represent an exemplary
script-based language for enabling the invention on virtually any
batch file-driven software application. It should be noted that the
invention might also be applied to software applications that are
not driven by batch files. This may be achieved by the use of
server software that emulate a specific screen configuration. The
emulation need only take place on the server, not the client,
thereby avoiding the drawbacks of bandwidth and user complexity. In
addition, software developers that produce applications that appear
strictly as a GUI to the end user may nonetheless link in code to
their GUI"s so that batch files can reference GUI objects by name
via a text file. This is a well-known process in which automated
GUI testing is achieved.
[0153] In the scripts that are associated with this discussion,
EASA.TM. references a brand name application from AEA that
incorporates the features of the present invention. EASAp.TM. is a
brand name designation for an individual template file compatible
with the EASA.TM. technology. CFX.RTM. is a registered trademark
for simulation software developed and distributed by AEA.
[0154] Administrative tasks for implementing an EASA.TM.
application start with the creation of several configuration files
which will typically be created during installation and are
unlikely to require frequent changes. The server configuration file
as shown in FIG. 29 allows for the specification of multiple
servers to allow for redundancy if a server is down. FIG. 30
illustrates a language configuration file to indicate the languages
to be display to the end user. It is preferred that the system
supports the full range of characters sets via UTF-16.
[0155] The software configuration file of FIG. 31 defines the
application software to be made available to the EASA.TM.
applications. This includes specifications of the licensing
requirements, scripts to monitoring run progress and scripts to
check for license availability. References to computational servers
can also be added to cope with node locked licensing.
[0156] The computational server configuration file of FIG. 32
allows an administrator to specify which machines to run EASA.TM.
simulations on. This file makes the EASA.TM. package easily
adaptable to a customer"s local computing environment. For example
job submission can be funneled through their own existing batch
submission software such as LSF and files can be transferred using
FTP, RCP or other known transfer methods. The queue configuration
file of FIG. 33 allows the administrator to customize the queuing
of EASA.TM. simulations onto computational servers.
[0157] The creation of an EASA.TM. user interface may be done by
creation of an ASCII GuiConfig file. The creation process may be
done through direct editing of the file. However, in a preferred
embodiment of the invention, a GUI tool is employed to enable
authors to create such files more rapidly. The tool has
similarities to a GUI web page generator such as Microsoft"s
FrontPage.RTM. or Macromedia"s DreamWeaver.RTM. products, though
the GUI it would create would be much richer as it is not
restricted to creating HTML. In a preferred embodiment of the
invention, the GuiConfig file is created in a secure binary format
which is unreadable by simple text editors.
[0158] To add a data entry box which allows the user to enter a
real number, the text of FIG. 34 is added to the GUI configuration
file. FIG. 35 employs data checking which can be added through
addition of a bounds line. Bounds checking can be made relative to
other data by using the name of the REALBOX. In the example of FIG.
36, the side pipe diameter cannot be made larger than the main pipe
diameter. Adding a Range Method as shown in FIG. 37 can set
parameter ranges.
[0159] Graphical feedback is important, as it helps users to see
that their input data is as intended. Diagrams can be added through
the data file, which automatically redraw following user input. The
illustrations of FIGS. 11-14 were drawn by the code as shown in
FIG. 38, where D1, D2, L and A are the names of the REALBOXES in
the datafile wherein the user sets the pipe diameters, exit lengths
and angle of intersection.
[0160] To make a new EASA.TM. available to end-users, the author
creates a new subdirectory under an EASA.TM. applications
directory, a GuiConfig.ccl and any template files are put in this
directory and then an update script is run. This regenerates all
the web pages so that the new application becomes available to
end-users. The GUI is associated with the underlying software
through the template section of the GuiConfig file. The code in
FIG. 39 indicates that three pieces of software are to be run in
succession when the user selects "Submit"in the application.
[0161] The mapping to individual variables in the template files is
done as shown in FIG. 40. First a symbol in the template file is
associated with information in the GUI via the "Replace"line. (The
"value"is the value set by the user in the GUI). FIG. 41 shows the
line of stress analysis input prior and subsequent to
modification.
[0162] Each EASA.TM. GUI is defined through a CCL file. The file is
used to automatically generate the EASA user interface and also
defines how the user data entered in the user interface is used to
modify template input files, which then feed into the underlying
software application, for example standard CFX.RTM. software. The
objective of the present invention is to be able to create, deploy
and maintain EASA.TM. applications at very low cost and without
EASA.TM. authors requiring programming expertise.
[0163] When creating a data driven user interface, there is trade
off between creating enough flexibility in the GUI design and cost
and complexity of implementation. A preferred embodiment of the
invention implements the following user interface features: (1)
data entry of reals/integers/strings/logicals; (2)
create/edit/delete functionality for named items which may contain
any other data entry controls, (ex: when adding one or more
impellers to a mixing tank); (3) choice lists; (4) conditional
display of data; and (5) grouping of user interface items and
association with a diagram or image.
[0164] EASA.TM. applications are intended to work with the
reliability of a spreadsheet. This means that comerror handling is
essential. Typical errors will involve relationships between data
entered by the user such as D1<0.5*D2.
[0165] The purpose of presenting graphic representations in the
user interface is to help users under the data they are setting. In
order to draw diagrams effectively it is necessary to incorporate
grouping of graphic primitives.
[0166] Turning now to FIG. 42, "Easa ID"is a unique global
identifier for a given EASA.TM. applications. The release number is
used to help support backward compatibility. Width and height
allows customization of window size for a target customer base.
"Look and Feel"can be used by a Java GUI engine to emulate a
variety of window manager styles. Two titles are stored; the short
title will appear in tables in web pages, with the long title as
the tool tip. Selection image is used in construction of the
application gallery web page. The menubar specification of FIG. 43
makes multi-language support easier. FIG. 44 provides for a toolbar
button for opening a new EASA.TM. application.
[0167] The main advantage of adding units to CCL as shown in FIG.
45 is that it allows the author to add custom units and also to
make the unit strings in the GUI language specific. The tabbed pane
list of FIG. 46 is a named object that contains a set of tabbed
panes. These panes may be shown one at a time with an image or
diagram being simultaneously displayed. The panes may be visited in
any order.
[0168] The sub pane object of FIG. 47 is used to group a set of
related data entry items within a tabbed pane. FIG. 48 provides a
READBOX object used for inputting string, real or integer data.
Clearly if the type is integer or string, the units parameter is
not needed and the default takes just a single string. FIG. 49
provides a named object used for defining a logical.
[0169] References provided by FIG. 50 are needed in the dynamic
diagramming and in the error checking in order to refer back to a
specified piece of data. Within the CCL file it is preferred to
define a reference to a value to be the name of the parent object.
One implication of this is that object names must be unique. The
choice list object of FIG. 51 may be part of a tabbed pane or sub
pane and allows select from a static list of choices. Other data
entry boxes can be displayed dependent on this choice via a
conditional display parameter. The selector object of FIG. 52 may
be part of a tabbed pane or sub pane and allows the creation,
modificaor deletion of named groups of data. An example of usage
would be in adding an arbitrary number of impellers within a mixing
vessel.
[0170] In order to set defaults when an EASA.TM. user creates a new
instance of a selector the selector default object of FIG. 53 is
employed. The CCL to store the users data is provided by FIG. 54
and set via the GUI.
[0171] Dynamic diagrams are 2D sketches of the geometry of
interest, which change shape as the user changes the input data in
the GUI. A diagram may be associated with one or more tabbed panes,
such that that diagram is shown while the user is entering data
into the pane. A diagram is constructed from one or more graphic
primitives that overlay each other in a specified order. Graphic
primitives may be placed in groups, which may then be copied and
moved within a view port. Each diagram is a child object of the
diagram list object and examples are provided in FIG. 55.
[0172] The purpose behind introducing groups, is to reduce the time
to create and debug complex diagrams. Groups enable geometry to be
re-used and to be transformed to the correct location within the
view port. An example is provided in FIG. 56.
[0173] Each EASA.TM. application is associated with one or more
templates. The data from the GUI is subseused by the server to
modify a copy of the template. Each template is associated with a
single batch process. The template also contains sub-objects which
control the clean up of files and the construcof the data to build
the web pages as provided in FIG. 57. The clean up occurs after the
template has been run. The delimiter character is by default %, but
can be changed on a per template basis if desired. The purpose of
specifying this character is to allow error checking on the
temfiles. It should also be noted in FIG. 57 that a plurality of
software application are executed in sequence. Alternatively, they
might be executed concurrently by either multitasking or
distributing the task to other CPUs. In FIG. 57, three executable
applications are run: (1) CFX5BUILD; (2) CFXSOLV and (3) CFXCUE.
The applications may be a heterogeneous mix related only to the end
objectives of the template author. For example, a template file
might draw on both engineering and financial applications to
provide both structural analysis and materials cost for an article
of manufacture. Returning to FIG. 31, it can be seen that the
single template file may also provide licensing information for a
plurality of software applications.
[0174] Data set by the GUI is associated with the template file as
provided by FIG. 58. The "Replace"parameter indicates the symbol in
the template that will be replaced by the GUI value. The target
parameter specifies the template in which the symbol is to be
replaced. If a parameter is allowed to take multiple values as
provided by the parametric study of FIG. 59, the range allowed
parameter is set to "True..infin.In order to provide flexibility,
the layout of information in the detailed results pages from an
EASA.TM. application is specified through the top level output
object as shown in FIG. 60. The HTML object allows raw HTML to be
added to the output. This may include sound files, applets etc. A
results table creates a two column table from a collection of other
child objects of output; the first containing titles and the second
containing compact results such as thumbimages or numbers. The
former is typically linked to expanded views of the results.
[0175] Upper and lower bounds may be specified as shown in FIG. 61
wherein pipe angles may not exceed 175 degrees nor be set below 15
degrees. Error messages associated with the immediate errors are
stored under an "error list object" as shown in FIG. 62. There may
be cases where it is desirable to carry out error checks prior to
job submission that are not simple bounds on a given REALBOX. These
are illustrated in FIG. 63. Error checking on repeated data arising
from use of selectors adds additional complexity. If a warning or
error check as described above refers to data repeated within a
selector, the error needs to cycle through all the instances of
that selector. (This requires either parsing of the expression to
determine the parent objects of a given condition variable, or an
additional parameter specifying the list of selectors associated
with the condition.) All warnings and error checks should be
repeated for each combination of parameters specas part of a
parametric study. A further class of error checks involves checking
data between different instances of a selector. For example, FIG.
64 provide sample code to ensure that two impellers do not overlap
the same region of space. If the user has created 3 impellers the
check is repeated 6 times, i.e for 1,2 1,3 2,3 2,1, 3,1 3,2. Note
that internally the GUI engine will need to pre-parse the condition
in order to convert it to valid expression syntax, i.e by removing
the A_, B_ prefix and adding a unique valid text prefix.
[0176] FIG. 65 illustrates the subject of an example CCL file that
follows in FIGS. 66 through 73. A T-Junction comprises a first pipe
of a first diameter D1 and a second intersecting pipe of a second
diameter D2. The first and second pipes intersecting at angle A and
extending length L post-intersection.
[0177] In FIG. 74, a GUI interface is provided for authoring
template files. It can be seen that a tree structure is provided to
establish a hierarchy of objects that may be added, arranged,
edited or deleted as needed. The construction of a template file
from this method has an important benefit wherein settings may be
stored as proprietary files, not readable by standard ASCII text
file viewers. This permits the author to maintain some control over
the technical and creative work invested into the template. The
secure authoring environment also permits libraries of templates to
be more easily distributed without fear of improper modification or
piracy. Another benefit of the GUI shown is that it is displayed in
an object metaphor wherein settings may be encapsulated and reused
as needed. For example, an object might be noted as a plane. All
planes generally have fuselage dimensions, tail dimensions and
wings. If another plane is needed for a template with the same
characteristics, it can simply be imported as an object. Even if
some settings need to be adjusted, such as the wings, the
modifications may be made without revising all parameters from the
ground up. In FIG. 75, it can be seen that a secure login is
required prior to utilizing or modifying the template file.
[0178] FIGS. 76-81 are provided to illustrate the complexity of
certain software application such as CFX.RTM. even thought they are
provided with GUIs. Accordingly, it should be understood that the
present invention provides a solution for complex software whether
they have a command line interface, GUI, or both.
[0179] It will be seen that the objects set forth above, and those
made apparent from the foregoing description, are efficiently
attained and since certain changes may be made in the above
construction without departing from the scope of the invention, it
is intended that all matters contained in the foregoing description
or shown in the accompanying drawings shall be interpreted as
illustrative and not in a limiting sense.
[0180] It is also to be understood that the following claims are
intended to cover all of the generic and specific features of the
invention herein described, and all statements of the scope of the
invention which, as a matter of language, might be said to fall
therebetween. Now that the invention has been described,
* * * * *