Child pages
  • CIShell Basics

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


Wiki Markup
CIShell is based on [OSGi|], which is a plugin and service based framework. Practically this means that OSGi functionality is divided into plugins or bundles (Java jar files with  some additional special files), each of which contains code to create  some number of services at runtime. These services are the main actors  in the OSGi environment. In CIShell almost all services are algorithms, which means they conform to a  certain interface, allowing algorithms to interoperate with the CIShell environment and each other in a well-defined way. Specifically, algorithms accept Data\[\], user-input parameters, and a CIShellContext. They output Data\[\]. !cishell_alg_smaller.png|border=1!

Image Added

CIShell provides an environment which makes it easy for users to interact with a set of algorithms in the form of an executable tool. This environment includes a Menu Manager which allows users to invoke algorithms, a Data Manager which serves as workspace to hold data while users run a series of algorithms on it, a scheduler which monitors algorithms as they run, a conversion service which converts data between various types so algorithms can operate on data in the format of their choice, and several other services. Since all of this is provided by default, developers can maintain focus on the algorithms they wish to implement without having to reinvent all the supporting infrastructure.