|
|||||||||||||||||
|
Client connects to LinkServer via any IP network using a secure connection. In clustered and multi-server systems, Client may maintain simultaneous connections with several LinkServers. Combined with a LinkServer's capability to maintain an unlimited number of client connections, you could build a "many-to-many" distributed system with very high reliability. Primary components of Client:
Real-Time MonitoringReal-time event monitoring capability is critical for many industries, such as Time & Attendance, Network Monitoring and Access Control. Monitoring current events is one of a system operator’s primary tasks.The unified data model employed in AggreGate has been designed with event processing in mind. In addition to internal system events, the system learns new event types coming from different hardware on-the-fly. These events are converted to AggreGate events thereby revealing many handling methods. Events are subdivided into five severity levels: Notice, Info, Warning, Error and Fatal. The essential tool for event monitoring is Event Log of AggreGate Client. It is divided into two areas: Real-Time Events and Event History. The event log provides basic event handling functions, such as sorting, filtering, deleting, acknowledging, and accessing event-related actions. ![]() There are two types of events: transient and persistent events. Transient events may be processed at the moment they are generated (for example, trigger an alert). Persistent event are stored in the server database and therefore may be used for future analysis, charting, report building, etc. All persistent events are automatically purged after a while (configurable). LinkServer does its best to make all background activities (e.g. device communication failures or e-mail sending) visible as events. Event Filtering You can’t monitor events in real time, or analyze event history, without filtering. AggreGate users may create and manage event filters. A Filter is owned by whoever created it, but may be shared between users due to the flexible permissions setup.Events may be filtered by:
![]() A filter can be made to prompt an operator for certain parameters every time it is activated. ![]() LinkServer distribution includes a set of built-in commonly used filters for viewing all major system events, device events, etc. Event Acknowledging AggreGate events may be acknowledged – explicitly accepted by system operators. This is usually not a must. However, some events may be configured to require an acknowledgement. An event may be acknowledged:
![]() If an event was supposed to be acknowledged but did not get acknowledged, its severity level may escalate. Alerts AggreGate has an extensive support for alerting, which is one of the essential tools in modern monitoring systems. Alerts notify system operators when something goes wrong in any part of a distributed system. Without alerts, an operator would have to constantly go around the system and click devices just “to make sure everything is OK”. Alerts make sure operators notice what they should notice.Every user has their own set of alerts. Alerts can also be shared. An alert compises:
Alert TriggersEvery alert has one or more triggers defining when to raise it. These can be either event triggers or state triggers.An event trigger is raised when an event of a certain type conforms to the trigger condition. This condition is flexibly configured by an expression, allowing complex checkings. For example, a vehicle monitoring system may generate an alert if an impact event received from a vehicle controller indicates that impact strength exceeds a threshold. State trigger can either be raised in response to a certain state, or to any change in the state of whatever is being monitored. State trigger periodically check a device or system property (also pointed by a custom expression). They have a configurable hysteresis time, for activating the alert only if the condition lasts longer than a certain time. For example, a state trigger may raise an alert if the temperature rises over 120 degrees for more than 3 minutes. ![]() Every trigger may check one or more devices or resources. Combined with the ability to set up multiple triggers per alert, this allows for very flexible alerts. Notification RulesAlert notifications inform humans about alert conditions and provide related information. Notifications can be in the form of:
Pending Alerts And Alert Escalation Sometimes, alerts require acknowledgements. Non-acknowledged alert instances are called pending alerts, and are highlighted in orange, to attract an operator's attention.Alert escalation usually indicates that the situation has become critical. Escalated alerts are highlighted in red. There are two possible rules for escalating alerts:
Alert-To-Action BindingsWhen a certain error occurs, it often requires one specific remedy. For example, when the available memory on a device becomes low, its internal database must be downloaded or purged. This is always the case – it’s never another action, such as turning the device off or running a servo.Because this is so predictable, it can be automated. Any system action that is available in the user interface may be automatically launched in response to an alert. If no operators are on duty or the system functions in standalone mode, the corrective action launched is “non-interactive”. There are also “interactive” corrective actions, which require operator input in real-time. Some interactive corrective actions:
Reporting Reporting is indispensable for applications and systems with highly developed data processing and analisys capabilities. In AggreGate, any internal system data may be used to build a report:
![]() Reports are browsed and printed using the Report Viewer. Reports may be exported to:
Report EditorAggreGate Client has a Report Editor for modifying report templates. It's rarely necessary to create new templates from scratch, as the system generates a default template based on the data being viewed. In most cases, you just have to fine-tune it and make it your own.![]() The Report Editor operates in WYSIWYG (What You See If What You Get) mode, no programming required. It lets you:
ChartingData within AggreGate may be used to build charts. There are three basic types of charts:
![]() Supported chart types:
Query Language AggreGate LinkServer has an integrated query language for retrieving and managing device and system data. It is similar to Structured Query Language (SQL). Most SQL clauses are supported, including SELECT, JOIN, FROM, WHERE, GROUP BY, HAVING, UNION, ORDER BY and LIMIT. Queries are useful for:
Update QueriesUnlike classic SQL, AggreGate query language has no INSERT and UPDATE statements. However, query results may be modified using the GUI. For example, if you select several properties of several devices in a single table, you can edit the cells of this query and all modified data will be written back to its original location.TrackersTracker status lets system operators quickly check the state of a tracker by highlighting it in the trackers list. Statuses can help detect trackers that indicate warning and critical conditions of the monitored values. It is possible to associate an unlimited number of user-defined statuses with every tracker. The value of each active tracker's expression is recalculated periodically. Stateless and disabled trackers may be optionally hidden from the list. Job Scheduler LinkServer’s job scheduler lets you periodically execute any device management or system task, such as:
![]() There are two types of schedules:
Grouping And Group OperationsGroups are used to combine several similar devices or system resources (event filters, alerts, etc.) to make batch operations more convenient. It is easy to execute an operation over all objects in a group (e.g. reboot ten devices at once). Groups also provide an easy way to set similar settings to all group members or automatically replicate configuration changes between them.![]() Groups are also integrated with the Common Data facility. This means you can have "master" values for group member properties. Changes of master value are automatically applied to all group members. Replication Of ConfigurationAggreGate supports data cloning, copying and replication procedures:
![]() Common Data Common Data is a custom data storage facility that may be used by various AggreGate components to perform specific operations, such as data replication, data sharing and configuration management.The common data container is like a database. You can:
Favourites Favourites allow system operators to execute commonly-used operations with a single mouse click. You don't have to "dig" in through the system tree – you can have instant access to whatever you use the most via the favourites, which work like "shortcuts" or "quick links" leading to various resources and devices.In the AggreGate Client, when a workspace contains several server connections, the favourites are collected from all server connections and displayed in one unified table. This lets you use just one a single Favourites table to navigate all over your entire "AggreGate Universe". ![]() Favourites support grouping. This means one click on a single favourite may launch the same operation for several devices/resources at once. Auto-Run The Auto Run feature allows operations to be executed automatically when an operator logs into a LinkServer User Interface, such as AggreGate Client. They’re useful for creating dashboards, which are sets of widgets automatically displayed in pre-set positions as soon as a user launches client application. Another use would be an automatic checking of the status of a particular mission critical device.Auto-Run operations are executed in the user-defined order. They can be suspended (without being removed). Interactive GuidesAggreGate isn’t always trivial to master. You have to understand how the system works, grasp the terminology and gradually figure things out.In other words, you will probably have to read at least some of the manual before you can reap some of the benefits of this unique system. Alas, not everyone enjoys reading in-depth technical documentation (how surprising!). Some people like to learn by simply running the program and clicking around until something happens. With such people in mind, we created the AggreGate Interactive Guides. This is a fairly unique feature: When the Interactive Guide is on, you get a small window with some instructions and explanation. The guide then “watches” what you do, and when it detects you’ve performed the step described, it moves on to the next step automatically, showing you what to do next. ![]() You can think of the Interactive Guide as a tech supporter, looking over your shoulder and making helpful comments as you work. It's not an animated paperclip, though, and we promise it won't try to make friends with you. Link ServiceUnder normal circumstances, on a WAN, communicating with another node (host) on the network can be difficult due to the following factors:Scarcity of Static IP Addresses IP addresses on many networks (especially, the Internet) are now in short supply. This gave rise to several technologies that allow you to use available IP addresses more economically. Some examples of these technologies include:
The only standard solution to this problem is to assign a static IP address to each host you need to connect to. These static IP addresses have to be obtained first. For example, you might need to lease them from your ISP. A single IP-address wouldn't cost much but when a given system is to have many nodes you end up spending considerable amounts of money. Even when the WAN is private and IP addresses are free, there are administration costs related to allocation of static IP addresses. Firewalls blocking inbound trafficEven assuming one has obtained necessary number of static IP addresses, there is still one more challenge: you have to actually connect to the Device Server. This may mean passing through firewalls. Firewalls usually restrict inbound traffic, so you will need to arrange opening ports, etc. This requires more work and increases the chances for possible security breaches (the more internal IP addresses or ports accessible from the outside, the greater the risk).![]() One possible solution to this is to configure all of the Device Servers for outbound connections, and have them connect to one specific network host. This could save leasing multiple IP addresses, so you would just need a single IP address for this host. Unfortunately, this also means that just this single host would be able to communicate with your Device Servers, as it would be configured as their destination. As you can see, this solution, too, is not an ideal one. So, what is the best way to interconnect Device Servers and their "client" hosts, when they are on different network segments, located behind firewalls, and have no static IP addresses? It is called Link Service. Link ServiceIt is usually much easier for a network host to connect out than to accept an incoming connection. Unfortunately, with a normal link, at least one side must accept an incoming connection.Tibbo LinkServer provides a workaround for this problem by letting both sides of the link to communicate through a "middle-man" (Link Service), to which they both can establish outbound connections. When you and your friend use ICQ or MSN, you both connect to a central server. Neither of you typically has a static IP address, but the server has a static IP -- and this is what lets the "magic" happen. Both parties make outbound connections, so no firewalls have to be configured and neither side needs a static IP. ![]() The Link Service is a very similar solution, only it is tailor-made for Tibbo Device Servers! Your Device Servers in the field connect to the Link Service (make outbound connections). Hosts that wish to communicate with Device Servers also connect to the LinkServer using outbound connections. Both sides meet 'at' the LinkServer and can thereby communicate through it. Dynamic DNS Service The downside of the Link Server is that it is slower than direct connection, because all the data must go through the LinkServer.This isn't critical for systems that do not produce a lot of traffic per each node. Still, there are times where you might want to create a direct connection to a device (for the sake of speed), but the IP address of this device changes from time to time (as is the case with most ADSL connections). You need a way to track the device down -- a way to overcome this and connect to one 'stable' address. You need to know that this address belongs to the Device Server you want, and be able to rely on it. This is where the dDNS Service comes in. With dDNS Service each of your Device Servers gets a "host name", which looks something like dev1.abccorp.dev.srv1.com (in this example the domain name of your server is srv1.com). You can always connect to your device using this hostname. This URL stays the same even when the IP address of the Device Server changes. ![]() Since the actual connection is established directly to the Device Server you would have to be able to reach it -- i.e, if it has a firewall protecting it, the firewall must be appropriately configured. Configuration would be more complex than with the Link Service, but you would gain an increase in communications speed. In Dynamic DNS mode, Device Servers connect to the LinkServer on startup only, after obtaining IP address from DHCP server. After their registration in DNS they break connection with the LinkServer and act exactly as "normal" Device Servers, having no relations with LinkServer and other parts of AggreGate. In contrast to Link Service mode, no connection between Device Server and LinkServer is maintained. No data is transferred through the server. HTTP Proxy Service Let's say you have hundreds of Device Servers with embedded web servers, with each such Device Server providing access to a number of web pages. It is very easy to access every embedded Web Server when all of them have real static IP addresses. However, in real life, most Device Servers are installed in local networks protected by firewalls, and static IP addresses cost money. In this case, there is no way to access these Device Servers directly. The HTTP Proxy service solves this problem by providing a generic way to access all embedded web servers through LinkServer. It works like this:
![]() |
||||||||||||||||
© Tibbo Technology Inc., 2001 - 2010. Patent Pending. tel: 886-2-26925443 email