Index | Prev | Next
Niagara Developer Guide Index
Framework
- Overview
Provides a high level overview of the Niagara Framework
and its problem space.
- Architecture
Provides a broad overview of the architecture and introduces key concepts
such as station, workbench, daemon, fox, and modules.
- Directory Structure
Provides an overview of the the Niagara 4 directory structure, highlighting the
differences from NiagaraAX.
- API Information
Provides an overview of API stability designation and public versus
implementation APIs.
- Modules
Provides an introduction to modules which are the software
deliverables in the Niagara Framework.
- Object Model
An introduction to the Niagara type system.
- Component Model
An introduction to the Niagara component model.
- Entity Model
An introduction to the Niagara entity model.
- Building Simples
Details for building simple Types.
- Building Enums
Details for building enum Types.
- Building Complexes
Details for building complex struct and component Types.
- Registry
The Niagara registry is used to query details about what is installed
on a given system.
- Collections
Details on the Niagara Collections API.
- Naming
The Niagara ord naming architecture and its APIs.
- Links
Discusses object links.
- Execution
Discusses the runtime execution environment.
- Station
Discusses station lifecycle.
- Remote Programming
Describes how the component model is programmed across the network.
- Files
Discusses how files are mapped into the Niagara object model.
- Localization
Discusses localization in the Niagara Framework.
- Spy
An overview of the Niagara diagnostics framework.
- Licensing
An overview of the Niagara licensing framework.
- XML
An overview of Niagara XML document model and parser APIs.
- Bog Format
Details of the Bog (Baja Object Graph) XML schema and APIs used
to encode and decode component graphs.
- Distributions
An overview of Niagara Distributions.
- Test
How to use Niagara's test framework.
- Virtual Components
An overview of using transient, on-demand (virtual) components.
User Interface
In Niagara AX there were three different UI frameworks to choose from.
-
bajaui: Niagara's own Java-based UI toolkit.
bajaui widgets run natively in Workbench. To run outside of
Workbench (such as from a web browser), they require a standalone client
application called Niagara Web Launcher.
-
Hx: A Servlet-based approach to creating user interfaces
with HTML. The UI runs on the Niagara Station, and strings of HTML and
JavaScript are sent to the browser to recreate that UI in the browser.
-
Mobile: An HTML5-based UI framework specifically designed
for smartphones and tablets. This is now removed in Niagara 4.15, because Niagara 4.6
added many enhancements to make the regular Hx profiles mobile-friendly.
Niagara 4 introduces a new framework called bajaux.
bajaux is designed from the ground up to be native to HTML5 and
JavaScript. Niagara UI development as a whole is also moving away from Java
and towards HTML5 and JavaScript. This is for several reasons:
-
Web access is critical for users. But very few web browsers support the Java
plugin anymore. This means that users must install standalone, Java-based
applications just to access a station. A native HTML5 UI requires no
plugins or addons.
-
Maintaining two separate versions of your UI - one for Workbench and one for
browser - drains resources and adds complexity. Maintaining only one version
that works for both Workbench and the browser is much simpler.
Developing in bajaux has several benefits.
-
Workbench interop: Workbench has an integrated browser
engine. This allows the exact same
bajaux view to work in both
Workbench and the web browser. We recognize a lot of Niagara developers have
made a huge investment in bajaui. With this native integration,
you can develop new HTML5 views and have them work seamlessly together with
existing bajaui views.
-
JavaScript: use JavaScript, HTML and CSS to create your web
applications. We've provided a suite of JavaScript libraries to make this as
easy as possible. This includes
BajaScript,
bajaux, and much more.
-
Web Server: Niagara uses
Jetty as a web server. This grants
native support for Java Servlets.
-
bajaui and Hx: due to the massive investment our customers
have in Niagara AX UI technology, we still support both
bajaui
and Hx in Niagara 4.
Niagara 4 Open Web Technologies
Our new User Interface technology uses HTML5, JavaScript and CSS. For information on developing your own applications using this technology, please see the section on Building JavaScript Applications.
-
Introduction to Niagara UI: an
introduction for developers new to Niagara UI technologies.
-
User Interfaces from AX to
N4: an overview for Niagara AX developers transitioning to Niagara 4.
-
UI Changelog: breaking
API changes are always called out separately, but starting with Niagara
4.10, we'll keep a running tally of non-breaking API changes that are of
interest to developers.
-
Serving HTML from the Station's File System: information and best practices on serving static web content directly from the Station's file system.
-
RequireJS: New JavaScript code
in Niagara 4 uses AMD (Asynchronous Module Definition) for better
performance and maintainability.
-
BajaScript: a JavaScript library that's used to access Niagara data. It's important to note that BajaScript isn't a User Interface library. It's just for the data.
-
bajaux: used to write User Interface Widgets in JavaScript. Code once and use everywhere. A bajaux Widget will run in both Hx and Workbench. These tutorials cover a lot of ground and utilize BajaScript, lexicons, dashboards and dialogs to create HTML5 web applications.
-
webEditors: a library of widgets, editors, and frameworks built using bajaux.
-
UxMedia: a method of rendering Px graphics natively in the browser using pure HTML5 and JavaScript.
-
managers: create views on component containers to easily organize and batch manipulate their contents with tables.
-
driver: contains managers for working with Points and Devices within driver networks.
-
lexicon: translate your HTML5 Widgets into different languages.
-
log: use JavaScript to log data in the browser and in the station.
-
dialogs: add dialog boxes to your HTML5 Widgets.
-
dashboards: allow the user to change and save the state of Px WebWidgets in real-time without the Px Editor.
-
export: allow users to export Niagara data and download, save, or transmit it.
Niagara AX - bajaui
- Gx
Provides an overview of gx graphic toolkit.
- Bajaui
Provides an overview of the widget component toolkit.
- Workbench
Overview of the workbench shell.
- Web
Overview of web APIs.
- Hx
Overview of Hx APIs.
- Px
Overview of Px technology.
Niagara AX - Hx
Niagara Theme Modules
Niagara Login Screen Customization
Niagara Session Expiry - Notes
Web Server
Niagara's web server can be extended in a number of ways. In Niagara AX, you could extend via Servlet Views and Web Servlet Components.
In Niagara 4, you can also extend via standard Java Servlets.
In Niagara AX 3.7, we added support for Apache Velocity to Niagara. Velocity is a powerful Server Side Templating tool.
Niagara RPC
From Niagara 4.1 onwards, a developer can easily create Remote Procedure Calls that can be invoked from FOX, BOX (including BajaScript) and through a Web Servlet.
For more information please click here.
Horizontal Applications
- Control
Overview of the control and automation module.
- History
Overview to the historical database module.
- Alarm
Overview to the alarming module.
- Schedule
Overview of the scheduling module.
- Report
Overview of the reporting module.
- Hierarchy
Overview of the hierarchy module.
Queries (BQL, NEQL, Search)
Drivers
Architecture Diagrams
- Software Stack
Provides an illustration of the major software subsystems in Niagara.
- Communication
Illustrates Niagara's software processes and their protocols.
- Remote Programming
Provides an overview of programming with remote components over fox.
- Driver Hierarchy
Illustration of driver hierarchy.
- ProxyExt
Illustration of proxy point design.
- Driver Learn
Illustration of AbstractManager learn with discovery job.
Security
Index | Prev | Next