Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Developing Applications using Mathematica

6 views
Skip to first unread message

Coleman, Mark

unread,
Jun 2, 2007, 4:19:33 AM6/2/07
to

Greetings,

I'm curious about the feasibility of using Mathematica as part of large-scale
business application within my company. I know there are various ways
one can make use of Mathematica kernel functionality using non-Mathematica user
interface elements, e.g., via MathLink or WebMathematica. I was wondering if
anyone could share experiences they have in building applications --
particularly in a business rather than an academic environment -- using
Mathematica. For my project, we need to distribute an application to over 1000
users across the U.S. If I could use Mathematica as the calculation engine, the
development process would be orders of magnitude simpler. I know that in
theory this sort of this is possible, but I'm very curious as to the how
it might be effectively done.

And a follow-up question. Given the interesting new dynamic interface
features in Mathematica v6, could one build the entire application in
Mathematica, user interface and all, and then deploy it on a large scale
to non-Mathematica users?

Thanks,

-Mark

David Reiss

unread,
Jun 4, 2007, 3:59:59 AM6/4/07
to
Hi Mark,

Since no one else has chimed in on this perhaps I will take a crack at
it. I think though that some of what I will say involves a bit of
conjecture and also is tingled by what I have been doing lately
(http://scientificarts.com/worklife). However perhaps it can lead to
an interesting discussion, and also perhaps attract some additional
comments by the good folks at WRI.

Your questions are particularly pertinent now that Mathematica 6 is
out. The lines that were somewhat blurred previously are now blurred
fully, and the expectation is that deployed applications with
Mathematica will become quite commonplace as time moves on from the
May 1st release of M 6.

Of course I am particularly interested in this from both a personal
and business perspective because of http://scientificarts.com/worklife
which I intend to continue to develop--it's the main tool that I use
to interact with Mathematica, and it's also the main tool I use to
stay within Mathematica as much as is possible so that I can do my
work the most efficiently (and also, I have to say, the most
enjoyably).

As for the question in your second paragraph--taking that first--I
suspect that the long term plan for Mathematica Player is exactly what
you are asking about. In the past WRI made use of a technology for
creating Custom Mathematicas, and this was what they used for creating
Calculation Center, NKS Explorer, Mathematica Teacher's Edition, and
so on. I suspect that the plans for Mathematica Player--making use of
the interface elements of Mathematica 6 (and in particular functions
such as Deploy that allow one to **distribute** interfaces in a way
that they cannot be modified other than the specified interface
elements such as buttons, check boxes & c) --are to allow for the
creation and deployment Mathematica applications that do not require
the purchase of a full-blown Mathematica. Of course the initial
examples of some of this that simply make use of Manipulate are the
1300 plus small applications that are on the Demonstrations site.

So, in a word, I think that the answer to your second paragraph's
question is "yes." After this, there are additional words and
questions that have to do with when WRI will have the infrastructure
(including legal License specifications) in place to anoint
applications intended to be run under Mathematica Player for various
potential types of distribution. Getting Mathematica 6 out was
quite a feat, so I expect that having the full infrastructure for
deployed applications based on Mathematica 6 and mathematica Player in
place is one of the things that is intended for sometime in the
(hopefully near) future.

There are two questions, I think, in your first paragraph. One has to
do with building applications in Mathematica directly and the other
has to do with building applications that rely on Mathematica for
their internal computations. Also perhaps a third is the use of
Mathematica to prototype an application.

One of the most obvious ways to use Mathematica is through
webMathematica. I have created several such "enterprise" applications
in the past for customers or employers. Usually these are to some
fairly definite specification rather than as a general-use "tool
box." Of course behind the scenes is a Mathematica package that
provides the functionality, and in that sense it is a toolbox that can
be expanded arbitrarily with a webMathematica deployment making use of
it if an HTML rendition of a user interface can be created that suits
its needs.

webMathematica is quite powerful, and if the interface that you need
for a deployable application is not too sophisticated and only needs
the elemental HTML form entities, then quite powerful applications can
be created and deployed--and they can quite easily be linked to a back-
end database using Database Link if need be (which is what I did in
one of the webMathematica apps that I created for a client).

Another way, of course, is to create an application that requires a
Mathematica Kernel and FrontEnd to run. All traditional add-ons are
like this, and though I don't know WRI's pricing for network or site
licenses, the cost per CPU process will certainly not be anything like
the price of a single license for a individual Mathematica. And, if it
is unlikely that more than some small fraction of the 1000 users will
be using the application at any one time, then a network license with
the number of processes optimized to the expected traffic would
possibly make sense.

Another possibility comes to mind (and again is one which I have used
in the past). This is that Mathematica is an ideal environment in
which to prototype the functionality of an application (as my daughter
might say "well, duh!"). And, again, with the interface elements of
Mathematica 6, this extends well beyond the internal algorithmics to a
very arbitrary space of possible user interfaces. And I suspect that
there will be considerable exploration of the space of possible user
interfaces that will be catalyzed by Mathematica 6. (And this may
well blossom as a field in itself.) This is both because the creation
of user interfaces is **very** easy in Mathematica 6, and also because
how one might think of user interfaces is greatly expanded from what
one has been able to do in the past.

After all, in Mathematica, user interfaces are expressions, as is
everything else. And this is the most powerful, and new, aspect of it
all. Exploring user interfaces--the space of user interfaces is
indeed very NKS-like, which is certainly not surprising.

To be fair, in Mathematica 5.x (and earlier) there were user interface
elements that were quite powerful because of the fact that they are
(and they are still there--Notebooks and buttons) themselves
expressions. And in http://scientificarts.com/worklife I took these
tools about as far as I could to expand the reach of Mathematica into
areas that are helpful to folks. But the new elements in Mathematica
6 will allow me to take this **much** further.

So this also gives a sense of my experience with creating "non-
academic" applications. It is very doable, and the scale can be quite
broad ((http://scientificarts.com/worklife has about 50,000 lines of
Mathematica code).

And I think that the option of deploying applications intended for
broad deployment would be best done using Mathematica 6 and
Mathematica Player. This would also --given the speed with which one
can create applications in mathematica--make the turn-around time for
modifications and enhancements very much quicker than with any other
technology that I know of.

It would be nice to hear from the gentle (and incredibly hard working)
folks at WRI what the possible time line is for this approach.

I am sure that discussions with the WRI partnerships group could make
the possibilities for this clear enough so that you to make a
decision on whether and how to bring this idea to your organization .

Of course I'd be happy to help with this if you wish. (Consultants
always have to say that...)


...hmmm, I seem to have gone on here a bit in a very bloggish way. I
think that I will also place this note on http://scientificarts.com/worklife/wlfwblog/
.


I hope that this helps,

David


****************************************

On Jun 2, 4:19=86am, "Coleman, Mark" <Mark.Cole...@LibertyMutual.com>
wrote:

** This email composed from within Mathematica using
** A WorkLife FrameWork for Mathematica by Scientific Arts
** http://www.scientificarts.com/worklife/

212536852413829694472920688475183195322EFS297257748892586079684913948814435886918


Richard Palmer

unread,
Jun 4, 2007, 4:01:00 AM6/4/07
to
Good questions!

I think Mathematica can do the job. The question is whether it can do it cost
effectively. That revolves around the costs to deploy it. It would
be interesting to hear some person from Wolfram talk about costs
around various deployment schemes.

Regards

On 6/2/07, Coleman, Mark <Mark.C...@libertymutual.com> wrote:
>
> Greetings,
>
> I'm curious about the feasibility of using Mathematica as part of large-scale
> business application within my company. I know there are various ways
> one can make use of Mathematica kernel functionality using non-Mathematica user
> interface elements, e.g., via MathLink or WebMathematica. I was wondering if
> anyone could share experiences they have in building applications --
> particularly in a business rather than an academic environment -- using
> Mathematica. For my project, we need to distribute an application to over 1000
> users across the U.S. If I could use Mathematica as the calculation engine, the
> development process would be orders of magnitude simpler. I know that in
> theory this sort of this is possible, but I'm very curious as to the how
> it might be effectively done.
>
> And a follow-up question. Given the interesting new dynamic interface
> features in Mathematica v6, could one build the entire application in
> Mathematica, user interface and all, and then deploy it on a large scale
> to non-Mathematica users?
>
> Thanks,
>
> -Mark
>
>


--
Richard Palmer
Cell 508 982-7266

Guillermo Sanchez

unread,
Jun 5, 2007, 6:56:50 AM6/5/07
to
I think the best way to develop Mathematica applications for non
Mathematica users is webMathematica.
Look at http://www3.enusa.es/webMathematica/Public/biokmod.html

Guillermo
On Jun 2, 10:19 am, "Coleman, Mark" <Mark.Cole...@LibertyMutual.com>
wrote:

Steve Luttrell

unread,
Jun 7, 2007, 4:20:19 AM6/7/07
to
This question of deploying applications has bothered me ever since I first
used Mathematica back at version 1. I gradually came to accept that I would
use Mathematica to prototype applications, but that deployment was forever
beyond my reach because it involved extra cost. This limitation was
certainly the case for privately-written "amateur" software that I would
normally give away for free, but it turned out to also be the case for
work-related "professional" software because my employer prefers software to
be developed within a royalty-free framework.

Then along comes Mathematica 6 with all of its potential for deploying
applications. Mathematica Player and the Wolfram Demonstrations are very
nice, but this approach is limited for now to software whose source code you
are happy for other people to see. I don't think my employer would be too
happy if I submitted any of my work-related code to the Demonstrations
website. So it comes down to a wait-and-see how Mathematica Player is
extended to a "professional" version.

I have a worry though. Software can be written that has a lot more
functionality than I see on the Demonstrations website, but which is
typically shared for free (or for a small "donation"). Where will this type
of software fit in Wolfram's plans? It would be a shame if non-trivial
software deployment costs still effectively prevented us from deploying such
software. Pleeease get it right, Wolfram.

I am less worried about the cost of deploying fully professional software,
because I presume that the cost of each instance of such software is much
greater than the cost of the (forthcoming, we are told) professional version
of Mathematica Player. But I know that the people who really matter (i.e.
financial managers, of course!) will hate the idea of charging their
customers a fixed royalty per instance of their deployed software, rather
than paying a one-off cost for a special "compiler" that generates a
deployed version of the software, and then charging the customer extra
anyway to recoup the cost of the "compiler" many times over!!

Steve Luttrell
West Malvern, UK

"Coleman, Mark" <Mark.C...@LibertyMutual.com> wrote in message
news:f3r96l$t5f$1...@smc.vnet.net...

atul

unread,
Jun 8, 2007, 5:28:39 AM6/8/07
to
Mark: There is another option that I'm surprised hasn't been mentioned.
Although I can't claim to have applied it in a large scale setting, I have
had occasion to develop a GUI front-end for colleagues who are not seasoned
Mathematica users (nursing and technical staff in a children's hospital
dialysis unit). This application uses Mathematica to perform the background
calculations for modeling of hemodialysis quality control,
what-if-scenarios, and individualized prescription development. Details of
our model, if relevant to the scale of your project, may be found in our
published references, which I would be glad to send you. They include
Pediatr Nephrol (2001) 16:383-390 (a review of urea kinetic modeling in
dialysis) and Kidney International, Vol. 58 (2000), pp. 2138-2146 (our
specific physiologic model):

Since familiarity with Excel is widespread (it is the hospital standard for
ordering, inventory, and routine data management and reporting), using
Mathematica Link for Excel makes for a very familiar interface, and allows
the results from Mathematica to be extracted and manipulated by users who
might otherwise balk at working directly with Mathematica output (eg
administrative staff making year-end reports).

On another occasion, I had to develop a pre-test evaluation for a novel test
of kidney function that we perform in our Clinical Investigation Unit
(again, model details - if required - may be found in our published
description). Our CIU nurses were required to input baseline data to
estimate pharmacokinetic profiles needed to perform the test, with modeling
done behind the scenes and output in the form of loading doses and infusion
rates for the individual studies. In this case, broad familiarity with Excel
again made it a logical choice for interface/ data reporting. However,
because the CIU represented a different cost-center and our university does
not have a site license with WRI, I was obliged to adopt a 'rival CAS' with
an existing site license and - as it turns out - built-in Excel
connectivity. Although I grumbled about it at the time, from the
perspective of the end-users, the underlying calculation engine was
obviously of no great concern, and in both cases, my work was immensely
simpler because I had access to the built-in instruction sets.

Atul
--------------------------------
Atul Sharma MD,
Pediatric Nephrologist,
Montreal Children's Hospital/McGill University

"Coleman, Mark" <Mark.C...@LibertyMutual.com> wrote in message
news:f3r96l$t5f$1...@smc.vnet.net...
>

0 new messages