--- manual: IM 36K10J10-01EN title: CI Server System Design/Management edition: 3rd Edition, Sep. 2023 version: R1.03 status: from docs --- # System Design / Management (R1.03) How CI Server is built, how to choose a system layout, and how to run, back up, monitor, tune and migrate it. Section numbers refer to the manual. ## 1. Fundamentals **Three tiers (1.1)** - **CI View**: the client HMI (Java or HTML5), on Windows PCs, tablets and phones. - **CI Portal**: web server that sits between CI View and CI Core. - **CI Core**: data server. Talks to field devices (EQUIPMENT drivers), processes real-time data, manages alarms, stores history, exposes external interfaces. **Node, services, processes (1.2)** - One CI Server per machine; each is a **node**. The license is tied to the node. - A node runs **services** (DATABASE, ITEM, ALARM, EQUIPMENT, REPORT, …). Which services start depends on the license. - Each service is made of **processes**; a process can have several **instances** (e.g. several report generators, requests shared out by priority). - Processes talk by **DUR messages**; each has a named queue, visible in Performance Monitor. **Data model (1.3)** - **Item**: the basic data point. Receives acquired values, sends operator/application writes to the RTU, drives alarms, serves as class I/O and as dynamic properties of displays/symbols. - **Section**: hierarchical folder for items (item full name `Section1.Section2.Tag`). - **Object**: a set of items managed together; used by processing and linked to graphics. - **External alarm (EAL)**: alarm from an external system received via the OPC UA client; EAL settings are kept in sections. - **Dataset**: table (rows/fields, like an RDB table) holding configuration, current data and history. Users can add their own. Read by displays, symbols, classes, objects, reports and external applications. **Two layers (1.4)**: CI Portal services and CI Core services, on the same or separate machines. | Service | CI Core | CI Portal | |---|:-:|:-:| | BUS | ✓ | ✓ | | DATABASE | ✓ | ✓ | | HISTORY, AUDIT, ITEM, EQUIPMENT, ALARM, PROCESS, REPORT, ACCESS | ✓ | | | USER | | ✓ | | INTEGRATION | ✓ | ✓ | ## 2. Inside CI Server | Function | Service(s) | Summary | |---|---|---| | Data acquisition (2.1) | EQUIPMENT | Drivers for STARDOM FCX, Vnet/IP, Modbus, DNP3 and others. | | Alarming (2.2) | ALARM | Detection (by CI Server or the RTU/PCS, with filters against chattering); notification to display, report, OPC AE/UA, sound, e-mail, printer; state and acknowledgement; stored in `ALARM_CURRENT` (current) and `ALARM_CHRONO` (history); analysis with ASPA. | | Historization (2.3) | HISTORY | Storage groups made of storage units, one kind per data type: items (`ITEM_HISTORY`), alarms (`ALARM_CHRONO`), audit (`AUDIT_TRAIL`), system log (`SYS_LOG`), reports. | | Symbol and processing (2.4) | PROCESS | Class → object → symbol (below). | | Display (2.5) | USER | Displays contain symbols; appearance comes from layouts in an XML layouts file. User definitions set the initial display/layout; *Open display* actions name a display/layout. Defaults: display `main`, layout `default`. | | Reporting (2.6) | REPORT | Configure in the Engineering module (query, schedule, trigger item, destination) → generate by schedule, trigger item or ad hoc → output via spool statement or destination (file, printer, application) → stored in history with a lifetime set by the storage group. | | User authorization (2.7) | USER | Users belong to authorization groups; groups grant actions. Can be managed through a Windows domain (see Active Directory Integration, IM 36K10J40). | | Multi-node (2.8) | BUS | **DURM** protocol between nodes: dynamic routing, best-line selection, auto-connect to the active HAC server, encryption and server certificates. | | External interface (2.9) | ACCESS | ODBC (Simba server on the Core; optional license; the only route for non-Windows clients), OPC classic DA/AE/HDA (local network), OPC UA, remote database copy (mirror to external tables for complex queries; watch export size), Excel Add-in, command-line tools. | **Class, object, symbol (2.4)** - A **class** defines items, template items and processing; written in the *traditional* language or Java. Traditional has no loops; Java classes cannot access datasets (no DSS). - Class structure: `PROLOG` (local variables `VAR`, parameters `ATTRIBUTE`/`PROMPT`, items `SIGNAL ... FROM