Hi Dilan,
The main reason why we send a platform specific payload to the device is
because the Device might not be capable of performing intelligent filtering
as required. In the case of Android - we can do it because of our agent.
But for iOS/Windows this is not possible cause the MDM operations are
handled by the OS as mentioned by Nira and Sameera. Further more for OMA DM
protocol supporting devices would require a specific payloads from the
server.

Cheers~

On Sat, Nov 22, 2014 at 9:20 AM, Niranjan Karunanandham <[email protected]>
wrote:

> Hi Dilan,
>
> In the case of iOS, it has the MDM in its OS and they have defined the
> payload structure for each operation. Whereas in the case of Android, we
> have an agent in the client side to perform the MDM operation. I believe
> (please correct me if am wrong) that for windows also it is the same case
> as iOS.
>
> Regards,
> Nira
>  On 22 Nov 2014 22:41, "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
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>
>> _______________________________________________
>> Architecture mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Chan (Dulitha Wijewantha)
Software Engineer - Mobile Development
WSO2 Inc
Lean.Enterprise.Mobileware
 * ~Email       [email protected] <[email protected]>*
*  ~Mobile     +94712112165*
*  ~Website   dulitha.me <http://dulitha.me>*
*  ~Twitter     @dulitharw <https://twitter.com/dulitharw>*
  *~Github     @dulichan <https://github.com/dulichan>*
  *~SO     @chan <http://stackoverflow.com/users/813471/chan>*
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to