
BlackBerry OS: the next monster?
With Research In Motion’s revenue growth, its embrace of Java and a killer deal with BT Cellnet, BlackBerry OS now looms on the horizon.
by bryan morgan
May/June 2001
Not all great technologies issue from Silicon Valley. Waterloo, Ontario-based Research In Motion Ltd. has developed the promising BlackBerry OS and manufactured a line of popular handhelds that were among the first to support wireless e-mail. RIM BlackBerry devices today offer an e-mail solution but also serve as a crucial building block for more in-depth enterprise applications. How popular are they? One encouraging factoid: The company reported a 4Q 2000 revenue increase of 249 percent over the previous year.
Still, the Palm OS - used by Palm Inc., Handspring Inc., Sony, Symbol Technologies and other major vendors - grabs developers’ attention. And not without reason: While RIM counts more than 164,000 BlackBerry subscribers at 7,800 companies, Goldman Sachs estimates that figure accounts for only about three percent of the global personal digital assistant market. Devices running on Palm OS dominate the global PDA market with 87 percent share.

These numbers may be comparing apples and oranges. RIM users value constant connectivity and instant access - something most PDAs cannot provide. The only other wireless PDA sold in North America is the Palm VII, which has about 175,000 subscribers, with another 75,000 Palm users accessing service through outside parties including OmniSky Corp., AT&T Wireless and GoAmerica Inc., among others. So, while the market share comparison appears daunting, the subscriber comparison - 164,000 vs. 250,000 - clearly shows that RIM is an attractive platform for developers.
There’s more: RIM has been laying the groundwork for the future of the BlackBerry platform. A recent deal with BT Cellnet will deliver 175,000 general packet radio services-equipped BlackBerry devices to the U.K. carrier. Software partnerships with mobile industry leaders such as Pumatech Inc., AvantGo Inc. and GoAmerica underscore the attractiveness of the RIM platform going forward. So let’s look at current devices and explore the capabilities of the RIM platform and application development options.
RIM devices currently include the 850/950 device, which fits into a pager-sized form factor and includes 4 MB flash memory, an Intel 80386 processor and a 160 x 35 pixel black/white screen, and is powered by a single AA battery. The 857/957 model is a PDA-sized device that includes 5 MB flash memory, an Intel 80386 processor, a 160 x 160 black/white screen, and is powered by a rechargeable lithium battery. The 800 devices run on Motient’s 800 MHz DataTAC network; the 900s commonly are used on the 900 MHz Cingular Mobitex network.
Both series include a graphical user interface that can be accessed via the on-device Qwerty keyboard or trackwheel. The trackwheel, located on the upper right-hand side of the device, scrolls through and selects different applications or user interface elements.
The BlackBerry OS includes features that support the development of advanced applications.
The operating system runs on an Intel 80386 microprocessor and all devices include an embedded RIM wireless modem for wireless data access on the Cingular Wireless and Motient networks. This OS, unlike the Palm OS, supports multitasking and multithreaded applications. Developers familiar with event-driven operating systems such as Windows and the MacOS will be at home in the BlackBerry environment. All applications interact with the underlying operating system (and other applications) through the exchange of event messages. Messages are retrieved off the OS stack through the RimGetMessage() application programming interface, or API, call; if no additional messages are left for other applications to process, the application places the central processing unit into a standby mode, an efficient use of battery power. As with most operating systems, a C language API is provided for direct access to the system. Each BlackBerry C/C++ application is required to define two global variables used by the underlying OS:
· A character array named VersionPtr that contains the application’s name and relevant version info (if desired). This string will be displayed when the task switcher is run.
· An integer value named AppStackSize containing the stack size of the application. Messages may be posted either synchronously, where the call is blocked until a response is received from the recipient, or asynchronously, where the message is posted to the queue and the application moves on. Just as C programs provide an initial main() function to kick things off or Windows applications provide a WinMain(), BlackBerry applications must define a PagerMain() initialization function.
A typical application sequence in the C programming language follows:
- PagerMain() function executed. Function prototype: static void PagerMain(void).
- Initialization code completed.
- RimTaskYield() called to intermittently yield to the PagerMain() function of other applications (note that PagerMain() is static).
- Infinite loop begins that consists of calls to RimGetMessage() to retrieve application events.
- Application events are processed inside the loop.
- Once the event loop exists, application shut-down code is run.
Note that all RIM C/C++ applications are compiled using a combination of the BlackBerry C++ Software Developers Kit and Microsoft Visual C++ 5.0 or later. The applications are not compiled as Windows executables. Instead, the Visual C++ project is set to compile your code into a Windows DLL target. RIM documentation says that this DLL is then stripped of extraneous information and ported into the handheld operating system.
The OSPGRMB.DLL library shipped with the SDK allows BlackBerry applications to be debugged natively in a Windows environment in conjunction with the device emulator included with one of the RIM emulators. These emulators can speed developer time and allow C/C++ and Java developers to work in a familiar environment.
The BlackBerry APIs can be grouped into six primary categories:
- The serial communications API: Functions used to send and receive data via the on-board COM port.
- The database/file system API: Functions used to access a record-based database file storage system.
- The keypad API: Three basic functions used to control keypad operations (hot key definition, auto key repeat rate control and key tone control).
- The liquid crystal display API: A comprehensive set of functions used to control display characteristics as well as all basic graphic user interface functionality.
- The radio communications API: Functions used to send/receive data via the on-board wireless modem.
- The system API: Functions used to access and modify all system-specific information, including thread management, task management, battery status checks and memory management functions.
The LCD API supports a number of common GUI elements, including screens, menus, fields, lists, choice boxes, status boxes and dialog boxes. Thus the BlackBerry APIs are powerful and allow the application developer to build a full-featured application that interacts well with others and the underlying operating system.
Java support on RIM devices eventually will come via Java 2 Micro Edition, Mobile Information Device Profile, or, in Java lingo, simply J2ME MIDP. For now, RIM provides a Java Developers Kit that supports a custom application model that differs from the J2ME MIDP specification. This allows developers to get started with Java applications on BlackBerry with a minimal amount of tweaking required when the MIDP-compliant BlackBerry environment is available. But fear not: RIM has announced that Java will become the core platform on all RIM devices. Current plans are to augment J2ME support with vendor-specific classes to handle user-interface idiosyncracies, a wireless radio interface and other platform-specific extensions. These additions will be clearly delineated by including proprietary classes within the net.rim.device package from the core J2ME offering so developers can still use J2ME to build fully cross-platform applications.
Downloading and installing the BlackBerry Java Developer’s Kit will produce the graphical integrated development environment, or IDE. The current application architecture is a bit proprietary but the official 1.0 release of the BlackBerry JDK should fully support the J2ME standard. The JDK currently includes the standard javax.microedition package as well as RIM’s own net.rim.device.api package. Among the interesting features of this package are support for a host of operating system-specific classes (i.e. Bitmap, ApplicationRegistry, Keypad, Radio and PersistentObject). Classes such as net.rim.device.api.system.-mobitex.MobitexInfo provide complete wireless network support from a Java application.
As WAP is a platform-independent standard, there is no WAP development kit, per se, for RIM wireless handhelds. However, a number of software companies have developed WAP browsers for the BlackBerry OS. Visit the following companies online: Neomar (www.neomar.com), GoAmerica (www.goamerica.net) and WolfeTech (www.wolftech.com).
A host of third-party development tools are available for RIM devices, including wireless middleware and enterprise connectivity products:
- Aether Intelligent Messaging (AIM): Middleware for a wide variety of client platforms and wireless networks.
- Cingular Powertool: Software components and architecture for developers working on the Cingular (formerly BellSouth Wireless Data) network.
- Broadbeam Platform: Middleware and hosting platform designed to support a wide variety of client platforms and wireless networks.
- Dynamic Mobile Data MobileSockets SDK: Allows developers to create custom wireless applications leveraging the power and convenience of the Visual C++ and the Visual Basic programming environments.
- iAnywhere Wireless Studio: Gives mobile workers the unique ability to work either on or offline so they have always available access to their data and corporate applications.
- ThinAirApps Server: Application server product designed to give a wide variety of devices access to enterprise data.
This wide developer tool vendor support is an excellent sign that the platform is becoming robust and is a safe bet for your development projects moving forward.
|