IT tutorials
 
Mobile
 

BlackBerry Application Data Push : How the Application Data Push Process Works

4/12/2013 9:37:43 PM
- How To Install Windows Server 2012 On VirtualBox
- How To Bypass Torrent Connection Blocking By Your ISP
- How To Install Actual Facebook App On Kindle Fire

1. Why Push Is Important to BlackBerry Developers

BlackBerry users are familiar with and comfortable knowing that, when they need their data, it is available on their device. With third-party or enterprise applications, mobile users are used to opening an application, entering some information on screen, and clicking a button to make the device connect to one or more servers to retrieve the requested data.

For mobile users who need access to a large amount of data to work with locally (on the device), companies have used the BlackBerry Desktop application programming interface (API) to create the conduit device an application needs to synchronize data to a device connected to the network using the BlackBerry Desktop Manager. To perform a similar synchronization over the air, developers can use the BlackBerry Sync Server SDK to create a connector that synchronizes data with a device application through the Synchronization Service on the BES.

The game-changing feature of the BlackBerry platform is the ability the BES has to push application data to any device application. For a mobile application, instead of having a user open an application and request the data or building the application so it schedules a periodic pull of data (even when new data might not be available) from a server, the application receives its data by having it pushed directly to the application when it becomes available.

Both BlackBerry application types (Browser and Java) can receive data via push.

The ability to push data directly to BlackBerry applications has many dramatic and powerful effects:

  • Data can be sent to devices only when there is new data available, rather than requiring that the user check for new data or having the application pull data on a schedule.

  • Data can be sent to the device off-hours, on a schedule maintained by the server application or even configured by the user. This allows a server to distribute the load over time and, therefore, eliminates most peak loads on an application server and BES. By sending the data off-hours, there is no disruption of the other tasks the user might be performing on the device.

  • Because the data is only sent when there’s new data to send, the device is not connecting to the server repeatedly looking for new data. This reduces the amount of data the device transmits, receives, and processes.

  • Because the device does less work (sending less data across the network), a user gets greater life out of a battery charge.

There is no reason that an application can’t also request data on demand when the users want it. In this case, push can populate background information or data that the application knows the mobile user needs. The application can still request additional information when the data it needs is not on the device.

2. How the Application Data Push Process Works

Although each push option works in a slightly different manner, Figure 1 shows the data push process at a high level.

Figure 1. BlackBerry application data push process

To push data to a BlackBerry application, the following steps are performed:

1.
An application creates the data that needs to be pushed to one or more devices and then sends the data to a server. The server can be inside or outside the firewall, depending on the push option being used.

2.
The server verifies the identity of the target recipients.

3.
The server notifies the push application that the data has been accepted.

4.
The server sends the data to the BlackBerry infrastructure.

5.
The BlackBerry infrastructure delivers the data to the device.

6.
The device receives the pushed data and returns an acknowledgment that it received the data.

7.
The BlackBerry infrastructure receives the notification from the device and forwards it to the push server.

8.
The push server returns the notification to the push application.

If the mobile user is out of coverage, the data might still be delivered when the device reappears, as long as it is within certain defined time limits.The BlackBerry infrastructure queues requests for a limited amount of time and delivers them when the device returns to coverage. When building a push application, developers must take into account that the device might not be available when the push is sent. The push request can be set up so the push application is notified when the data arrives on the device, and the push application can push the data again if the notification is not received within an expected amount of time.

3. Common Questions About Push

The concept of true application data push is unique to the BlackBerry platform; it’s not a common capability found on mobile devices. When many developers are first exposed to the BlackBerry application data push, some common questions seem to pop up every time:

Where does the push application run?

The push application can run anywhere.

Regardless of whether you’re pushing to internal or external users, the only requirements are that the system running the push application has access to the data it needs to send and that it has the ability to communicate over the network (via HTTP) with the server that is processing the push request (the BES or the RIM Push Infrastructure). The application can run on a desktop computer sitting under a developer’s desk, or it can run on an application server sitting in a corporate data center. The push application can, although it’s not recommended, run on a BlackBerry, Windows Mobile device, or even an iPhone.

For enterprise push applications, the push application also should not be installed on the BES. It sends data to the BES, but it should not be running on the BES or servers hosting any components of the BES or MDS.

What programming languages can I use to write push applications?

Any development language can be used.

Push applications can be written in any computer language, as long as the language supports the technologies required for push. As you’ll see later, the only requirement for a push application is that it is able to communicate with a server via HTTP. There are push applications deployed that are written in PHP, ASP.NET, Python, Java, Visual Basic, C#, and even Delphi.

When should the data be sent to target devices?

Anytime that is appropriate for the target audience.

It’s up to the developer writing the push application to decide when the pushed data should be sent to target devices. Data is typically sent based on a schedule or trigger defined by the business requirements for the application. The data can be sent on schedule; every morning at 7:00 A.M., for example. The data can be sent on a trigger—data can be sent whenever specific changes are made to the data or a specific event occurs.

All that matters is that the developer is careful about how often the data is pushed. Although push typically reduces the amount of data sent to/from a device by removing the need for the application to periodically check for updates, you can still reduce battery performance or increase data plan usage if data is pushed more often than needed. Send the data only when it’s important to send it and try to batch updates to minimize how often data is sent.

If the application is pushing data to a Java application running on the destination device, the push application can just push new or updated data rather than the full data set with every push. The client-side application or application user can be responsible for purging older data.

Can pushed content be customized per destination user or group of users?

Yes. The push application is created based on the needs of the application user. Whether the pushed data is customized for every recipient or the same data is sent to everyone, it is a decision the developer makes when building the push application.

If the information is general and applicable to an entire team (sales promotions, business unit performance against a quota, industry news), send the same data to everyone. If the data being sent is relevant to a single user or group of users, the push application must build a set of data for them and push it before building the data for the next set of users.

4. Pushing to Internal Versus External Users

Internal recipients are BlackBerry users whose device has been activated against a corporate BES. The devices have a BlackBerry Enterprise data plan from their wireless carrier, get corporate email and other PIM data synchronized wirelessly via the BES and have access to internal systems via MDS.

Until recently, data push was only available to internal recipients. RIM recently released products that support pushing data to external recipients (either personal or consumer devices) through Web Signals and the Java Push APIs.

External recipients refer to users whose BlackBerry devices are not under the direct control of the organization pushing the data. They might be BES connected users, but they would be connected to a BES located inside some other corporation’s firewall. The external user definition also covers mobile, BlackBerry-carrying users who might only use their device to access personal email accounts and web browsing through the BlackBerry Internet Service (BIS).

 
Others
 
- Windows Phone 8 : Controls - Data Binding (part 4) - Control Templates
- Windows Phone 8 : Controls - Data Binding (part 3) - Data Binding Errors
- Windows Phone 8 : Controls - Data Binding (part 2) - Improving Scrolling Performance, Binding Formatting, Converters
- Windows Phone 8 : Controls - Data Binding (part 1) - Simple Data Binding, Using a DataTemplate
- iPhone SDK 3 : Making Connections with GameKit and Bonjour - iPhone to iPhone Gaming Via BonjourHelper
- iPhone SDK 3 : Making Connections with GameKit and Bonjour - Working Around Real-World GameKit Limitations
- Android : Getting Fancy with Lists - Interactive Rows
- Android : Getting Fancy with Lists - Better. Stronger. Faster.
- Windows Phone 7 : Designing the Game Framework (part 3) - The GameHost Class
- Windows Phone 7 : Designing the Game Framework (part 2) - The TextObject Class
 
 
Top 10
 
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 2) - Wireframes,Legends
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 1) - Swimlanes
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Formatting and sizing lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Adding shapes to lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Sizing containers
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 3) - The Other Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 2) - The Data Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 1) - The Format Properties of a Control
- Microsoft Access 2010 : Form Properties and Why Should You Use Them - Working with the Properties Window
- Microsoft Visio 2013 : Using the Organization Chart Wizard with new data
programming4us programming4us
 
Popular tags
 
Video Tutorail Microsoft Access Microsoft Excel Microsoft OneNote Microsoft PowerPoint Microsoft Project Microsoft Visio Microsoft Word Active Directory Biztalk Exchange Server Microsoft LynC Server Microsoft Dynamic Sharepoint Sql Server Windows Server 2008 Windows Server 2012 Windows 7 Windows 8 Adobe Indesign Adobe Flash Professional Dreamweaver Adobe Illustrator Adobe After Effects Adobe Photoshop Adobe Fireworks Adobe Flash Catalyst Corel Painter X CorelDRAW X5 CorelDraw 10 QuarkXPress 8 windows Phone 7 windows Phone 8 BlackBerry Android Ipad Iphone iOS