StreamInsight Server Deployment Models
Microsoft StreamInsight supports two deployment scenarios for the StreamInsight server:
Full integration into the StreamInsight application as a hosted (embedded) DLL.
As a stand-alone, remote server with multiple StreamInsight applications and users sharing the server. In its stand-alone configuration, the StreamInsight server runs in a wrapper such as an executable, or the StreamInsight server could be packaged as a Windows Service.
The embedded deployment model allows applications to transparently embed the StreamInsight server into their solutions. The embedding application controls all access to the StreamInsight server and thus can prevent others from accessing metadata and the data being processed by the StreamInsight server. The following examples represent scenarios in which the embedded deployment model might be a good fit for your StreamInsight solution:
You want to use an embedded StreamInsight server to develop your StreamInsight application.
You are in the process of developing an application and you prefer to use a single process for both the application you are writing and the StreamInsight server. Switching to the remote server model is done by connecting to an out-of-process server instead of creating an embedded server.
Shared access to the metadata and the streaming event data that is being processed by the StreamInsight server is not a requirement.
You want to tightly control access to the StreamInsight server through your application logic that wraps the StreamInsight server.
A remote StreamInsight server is preferable when multiple applications need to share the same event data sources and can benefit from access to mutual metadata objects. The following examples are scenarios in which the remote deployment model might be a good fit for your StreamInsight solution:
You want to share metadata objects such as event types, adapter types, or query templates among multiple applications. The remote server makes it easy for you to keep the metadata consistent between these applications because only a single copy of it is registered in the StreamInsight server.
A data source is registered with the StreamInsight server and already provides an event stream for an existing application. Using the remote server will make it easy for you to re-use the already registered adapters for the data source and to share the incoming data stream between the applications.
The remote server deployment can use the installed StreamInsight service as the server host. Applications written against a remote StreamInsight server must connect to the StreamInsight server by using the Web service URI of the hosted StreamInsight server. For more information, see Publishing and Connecting to the StreamInsight Server.