A database system wherein one or more entry databases store a plurality of
entries. Each entry is of a given type that defines the fields of the
entry. Each field contains or identifies an object with associated
attributes or data. The type of each entry may further define behavior in
the form of methods the entry can implement. An entry type which is a
subtype of another inherits all fields and behavior of its super-type, and
contains additional fields and/or defines new/modified behavior. Entries
may be expressed in a Java.TM. programming language. The database system
may further employ a search engine which allows queries to be made upon
entries in the database. In one implementation, the queries include a read
operation, a take operation, and a notify operation. Each query request
includes a command indicating the type of operation, and a template which
is an entry object having some or all of its fields set to specific values
that must be matched exactly. Other fields of the template entry may be
specified as wildcards, whose values do not matter. The search engine may
further be configured to create an index for caching entries having
characteristics which are commonly specified by queries. In one
implementation, the databases may also store and perform operations on
sets of entries. Additionally, associating attributes to the fields of
entries allows the system to achieve type-safe attribute matching.
Un système de base de données où une ou plusieurs bases de données d'entrée stockent une pluralité d'entrées. Chaque entrée est d'un type donné qui définit les champs de l'entrée. Chaque champ contient ou identifie un objet avec des attributs ou des données associés. Le type de chaque entrée peut plus loin définir le comportement sous forme de méthodes que l'entrée peut appliquer. Un type d'entrée qui est un sous-type des autres hérite de tous les champs et comportement de son superbe-type, et contient les champs additionnels et/ou définit le comportement de new/modified. Des entrées peuvent être exprimées en langage de programmation de Java.TM.. Le système de base de données peut plus loin utiliser un Search Engine qui permet à des questions d'être faites sur des entrées dans la base de données. Dans une exécution, les questions incluent une opération "lecture", une opération de prise, et une opération d'annonce. Chaque demande de question inclut une commande indiquant le type d'opération, et un calibre qui est un objet d'entrée ayant quelques ou tous ses champs réglés aux valeurs spécifiques qui doivent être assorties exactement. D'autres champs de l'entrée de calibre peuvent être indiqués comme wildcards, dont les valeurs n'importent pas. Le Search Engine peut plus loin être configuré pour créer un index pour cacher des entrées ayant des caractéristiques qui sont généralement indiquées par des questions. Dans une exécution, les bases de données peuvent également stocker et effectuer des opérations sur des ensembles d'entrées. En plus, l'association des attributs aux champs des entrées permet au système de réaliser l'assortiment type-sûr d'attribut.