FAQ for Developers
Developer's FAQ
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.
General
What is the relationship between Kepler and Ptolemy?
Can I add code or libraries that are GPL licensed to the Kepler repository?
Setting up a Kepler Development Environment
How can I get Kepler for development purposes?
What do I need to install Kepler?
How do I get a SVN account to access Kepler’s source code and repositories?
How do I get the nightly builds?
Tutorials/Documentation
Where can I find a tutorial introducing key Kepler classes?
Is there any developer documentation for Kepler?
Are there any development standards for Kepler?
Other
Can I execute a Kepler workflow from a command line without a graphical display?
What is the Kepler repository?
What is the basic architecture and package distribution of Ptolemy II?
Resources
Are there any other Kepler FAQs?
General
What is Kepler?
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.
What is Ptolemy?
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.
What is the relationship between Kepler and Ptolemy?
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.
What is the Vergil GUI?
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.
How is Kepler licensed?
Can I add code or libraries that are GPL licensed to the Kepler repository?
Setting up a Kepler Development Environment
How can I get Kepler for development purposes?
To access and contribute to the Kepler project, please check out the Kepler source code from SVN. For detailed instructions for downloading, building, and installing Kepler source code, please see:
What do I need to build and install Kepler?
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.
How do I get an SVN account to access Kepler’s source code and repositories?
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.
How do I get the nightly builds?
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.
Tutorials/Documentation
Where can I find a tutorial introducing key Kepler classes?
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.
Is there any developer documentation for Kepler?
Much of the developer documentation can be accessed via:
- The Reference section.
- The Kepler Developer Manual.
- The Kepler User's Manual.
- The relevant Kepler Team areas.
Are there any development standards for Kepler?
For guidelines for Kepler code development and style, please see our Software Development Guidelines.
Other
How can I report bugs?
The Kepler project uses Redmine for reporting bugs as well as for sharing future development plans. To participate in future plans, bug reports and updates, please request an account.
Can I execute a Kepler workflow from a command line without a graphical display?
Yes. See Executing Kepler from the Command Line for more details.
What happens when Kepler starts up?
See What happens when Kepler starts up
What is the Kepler repository?
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.
What is the basic architecture and package distribution of Ptolemy II?
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.
Resources
Are there any mailing lists?
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.
Are there any other Kepler FAQs?
Yes. Please see the User FAQ, intended primarily for Kepler users.
Is there a Ptolemy FAQ?
Yes. You can find the Ptolemy FAQ at http://ptolemy.berkeley.edu/ptolemyII/ptIIfaq.htm.