| Version 5.4
Introduction
Installation
SysAdmin
Network
Objects
Storage
E-mail
Real-Time
Access
Services
Directory
Clusters
Applications
Miscellaneous
Licensing
WebMail
Pronto!
PBX
Applications | Data | CLI/API | Rules | CG/PL | PBXApp | XIMSS | WebApp | WSSP | Helpers
# Applications Concepts Many CommuniGate Pro components can be customized or extended using various types of programming techniques. These sections provide the information about the basic CommuniGate Pro programming concepts, the data models used, and the Application Programming Interfaces (APIs) available.

## Concepts

Internally, the CommuniGate Pro Server software uses an object-oriented data model. The model includes "simple" objects (such as strings, numbers, datablocks, timestamps, and other "atomic" objects), as well as "structured" objects (such as arrays and dictionaries).
The same objects are used for CommuniGate Pro applications and APIs.
The Data Formats section describes these data objects, and specifies their textual representations.

All Administration (provisioning, management, tuning, monitoring) functions of the CommuniGate Pro Server are available via the Network CLI interface. This simple, text-based TCP protocol is used to integrate the CommuniGate Pro system with various external systems, including provisioning and billing.

As all other protocols and modules, the CLI module is supported with the CommuniGate Pro SSI (Single Service Image) infrastructure, so a single CLI connection established with any Cluster member can be used to manage and control the entire Cluster. Actually, the SSI component itself uses the same CLI protocol for inter-cluster communications.

Some installations may require non-standard, complex, and/or heavily customized feature sets. The CommuniGate Pro system acts as an Application Server platform, implementing a very simple, but effective high-level CG/PL programming language.
This language is used to create simple, yet powerful custom applications.
CG/PL applications extend the standard CommuniGate Pro feature set without performance and reliability degradation usually associated with third-party application platforms.
The same CG/PL language is used in different product components, the only difference is in the built-in function sets offered by each component.
The CG/PL language uses the same data model as the internal product components.

The CommuniGate Pro services may employ certain functions not directly implemented in the product itself.
Content-filtering (Anti-virus and Anti-Spam) products, spell-checkers, billing processors, and many other products (or "engines") can be integrated with the CommuniGate Pro Server using the Helpers mechanism.

CommuniGate® Pro Guide. Copyright © 1998-2012, Stalker Software, Inc.