Class OroServer

java.lang.Object
laas.openrobots.ontology.OroServer
All Implemented Interfaces:
IServiceProvider

public class OroServer extends Object implements IServiceProvider
OroServer is the application entry point. It initializes and starts the various services, connectors and background tasks, as set up in the oro-server configuration file.

OroServer does mainly two things:

  1. It registers and connects a set of services (presumably related to robotic cognition) to a socket interface,
  2. It runs in the background several tasks related to robotic cognition.

Features

Most services are related to access and management of a cognitive storage backend. The main storage backend is an ontology, as implemented in the OpenRobotsOntology class. This class exposes a set of RPC services (and hence implement the IServiceProvider interface).
However, other services can be registred (like stats() that returns statistics on the server itself).

Amongst the tasks that are run in background, we can list:

Others are under developpement, including a "curiosity" module, a cognitive conflict detection and resolution module.

Getting access to the server

The communication with the server relies on standard TCP/IP sockets. The ASCII protocole we use is documented here: SocketConnector.

Configuration

OroServer has a main function which expect a configuration file.
For the server, the following options are currently available:

  • port = [port number over 4000]: the port on which the server should starts and listen.

See OpenRobotsOntology(Properties) for others options, specific to the ontologies. Have a look at the config file itself for more details.
  • Field Details

    • DEFAULT_CONF

      public static final String DEFAULT_CONF
      The default configuration file (set to "etc/oro-server/oro.conf").
      See Also:
    • DEFAULT_LANGUAGE

      public static String DEFAULT_LANGUAGE
      Defines the standard language used in particular for labels retrieval.
      This field can be set up in the configuration file with the language option.
      Expected values are ISO 2 characters language codes.
    • HAS_A_TTY

      public static boolean HAS_A_TTY
    • VERBOSITY

      public static VerboseLevel VERBOSITY
    • DEMO_MODE

      public static boolean DEMO_MODE
    • ServerParameters

      public static Properties ServerParameters
    • BLINGBLING

      public static boolean BLINGBLING
    • VERSION

      public static final String VERSION
      See Also:
    • SERVER_START_TIME

      public static final Date SERVER_START_TIME
    • discardedTypeFromServiceArgs

      public static final Set<Class> discardedTypeFromServiceArgs
      This set holds the types that should not be exposed to oro-server clients but are required by some RPC methods (for instance to retrieve the context when the query was received). TODO: This is more like a workaround...
  • Constructor Details

    • OroServer

      public OroServer(String confFile)
  • Method Details