NEXT: impl for testing + REST API endpoints
On Wed, Mar 13, 2013 at 2:28 PM, Matthias Wessendorf <matzew(a)apache.org>wrote:
Some more APIs, for some basic (initial) functionality:
https://gist.github.com/matzew/c5fbc23bc97dfead46e1
User/Dev enrollment can be addressed by (hopefully) reusing the
ag-security.
On Wed, Mar 13, 2013 at 11:15 AM, Matthias Wessendorf <matzew(a)apache.org>wrote:
> Hi,
>
> I have updated the gist to reflect Bruno's use-case. I also did a little
> differentiation on "push apps" and "mobile app"
>
> TL;DR:
> Push App: my backend that sends messages to several mobile apps, on a
> device (think: twitter backend)
> Mobile App: an iOS/android version of the mobile view (think:
> twitter-iOS)
> MobileInstance: a real installed version of the iOS version (think:
> Matthias has the twitter-iOS app installed)
>
> The BASIC domain model for the "application abstraction", is covered in
> here:
>
>
https://gist.github.com/matzew/3e7e6218d6cea94f65ad
>
>
>
> -Matthias
>
>
> On Wed, Mar 13, 2013 at 8:31 AM, Bruno Oliveira <bruno(a)abstractj.org>wrote:
>
>> Great info here Matthias, I'd like to test these scenarios with
>> PicketLink. And thinking aloud here what about scenarios like:
>>
>> - Admin can disable push notifications to devices (simple as is at first
>> glance initially)
>>
>>
>> --
>> "The measure of a man is what he does with power" - Plato
>> -
>> @abstractj
>> -
>> Volenti Nihil Difficile
>>
>>
>>
>> On Tuesday, March 12, 2013 at 7:50 AM, Matthias Wessendorf wrote:
>>
>> > Hi,
>> >
>> > after two weeks of prototyping and evaluating, I started the design
>> phase of the AG Unified Push Server.
>> >
>> > I created a GIST [1] that defines the INITIAL (not final) first DRAFT
>> of the supported use cases. Yes, they are very minimal :), but once we have
>> something running, we can add more features. Please review and comment
>> here...
>> >
>> > (COPY AND PAST FROM GIST):
>> >
>> > AG Unified Push - Use Cases
>> >
>> > Right now there are the following roles:
>> >
>> > Developer: Some one that setup up the backend for different mobile
>> applications, to enable push (e.g. iOS certs or Google API keys(more later)
>> > User: Install an AG-App on his phone
>> > Admin needed? yes, once we have a management user interface. NOT part
>> of the first iteration....
>> >
>> > Use Cases
>> >
>> > Below are the BASIC use-cases, that the AG Unified Push needs to
>> initially support.
>> >
>> > Enroll AeroGear-Push-User (based on identified roles)
>> > Remove AeroGear-Push-User
>> > Developer can register mobile App (for different Push Networks, e.g.
>> Apple, Android)
>> > Developer can unregister mobile App (for different Push Networks, e.g.
>> Apple, Android)
>> > User registers his phone with the backend (Device Token + APP-ID are
>> send to the backend)
>> > User unregisters his phone with the backend (e.g. app got deinstalled,
>> user deleted etc)
>> > User receives Push Messages (handled by the native OS, once accepted
>> to receive messages)
>> > Send push messages, done by a user or a developer
>> >
>> > Enroll
>> >
>> > Register different user types (based on desired role) with the
>> AG-Unified-Push server. The Developer role always requires a
>> username/password. The User is not always required on the server. Some
>> mobile apps don't know the concept of a logged in user (e.g. Sport
>> Broadcast apps), but others do require a User before using the mobile app
>> (e.g. Twitter)
>> >
>> > Remove registered User
>> >
>> > It should be possible to remove Users (app users). That can me their
>> account is erased or their device tokes are removed....
>> >
>> > Add mobile app
>> >
>> > A registered Developer can register multiple Apps with the AeroGear
>> Push Server. Each app has a (generated) AeroGear-Application-Key, besides
>> that, the logical concept of a APP, on the server, requires access to the
>> Push Networks (Google or Apple). Therefore such a registered APP needs a
>> certificate and passphrase (iOS) or a Google API key (Android)
>> >
>> > Remove mobile app
>> >
>> > A registered Developer should be able to remove the apps from the
>> server.
>> >
>> > Device Registration
>> >
>> > Once a User installs and launches the mobile app, the embedding OS
>> generates a Device-Token (or Registration ID on Android). The mobile
>> Application needs to send this Token/ID and the AeroGear-Application-Key to
>> the AeroGear Server, so that the server can register this phone/app with
>> the particular app, to be able to receive push messages.
>> >
>> >
>> > Note: On iOS the user as to agree to receive push messages
>> >
>> > Remove registered Device
>> >
>> > If an app gets uninstalled, the phone is no longer able to receive
>> push messages. Therefore inactive Device-Tokens/Registration-IDs should be
>> removed, on the server. However... there is no harm if invalid keys are
>> used, on the server, when trying to send push messages...
>> >
>> > Receives Push Messages
>> >
>> > Every installed app, is able to receive Push Messages through the
>> APIs, offered by the platforms (iOS, Android). Initially there will be NO
>> client SDK.
>> >
>> >
>> > Note: On iOS the user as to agree to receive push messages
>> >
>> > Send push messages
>> > Broadcast
>> >
>> > The Unified Push server acts as a broker to deliver messages (via
>> Native Push) to several devices. Authorized Users (based on their roles)
>> can send push messages to a specific application. For instance a Developer
>> that ONLY owns "AeroGear-App1" is only able to broadcast messages to
that
>> particular app. He is NOT able to send a message to "AeroGear-App2"...
>> >
>> > Filtered messaging
>> >
>> > Sending message to a specific user.... We need a DSL to filter users
>> etc.... This will be done later...
>> >
>> > In-APP messaging
>> >
>> > Later, there will be an option to have the app also submit push
>> messages, to broadcast to other users of the app (or to a specific user).
>> This will be done later...
>> >
>> > API access
>> >
>> > Initial focus is that the above functionality is ONLY accessable via
>> RESTful/HTTP APIs!
>> >
>> >
>> > Later we will have a few more SDKs:
>> >
>> > Client APIs (for Android, iOS)
>> > Server APIs (send a push message out of your JavaEE app, without
>> submitting (manually) the HTTP calls)
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > Cheers!
>> > Matthias
>> >
>> > [1]
https://gist.github.com/matzew/7475652fa3b0cbb11c1c
>> > --
>> > Matthias Wessendorf
>> >
>> > blog:
http://matthiaswessendorf.wordpress.com/
>> > sessions:
http://www.slideshare.net/mwessendorf
>> > twitter:
http://twitter.com/mwessendorf
>> > _______________________________________________
>> > aerogear-dev mailing list
>> > aerogear-dev(a)lists.jboss.org (mailto:aerogear-dev@lists.jboss.org)
>> >
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>
>>
>>
>> _______________________________________________
>> aerogear-dev mailing list
>> aerogear-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>
>
>
>
> --
> Matthias Wessendorf
>
> blog:
http://matthiaswessendorf.wordpress.com/
> sessions:
http://www.slideshare.net/mwessendorf
> twitter:
http://twitter.com/mwessendorf
>
--
Matthias Wessendorf
blog:
http://matthiaswessendorf.wordpress.com/
sessions:
http://www.slideshare.net/mwessendorf
twitter:
http://twitter.com/mwessendorf