Wiki

Clone wiki

javarosa / Glossary

Glossary

TracNav(JavaRosaTOC) This page is a collection of terms that are commonly used in !JavaRosa's architecture, discussion, and documentation.

!JavaRosa

!JavaRosa is a platform for developing j2me applications with common functionality. There are two essential components of !JavaRosa, which can be used independently, but are still both considered core to the platform. The first is the workflow management component, comprised largely of Shells and Activities, that gives applications a powerful framework for isolating the workflow of their application in a central location. The second component is comprised of Service Providers that provide !JavaRosa powered applications to access data from both a variety of different locations (Phone Memory, GPRS, etc), and a variety of different formats (Properties, RMSUtility, etc).

!JavaRosa can also refer to the full set of both these core elements and the !JavaRosa component libraries, which provide layers of functionality on top of the core elements.

Activity

An activity is a component that is able to capture and release control of the execution of a !JavaRosa application. This generally consists of a small number of related screens that don't have any branching logic. Activities know how to complete themselves and release control back to a shell, and also know how to halt and resume their executing state.

Generally, the word "Activity" might be used to refer to a class which implements the IActivity interface, but also might be used to refer to all of the components that a particular IActivity implementing class comprises of. An example of an activity is a patient select activity, which is contained in a single Java Project, and contains a !PatientSelectActivity class, along with two different screens, a controller, and a property rules class.

Shell

A shell is the centerpiece of !JavaRosa's flow control framework. Shells are responsible for launching Activities, and for determining what activity should be launched next when one returns. At the core level, a Shell ties together a set of other !JavaRosa components, and implements as little new functionality as possible. In an ideal !JavaRosa application, the shell is the majority of application specific code.

Module

A Module is loosely defined as a single Java Project which contains a single Activity, or a set of Activities, along with various related code, such as utilities, views, controllers, or data objects. Modules are not semantically defined in the code, but are a convenient way to express a number of different elements which work together for a common goal. For instance, the 'Followup Reminders' module contains a couple of activities, a question pre/postloader, some data object definitions, and a background service which all work together to provide an interface for creating Reminders for the user.

Service

A Service is something which provides data from some mechanism outside of the Platform. Some of the sources include the phone's file system, and hardware devices like a phone camera or an RFID reader. A service is not an activity, but a way to provide an abstraction between the JavaRosa Platform, and physical data sources which may require different access means on different devices.

Service Provider

A Service Provider is an object which can be used to access specific services.

JavaRosa Service Provider

The !JavaRosa platform provides a uniform way to interact with data outside of the application through the use of the JavaRosa Service Provider. It maintains a registry of JavaRosa's services so that they can be accessed through a single source.

Updated