Hi Srinath,

Thanks a bunch for the feedback. We'll proceed as proposed.

Cheers,
Prabath

On Mon, Mar 28, 2016 at 3:11 PM, Srinath Perera <srin...@wso2.com> wrote:

> Hi Prabath,
>
> Agree on your points. I am +1 to have analytics separate.
>
> --Srinath
>
> On Thu, Mar 24, 2016 at 5:06 PM, Prabath Abeysekera <praba...@wso2.com>
> wrote:
>
>> Hi Srinath,
>>
>> On Thu, Mar 24, 2016 at 1:48 PM, Srinath Perera <srin...@wso2.com> wrote:
>>
>>> Hi All,
>>>
>>> Prabath, if analytics is not in the device type, where should it go?
>>>
>>
>> IMO, we can have it as a separate project structure with a separate
>> packaging as part of the underlying tooling platform. Just as how things
>> are done when composing a typical enterprise integration scenario involving
>> ESB configs, DSS configs, etc, one may create a multi-module maven project
>> with device management plug-in skeleton as one module and analytics as
>> another module. When built, there will be two resultant packagings one to
>> be deployed into device management nodes and the other to DAS. If the same
>> developer is expected to take care of developing the device management
>> plugin implementation and the analytics story, then we can may be define a
>> composite maven project artifact, when clicked, will create the
>> aforementioned structure.
>>
>> WDYT?
>>
>>
>>>
>>> I do not agree with your observation that functional and
>>> non-functional parts should be separate. It helps to have it separate if
>>> non-functional parts can be reused with other devices. However, that is not
>>> the case here.
>>>
>>
>> IMO, it's not only reusability that defines it in this particular
>> context. The fact that analytics can change and evolve independently from
>> the device management plug-in implementation should also be considered as a
>> valid requirement. This somewhat aligns with the first question you've
>> raised below, I believe.
>>
>> The reason is, organizational analytics related requirements change over
>> time depending on various business strategies that they might adopt, but
>> the plug-in implementation might not. Also, the degree of analytics
>> required too would change from one organization to another even if they
>> deploy the same IoTS solution equipped with the same plug-in set. If we
>> ship analytics bundled into the plug-in, we present things to the end-user
>> as something tied into a plug-in imeplementation, which doesn't appear to
>> be correct. So, we should have a mechanism that is not coupled to a plug-in
>> implementation, yet functions in tandem with it, to cater that sort of
>> requirements.
>>
>> For instance, let's imagine there exists Organizations Org1 and Org2.
>> They both are interested in using IoTS, which has the capability to handle
>> device DX, produced by a manufacturer ManX. There's a good chance that the
>> analytics needed for Org1 and Org2 might be different? So, a single
>> solution that is shipped with built-in analytics(bundled with the plug-in)
>> might not be suitable for both organizations. Instead, they would want to
>> customize the KPIs to suit their business requirements. One might think
>> this is hypothetical, but I thought there's a good enough probability that
>> this might be the case in a real deployment.
>>
>>
>>>
>>> I think, as sumedha said, we should ship what we have and change based
>>> on how it is used.
>>>
>>
>> Anyway, if everyone thinks, we should wait for industry feedback to make
>> a decision on this, yeah of course, we'll do it that way.
>>
>>
>>>
>>> If we choose to ship analytics bundled, we need to answer two questions.
>>>
>>>
>>>    1. Would plugin developer will do all analytics or do we have use
>>>    cases where end users will also create their own analytics? If they want 
>>> to
>>>    build their own analytics, we need think through how it work.
>>>
>>> To my understanding, both scenarios are possible.
>>
>>
>>>
>>>    1. There will be analytics that use data from multiple device types?
>>>    How would such cases handled?
>>>
>>> Well, in the case of mobile devices, this certainly is a valid scenario
>> as people usually prefer to have an aggregated view of how devices as a
>> whole behave within an organization adhering compliance rules, etc. Even in
>> other typical IoT contexts, when it comes implementing monitoring/analytics
>> upon groups that have multiple device types in them i.e. a smart home
>> solution, you essentially need to have something similar, IMO.
>>
>> IoT experts, please do comment in and correct me if I'm wrong.
>>
>> Cheers,
>> Prabath
>>
>> --Srinath
>>>
>>>
>>>
>>> On Thu, Mar 24, 2016 at 12:41 PM, Prabath Abeysekera <praba...@wso2.com>
>>> wrote:
>>>
>>>> Hi Sumedha,
>>>>
>>>> IMO, the device management plug-in layer does show what features can be
>>>> controlled, what device info to be captured, etc at a somewhat satisfactory
>>>> level already. If this is not sufficient, we need to think further and see
>>>> what needs to be added at a functional level.
>>>>
>>>> Also, I agree that there's no "huge" problem in having things bundled
>>>> together. But, IMO, I feel that it's more logical to separate out
>>>> functional bits and non-functional bits, that will not only make a clear
>>>> demarcation between the two aspects, but also that will make the
>>>> implementation as well as the positioning of the implementation more
>>>> cleaner and cleanly presentable.
>>>>
>>>> Referring to the example you've brought in, which is around bringing up
>>>> an analytics story upon the Greenhouse story, that's exactly what I tried
>>>> to highlight too. Users would more often look at integrated analytics,
>>>> particularly when it comes to real world systems, so just "plug-in
>>>> contained" analytics will not be sufficient in majority of the cases, IMO.
>>>> So, we need to think beyond that level and propose and approach that will
>>>> be a better fit for majority of the real world use-cases.
>>>>
>>>> I totally agree on the fact that we just started getting things
>>>> rolling. In fact, no one as yet seems to entirely know what exactly is IoT
>>>> or how things will evolve in the future. As you have said, we can surely
>>>> wait and see how the industry responds to things and then make things
>>>> evolve at our end. But do we really have to rely on the industry feedback
>>>> all the time to do what appears to be logical? :)
>>>>
>>>> Also, the intention of this mail is not about making changes to the
>>>> current approach right at the last min causing possible delays in proposed
>>>> release timelines. Rather this is something that I thought would be logical
>>>> to be added to the product maybe in a future release.
>>>>
>>>> Cheers,
>>>> Prabath
>>>>
>>>> On Thu, Mar 24, 2016 at 11:22 AM, Sumedha Rubasinghe <sume...@wso2.com>
>>>> wrote:
>>>>
>>>>> My take on this is slightly different.
>>>>>
>>>>> First @ a conceptual level when we say IoT Server can be extended by a
>>>>> plugin, we should have a clear definition of that plugin to have X, Y, Z
>>>>> capabilities. So I feel having analytics @ device type definition level
>>>>> (conceptually) is not a problem.
>>>>>
>>>>> Going by that thinking, I don't see a huge problem in **first version
>>>>> of Maven archetype for creating device type plugin** having template
>>>>> analytics scripts generated.
>>>>>
>>>>> (For anyone interested instructions are available @
>>>>> https://docs.wso2.com/display/IoTS100/Creating+a+New+Device+Plugin+via+the+Maven+Archetype
>>>>> More detailed documentation available @
>>>>> https://docs.google.com/document/d/1ms8xJInbQlSt213Rh_cju7Amt27dLgf8twYWVDQPZ3E/edit
>>>>> )
>>>>>
>>>>>
>>>>> On the other hand, I feel the level of analytics a device type plugin
>>>>> can have is very limited compared to a real life view of a devices
>>>>> deployment.
>>>>>
>>>>> Let me take an example.
>>>>>
>>>>> A Greenhouse has an air circulation system, humidity control & water
>>>>> sprinklers. As per our IoT Server, these are instances of different device
>>>>> types. Having per device analytics would not full fill the need of
>>>>> Greenhouse operator.  He should rather see an integrated analytics view of
>>>>> all these subsystems to make decisions and control.
>>>>>
>>>>> Now where do we support this? Deploying a separate analytics bundle
>>>>> can be a solution. But that cannot live on it's own without having a
>>>>> reference to device types & respective even streams. So it's not a simple
>>>>> solution.
>>>>>
>>>>> In a nutshell, I am trying to say,
>>>>> - We have not even touched the tip of the iceberge yet
>>>>> - There is a long way for us to go to get to the real level
>>>>>
>>>>> - Rather than trying to justify now about the best approach, let's
>>>>> ship what we have now and evolve based on industry feedback. Cos, IMO what
>>>>> we have is not 100% fail proof or completely bound to fail.
>>>>>
>>>>>
>>>>> On Wed, Mar 23, 2016 at 10:37 PM, Ruwan Yatawara <ruw...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Prabath,
>>>>>>
>>>>>> IoTS is basically the representation of WSO2's IoT Platform vision in
>>>>>> the flesh (Well, not literally). The idea behind it, is to provide users
>>>>>> with the necessary tools and components needed to get started with 
>>>>>> writing
>>>>>> device types that will later go in actual deployments. So someone who is
>>>>>> evaluating or test driving our platform per say, would find a more
>>>>>> integrated and therefore appealing story by discovering our device
>>>>>> management capabilities and analytics capabilities, integrate seamlessly
>>>>>> with no additional effort.
>>>>>>
>>>>>> Analytics maybe a non-functional requirement when we try to view IoTS
>>>>>> as just a device management framework. But in reality it is much bigger
>>>>>> than that, the whole driving force behind IIOT is the need to improve
>>>>>> operational efficiency of businesses through monitoring and analysis of
>>>>>> data from an array of sensory networks. Therefore IMHO, by all means
>>>>>> analytics becomes a primary functional requirement. We are just getting 
>>>>>> our
>>>>>> beaks wet by making available a bunch of DAS scripts with the plugin. In
>>>>>> the future, we may even find it necessary to put data models for machine
>>>>>> learning frameworks in there.
>>>>>>
>>>>>> Furthermore, having all the information pertaining to a particular
>>>>>> device type maybe advantageous when it comes to import/export of device
>>>>>> types. For an example, lets for a moment assume there is a device cloud 
>>>>>> by
>>>>>> the name of abc.com that runs on top of wso2's IOT framework. I as
>>>>>> an independent hardware vendor have written a device type to manage and
>>>>>> monitor my device on my laptop using the tooling available for IoTS. So
>>>>>> with the current approach, all I have to do is grab that device type 
>>>>>> (Which
>>>>>> should ideally be a deploy-able archive, contrary to our current feature
>>>>>> based approach) and upload it to abc.com cloud. In one go, my device
>>>>>> type will be deployed.
>>>>>>
>>>>>> Yes, this does bring to the table, the need to deploy various types
>>>>>> of different artifacts in different systems. But I believe we have done
>>>>>> something similar when it comes to deployment of imported API artifacts 
>>>>>> in
>>>>>> APIM (Which are deploy-able zip archives, containing sequences, images, 
>>>>>> DB
>>>>>> entries and what-not)
>>>>>>
>>>>>> Due to reasons mentioned above. I am of the opinion that we should
>>>>>> bundle analytics scripts with the plugin.
>>>>>>
>>>>>> Thanks and Regards,
>>>>>>
>>>>>> Ruwan Yatawara
>>>>>>
>>>>>> Senior Software Engineer,
>>>>>> WSO2 Inc.
>>>>>>
>>>>>> email : ruw...@wso2.com
>>>>>> mobile : +94 77 9110413
>>>>>> blog : http://ruwansrants.blogspot.com/
>>>>>> www: :http://wso2.com
>>>>>>
>>>>>>
>>>>>> On Wed, Mar 23, 2016 at 5:54 PM, Prabath Abeysekera <
>>>>>> praba...@wso2.com> wrote:
>>>>>>
>>>>>>> Hi Everyone,
>>>>>>>
>>>>>>> As most of you know, IoTS is a unified platform that allows users to
>>>>>>> come up with "plugins" and seamlessly add them to the framework to be 
>>>>>>> able
>>>>>>> to manage different types of devices. For instance, if an organization
>>>>>>> named "Org-X" manufactures a device type "Dev-X", they can simply adopt
>>>>>>> IoTS and extend its plug-in model to come up with a plug-in to support
>>>>>>> end-to-end device management and more upon "Dev-X" devices. To make 
>>>>>>> plug-in
>>>>>>> generation process easier for the developers who are involved in the 
>>>>>>> same,
>>>>>>> a maven archetype is used. The aforesaid archetype is simply used to 
>>>>>>> create
>>>>>>> a skeleton of the plug-in, which can then be enriched with different
>>>>>>> communication protocols, etc depending on the expectations of different
>>>>>>> device manufacturers, etc.
>>>>>>>
>>>>>>> Currently, the maven archetype explained above has the following
>>>>>>> structure.
>>>>>>>
>>>>>>> -- component
>>>>>>>    --*analytics*
>>>>>>>    --controller
>>>>>>>    --manager
>>>>>>>    --plugin
>>>>>>>    --ui
>>>>>>>
>>>>>>> Once the above skeleton is generated, then the developers customize
>>>>>>> the same to come up with the desired plug-in implementations and package
>>>>>>> things up to be able to push it to the CDM-F.
>>>>>>>
>>>>>>> Right now the model being used is that, all the aforementioned
>>>>>>> resources such as the plugin implementation, analytics scripts, etc are
>>>>>>> packed up as a single archive. IMO, having analytics scripts bundled up
>>>>>>> with the rest of the bits is not a good approach depending on a few 
>>>>>>> reasons.
>>>>>>>
>>>>>>> 1. When it comes real production deployments, these analytics
>>>>>>> scripts will be deployed in a separate DAS cluster as opposed to how 
>>>>>>> things
>>>>>>> are when the same is done within the scope of a single server. So, if 
>>>>>>> the
>>>>>>> two components are running separately, there's no point packaging
>>>>>>> everything up as a single archive as we'd have to break things down to 
>>>>>>> two
>>>>>>> separate packagings (a) to be deployed into IoTS (b) to be deployed into
>>>>>>> DAS.
>>>>>>>
>>>>>>> 2. Analytics, I believe, primarily is a non-functional requirement.
>>>>>>> Therefore, bundling non-functional bits with functional bits is not a 
>>>>>>> good
>>>>>>> practice.
>>>>>>>
>>>>>>> 3. If we ship analytics scripts with a particular plug-in, the
>>>>>>> natural expectation is that it would only cover specific bits bound to 
>>>>>>> the
>>>>>>> scope of particular plug-in. However, in a practical environment, what
>>>>>>> majority of the folks are looking at are much more advanced and 
>>>>>>> composite
>>>>>>> KPIs and related analytics to be able to help organizational strategies,
>>>>>>> etc. So it is highly likely that people might generally be interested in
>>>>>>> brining in analytics as a separate step relieving the need to pack the
>>>>>>> scripts, etc with the functional bits. i.e. plug-in implementation.
>>>>>>>
>>>>>>>
>>>>>>> Instead what I propose is to have a separate "project type" or
>>>>>>> something similar as part of the underlying tooling platform, which can
>>>>>>> effectively be used to compose all analytics related scripts, etc. We 
>>>>>>> can
>>>>>>> then package it up separately and deploy into the relevant DAS clusters 
>>>>>>> to
>>>>>>> get the analytics up and running.
>>>>>>>
>>>>>>>
>>>>>>> Some of the stuff I've brought up might be subjective, but I am of
>>>>>>> the opinion that we need to remove analytics related scripts from the
>>>>>>> plug-in skeleton.
>>>>>>>
>>>>>>> WDYT?
>>>>>>>
>>>>>>>
>>>>>>> Cheers,
>>>>>>> Prabath
>>>>>>> --
>>>>>>> Prabath Abeysekara
>>>>>>> Technical Lead
>>>>>>> WSO2 Inc.
>>>>>>> Email: praba...@wso2.com
>>>>>>> Mobile: +94774171471
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Architecture mailing list
>>>>>>> Architecture@wso2.org
>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Architecture mailing list
>>>>>> Architecture@wso2.org
>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> /sumedha
>>>>> m: +94 773017743
>>>>> b :  bit.ly/sumedha
>>>>>
>>>>> _______________________________________________
>>>>> Architecture mailing list
>>>>> Architecture@wso2.org
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Prabath Abeysekara
>>>> Technical Lead
>>>> WSO2 Inc.
>>>> Email: praba...@wso2.com
>>>> Mobile: +94774171471
>>>>
>>>> _______________________________________________
>>>> Architecture mailing list
>>>> Architecture@wso2.org
>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>
>>>>
>>>
>>>
>>> --
>>> ============================
>>> Srinath Perera, Ph.D.
>>>    http://people.apache.org/~hemapani/
>>>    http://srinathsview.blogspot.com/
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> Prabath Abeysekara
>> Technical Lead
>> WSO2 Inc.
>> Email: praba...@wso2.com
>> Mobile: +94774171471
>>
>> _______________________________________________
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> ============================
> Blog: http://srinathsview.blogspot.com twitter:@srinath_perera
> Site: http://home.apache.org/~hemapani/
> Photos: http://www.flickr.com/photos/hemapani/
> Phone: 0772360902
>
> _______________________________________________
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Prabath Abeysekara
Technical Lead
WSO2 Inc.
Email: praba...@wso2.com
Mobile: +94774171471
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to