Hi Dilan, Yes. you are correct.
Thanks, Lakshitha Harshan Software Engineer Mobile: *+94724423048* Email: hars...@wso2.com 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 <dil...@wso2.com> 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 <hars...@wso2.com> > 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: hars...@wso2.com >> 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 <dil...@wso2.com> >> 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 <hars...@wso2.com> >>> 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: hars...@wso2.com >>>> 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 <ino...@wso2.com> 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 <hars...@wso2.com> >>>>> 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: hars...@wso2.com >>>>>> 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 Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture