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 >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >>
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
