Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
AG Unified Push - Use Cases

#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 a "push App" (a logical abstraction for all push enabled views(mobile apps))
  • Developer can add a mobile view (application) for different operation systems (and their different Push Networks)
  • Developer can remove a mobile view (application)
  • Developer can unregister "push App"
  • 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
  • Admin can disable push notifications to devices

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....

Register Push Apps

A registered Developer can register multiple Push-Apps with the AeroGear Push Server. Each app has a (generated) AeroGear-Application-Key to identify the "server side" representation of the Push-App. Each Push-App can have several mobile views (e.g. one iOS app, one Android app) that receives messages from the server.

Add mobile app

A specific mobile view/representation of the server side Push-app. The (abstract) mobile app 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 Push and mobile app

A registered Developer should be able to remove the push apps and/or some of their mobile-views (mobile 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

uninstall

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...

access removed

Admin can disable push notifications to devices

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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment