When youíre first starting off as a BlackBerry developer youíve got quite a few decisions to make. One of the most pressing will probably be which application programming interface -- or API -- you choose. Simply put, an API is a set of routines, data structures, object classes, and/or protocols that are provided by libraries or operating system services. So much importance is placed on choosing the right API because essentially, it will serve as your foundation and it will support the building of all of your BlackBerry applications. Letís find out more about APIs and find out the specifics on both the RIM and JAVA ME API.
An API can either be language dependent or language independent. In order to make the API as convenient as possible, language dependent APIs are only available in a particular programming language and only use specific syntax and elements of the programming language. Language independent APIs, on the other hand, are written in a way that makes them accessible in several different programming languages. Typically language independent APIs are a desired feature for a service-style API that will not be bound to a particular process or system. They are also usually available as a remote procedure call.
An API itself is pretty abstract in the way that it specifies an interface and controls the behavior of the objects specified in that interface. The software that provides the functionality described by an API is said to be an implementation of the API. Also, keep in mind that an API is usually defined in terms of the programming language that was used to build the application. The related term, ABI (Application Binary Interface), is a lower level definition concerning details at the Assembly language level.
BlackBerry API (RIM API)
The mobile phone industry is constantly redefining itself with more features and computing power, and no one knows this better than Research in Motion, which is the maker of the ever-popular BlackBerry. RIM also knows that the API is the heart of the development platform, which is why the company is allowing third-party developers to create new applications for their devices using their API.
Essentially, the RIM API is a collection of classes that allows you to provide effective security for your customized BlackBerry application regardless of its scope or complexity. The API is very robust and flexible so that you can accomplish each task in a number of different ways, depending on the needs of your application. These RIM classes have been added to the BlackBerry Java Development Environment, which has since been downloaded by over 125,000 developers. RIM is also planning to release additional APIs, for messaging and 3D graphics, in the near future.
Using the RIM API you can encrypt and decrypt data, and digitally sign and verify data, which also allows you to secure the integrity of your data. You can authenticate data as well. This is pretty standard for an API, but because itís created by the same company for which youíre going to develop apps, you should run into few problems. As mentioned previously, the RIM API consists of several different components.
The Secure Messaging API contains the CMS (Cryptographic Message Syntax) API and provides the functionality needed to create a secure messaging application. The Secure Connection API contains the TLS (Transport Layer Security), WTLS (Wireless Transport Layer Security), and SSL (Secure Sockets Layer) APIs and provides the functionality required to create and manage secure connections between client and server. Together, these two APIs define the protocol functionality since they contain the code necessary for implementing secure communication.
The Key Management API contains the basic cryptographic framework needed to create secure applications. Key management and distribution are handled by the KeyStore API, while keys are encoded using the Encoding API. The Certificate API contains the functionality necessary for managing cryptographic certificates. The OID (Object Identifier) API contains the functionality necessary for handling and using some popular Object IDs. The ASN.1 (Abstract Syntax Notation) API provides a mechanism to format and parse data that is commonly needed with cryptographic schemes and protocols.
At the lowest level, the Cryptographic Primitives API contains the most basic tools needed to implement the cryptographic utilities. This API contains the keys, MACS (Message Authentication Codes), ciphers and other functionality associated with both symmetric and public cryptography. In addition, this API contains the "unkeyed" algorithms such as digests and PRNGs (Pseudo Random Number Generators) needed by other members in the API.
It seems as if the RIP API was made specifically to target security, so if youíre a developer who is trying to incorporate security into their applications, the RIM API is for you. You donít even need to have a working knowledge of security concepts or low level programming, as the API assists with all of this. The RIM API can also be used to provide security for any project, no matter the size or complexity. When incorporating the various levels of granularity into the API, the system becomes extremely customizable and extremely flexible.
In addition to its unique security benefits, there are many other APIs that should be of interest to the developer as well, including the ability to integrate with native BlackBerry applications, available UI elements that successfully replicate the look and feel of other BlackBerry applications, Messaging APIs, and much more.