Difference between revisions of "System Architecture"
Line 114: | Line 114: | ||
== User Interface == | == User Interface == | ||
+ | |||
+ | [[User Interface]] | ||
=== User Authentication === | === User Authentication === | ||
Line 120: | Line 122: | ||
=== Access Control List === | === Access Control List === | ||
− | |||
− | |||
− | |||
== Files Organization == | == Files Organization == | ||
[[Files Organization]] | [[Files Organization]] |
Revision as of 18:47, 11 March 2014
The HSYCO framework is composed of three main layers, the drivers, the core services engine and API, and the user interface. This section discusses these layers, and also other general architecture information about HSYCO, including its file structure.
The Manager Toolkit
HSYCO is pre-configured with a Web-based toolkit of applications, the Manager, that gives you access to configuration and administration functions, including the ability to change the network settings and the operating system's password, HSYCO users management and the tools to create customized graphic user interfaces.
The Manager section covers the details of each one of these tools.
The Drivers Layer
The drivers layer is used to create a consistent interface to all external systems that HSYCO is capable of controlling.
I/O Servers
Most input/output field systems are interfaced through what we call I/O servers. An I/O server is the logical representation of a field system integrated in HSYCO.
The I/O servers general concepts and specific implementations for each field system are discussed in the Introduction to I/O Servers section.
Video
Video cameras are another very typical device used with HSYCO, usually in combination with other systems, for live view and recording.
The Video Cameras section describes the detailed requirements to interface a camera with HSYCO.
The Core
HSYCO offers a rich set of core services.
These services are used by HSYCO to provide pre-built features, and are also available to developers, through APIs in JavaScript, Java and the proprietary EVENTS language.
The State Data Engine is the most important component of the core. It stores the real-time status of all field systems, application data and user interface dynamic attributes. The Events Engine triggers all relevant API asynchronous calls whenever any status change occurs.
Network
Network services implement some useful APIs like TCP/IP ping, HTTP get and post requests, Wake-On-Lan services and WiFi-based location services.
See the Wi-Fi Client Location Services section for additional information.
Serial
HSYCO supports both local and networked serial ports. The Communication Ports settings in Manager cover the details of serial interfaces.
Timers and Schedulers
Timers and schedulers allow users to trigger actions on field systems, or any other function that HSYCO can execute, at predefined time periods.
A timer is a simple function that allows you to set a time interval and days of week, and is used for simple alarms and repetitive tasks.
The scheduler is a powerful function that allows you to define a set of calendar entries to schedule actions at the beginning and end of each time interval.
Timers and schedulers have dedicated user interface objects, and a core engine that takes care of triggering the events that should have appropriate associated actions.
Clock and Sun Position
The clock is used to provide time information to all HSYCO services and generate time events for custom applications.
It can be configured to automatically update from network time servers and to set the local time based on standard time zones.
The Sun position service constantly computes the current azimuth and elevation position of the Sun, based on given latitude and longitude information.
It also triggers day and night events based on astronomical sunrise and sunset.
High Availability
The high availability (HA) service coordinates two redundant HSYCO servers so that one stand-by server can take over in case the main server fails or is disconnected due to network failures.
The High Availability section discusses various implementation scenarios to create an extremely reliable supervision architecture.
HSYCO Remote
The HSYCO remote service is used in combination with the Remote I/O Server, a powerful and secure server-to-server communication system that allows an HSYCO server read and write access to all the I/O data points and GUI variables of other remote HSYCO servers.
Using the HSYCO Remote I/O Server you can build a multi-level architecture with one or more HSYCO servers acting as concentrators for data points managed by other HSYCO servers.
System Monitor
The System monitor service is used by the System Monitor I/O Server to monitor several key hardware and operating system parameters of an HSYCO server.
It is also used internally to check internal resources, for example to prevent filling the internal storage with recorded video frames from cameras.
Log
HSYCO has a centralized log facility, where system messages and error are written to daily log files.
JavaScript, Java and EVENTS APIs also allow applications to write custom logs.
See the Log Files section for the details.
Data Logger
Data loggers allow to gather, process and visualize statistical data on the variations of a data set.
They can be used to automatically generate time charts of its trend and/or to log data as CSV files.
The Data Loggers chapter describes all key features, with examples. See the Data Loggers section in the Manager Settings tool for the full list of configuration parameters.
Leak Detector
The leak detector service is used to generate warning for potential water or other quantities leaks by analyzing any generic flow counter.
See the JavaScript Leak Detector API documentation, or the equivalent Java API, for the details.
Public Announcement
HSYCO can play audio for public announcement, as pre-recorded files or using a text-to-speech engine that converts text to audio.
Audio can be sent to the Web browser, the server’s audio line out connector, the internal speaker or audio out line of Axis cameras, and the speaker of SNOM phones or PA devices.
See the Audio and Public Announcement documentation, and the JavaScript, Java and EVENTS API for additional information.