Distributed Scientific Simulations using Java Technologies

MATHSC 983
Special Topics in Computational Math (3 hours)

       

Spring Semester, 2003
Instructor: Daniel D. Warner, 656-5244
Office: Martin Hall O-203
Hours: 14:30 - 15:30 MWF
Classroom: Martin Hall M-305
Class Times: 13:25 - 14:15 MWF

Last updated on January 10, 2003.


 

 

Because of its object orientation, its platform independence, and its tight specifications on arithmetic operations; Java is an appealing language for the development of Scientific Simulations. More importantly, Java has extensive support for distributed computing. It includes low level facilities, such as threads, sockets, and remote method invocation, as well as very advanced features such as JINI and JavaSpaces.

This course will focus on the development of one or more distributed simulations which will support the following features. On the client side, the services will support multiple clients simultaneously viewing the same simulation, and the clients will also have the support of an active chat server. On the server side, the simulations will be run in parallel using coarse grained parallelism through JavaSpaces.

The only prerequisite is permission of the instructor. Permission will be based on a demonstration of maturity in computational mathematics at the upper division level. This would include at least two semesters of programming and at least one course in applied mathematics beyond differential equations.

Each student will be given an account on the Arabica cluster in the Department of Mathematical Sciences.

Topics:

Textbooks:

JavaSpaces™ Principles, Patterns, and Practice
by Eric Freeman, Susanne Hupfer, and Ken Arnold
Addison-Wesley Longman, 1999, ISBN: 0201309556

This text is required for the course. Some students may also want a good introductory or intermediate level text on programming with Java. There are a great many Java books on the market, but their value depends a lot on what you already know. O'Reilly & Associates has a long list of books addressing almost every topic where Java is being heavily used.

For an introductory text, you may find one of the following three books particularly useful.

  1. Thinking in Java
    by Bruce Eckel
    Prentice Hall, 3nd Edition, 2002
    1136 pages Paper Bound w/CD-ROM, $49.99, ISBN: 0-13-027363-5
    Bruce Eckel's book is a very popular introductory book for learning Java. It's available online from his web site, and is mirrored here for the duration of this course. It is also available in printed form from the CU Bookstore as well as online bookstores. If you feel that you need more basic information on Java, check out the link above.
  2. Java for Engineers and Scientists
    by Stephen J. Chapman
    Prentice Hall, 2000
    571 pages, $75.00, ISBN: 0-13-919523-8
    From the very beginning, this concise introduction to Java develops and executes practical examples useful for solving problems in an engineering environment. Focused on the proper way to write reliable Java programs, it outlines excellent software development practices; uses a top-down design technique to break the program up into logical portions; and demonstrates object re-usability by building later examples on the classes and methods created in earlier examples. The text makes learning an interactive experience by providing all sources for all examples through a Website.
  3. Learning Java, 2nd Edition
    by Patrick Niemeyer and Jonathan Knudsen
    O'Reilly & Associates, July 2002
    700 pages, $44.95 , Includes CD-ROM, ISBN: 1-56592-718-4
    This new edition of Learning Java has been expanded and updated for Java 2 Standard Edition SDK 1.4. It comprehensively addresses important topics such as web applications, servlets, and XML that are increasingly driving enterprise applications. This edition provides full coverage of all Java 1.4 language features including assertions and exception chaining as well as new APIs such as regular expressions and NIO, the new I/O package. New Swing features and components are described along with updated coverage of the JavaBeans component architecture using the open source NetBeans IDE the latest information about Applets and the Java Plug-in for all major web browsers.

The syntax of the Java language is quite simple. However, the libraries included with the Java runtime are very extensive, and a reference book of some sort is absolutely essential. I would are highly recommend any of the following books.

  1. Java in a Nutshell, 4th Edition
    by Dennis Flanagan.
    O'Reilly & Associates, Fourth Edition March 2002
    992 pages, $39.95, ISBN: 0-596-00283-1
    Java just keeps growing, adding features, functionality, complexity, and tempting developers to growl with frustration. The new 1.4 release of Java 2 Standard edition increases the size of the platform by 50%, to 2757 classes in 135 packages. How are you going to figure out what this means for your applications? As always, Java in a Nutshell has the answers. The new 4th edition still contains an accelerated introduction to the Java programming language and its key APIs so you can start writing code right away. And with more than 250 new pages, author David Flanagan quickly brings you up to speed on new features that come with version 1.4:
  2. Java Foundation Classes in a Nutshell, A Desktop Quick Reference
    by David Flanagan
    1st Edition September 1999
    748 pages, $29.95, 1-56592-488-6
    Java Foundation Classes in a Nutshell provides an in-depth overview of the important pieces of the (JFC), such as the Swing components and Java 2D. It also includes compact reference material on all the GUI- and graphics-related classes in the numerous javax.swing and java.awt packages. Covers Java 1.2.
  3. Java Enterprise in a Nutshell, 2nd Edition
    by William Crawford, Jim Farley, & David Flanagan
    2nd Edition April 2002
    992 pages, $39.95, 0-596-00152-5
    Completely revised and updated for the new 2.0 version of Sun Microsystems Java Enterprise Edition software, Java Enterprise in a Nutshell covers all of the J2EE APIs, including RMI, Java IDL, JDBC, JNDI, Java Servlet, and Enterprise JavaBeans, with a fast-paced tutorial and compact reference on each technology.
  4. Java Examples in a Nutshell, 2nd Edition
    by David Flanagan
    2nd Edition October 2000
    582 pages, $29.95, 0-596-00039-1
    Java Examples in a Nutshell is full of real-world example programs that not only serve as great learning tools, but can also be modified for individual use. The second edition covers Java 1.3, and contains 164 complete, practical programs: over 17,900 lines of densely commented, professionally written Java code covering 20 distinct Java API's, including Servlets, JavaServer Pages, XML, Swing, and Java 2D.
** Virtually all Java books, including the books listed above, can be purchased online thru Amazon.com, Barnes & Nobel, or Powell's Books.
If you have any questions, contact warner@clemson.edu.