<?xml version="1.0" encoding="utf-8"?><topic id="1218d5aa-0d5c-42fe-a65e-d0a1b30bba41" revisionNumber="1"> <developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink"> <introduction> <para> The time-series data processing library of the Grid Solutions Framework is a core collection of classes used to manage, process and respond to dynamic changes in fast moving streaming time-series data in real-time. The library components allow applications to be architected as measurement routing systems. Any application can host the library which will allow the system become a "measurement router" that can host a variety of pluggable adapters. More information about the time-series adapters that are available as part of the Grid Solutions Framework can be found in this documentation. </para> <para> The open Phasor Data Concentrator, Secure Information Exchange Gateway (SIEGate) and the open Historian are examples of projects based on this time-series adapter library. </para> <para> See the following for documentation for core components of the Grid Solutions Framework: <externalLink> <linkText>GSF Core Framework</linkText> <linkUri>../../</linkUri> </externalLink> </para> </introduction> <section> <title>About</title> <content> <para> The time-series adapter library can be molded to route measurements in any fashion, but the system defines three fundamental measurement processing categorizations to kick start most any time-series processing architecture; these are the <legacyItalic>Input</legacyItalic>, <legacyItalic>Action</legacyItalic> and <legacyItalic>Output</legacyItalic> interface adapters. These base level adapters are called Iaon Adapters (pronounced "yo-wan" if you want to speak it). Each adapter type performs a basic time-series data operation: </para> <list class="bullet"> <listItem> <para> <legacyBold>Input Adapters</legacyBold>: Typically "maps" measurements from a data source (i.e., assigns a timestamp and an ID to measured values parsed from a stream of data), new measurements are presented to the system by calling <codeInline>void OnNewMeasurements(ICollection<IMeasurement> measurements)</codeInline> method. </para> <para> Interface: <externalLink> <linkText>IInputAdapter</linkText> <linkUri>../../html/T_GSF_TimeSeries_Adapters_IInputAdapter.htm</linkUri> </externalLink>, base class: <externalLink> <linkText>InputAdapterBase</linkText> <linkUri>../../html/T_GSF_TimeSeries_Adapters_InputAdapterBase.htm</linkUri> </externalLink> </para> </listItem> <listItem> <para> <legacyBold>Action Adapters</legacyBold>: Typically filters and sorts measurements by time allowing adapter to take action on a synchronized set of data provided in the <codeInline>abstract void PublishFrame(IFrame frame, int index)</codeInline> method which adapter overrides (note that frame contains a collection of measurements all collected into the same time-indexed frame bucket). If the action causes the creation of new measurements, new measurements are presented to the system by calling <codeInline>void OnNewMeasurements(ICollection<IMeasurement> measurements)</codeInline> method. </para> <para> Interface: <externalLink> <linkText>IActionAdapter</linkText> <linkUri>../../html/T_GSF_TimeSeries_Adapters_IActionAdapter.htm</linkUri> </externalLink>, base class: <externalLink> <linkText>ActionAdapterBase</linkText> <linkUri>../../html/T_GSF_TimeSeries_Adapters_ActionAdapterBase.htm</linkUri> </externalLink> </para> </listItem> <listItem> <para> <legacyBold>Output Adapters</legacyBold>: Typically queues all measurements (no sorting) for processing. Queued measurements are presented to the adapter for processing in the <codeInline>void ProcessMeasurements(IMeasurement[] measurements)</codeInline> method – if measurements continue to build up in memory and are not processed in a timely manner they will be removed from the queue as protective measure to prevent catastrophic out-of-memory failures. Since output adapters are used to archive data this is often the slowest part in the system (disks tend to be a bottleneck), outputs can optionally be set to filter based on a measurement's defined "Source" property – this allows multiple outputs to be targeted to several different distributed outputs which allows large systems to stay ahead of the incoming data stream. </para> <para> Interface: <externalLink> <linkText>IOutputAdapter</linkText> <linkUri>../../html/T_GSF_TimeSeries_Adapters_IOutputAdapter.htm</linkUri> </externalLink>, base class: <externalLink> <linkText>OutputAdapterBase</linkText> <linkUri>../../html/T_GSF_TimeSeries_Adapters_OutputAdapterBase.htm</linkUri> </externalLink> </para> </listItem> </list> <para> <markup> <p style="text-align:center"> <img title="IaonAdapters.png" src="http://gridprotectionalliance.org/images/technology/TSLoverview540R1.png" alt="IaonAdapters.png" /> </p> </markup> </para> </content> </section> <relatedTopics> </relatedTopics> </developerConceptualDocument></topic>
<?xml version="1.0" encoding="utf-8"?>
<topic id="1218d5aa-0d5c-42fe-a65e-d0a1b30bba41" revisionNumber="1">
<developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
<introduction>
<para>
The time-series data processing library of the Grid Solutions Framework is a core collection of classes used
to manage, process and respond to dynamic changes in fast moving streaming time-series data in real-time.
The library components allow applications to be architected as measurement routing systems. Any application can
host the library which will allow the system become a "measurement router" that can host a variety of pluggable
adapters. More information about the time-series adapters that are available as part of the Grid Solutions Framework
can be found in this documentation.
</para>
<para>
The open Phasor Data Concentrator, Secure Information Exchange Gateway (SIEGate) and the open Historian are examples
of projects based on this time-series adapter library.
</para>
<para>
See the following for documentation for core components of the Grid Solutions Framework:
<externalLink>
<linkText>GSF Core Framework</linkText>
<linkUri>../../</linkUri>
</externalLink>
</para>
</introduction>
<section>
<title>About</title>
<content>
<para>
The time-series adapter library can be molded to route measurements in any fashion, but the system defines three fundamental
measurement processing categorizations to kick start most any time-series processing architecture; these are the
<legacyItalic>Input</legacyItalic>, <legacyItalic>Action</legacyItalic> and <legacyItalic>Output</legacyItalic> interface
adapters. These base level adapters are called Iaon Adapters (pronounced "yo-wan" if you want to speak it). Each adapter
type performs a basic time-series data operation:
</para>
<list class="bullet">
<listItem>
<para>
<legacyBold>Input Adapters</legacyBold>: Typically "maps" measurements from a data source (i.e., assigns a
timestamp and an ID to measured values parsed from a stream of data), new measurements are presented to the system
by calling <codeInline>void OnNewMeasurements(ICollection<IMeasurement> measurements)</codeInline> method.
</para>
<para>
Interface:
<externalLink>
<linkText>IInputAdapter</linkText>
<linkUri>../../html/T_GSF_TimeSeries_Adapters_IInputAdapter.htm</linkUri>
</externalLink>,
base class:
<externalLink>
<linkText>InputAdapterBase</linkText>
<linkUri>../../html/T_GSF_TimeSeries_Adapters_InputAdapterBase.htm</linkUri>
</externalLink>
</para>
</listItem>
<listItem>
<para>
<legacyBold>Action Adapters</legacyBold>: Typically filters and sorts measurements by time allowing adapter to take
action on a synchronized set of data provided in the <codeInline>abstract void PublishFrame(IFrame frame, int index)</codeInline> method which
adapter overrides (note that frame contains a collection of measurements all collected into the same time-indexed
frame bucket). If the action causes the creation of new measurements, new measurements are presented to the system by
calling <codeInline>void OnNewMeasurements(ICollection<IMeasurement> measurements)</codeInline> method.
</para>
<para>
Interface:
<externalLink>
<linkText>IActionAdapter</linkText>
<linkUri>../../html/T_GSF_TimeSeries_Adapters_IActionAdapter.htm</linkUri>
</externalLink>,
base class:
<externalLink>
<linkText>ActionAdapterBase</linkText>
<linkUri>../../html/T_GSF_TimeSeries_Adapters_ActionAdapterBase.htm</linkUri>
</externalLink>
</para>
</listItem>
<listItem>
<para>
<legacyBold>Output Adapters</legacyBold>: Typically queues all measurements (no sorting) for processing. Queued
measurements are presented to the adapter for processing in the <codeInline>void ProcessMeasurements(IMeasurement[] measurements)</codeInline>
method – if measurements continue to build up in memory and are not processed in a timely manner they will be removed
from the queue as protective measure to prevent catastrophic out-of-memory failures. Since output adapters are used to
archive data this is often the slowest part in the system (disks tend to be a bottleneck), outputs can optionally be
set to filter based on a measurement's defined "Source" property – this allows multiple outputs to be targeted to several
different distributed outputs which allows large systems to stay ahead of the incoming data stream.
</para>
<para>
Interface:
<externalLink>
<linkText>IOutputAdapter</linkText>
<linkUri>../../html/T_GSF_TimeSeries_Adapters_IOutputAdapter.htm</linkUri>
</externalLink>,
base class:
<externalLink>
<linkText>OutputAdapterBase</linkText>
<linkUri>../../html/T_GSF_TimeSeries_Adapters_OutputAdapterBase.htm</linkUri>
</externalLink>
</para>
</listItem>
</list>
<para>
<markup>
<p style="text-align:center">
<img title="IaonAdapters.png" src="http://gridprotectionalliance.org/images/technology/TSLoverview540R1.png" alt="IaonAdapters.png" />
</p>
</markup>
</para>
</content>
</section>
<relatedTopics>
</relatedTopics>
</developerConceptualDocument>
</topic>