AMICO currently includes following modules:
To understand how these modules work together, look at some of our sample scenarios.
You always have to run AMICO communicator. Other modules are loaded as necessary. For example, if you want to control VLC Player through OSC messages sent from you applications, that you need to run the communicator, the OSC interface (to receive messages from your application), and HTTP/URL interface (to call VLC player functions through its HTTP server). You can use AMICO process runner to run all these processes at once.
|
|
Core module | How to run | Description |
Communicator (Details) | java -jar %AMICO_HOME%/bin/amico.jar [<conf-url>] | The basic module. It implements basic AMICO TCP and UDP interfaces, and provides variable exchange, derivation, and maintenance services. It includes built-in variable derivation XSLT processor. |
XML-RPC Interface (Details) | java -jar %AMICO_HOME%/bin/amico-xml-rpc.jar [<conf-url>] | An XML-RPC interface to AMICO. It runs and XML-RPC server, enabling other modules to update and read variables, and in also enables definition of XML-RPC adapters, that map variables from the communicator to method calls on other XML-RPC servers. Implementation based on the Apache XML-RPC library. |
OSC Interface (Details) | java -jar %AMICO_HOME%/bin/amico-opensound.jar [<conf-url>] | An OpenSound Control (OSC) interface to AMICO. It runs and OSC server, enabling other modules to update and delete variables, and in also enables definition of OSC adapters, that map variables from the communicator to messages sent to other OSC servers. Implementation based on the NetUtil library library. |
HTTP Interface (Details) | java -jar %AMICO_HOME%/bin/amico-url.jar [<conf-url>] | A Unified Resource Locator (URL) interface to AMICO. It runs a Web server, enabling other modules to used AMICO commands using HTTP GET request, and in also enables definition of URL adapters, that map variables from the communicator to URLs that are then opened, returned content can optionally be placed in a variable. |
SQL Interface (Details) | java -jar %AMICO_HOME%/bin/amico-sql.jar [<conf-url>] | A SQL database interface to AMICO. Enables usage of any JDBC or ODBC compliant database (such as MySQL, MonetDB, Oracle, SQL Server, MS Access...). Provides mapping of AMICO variables to any SQL query (INSERT, SELECT, CREATE, DROP...), and update of AMICO variables with the results of these queries. |
XML Processor (Details) | java -jar %AMICO_HOME%/bin/amico-xml-processor.jar [<xml-variable>] [<xml-variable-type>] [<status-variable>] [<xml-adapter-url>] [<comm-host>] [<comm-port>] | Some of the variables in communicator can contain XML or HTML encoded text, or links to such documents. XML Processor derives new variables from such variables using XPath expressions or XSL transformations. |
SOAP Interface (Details) | java -jar %AMICO_HOME%/bin/amico-soap.jar [<config-url>] | An SOAP interface to AMICO. In enables definition of SOAP adapters, that map variables from the communicator to invocation of SOAP services. Implementation based on Apache Axis2. |
REST Interface | Available soon... | An REST interface to AMICO. More details available soon... |
CORBA Interface | Available soon... | An CORBA interface to AMICO. More details available soon... |
Dynamics module | How to run | Description |
AMICO Event Handler (Details) | java -jar %AMICO_HOME%/bin/amico-event-handler.jar [<config-url>] | Simple response to changes of AMICO variables. |
AMICO State Machine (Details) | java -jar %AMICO_HOME%/bin/amico-state-machine.jar [<config-url>] | Implementation of a finite state machine (FSM) or finite state automaton, a model of behavior composed of states, transitions and actions. A state, represented by AMICO variables, stores information about the past, i.e. it reflects the input changes from the system start to the present moment. A transition indicates a state change and is described by a condition that would need to be fulfilled to enable the transition. An action is a description of an activity that is to be performed at a given moment. |
Time Processor | Available Soon... | Provides derivation of new variables based on time setting. Include functions such as timers, delay, frequency filters, and window based averaging. |
Dynamics module | How to run | Description |
AMICO Zeroconf | Available Soon... | AMICO zeroconf interface. Enable update of AMICO variables base on data discovered with zeroconf, and broadcast of AMICO variables as zeroconf data to other services. Implementation based on the JmDNS library. |
AMICO UDDI | Available Soon... | AMICO UDDI nterface. Implementation based on the UDDI4J library. |
Auxiliary module | How to run | Description |
Process Runner (Details) | java -jar %AMICO_HOME%/bin/amico-process-runner.jar [<conf-url>] | Runs a group of program. As many of AMICO modules are implemented as standalone (Java) applications, it is convenient to have a program that can run at once all the modules that are necessary for some scenario. |
Simulator (Details) | java -jar %AMICO_HOME%/bin/amico-simulator.jar [<conf-url>] | Enable execution of configurable simulations. Supports single commands, as well as simple command loops. |
Validator (Details) | java -jar %AMICO_HOME%/bin/amico-validator.jar [<conf-url>] | Check sequence and format of messages exchanged through communicator. |
Generic Commander (Details) | java -jar %AMICO_HOME%/bin/amico-utils-generic-commander.jar | Provides simple interface where you can directly type commands from the AMICO TCP protocol. |