Architecture Basics
Application developers create CSWorks solutions using Microsoft .NET 3.5, Microsoft Silverlight, and CSWorks server and client components.
In the following diagram, CSWorks client and server components interact in a simple
CSWorks server topology, with all server components running on the same computer.
CSWorks client components
Following are the CSWorks 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 - The Microsoft Silverlight framework that runs
the user application. A single browser instance can host multiple instances of Silverlight
runtime engines.
- User Silverlight Application - The Silverlight application that
the CSWorks application developer creates.
- Basic Silverlight Controls - Standard Silverlight controls (TextBox,
Grid, etc.) that can display data received from the CSWorks LiveData Access Framework,
or from other sources.
- CSWorks Controls - CSWorks controls (Numeric inputs, Pipes, Tanks,
etc.) that can display data received from the CSWorks LiveData Access Framework.
- Custom Controls - Custom or third-party controls that can display
data received from the CSWorks LiveData Access Framework, or communicate directly to
CSWorks web services (including custom data services).
- LiveData Access Framework - A CSWorks client component that communicates to
CSWorks LiveData Web Service.
- Alarm Summary Control - A CSWorks control that can display alarm
data.
- Trend Control - A CSWorks control that can display historical and
live trend data.
CSWorks Server Components
Following are the CSWorks server components:
- Server - A server computer that runs CSWorks server components.
A CSWorks application can include a single server or multiple server components.
Server components communicate via WCF (Windows Communication Foundation) and can
run on separate computers.
- LiveData Web Service - A CSWorks web service that provides access
to live data supplied by the CSWorks LiveData Service. This layer has multiplexing
capabilities and can communicate to multiple instances of underlying servers running
on multiple server computers.
- Alarm Web Service - A CSWorks web service that provides access to
alarm data supplied by the CSWorks Alarm Service. This layer has multiplexing capabilities
and can communicate to multiple instances of underlying servers running on multiple
server computers.
- History Reader Web Service - A CSWorks web service that provides
access to the data stored in history databases. This layer has multiplexing capabilities
and can communicate to multiple history databases.
- Custom Data Web Services - Custom or third-party web services that
provide access to arbitrary data streams supplied by CSWorks data servers or by
any custom data processing module.
- Custom Data Processing Modules - Custom or third-party components
that process data received from CSWorks live data and alarm servers.
- Alarm Service - A CSWorks component that receives data updates
from LiveData Service and manages alarms.
- LiveData Service - A CSWorks component that receives near real-time
updates from data sources and provides other components with access to live data.
- OPC Data Source Provider - A CSWorks component that subscribes
to data updates from specified OPC servers.
- SQL Data Source Provider - A CSWorks component that monitors data
changes in SQL databases.
- Custom Data Source Providers - Custom or third-party components
that monitor data changes in arbitrary data sources.
- History Recorder Service - A CSWorks component that monitors live
data and records it in a database.
- History Database - An SQL database that stores historical data.
If your solution requires different servers to run on separate computers, CSWorks
server components communicate to each other using Windows Communication Foundation
(WCF), which makes it easy to build a distributed system. Please see Distributed Architecture section for details.
|