Architecture Basics

Application developers create CSWorks solutions using Microsoft .NET 4.0, Microsoft Silverlight, HTML5, 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 Architecture

CSWorks client components


Following are the CSWorks client components:

  • Browser - Any web browser that supports Microsoft Silverlight and HTML5. The number of browser clients connected to CSWorks data web services is limited only by network bandwidth and server farm capabilities.
  • User HTML5 Application - The HTML5 application that the CSWorks application developer creates.
  • 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 and manage 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.
  • Web Server - A server computer that runs Microsoft IIS (Internet Information Services) and hosts CSWorks web services. A CSWorks deployment may use multiple web servers to provide load distribution capabilities.
  • 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.
  • BACnet IP Data Source Provider - A CSWorks component that can read and write data from/to BACnet devices over IP network.
  • 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.
  • Alarm Notification Service - A CSWorks component that sends alarm notification messages via email or SMS, and accepts alarm acknowledgements via SMS.

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.

Copyright © 2009-2016 CSWorks Inc. All rights reserved.