<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 2, 2014 at 2:59 PM, Summers Pittman <span dir="ltr">&lt;<a href="mailto:supittma@redhat.com" target="_blank">supittma@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 bgcolor="#FFFFFF" text="#000000"><span class="">
    <div>On 12/01/2014 10:57 AM, Sebastien Blanc
      wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr"><br>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Mon, Dec 1, 2014 at 4:46 PM,
            Summers Pittman <span dir="ltr">&lt;<a href="mailto:supittma@redhat.com" target="_blank">supittma@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 text="#000000" bgcolor="#FFFFFF">
                <div>What other companies provide geofencing and what do
                  their APIs look like?<br>
                  I know Google has some stuff for Android buried in
                  Google Play Services.<br>
                  <br>
                  In general I think it might be less big brother if
                  instead of the user reporting their location we add in
                  metadata to filter incoming messages.  This will have
                  us sending more metadata but we don&#39;t have to worry
                  about what if some bad guy compromises the server and
                  start following his mother-in-law.</div>
              </div>
            </blockquote>
            <div>Sorry, I&#39;m not sure to understand the alternative you
              propose.</div>
          </div>
        </div>
      </div>
    </blockquote></span>
    I don&#39;t like the push server knowing every user&#39;s location. </div></blockquote><div><br></div><div>it should know nothing. Instead, the geo data should be stored on a &#39;geo server&#39; component.</div><div><br></div><div>-M</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000"> Instead
    of the push server deciding to send to a user based on her location
    the push server should send a &quot;filter&quot; property with the message the
    client can use to determine if it should show the message.<div><div class="h5"><br>
    <blockquote type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div text="#000000" bgcolor="#FFFFFF">
                <div>
                  <div>
                    <div><br>
                      <br>
                      <br>
                      On 11/27/2014 11:52 AM, Sebastien Blanc wrote:<br>
                    </div>
                  </div>
                </div>
                <blockquote type="cite">
                  <div>
                    <div>
                      <div dir="ltr">
                        <p>Hi Folks !</p>
                        <p>During our last f2f we agreed on adding some
                          geolocation support for the next UnifiedPush
                          Release (1.1). I would like to start here a
                          thread to discuss this topic.</p>
                        <p>Let&#39;s keep in mind : <em>Crawl, Walk, Run</em></p>
                        <p>I would like to start with a concrete
                          proposition and initiate the discussions from
                          there :</p>
                        <h1><a name="14a0b8580f6901e0_14a068869b0a253b_user-content-installations" href="https://gist.github.com/sebastienblanc/d89e41b72c9de537dbde#installations" rel="noreferrer" style="color:rgb(65,131,196);text-decoration:none;display:block;padding-right:6px;padding-left:30px" target="_blank"></a>Installations</h1>
                        <h2><a name="14a0b8580f6901e0_14a068869b0a253b_user-content-model-change" href="https://gist.github.com/sebastienblanc/d89e41b72c9de537dbde#model-change" rel="noreferrer" style="color:rgb(65,131,196);text-decoration:none;display:block;padding-right:6px;padding-left:30px" target="_blank"></a>Model Change</h2>
                        <p>The idea is to add 2 new fields to the <code>Installation</code> Object

                          :</p>
                        <pre style="font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:14px;margin-top:0px;margin-bottom:16px;padding:16px;overflow:auto;line-height:1.45;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;word-wrap:normal;color:rgb(51,51,51);background-color:rgb(247,247,247)"><code style="font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:14px;padding:0px;margin:0px;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;word-break:normal;border:0px;display:inline;line-height:inherit;word-wrap:normal;background:transparent">double longitude;
double latitude;

</code></pre>
                        <p>These field <strong>should</strong> be
                          optional !</p>
                        <h2><a name="14a0b8580f6901e0_14a068869b0a253b_user-content-registration" href="https://gist.github.com/sebastienblanc/d89e41b72c9de537dbde#registration" rel="noreferrer" style="color:rgb(65,131,196);text-decoration:none;display:block;padding-right:6px;padding-left:30px" target="_blank"></a>Registration</h2>
                        <p>When the device registers, along with alias,
                          categories etc ... it will also be possible to
                          pass a latitude and longitude.</p>
                        <p>Later, we will probably offer a endpoint to
                          update these properties. <code>PUT
                            /registry/device/{token}</code></p>
                        <h1><a name="14a0b8580f6901e0_14a068869b0a253b_user-content-sender" href="https://gist.github.com/sebastienblanc/d89e41b72c9de537dbde#sender" rel="noreferrer" style="color:rgb(65,131,196);text-decoration:none;display:block;padding-right:6px;padding-left:30px" target="_blank"></a>Sender</h1>
                        <h2><a name="14a0b8580f6901e0_14a068869b0a253b_user-content-server-side" href="https://gist.github.com/sebastienblanc/d89e41b72c9de537dbde#server-side" rel="noreferrer" style="color:rgb(65,131,196);text-decoration:none;display:block;padding-right:6px;padding-left:30px" target="_blank"></a>Server Side</h2>
                        <p>We need to extend the current sender API to
                          be able to add geolocation as a criteria. I
                          see that as something like :</p>
                        <pre style="font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:14px;margin-top:0px;margin-bottom:16px;padding:16px;overflow:auto;line-height:1.45;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;word-wrap:normal;color:rgb(51,51,51);background-color:rgb(247,247,247)"><code style="font-family:Consolas,&#39;Liberation Mono&#39;,Menlo,Courier,monospace;font-size:14px;padding:0px;margin:0px;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;word-break:normal;border:0px;display:inline;line-height:inherit;word-wrap:normal;background:transparent">{
  &quot;message&quot;:{
    &quot;alert&quot;:&quot;HELLO!
  },
  &quot;criteria&quot;:{
   &quot;geolocation&quot;:
       {
      &quot;latitude&quot; : 40.2566
      &quot;longitude&quot;: 2.36556
      &quot;within&quot; : 5 
      &quot;unit&quot; : &quot;Km&quot; // optional, default is Km  
       }
  }
}

</code></pre>
                        <p>In this example, the Push Notification will
                          be sent only to devices within a radius of 5
                          km of the supplied location.</p>
                        <p>On the implementation side, I think it make
                          sense to use Hibernate Search since it has
                          nice support for<a href="https://docs.jboss.org/hibernate/search/4.2/reference/en-US/html/spatial.html" rel="noreferrer" style="color:rgb(65,131,196);text-decoration:none" target="_blank">Spatial queries</a>.</p>
                        <h2><a name="14a0b8580f6901e0_14a068869b0a253b_user-content-sender-client" href="https://gist.github.com/sebastienblanc/d89e41b72c9de537dbde#sender-client" rel="noreferrer" style="color:rgb(65,131,196);text-decoration:none;display:block;padding-right:6px;padding-left:30px" target="_blank"></a>Sender Client</h2>
                        <p>The different Sender Clients (Java, Node.js,
                          .net) should be updated accordingly.</p>
                        <h1><a name="14a0b8580f6901e0_14a068869b0a253b_user-content-client-sdks" href="https://gist.github.com/sebastienblanc/d89e41b72c9de537dbde#client-sdks" rel="noreferrer" style="color:rgb(65,131,196);text-decoration:none;display:block;padding-right:6px;padding-left:30px" target="_blank"></a>Client SDKs</h1>
                        <p>In this fisrt iteration, the registration
                          code would to be updated to include latitude
                          and longitude for :</p>
                        <ul>
                          <li>iOS (Including Safari ? )</li>
                          <li>Android ( Including Chrome Apps ?)</li>
                          <li>JS UPS-SPS Lib</li>
                          <li>Cordova Plugin</li>
                          <li>Amazon</li>
                          <li>Windows</li>
                        </ul>
                        <p>Retrieving the current position of the device
                          is not in scope of this first version, later
                          we could offer some features around that.</p>
                        <p>There are some jiras to track these tasks : <a href="https://issues.jboss.org/browse/AGPUSH-828" rel="noreferrer" style="color:rgb(65,131,196);text-decoration:none" target="_blank">https://issues.jboss.org/browse/AGPUSH-828</a></p>
                        <p>Comments and questions welcome !</p>
                        <p>Sebi</p>
                      </div>
                      <br>
                      <fieldset></fieldset>
                      <br>
                    </div>
                  </div>
                  <span>
                    <pre>_______________________________________________
aerogear-dev mailing list
<a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a></pre>
                  </span></blockquote>
                <span><font color="#888888"> <br>
                    <br>
                    <pre cols="72">-- 
Summers Pittman
&gt;&gt;Phone:<a href="tel:404%20941%204698" value="+14049414698" target="_blank">404 941 4698</a>
&gt;&gt;Java is my crack.
</pre>
                  </font></span></div>
              <br>
              _______________________________________________<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><br>
            </blockquote>
          </div>
          <br>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      <pre>_______________________________________________
aerogear-dev mailing list
<a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a></pre>
    </blockquote>
    <br>
    <br>
    <pre cols="72">-- 
Summers Pittman
&gt;&gt;Phone:404 941 4698
&gt;&gt;Java is my crack.
</pre>
  </div></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><div class="gmail_signature">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></div>