OpenRemote is written in Java and is open-source. It includes a rules engine in drools which is necessary to infer the logic of the ubiquitous system. Drools is a very light language business rule management system (BRMS) written by Jboss. In a Drool file we can have multiple rules, queries and functions, as well as some resource declarations like imports, global variables and attributes that are assigned and used by your rules and queries. Using those rules, OpenRemote implements a software abstraction for communication and processing of data between devices.