Architecture Basics
The diagram below displays how CSWorks component interact with each other.
Client Components
Browser
Any web browser that supports Microsoft Silverlight. The number of browser clients
connected to CSWorks data web services is limited only by network bandwidth, and
server farm capabilities.
Silverlight Runtime
Microsoft Silverlight framework that runs user application. A single browser instance
can host multiple instances of Silverlight runtime engines.
User Silverlight Application
Silverlight application created by application developer.
Basic Silverlight Controls
Standard Silverlight controls (TextBox, Grid etc) that visualize data received from
CSWorks Data Access Framework or from other sources.
CSWorks Controls
CSWorks controls (Numeric inputs, Pipes, Tanks etc.) that visualize data received
from Data Access Framework.
Custom Controls
Custom/Third party UI elements that visualize data received from Data Access Framework
or communicate directly to CSWorks web services (including custom data services).
Alarm Summary Control
CSWorks control that allows alarm visualization.
Trend Control
CSWorks control that allows historical and live data trends visualization.
Server Components
Server
Server machine that runs CSWorks server comonents. There can be one or multiple
server machines in the deployment. All server components communicate via WCF (Windows
Communication Foundation) and can run on separate machines.
LiveData Web Service
CSWorks web service that provides access to live data supplied by CSWorks LiveData
Service. This layer has multiplexing capabilities and can communicate to multiple
instances of underlying servers running on multiple server machines.
Alarm Web Service
CSWorks web service that provides access to alarm data supplied by CSWorks Alarm
Service. This layer has multiplexing capabilities and can communicate to multiple
instances of underlying servers running on multiple server machines.
History Reader Web Service
CSWorks web service that provides access to the data stored in history database.
This layer has multiplexing capabilities and can communicate to multiple history
databases.
Custom Data Web Services
Custom/Third party web services that provide access to arbitrary data streams supplied
by CSWorks data servers or any custom data processing modules.
Custom Data Processing Modules
Custom/Third party components that processes data it gets from CSWorks live data
and alarm servers.
Alarm Service
CSWorks component that receives data updates from LiveData Service and manages alarms.
LiveData Service
CSWorks component that receives near real-time updates from data sources, and provides
other components with access to live data.
OPC Data Source Provider
CSWorks component that subscribes to data updates from specified OPC servers.
SQL Data Source Provider
CSWorks component that monitors data changes in the SQL database.
Custom Data Source Providers
Custom/Third party components that monitor data changes in arbitrary data sources.
History Recorder Service
CSWorks componet that monitors live data and records data observations to the database.
History Downsampler Service
CSWorks component that performs historical data denormalization to optimize user
access to big amounts of historical data.
History Database
SQL database where historical data is stored.
This is one of the simplest examples of CSWorks server topology - with all server components running on the same machine.
Fortunately, running different CSWorks server components on different machines is not a problem:
CSWorks server components communicate to each other using Windows Communication Foundation (WCF),
which makes building a distributed system easy. Please see Distributed Architecture section for details.
|