FAQ for Developers
This page has been designed to answer questions about Kepler most often asked by developers. If you have additional questions that aren't answered here, please post them to the kepler-dev mailing list with as much detail as possible.
Setting up a Kepler Development Environment
Kepler is a software application for analyzing and modeling scientific data. Using Kepler's graphical interface and components, scientists with little background in computer science can create executable models, called "scientific workflows," for flexibly accessing scientific data (streaming sensor data, medical and satellite images, simulation output, observational data, etc.) and executing complex analysis on this data.
Kepler is developed by a cross-project collaboration led by the Kepler/CORE team. The software builds upon the mature Ptolemy II framework, developed at the University of California, Berkeley. Ptolemy II is a software framework designed for modeling, design, and simulation of concurrent, real-time, embedded systems.
Kepler builds upon the mature Ptolemy II framework, developed at the University of California, Berkeley. Ptolemy II is a Java-based component assembly framework with a graphical user interface called Vergil. The Ptolemy project focuses on modeling, designing, and simulating concurrent, real-time, embedded systems. For more information about Ptolemy, please see http://ptolemy.eecs.berkeley.edu/ptolemyII/ptIIfaq.htm.
Kepler inherits modeling and design capabilities from Ptolemy, including the Vergil GUI and workflow scheduling and execution capabilities. Kepler also inherits from Ptolemy the actor-oriented modeling paradigm that separates workflow components ("actors") from the overall workflow orchestration (conducted by "directors"), making components more easily reusable. Through the actor-oriented and hierarchical modeling features built into Ptolemy, Kepler scientific workflows can operate at very different levels of granularity, from low-level "plumbing workflows" (that explicitly move data around, start and monitor remote jobs, for example) to high-level "conceptual workflows" that interlink complex, domain-specific data analysis steps.
Kepler extensions to Ptolemy include an ever increasing number of components aimed particularly at scientific applications, e.g., for remote data and metadata access, data transformations, data analysis, interfacing with legacy applications, Web service invocation and deployment, provenance tracking, etc. Target application areas include bioinformatics, cheminformatics, ecoinformatics, and geoinformatics workflows, among others.
The Vergil GUI is a visual workflow editor implemented in Java. Using Vergil, users can graphically construct and run scientific workflows. For more information about Vergil, see the Ptolemy documentation.
Setting up a Kepler Development Environment
To install and run Kepler, you must have Ptolemy II and a Java environment (JDK 1.5 or greater). To build Kepler under Microsoft Windows, you must also have Cygwin and a command line version of Subversion, TortoiseSVN will not work, To build Kepler, Ant 1.8.2 or later is required.
The SVN code and repositories can be accessed with either an anonymous or named account. For more information about how to request an SVN account with write access, please see Get Involved, which includes instructions for anonymous access and for requesting an account.
The nightly build is automatically built each night and is available as a zipped file. You can also receive emails about the status of the nightly build via email. The nightly build has all the latest features and bug fixes, but is also essentially unchecked and may have assorted new problems. We recommend that you check the status of the nightly build before downloading and running it.
Note: The nightly Kepler build comes as a large zip file (~100MB). Microsoft's built-in zip extractor has trouble extracting large archives--the process takes a very long time, if it works at all. If you are using a Window's platform, try using WinZip or another archive application to extract the files.
A basic tutorial showing how to build an actor is available in the Hello World Tutorial. For an introduction to the basic workings of key classes such as actors, ports, entities, and managers, please look at section 10 of the Kepler User's Manual (Appendix: Creating New Actors). The tutorial also provides an introduction to Vergil, as well as to building actors, and inserting applications into Kepler.
For guidelines for Kepler code development and style, please see our Software Development Guidelines.
Yes. See Executing Kepler from the Command Line for more details.
The Kepler Repository allows users to upload and download workflow components to and from a centralized server so that they can be searched and re-used. Once the repository is fully implemented, users will be able to search for components from a Web interface as well as from within Kepler itself.
Ptolemy II is modular, with a careful package structure that supports a layered approach to software development. The core packages support the data model, or abstract syntax, of Ptolemy II designs. They also provide the abstract semantics that allow domains to interoperate with maximum information hiding. The UI packages provide support for our XML file format, called MoML, and a visual interface for constructing models graphically. The library packages provide actor libraries that are domain polymorphic, meaning that they can operate in a variety of domains. And finally, the domain packages provide domains, each of which implements a model of computation, and some of which provide their own, domain-specific actor libraries. For details, see Ptolemy Package Dependencies.
Yes. Kepler has several mailing lists, including one intended for Kepler developers. For more information about how to subscribe to a mailing list, or to read mailing list archives, please see Contact Us.
Yes. Please see the User FAQ, intended primarily for Kepler users.
Yes. You can find the Ptolemy FAQ at http://ptolemy.berkeley.edu/ptolemyII/ptIIfaq.htm.