.. _application_types: Application Types ================= Stand-alone Processing Applications +++++++++++++++++++++++++++++++++++ A Stand-alone Processing Application is a type of application suited for the User who wants to develop an application that retrieves one or more inputs, typically EO (or EO-based) products, apply an algorithm, and produce one or more outputs, that in turn can be later discovered and retrieved. This type of applications is particularly useful for on-demand processing scenarios. Trigger Applications +++++++++++++++++++++ Trigger Applications are a type of applications to control Stand-alone Processing Applications. They are divided in: - Queue Application type - Pipe Application type A Queue Application is a type of application used to discover and select processing inputs, typically EO (or EO-based) products, based on configurable and flexible selection criteria, in order to be submitted as inputs for a Stand-alone Processing Applications, in an automated fashion. The Queue Application also defines processing parameters for the referenced Stand-alone Processing application. A Pipe Application is a type of application used to start the execution of a Stand-alone Processing Application, using the inputs and parameters prepared by a Queue Application. .. tip:: Pipe Applications are provided as a service by the platform and do not need to be developed by the Users. This type of applications is particularly useful for systematic processing scenarios. Relationship between Stand-alone Processing and Trigger Applications +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ The different types of application types share the same structure and can be developed in any of the languages supported by the platform. Nevertheless, it is common to develop Trigger Applications using Python, using Jupyter Notebook files. The functional relationship between Stand-alone Processing and Trigger Applications is the following: - A **Queue Application** prepares input and parameters for a Stand-alone Processing Application and stores them in a **Processing Queue**, implemented as a Catalog's index (:ref:`da-catalog`). The objects embedding the information stored in the Processing Queue are called **Data Items** - A **Pipe Application** retrieves Data Items from the Processing Queue, and submits and monitors the execution of a **Stand-alone Processing Application**