<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Apr 11, 2013 at 1:44 PM, Kris Borchers <span dir="ltr">&lt;<a href="mailto:kris@redhat.com" target="_blank">kris@redhat.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">I agree with most of this but have a few comments/suggestions inline.<div><br><div><div class="im">
<div>On Apr 11, 2013, at 4:49 AM, Matthias Wessendorf &lt;<a href="mailto:matzew@apache.org" target="_blank">matzew@apache.org</a>&gt; wrote:</div><br><blockquote type="cite"><div dir="ltr"><h1 style="font-size:28px;margin:0px 0px 10px;padding:0px;font-family:Helvetica,arial,freesans,clean,sans-serif">
</h1><h1 style="font-size:28px;margin:0px 0px 10px;padding:0px">AeroGear Connectivity</h1><p style="margin:0px 0px 15px;font-size:13.63636302947998px;font-weight:normal;line-height:20px">The connectivity part in AeroGear (name: <em>AeroGear Connectivity Server</em>?) is responsible to deliver messages from the server to the client. It contains two <em>different</em> components:</p>

<ul style="margin:15px 0px;padding:0px 0px 0px 30px;font-size:13.63636302947998px;font-weight:normal;line-height:20px"><li>Device Push</li><li>Web Push</li></ul></div></blockquote></div>I am not a fan of this naming. I feel like it is confusing. I think Device Push should just be Push and Web Push should be something different to show it is different. Maybe something simple like PubSub since that&#39;s basically what it is.</div>
</div></div></blockquote><div><br></div><div style>Oh, yeah - as usually, I don&#39;t really care on names that much :)</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><div><div><div class="im"><br><blockquote type="cite"><div dir="ltr"><p style="margin:15px 0px;font-size:13.63636302947998px;font-weight:normal;line-height:20px">
The <strong>Web Push</strong> offers a low-latency message deliver from the server to <em>connected</em> clients, while the <strong>Device Push</strong> delivers notification-style messages to an explict application, deployed on a mobile device.</p>

<h2 style="margin:20px 0px 10px;padding:0px;font-size:24px;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(204,204,204)"><a name="13df8ea34079f555_device-push" href="https://gist.github.com/matzew/17f793e4be11473423d2#device-push" style="color:rgb(65,131,196);text-decoration:none;display:block;padding-left:30px" target="_blank"></a>Device Push</h2>
<p style="margin:0px 0px 15px;font-size:13.63636302947998px;font-weight:normal;line-height:20px">Push Notifications can be send to an explicit application (or even a specific installation), deployed on a mobile device, wheter the application is running or not. Push Messages are <strong>not</strong> intented to deliver large messages, nor in a low-latency fashion. They are more notification-style messages. The latency can not be controlled, since the actual message delivery, to the phone, is controlled by the actual <em>Push Network</em>.</p>
<p style="margin:15px 0px;font-size:13.63636302947998px;font-weight:normal;line-height:20px">The AeroGear server submits messages, for a certain mobile app, to such a <em>Push Network</em> (like APNs or GCM). Different<em>Push Networks</em> have different limitations and restrictions, regarding message size, etc. Most <em>Push Networks</em> queue the message for offline devices (e.g. no connection, no roaming or device switched off). Once they are back online the message are delivered. Since these messages can become <em>stale</em> the <em>Push Network</em> allow to specify an expiry time.</p>

<h3 style="margin:20px 0px 10px;padding:0px;font-size:18px"><a name="13df8ea34079f555_supported-client-platforms" href="https://gist.github.com/matzew/17f793e4be11473423d2#supported-client-platforms" style="color:rgb(65,131,196);text-decoration:none;display:block;padding-left:30px" target="_blank"></a>Supported client platforms</h3>
<p style="margin:0px 0px 15px;font-size:13.63636302947998px;font-weight:normal;line-height:20px">Initially we are supporting the following platforms:</p><ul style="margin:15px 0px;padding:0px 0px 0px 30px;font-size:13.63636302947998px;font-weight:normal;line-height:20px">

<li>Android</li><li>iOS</li></ul><p style="margin:15px 0px;font-size:13.63636302947998px;font-weight:normal;line-height:20px"><em><strong>Note</strong></em>: The above platforms includes hybrid containers, such as Apache Cordova!</p>
<p style="margin:15px 0px;font-size:13.63636302947998px;font-weight:normal;line-height:20px">In the future we may add support for more platforms, such as:</p><ul style="margin:15px 0px;padding:0px 0px 0px 30px;font-size:13.63636302947998px;font-weight:normal;line-height:20px">

<li>Firefox OS</li><li>Blackberry</li><li>Windows</li></ul><p style="margin:15px 0px;font-size:13.63636302947998px;font-weight:normal;line-height:20px"><em><strong>NOTE</strong></em>: One thing to have in mind, that there will be (eventually) a JS API, which allows a server to deliver messages to a JS application, deployed on any phone. <strong>However</strong>, it may take very long to get a unified standard, that works accross the different devices. Platforms like Firefox OS address this already, but only for one specific device type</p>
<div><br></div></div></blockquote></div>We can discuss this more in our meeting but I would like to suggest implementing a JS SimplePush pollyfill now! We could follow this emerging spec from FFOS (<a href="https://wiki.mozilla.org/WebAPI/SimplePush" target="_blank">https://wiki.mozilla.org/WebAPI/SimplePush</a>) which they plan to implement in FF mobile and desktop later this year.</div>
</div></div></blockquote><div><br></div><div style>sounds good</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">
<div><div> We would need to build the server side piece into our unified push server</div></div></div></blockquote><div><br></div><div style>yup - that&#39;s not hard; it&#39;s similar to what we have for iOS and Android; It just uses a different PushNetwork to submit to;</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div> bits but I think the effort would be worth it to provide a cross-browser solution for push on the web which could be transitioned to the native browser push when ready.<br>
</div></div></div></blockquote><div><br></div><div><br></div><div style>early on ! :)) sounds good!</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">
<div><div><blockquote type="cite"><div class="im"><div dir="ltr"><div>
<h2 style="margin:20px 0px 10px;padding:0px;font-size:24px;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(204,204,204)"><a name="13df8ea34079f555_web-push" href="https://gist.github.com/matzew/17f793e4be11473423d2#web-push" style="color:rgb(65,131,196);text-decoration:none;display:block;padding-left:30px" target="_blank"></a>Web Push</h2>
<p style="margin:0px 0px 15px;font-size:13.63636302947998px;font-weight:normal;line-height:20px">The <em>Web Push</em> allows a low-latency message exchange between <em>connected</em> (read: <em>online</em>) clients and the server. This is usually realized with technologies like WebSocket (or robust fallbacks like SockJS). Once a client application connects, it can exchange (receive and send) messages with the server (and other clients). Messages have no restrictions in terms of size of content (JSON, binary). While technoques like SockJS provide a <em>socket connection</em> between the client and the server, it is desired to have a more high-level API, to be used for the communication (e.g. Stomp).</p>
<p style="margin:15px 0px;font-size:13.63636302947998px;font-weight:normal;line-height:20px">Initially, Clients that are offline are <strong>NOT</strong> receiving messages. Messages are not persisted and stored, to be delivered later.</p>

<h3 style="margin:20px 0px 10px;padding:0px;font-size:18px"><a name="13df8ea34079f555_supported-client-platforms-1" href="https://gist.github.com/matzew/17f793e4be11473423d2#supported-client-platforms-1" style="color:rgb(65,131,196);text-decoration:none;display:block;padding-left:30px" target="_blank"></a>Supported client platforms</h3>

<ul style="margin-top:15px;margin-right:0px;margin-left:0px;padding:0px 0px 0px 30px;font-size:13.63636302947998px;font-weight:normal;line-height:20px;margin-bottom:0px!important"><li>Android (Java client library)</li><li>

iOS (ObjC client library)</li><li>JavaScript (JS client library, to be used in browsers and hybrid containers)</li></ul><h1 style="font-size:28px;margin:0px 0px 10px;padding:0px;font-family:Helvetica,arial,freesans,clean,sans-serif">

<br></h1><div><span style="font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:14px;line-height:20px">Thoughts? The original gist is store here: </span></div><div><font face="Helvetica, arial, freesans, clean, sans-serif"><span style="font-size:14px;line-height:20px"><a href="https://gist.github.com/matzew/17f793e4be11473423d2" target="_blank">https://gist.github.com/matzew/17f793e4be11473423d2</a></span></font><br>

</div><div><span style="font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:14px;line-height:20px"><br></span></div><div><span style="font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:14px;line-height:20px">-Matthias</span></div>

</div>-- <br>Matthias Wessendorf <br><br>blog: <a href="http://matthiaswessendorf.wordpress.com/" target="_blank">http://matthiaswessendorf.wordpress.com/</a><br>sessions: <a href="http://www.slideshare.net/mwessendorf" target="_blank">http://www.slideshare.net/mwessendorf</a><br>

twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a>
</div></div>
_______________________________________________<br>aerogear-dev mailing list<br><a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a><br><a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a></blockquote>
</div><br></div></div><br>_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Matthias Wessendorf <br>
<br>blog: <a href="http://matthiaswessendorf.wordpress.com/" target="_blank">http://matthiaswessendorf.wordpress.com/</a><br>sessions: <a href="http://www.slideshare.net/mwessendorf" target="_blank">http://www.slideshare.net/mwessendorf</a><br>
twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a>
</div></div>