locked
Observable Adapters in RTM RRS feed

  • Question

  • I have installed the RTM version of StreamInsight but have not found any evidence of the microsoft.complexeventprocessing.adapters.observable.dll assembly being installed.  Is this assembly being shipped with StreamInsight 1.0 RTM or is it a separate download?

    Any help would be much appreciated.

     

    Cheers,

    Trevor

    Monday, May 3, 2010 7:43 PM

Answers

  • Hi Trevor,

    We do not ship the observable adapters with RTM. The reason is that the IObservable and IObserver interfaces are defined with the 4.0 version of the runtime, which came slightly after RTM of SqlServer 2008 R2. See that the November CTP defined its own IObservable interfaces, which created confusion.

    We are looking at offering support for IObservable post RTM, but I can't announce any specific plans right now. I'd appreciate if you can describe how you wanted to use the IObservable adapters.

    Thanks, 


    Regards, Ciprian Gerea SDE, MS StreamInsight Team Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights.
    • Marked as answer by tkmcclean Thursday, May 6, 2010 12:47 PM
    Monday, May 3, 2010 7:58 PM

All replies

  • Hi Trevor,

    We do not ship the observable adapters with RTM. The reason is that the IObservable and IObserver interfaces are defined with the 4.0 version of the runtime, which came slightly after RTM of SqlServer 2008 R2. See that the November CTP defined its own IObservable interfaces, which created confusion.

    We are looking at offering support for IObservable post RTM, but I can't announce any specific plans right now. I'd appreciate if you can describe how you wanted to use the IObservable adapters.

    Thanks, 


    Regards, Ciprian Gerea SDE, MS StreamInsight Team Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights.
    • Marked as answer by tkmcclean Thursday, May 6, 2010 12:47 PM
    Monday, May 3, 2010 7:58 PM
  • I'll express my own view on why having observable adapters can be very useful. 

    IMO, IObservable interface is de facto a universal glue that can help connecting together all different event sources and sinks. With observable adapter all I have to do to plug in my source into Streaminsight is to create observable on top of my event source. And RX team did a really great job making sure that it's a trivial task for practically any event source out there - in most cases it's done using a one-liner. Without an observable adapter I'd have to create an input adapter for every event producer and event consumer. Not a very hard to do (config, adapter, and a factory), but not even close to that simplicity that RX framework provides (in most cases one method call) Same goes for event consumers. 

    And it's not just a matter of lines of code one needs to write. Having a common interface simplifies a lot of scenarios that otherwise become quiet cumbersome to implement. Suppose, for example, I want to have auto-discoverable event sources, sinks, and queries. With IObservable/IObserver adapter it's just a matter of defining a proper interface and utilizing any of DI container (or MEF). 

    Now having said that I think it's questionable whether observable adapters should be a priority in terms of development targets. E.g. provided in RTM adapter API makes it quiet straight-forward to implement IObservable/IObserver adapter for anyone willing to do that ;) 

    Tuesday, May 4, 2010 1:24 AM
  • So you're saying that the  IObservable and IObserver dev model isn't supported by the stand alone version of StreamInsight?

    If that's not true then where is the ToCepStream extended method located if there is one at all?

    I'm looking at the PDC 09 demo for the StockMonitor and of course it can't be built with the RTM. So how can it be built?


    Have fun!
    Tuesday, May 4, 2010 12:37 PM
  • I would like to echo P.L.'s thoughts on why the observable adapters are very useful.  It seems very natural to consume the output of a StreamInsight query with an observable pattern.  By using IObservable (assuming it is transitioned to the mscorlib version) with the Rx extensions the ability to create a seamless reactive solution involving StreamInsight, for efficiency, becomes an easier task.  

    Also, selfishly, if it is released by the StreamInsight team it is less code in our software to write and maintain ;)

    Tuesday, May 4, 2010 12:49 PM
  • We are very convinced that there is value in providing support for IObservable sources and sinks, and I'm glad to see that you are confirming this. I will keep you posted on what the actual steps of delivering this  support are, however at the moment I can't say anything definitive.

    To answer MladenP's question, the method was present in the NovemberCTP of StreamInsight, and it no longer ships with RTM. If you want to port the PDC09 demo you will need to write adapters using the adapter framework.


    Regards, Ciprian Gerea SDE, MS StreamInsight Team Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights.
    Tuesday, May 4, 2010 6:27 PM
  • Is this where the Reactive Framework in .Net 4.0 comes in?  I can see how they are competing technologies.  I pesonally like the implementation in SI and do not want to have to go to the Rx frameowrk to implement it and SI for everything else.

     

    Thanks

     

    Allan

    Thursday, May 6, 2010 7:33 PM
  • Hi Allan,

    Can you be more specific about what you mean when you say that you like the implementation in StreamInsight?

     


    Regards, Ciprian Gerea SDE, MS StreamInsight Team Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights.
    Monday, May 10, 2010 5:02 PM
  • Hi Ciprian

     

    I do not want to have to move between platforms to code these things, I want them all in one place.  The IObservable interface is great for integration into .Net applications.

    The problem is that the Rx framework as far as I can see for the IObserver/able interface is pretty much the same thing as SI except you target v3.5 of the framework and they 4.0.  I think Eric has also said that he can see the Rx framework becoming more powerful in the future which makes me nervous.

    You have not implemented these interface in RTM, Rx has.  You had them in CTP.  are they really going to be implemented?  I tend to  think of the IObserver/able as more interactive than the Implicit/Explicit model. 

     

     

     

    Monday, May 10, 2010 7:25 PM
  • Hi Allan,

    Thanks for sharing your perspective. Your requirements resonate with our intentions, but I can't say more than that at the moment.

    Regards,


    Ciprian Gerea SDE, MS StreamInsight Team Disclaimer: This posting is provided "AS IS" with no warranties, and confers no rights.
    Tuesday, May 11, 2010 12:24 AM
  • Any update you can provide on the release of IObservable adapters for the RTM version?
    Wednesday, August 25, 2010 7:50 PM