API Information

Overview

There are a huge number of APIs available which are documented to varying degrees. In working with a specific API there are a couple key points to understand:

Stability

Public APIs are classified into three categories:

What is Baja?

Baja is a term coined from Building Automation Java Architecture. The core framework built by Tridium is designed to be published as an open standard. This standard is being developed through Sun's Java Community Process as JSR 60. This JSR is still an ongoing effort, but it is important to understand the distinction between Baja and Niagara.

Specification versus Implementation

Fundamentally Baja is an open specification and the Niagara Framework is an implementation of that specification. As a specification, Baja is not a set of software, but rather purely a set of documentation. The Baja specification will include:

Over time many more specifications for features will be added to Baja. But what is important to remember is that Baja is only a specification. Niagara is an implementation of that specification. Furthermore you will find a vast number of features in Niagara, that are not included under the Baja umbrella. In this respect Niagara provides a superset of the Baja features.

javax.baja versus com.tridium

Many features found in Niagara are exposed through a set of Java APIs. In the Java world APIs are grouped together into packages, which are scoped using DNS domain names. Software developed through the Java Community Process is usually scoped by packages starting with java or javax. The APIs developed for Baja are all grouped under javax.baja. These are APIs that will be part of the open Baja specification and maybe implemented by vendors other than Tridium. Using these APIs guarantees a measure of vendor neutrality and backward compatibility.

Software developed by Tridium which is proprietary and outside of the Baja specification is grouped under the com.tridium packages. The com.tridium packages contain code specific to how Niagara implements the Baja APIs. The com.tridium code may or may not be documented. Most often these packages have their components and slots documented (doc=bajaonly), but not their low level fields and methods. In general com.tridium APIs should never be used by developers, and no compatibility is guaranteed.

Note: Tridium has developed some APIs under javax.baja even though they are not currently part of the Baja specification. These are APIs that Tridium feels may eventually be published through Baja, but are currently in a development stage.