All, We've been working on this architecture for a long time now. Lets have a comprehensive review on Friday. I've already sent out the invite.
On Mon, Nov 24, 2014 at 7:00 AM, Shan <[email protected]> wrote: > Hi all, > Just to add some points . > > That depends on whether an agent is involved or not > > 3 criteria : > > 1 agent based > 2 agent less > 3 hybrid ( this is also based on feature ) > > If u look at > Android It is 1 > iOS 3 > Windows 2 ( there is another option ) > > Some iot device its 1 > Any Cpe device its 2 since for example routers use tr069 > > Things we need to consider > > 1 enrollment , de-enrollment (ui or non ui based , active or passive , > ownership) > 2 DM > 3 transport > 4 device stream > > > Also the dmml - a new markup language to define the device feature which > can be defined at the client agent or at the server based on os , platform > , version . This can be based on some combination as well. The first one is > based on the device itself the use case for that is an arduino which has > some sensors connected . > > Sent from my iPhone > > On Nov 22, 2014, at 10:41 PM, Dilan Udara Ariyaratne <[email protected]> > wrote: > > Hi Sameera, > > I am not exactly getting the point. > > It should be because I am not exactly aware of the actual use case of > Windows and iOS. > > Do you mean that they are using different transport (or connectivity) > protocols? > > Regards. > > > > > *Dilan U. Ariyaratne* > Software Engineer > WSO2 Inc. <http://wso2.com/> > Mobile: +94775149066 > lean . enterprise . middleware > > On Sat, Nov 22, 2014 at 9:29 PM, Sameera Perera <[email protected]> wrote: > >> Hi Dilan >> On Windows and iOS we need to use the specific protocols and rely on the >> OS to execute the command. This is why we have to use this approach. >> >> (Sent from a mobile device) >> On 22 Nov 2014 19:29, "Dilan Udara Ariyaratne" <[email protected]> wrote: >> >>> Hi All, >>> >>> Why do we need to construct a "Platform-specific-payload" at the server >>> level? >>> >>> Cannot we just send the "Platform-independent-payload" to the device >>> agent and invoke the corresponding feature operation at the client side? >>> >>> I might not be right because I am not exactly aware of all the use-cases. >>> >>> Appreciate if some valid use-cases can be provided on this regard. >>> >>> Thanks. >>> >>> >>> >>> *Dilan U. Ariyaratne* >>> Software Engineer >>> WSO2 Inc. <http://wso2.com/> >>> Mobile: +94775149066 >>> lean . enterprise . middleware >>> >>> On Tue, Nov 18, 2014 at 8:32 AM, Harshan Liyanage <[email protected]> >>> wrote: >>> >>>> Hi Dilan, >>>> >>>> Yes. you are correct. >>>> >>>> Thanks, >>>> >>>> Lakshitha Harshan >>>> Software Engineer >>>> Mobile: *+94724423048* >>>> Email: [email protected] >>>> Blog : http://harshanliyanage.blogspot.com/ >>>> *WSO2, Inc. :** wso2.com <http://wso2.com/>* >>>> lean.enterprise.middleware. >>>> >>>> On Tue, Nov 18, 2014 at 7:20 AM, Dilan Udara Ariyaratne < >>>> [email protected]> wrote: >>>> >>>>> Hi Harshan, >>>>> >>>>> This is with reference to the two merging options that you have >>>>> mentioned in your previous reply to the thread. >>>>> >>>>> As I understood, with the 1st Option: >>>>> >>>>> You suggest to >>>>> >>>>> [1] convert platform-independent-payload to platform-specific-payload, >>>>> save it and when another request comes in, >>>>> [2] convert the platform-specific-payload back into its >>>>> platform-independent-form and merge it with the >>>>> platform-independent-payload for the new request and >>>>> [3] convert that back to a platform-specific-payload. (Please correct >>>>> me if I am wrong) >>>>> >>>>> So with this option, you suggest not to save a >>>>> platform-independent-payload for the pending requests and deal with it >>>>> only >>>>> at run-time. >>>>> >>>>> As I understood, with the 2nd Option: >>>>> >>>>> You suggest to >>>>> >>>>> [1] Keep the platform-independent-payload saved along with its >>>>> platform-specific-payload and when ever another request comes in, >>>>> [2] Get the existing platform-independent-payload and merge it with >>>>> new platform-independent-payload of the incoming request, save it and >>>>> [3] Convert that to a new platform-specific-payload and overwrite the >>>>> existing platform-specific-payload with the new one. (Please correct me if >>>>> I am wrong) >>>>> >>>>> Thanks. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> *Dilan U. Ariyaratne* >>>>> Software Engineer >>>>> WSO2 Inc. <http://wso2.com/> >>>>> Mobile: +94775149066 >>>>> lean . enterprise . middleware >>>>> >>>>> On Mon, Nov 17, 2014 at 8:16 AM, Harshan Liyanage <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> *Platform-specific payload *is the actual payload which will be >>>>>> delivered to the device when the device contacts the server for >>>>>> pending-operations. *Platform-independent *form is used to construct >>>>>> the *Platform-specific payload *& communicate device operations >>>>>> internally within CDM. For example when an user sends a device operation >>>>>> using CDM web-console, *platform-independent *message will be sent >>>>>> from the console -> CDM API -> CDM Core -> Device-platform bundle. Then >>>>>> the *device-platform >>>>>> bundle *will use it to construct the *platform-specific payload.* >>>>>> But there might be situation where some device operation payloads >>>>>> might not delivered to the device when another operation for that device >>>>>> comes-in. IMO in such cases its not good to have many pending >>>>>> *platform-specific >>>>>> payloads *for a single device. If we are to deliver multiple >>>>>> payloads that might introduce an additional overhead in network. In such >>>>>> situations what I suggest is to merge the new payload with the existing >>>>>> payload. To do that we have two options. >>>>>> >>>>>> 1. Use the existing *platform-specific payload *& merge it with the >>>>>> new operation request >>>>>> 2. Use the *platform-independent *form & merge it with new operation >>>>>> request (platform-independent form) & construct a new payload >>>>>> >>>>>> Going through the 1st approach will be harder because then the >>>>>> device-platform bundle will have to have the all the conversion logic >>>>>> need >>>>>> to convert payloads ( *platform-independent -> platform-specific *& >>>>>> *platform-specific >>>>>> -> platform-independent). *In some platforms converting back the >>>>>> *platform-specific >>>>>> payload* might not be possible because the device-platform bundle >>>>>> might use a 3rd party library to do the conversion. So we had to opt out >>>>>> 1st approach. >>>>>> If we follow the 2nd approach, CDM server itself can do the merging >>>>>> of the operation requests because it does not need any platform-specific >>>>>> knowledge to do so. Then the merged *platform-independent payload *can >>>>>> be send to the device-platform bundle to get the corresponding >>>>>> *platform-specific >>>>>> payload.* For do that we need to save the *platform-independent >>>>>> payload *along with the *platform-specific payload.* >>>>>> This approach will reduce the workload of device-platform >>>>>> implementer, which will make easier integration of new platforms. >>>>>> >>>>>> Regards, >>>>>> >>>>>> Lakshitha Harshan >>>>>> Software Engineer >>>>>> Mobile: *+94724423048* >>>>>> Email: [email protected] >>>>>> Blog : http://harshanliyanage.blogspot.com/ >>>>>> *WSO2, Inc. :** wso2.com <http://wso2.com/>* >>>>>> lean.enterprise.middleware. >>>>>> >>>>>> On Mon, Nov 17, 2014 at 5:59 AM, Dilan Udara Ariyaratne < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi All, >>>>>>> >>>>>>> This is just to clarify things. >>>>>>> >>>>>>> With reference to defining pending-operations-per-device, why do we >>>>>>> need to have a >>>>>>> *platform-specific payload *and its *platform-independent* *form*? >>>>>>> >>>>>>> What is the expected use-case of this? >>>>>>> >>>>>>> Regards, >>>>>>> >>>>>>> Dilan. >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> *Dilan U. Ariyaratne* >>>>>>> Software Engineer >>>>>>> WSO2 Inc. <http://wso2.com/> >>>>>>> Mobile: +94775149066 >>>>>>> lean . enterprise . middleware >>>>>>> >>>>>>> On Mon, Nov 3, 2014 at 5:36 PM, Harshan Liyanage <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi InoshP, >>>>>>>> >>>>>>>> Before explaining the above scenario I'll explain the process of >>>>>>>> payload generation when a request for new operation comes to the CDM >>>>>>>> core. >>>>>>>> >>>>>>>> 1. CDM Core bundle will detect its device platform using the >>>>>>>> operation code >>>>>>>> 2. Validate the operation against the supported device operations >>>>>>>> 3. Send the operation request to the device-platform bundle for >>>>>>>> converting it to a *device-specific payload* >>>>>>>> 4. Put the converted payload into the *OUT* queue >>>>>>>> >>>>>>>> We have two options when it comes to your scenario. >>>>>>>> 1. Create a new payload including the previous operation & new >>>>>>>> operation >>>>>>>> 2. Create another payload. So that 2 payloads will be stored in the >>>>>>>> *OUT >>>>>>>> *queue. >>>>>>>> >>>>>>>> IMO the best option would be 1, since the second option will >>>>>>>> consume more memory in the queue & more bandwidth of the device >>>>>>>> because it >>>>>>>> has to take 2 payloads. >>>>>>>> For supporting the option 1, we have the following options. >>>>>>>> >>>>>>>> 1. Device platform bundle will take the platform-specific payload >>>>>>>> in the queue & merge it with the new operation >>>>>>>> In this case, the overhead of the device platform bundle will be >>>>>>>> much higher because it must know how to convert back the >>>>>>>> *platform-specific >>>>>>>> payload* to the *platform-independent* form. This will make >>>>>>>> writing a new device-platform bundle a tedious task because of the >>>>>>>> complexity of payload transformation logic. So I'm -1 on this option. >>>>>>>> >>>>>>>> 2. We'll use a platform-independent format for saving the payload >>>>>>>> into the queue which can be easily merged with new operations. This >>>>>>>> platform-independent payload will be converted when the device >>>>>>>> contacts the >>>>>>>> CDM server for pending operations. >>>>>>>> This is much more easier method than the first option. But this >>>>>>>> will affect the number of concurrent devices CDM can support due to the >>>>>>>> on-demand conversion of payloads. On the other-hand this method will >>>>>>>> reduce >>>>>>>> the resource consumption & avoid unnecessary payload transformations. >>>>>>>> Further-more this will reduce the complexity of CDM core because there >>>>>>>> is >>>>>>>> no need to get the payload corresponding to the operation from the >>>>>>>> device-platform bundle & put it into the OUT queue. >>>>>>>> >>>>>>>> 3. Save the platform-independent payload format along with the >>>>>>>> platform-specific payload in the queue. >>>>>>>> This method will increase the resource consumption because we need >>>>>>>> more memory to keep the platform-independent payload & >>>>>>>> platform-dependent >>>>>>>> payload in the OUT queue. But this will increase the number of >>>>>>>> concurrent >>>>>>>> devices CDM can support because the payload is readily available when >>>>>>>> the >>>>>>>> device contacts the server. >>>>>>>> >>>>>>>> I'm +1 for both 2nd and 3rd options. WDYT? >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> Best Regards, >>>>>>>> >>>>>>>> Lakshitha Harshan >>>>>>>> Software Engineer >>>>>>>> Mobile: *+94724423048* >>>>>>>> Email: [email protected] >>>>>>>> Blog : http://harshanliyanage.blogspot.com/ >>>>>>>> *WSO2, Inc. :** wso2.com <http://wso2.com/>* >>>>>>>> lean.enterprise.middleware. >>>>>>>> >>>>>>>> On Mon, Nov 3, 2014 at 3:47 PM, Inosh Perera <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi Harshan, >>>>>>>>> If for example, a message to a device is already in the queue and >>>>>>>>> when monitoring happen, a similar payload is generated. How is it >>>>>>>>> handled >>>>>>>>> when it comes to communication between out queue and device platform >>>>>>>>> bundle? >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Inosh >>>>>>>>> >>>>>>>>> On Mon, Nov 3, 2014 at 3:20 PM, Harshan Liyanage <[email protected] >>>>>>>>> > wrote: >>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> Please find the attached proposed device operations flow of CDM. >>>>>>>>>> Your suggestions & feedback is highly appreciated. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> >>>>>>>>>> Best Regards, >>>>>>>>>> >>>>>>>>>> Lakshitha Harshan >>>>>>>>>> Software Engineer >>>>>>>>>> Mobile: *+94724423048* >>>>>>>>>> Email: [email protected] >>>>>>>>>> Blog : http://harshanliyanage.blogspot.com/ >>>>>>>>>> *WSO2, Inc. :** wso2.com <http://wso2.com/>* >>>>>>>>>> lean.enterprise.middleware. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Inosh Perera >>>>>>>>> Software Engineer, WSO2 Inc. >>>>>>>>> Tel: 0785293686 >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> > -- ------------------------------ *Sameera Perera* Director of Engineering gtalk: [email protected] Tel : 94 11 214 5345 Fax :94 11 2145300 *WSO2, Inc.* <http://wso2.com/> lean.enterprise.middleware
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
