BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

Embed Size (px)

Citation preview

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    1/22

    BlackBerry Push Service SDKVersion: 1.0.0.5

    Feature and Technical Overview

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    2/22

    SWD-1014976-0316054039-001

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    3/22

    Contents1 Overview of the BlackBerry Push Service SDK....................................................................................................................... 2

    2 Features......................................................................................................................................................................................... 4

    Two-tiered development model.................................................................................................................................................... 4

    Server-side APIs.............................................................................................................................................................................. 5

    The Commons component..................................................................................................................................................... 5

    The PAP component............................................................................................................................................................... 5The Push component............................................................................................................................................................. 6

    The Push Application Management component................................................................................................................ 6

    The Subscription component................................................................................................................................................ 6

    The Acknowledgment component........................................................................................................................................ 7

    Client-side APIs............................................................................................................................................................................... 8

    Helper applications......................................................................................................................................................................... 8

    Cancellation of pending push messages..................................................................................................................................... 9Querying the status of a push message....................................................................................................................................... 9

    3 Architecture.................................................................................................................................................................................. 10

    Architecture: BlackBerry Push Service framework...................................................................................................................... 10

    Technology stack: BlackBerry Push Service SDK low-level APIs.............................................................................................. 11

    Technology stack: BlackBerry Push Service SDK high-level APIs............................................................................................. 12

    4 Process flows................................................................................................................................................................................ 13

    Process flow: Pushing data to subscribed users through the BlackBerry Infrastructure....................................................... 13

    Process flow: Pushing content to subscribed users through the BlackBerry Enterprise Server............................................ 14

    5 Prerequisites for using the BlackBerry Push Service SDK.................................................................................................... 15

    6 Glossary......................................................................................................................................................................................... 16

    7 Provide feedback........................................................................................................................................................ ................. 17

    8 Legal notice.................................................................................................................................................................................. 18

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    4/22

    Overview of the BlackBerry Push Service SDK 1The BlackBerry Push Service SDK contains a set of Java libraries you can use to develop push applications. It consists of a

    server-side library that exposes the push functionalities of the Push Proxy Gateway at a higher level so that you can focus on

    developing the features of your push application, instead of spending time to learn how to accomplish infrastructure related tasks.

    The libraries are designed to handle complex use cases and implement best practices, thereby removing the need for you to write

    boilerplate code. They provide a consistent programming model that you can follow to develop Push Initiators. The server-side

    library is componentized. There are dependencies among the components and choosing one component might mean you need

    to use one or more of the other components. Typical usage involves either using the components that provide low-level API

    functionalities or using the components that provide high-level API functionalities.

    You can configure the BlackBerry Push Service SDK for public mode or enterprise mode. Public mode allows you to develop push

    applications that use the BlackBerry Push Service in the BlackBerry Infrastructure to send push content to anyone who

    subscribes to your push service (you must register with Research In Motion to use the BlackBerry Push Service). Enterprise mode

    allows you to develop push applications that use the BlackBerry Enterprise Server to send push content to members of your

    organization.

    To create a complete push solution, you must develop both the Push Initiator (that is, the application that submits push requests

    to the Push Proxy Gateway) on the server side, and a push-enabled application (that is, the application on the BlackBerry device

    the receives push content) on the client-side. A client-side library (the Push API, included in the

    net.rim.blackberry.api.push package) is available in the BlackBerry Java Development Environment 5.0 or later to

    allow you to develop push-enabled applications for the BlackBerry device. This API functions as a companion to the BlackBerry

    Push Service SDK, providing similar functionalities for the client side as the BlackBerry Push Service SDK provides for the server

    side. If you use the BlackBerry Push Service SDK to develop your Push Initiator, and intend to use the BlackBerry Internet Service

    as the Push Proxy Gateway, you must use the Push API to create your client application.The BlackBerry Push Service SDK solution provides the following:

    Component Description

    server-side library The server-side library provides the following components: Commons, PAP, Push,

    Push Application Management, Subscription, and Acknowledgment.

    client-side library Included in BlackBerry JDE 5.0 or later, thenet.rim.blackberry.api.push package provides push-enabled

    applications, that use the BlackBerry Push Service SDK, with connectivity

    management functionalities.

    helper applications These applications are complete web applications or web application templates that

    demonstrate or can be modified to use the functionalities of the BlackBerry Push

    Service SDK server-side library: DebugPortal, PushSDK, and PAPNotify.

    Feature and Technical Overview Overview of the BlackBerry Push Service SDK

    2

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    5/22

    Component Description

    sample applications The sample Push Initiator and client-side sample application demonstrate the use

    of the BlackBerry Push Service SDK.

    Feature and Technical Overview Overview of the BlackBerry Push Service SDK

    3

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    6/22

    Features 2Two-tiered development modelThe BlackBerry Push Service SDK provides a two-tiered development model. At its core, a push application communicates with

    the PPG using PAP messages. Around this basic push application are the constructs of the rest of the push solution: user

    subscription and user management, push message validation, the management of result notifications, and so on.

    Depending on the design of the push solution, developers may only choose to use the APIs to create PAP messages, and developthe rest of the solution on their own. Conversely, developers may want to use the BlackBerry Push Service SDK libraries to handle

    some of the more complex operations of their solution as well.

    The BlackBerry Push Service SDK APIs can be categorized in the following tiers:

    Tier Description Components

    Low-level APIs The low-level APIs focus on the creation and parsing of PAP messages,as well as the communication with the PPG. These APIs provide a simple

    Java API layer over the PAP XML, removing the need for developers to

    write and parse PAP control entities and multipart MIME messages.

    Typically, developers would require only these APIs if their push solution

    is able to handle push requests, subscriptions, and acknowledgments.

    Commons

    PAP

    High-level APIs The high-level APIs are built on top of the functionality provided by the

    low-level APIs and provide a number of value added features. The high-

    level APIs are dependent on the use of a database.

    Typically, developers would require the functionality provided by high-

    level APIs only if their push solution does not handle push requests,

    subscriptions, and acknowledgments

    Push Application

    Management

    Subscription

    Push

    Acknowledgement

    Feature and Technical Overview Features

    4

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    7/22

    Server-side APIsThe Commons componentThe Commons component is designed to provide the functionalities that can be shared across the other components of the

    BlackBerry Push Service SDK server-side library. The Commons component contains base classes, base exceptions, utility classes,

    and helper classes providing functionalities such as handling root level exceptions, HTTP client implementation, validation, string

    manipulation, date manipulation, and random data generation. The database schema files are located in this component. TheCommons component has 2 subpackages: content and http.

    Subpackage Description

    content models content sent in push requests

    http defines an HTTP client

    The PAP componentThe PAP component is designed to provide the functionalities for you to create, send, receive, and parse PAP messages. It includes

    classes that represent the PAP status codes, PAP control objects, a servlet that unmarshals the result notification messages and

    sends the confirmation to the PPG, enums that represent the PAP message state and message reliability, and an exception that

    handles the rejection of PAP messages by the PPG.

    The PAP component hides the details of the PAP and MIME messaging. Instead of using PAP XML directly, you can use the Javainterface that is available in this component to develop and test your push applications. The PAP component offers low-level API

    functionalities that can provide flexible usage and greater control over implementation. For a high-level API that offers many

    value added services, you can use the Push component instead.

    The PAP component has 3 subpackages: control, unmarshal, and web.

    Subpackage Description

    control implements PAP control messages

    unmarshal implements PAP message unmarshalling

    web contains an abstract servlet to receive and handle PAP result notification messages

    and to send result notification response messages to the PPG

    Feature and Technical Overview Server-side APIs

    5

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    8/22

    The Push componentThe Push component is designed to provide the functionalities to manage all aspects of a push: validate and send push messages,

    cancel previously submitted messages, query the status of previously submitted messages, reconcile push acknowledgements,

    and persist the status of a push.

    The Push component is designed as a layer on top of the PAP component. The Push component provides simple PAP messaging

    capabilities similar to those available in the PAP component. The Push component also provides value added services such as

    validation and persistence. The Push component is designed to hide the use of PAP. It is also designed to enable you to use

    subscriber IDs, instead of BlackBerry device PINs or email addresses, when you use the BlackBerry Push Service SDK server-side APIs. Functionalities for mapping subscriber IDs to BlackBerry device PINs or email addresses and vice versa are also available.

    The Push Application Management componentThe Push Application Management component is designed to provide the functionalities for you to manage the attributes of the

    push applications and store push applications in a persistent store. The Push Application Management component lets you add,

    update, enable, disable, delete, or query for applications by using attributes such as the application name, application ID,application status and so on. Push application attributes, passed as parameters to the methods that perform the add, update,

    enable, disable, and delete application operations as well as update credentials operations, are validated to make sure that they

    satisfy the validation criterion for the action performed by the methods. An exception is thrown if any of the criteria is not met.

    By managing the push application attributes, the Push Application Management component enables the method that performs

    the push operation, located in the Push component, to only use the push application ID to retrieve the push application's attributes

    from the persistent store. The push application's attributes, such as the listening port number, password, default push message

    time to live, default reliability, and so on can be automatically included as part of the PAP push message.

    The Subscription componentThe Subscription component is designed to handle the subscription related operations: subscribe, unsubscribe, suspend, and

    resume. Handling subscription operations requires persistence. The Subscription component provides the implementation for

    database persistence.

    The subscription related operations are handled by servlets. When a request for one of these operations come into the specific

    servlet, the request information is validated and processed and then persisted to the database. If you are not using container-

    managed security, the component can provide the functionalities for your server side application to authenticate users and can

    handle exceptions related to user authentication. You can customize the authentication process to use extra properties in addition

    to username and password to authenticate users and can also take custom actions on subscribe, unsubscribe, resume, and suspend

    events. Usernames and passwords can support international characters if configured through the HTTP header or the application

    server configuration settings.

    Feature and Technical Overview Server-side APIs

    6

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    9/22

    The Subscription component includes find methods and methods to retrieve counts and statistics, to manage subscribers and

    for reporting purposes. If you assign a unique subscriber ID to each user, the Subscription component will try to detect when asubscriber to your applications has changed on a given device or when a particular subscriber to your applications has moved to

    another device. These scenarios are detected through new subscription requests coming from a user or device already existing

    in your subscriber database. Upon detection, the component triggers an automatic unsubscribe of the users, involved in the

    scenarios and who have already been your subscriber, from their existing subscriptions to your applications, while fulfilling the

    new subscription request.

    There are 3 subpackages in this component: auth, cp, and web.

    Subpackage Description

    auth handles subscriber authentication

    cp provides the ability to take custom actions on subscription events

    web contains servlets to handle subscription operations

    The Acknowledgment componentThe Acknowledgment component is designed to manage result notification messages and result notification response messages,

    collectively referred to as acknowledgments. It listens for result notification messages from the PPG regarding the successful or

    unsuccessful delivery of the push messages to the BlackBerry devices and, depending on the type of the push application,

    reconciles the result notification messages with the push request details. The Acknowledgment component also sends result

    notification response messages to the PPG confirming the delivery of the result notification messages.

    The Acknowledgment component is dependent on the PAP, Push, and Subscription components. The Acknowledgment

    component uses the PAP component to parse the PAP XML of the result notification messages and to construct the PAP XML of

    the result notification response messages. The Acknowledgment component uses the Push component to perform reconciliation

    of the push messages, that is, updating the status of the addresses being pushed to. The Acknowledgment component uses the

    Subscription component to map the addresses in the PAP messages (for example, the PINs to subscriber IDs). This mapping is

    useful when you want to be notified of the acknowledgments so that you can take custom actions in your Push Initiator.

    You can use the Acknowledgment component in one of three different ways. Firstly, you can use it to listen and parse the

    acknowledgments into simple Java objects that can be handed off to the Push Initiator which utilizes the BlackBerry Push

    Service SDK for further processing. Secondly, you can have it listen, parse, and reconcile the acknowledgments within theBlackBerry Push Service SDK so that any user of the BlackBerry Push Service SDK can call one of the query APIs to get the current

    status of a push request. Thirdly, you can use it to not only listen and reconcile the acknowledgments but also notify several

    listeners that process certain types of notification messages based on the status code of the messages: success, failure, any, or

    last notification from the original push request. By using it the third way, you can subclass the listener classes to create custom

    implementations of the methods, to further process the acknowledgments in your Push Initiator.

    The Acknowledgment component contains only the web subpackage which has the servlet that unmarshals the result notification

    messages and constructs and sends result notification response messages to the PPG.

    Feature and Technical Overview Server-side APIs

    7

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    10/22

    Client-side APIsThe BlackBerry Push Service SDK does not provide client-side APIs. However, the BlackBerry Java Development Environment

    5.0 includes the Push API, which allows you to implement the features of the BlackBerry Push Service SDK on a BlackBerry. The

    Push API is provided in the net.rim.blackberry.api.push package.

    The Push API enables you to create a push-enabled application that can perform the following functions:

    register the application

    listen for pushed data sent to the BlackBerry device start your application when the BlackBerry device receives pushed data on the port number on which your push-enabled

    application listens

    send a notification after a specified event occurs on the BlackBerry device (for example, after a user changes the SIM card

    in the BlackBerry device)

    send a notification when a user removes the push-enabled application from the BlackBerry device

    For more information about the Push API, see the API reference for the BlackBerry Java Development Environment.

    Helper applicationsThe BlackBerry Push Service SDK includes a number helper applications: complete, or partially complete, web application

    templates that you can use to quickly access some of the features of the BlackBerry Push Service SDK with no development

    required. Helper applications are available in WAR file format.

    The BlackBerry Push Service SDK includes the following helper applications:

    Helper application Description

    DebugPortal a complete Push Initiator that helps demonstrate some of the key features of the BlackBerry

    Push Service SDK server-side library by enabling quick setup and test run of "Hello World"

    type push-enabled applications or helping to debug and test production grade push-enabled

    applications

    PushSDK a web application that helps deploy the default implementations of the servlets from the

    Acknowledgement component to capture acknowledgements from the PPG, and the

    Subscription component to capture subscription requests from the device, when you use only

    the high-level API functionalities of the BlackBerry Push Service SDK server-side library

    PAPNotify a web application template that helps deploy an implementation of the abstract servlet from

    the PAP component to capture acknowledgements from the PPG, when you use only the

    low-level API functionalities of the BlackBerry Push Service SDK

    Feature and Technical Overview Client-side APIs

    8

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    11/22

    Cancellation of pending push messagesContent providers can cancel a push message at any time during the life of the request. When the PPG receives a cancellation

    request, the PPG attempts to stop the delivery of the data to BlackBerry devices. Because the PPG typically processes requests

    quickly, however, in most cases, the cancellation request is unsuccessful.

    The PPG does not attempt to recall push content from BlackBerry devices after the content has been successfully delivered.

    Querying the status of a push messageFor content providers with a service level of BlackBerry Push Plus, the PPG allows you to query the status of a push message for

    any or all of the addressees. The PPG returns a single response that contains the current status of the push message for all of

    the specified BlackBerry devices.

    You can request a variety of information in your status query. For example, you can:

    query the status of the push message for all BlackBerry devices

    query for which BlackBerry devices the push message was cancelled

    query for which BlackBerry devices the push message failed

    query for which BlackBerry devices the push message is still pending

    Querying the status of push a message is not available to content providers with a service level of BlackBerry Push Essentials.

    Feature and Technical Overview Cancellation of pending push messages

    9

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    12/22

    Architecture 3Architecture: BlackBerry Push Service framework

    Feature and Technical Overview Architecture

    10

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    13/22

    Technology stack: BlackBerry Push Service SDK low-level APIs

    Feature and Technical Overview Technology stack: BlackBerry Push Service SDK low-level APIs

    11

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    14/22

    Technology stack: BlackBerry Push Service SDK high-level APIs

    Feature and Technical Overview Technology stack: BlackBerry Push Service SDK high-level APIs

    12

    F t d T h i l O i P fl

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    15/22

    Process flows 4Process flow: Pushing data to subscribed users through the BlackBerryInfrastructure

    1. The Push Initiator sends push message to the BlackBerry Infrastructure in the form of an HTTPS POST.

    The push message is a MIME multipart message, which contains the following items:

    a WAP PAP 2.2 XML control entity, which describes the delivery parameters and specifies one or more BlackBerry

    devices to which the content will be delivered

    the push content to deliver to the specified BlackBerry devices

    2. The BlackBerry Infrastructure receives the push message and attempts to authenticate the Push Initiator.

    3. If the Push Initiator is successfully authenticated, the BlackBerry Infrastructure validates the push message.

    If the Push Initiator is within the daily quota of push messages, and the request contains all the required information,

    the BlackBerry Infrastructure accepts the push message.

    If the Push Initiator has exceeded the push limits, the BlackBerry Infrastructure rejects the message.

    4. The BlackBerry Infrastructure returns a push response to acknowledge receipt of the push message, and indicates whether

    the message has been accepted for processing or rejected. If the push message has been rejected, the BlackBerry

    Infrastructure returns an error code to the content provider that provides the reason for the rejection.

    5. The BlackBerry Infrastructure sends the push content to the specified BlackBerry devices.

    6. Each BlackBerry device notifies the BlackBerry Infrastructure when the push content is received. A push message is

    considered successful if the push content is delivered within the specified delivery time and it meets the criteria specified

    by the element in the push message.

    7. If the Push Initiator requests notification, the BlackBerry Infrastructure sends a result notification message to the push server.

    8. The Push Initiator returns a notification to the BlackBerry Infrastructure, acknowledging the receipt of the result notification.

    Feature and Technical Overview Process flows

    13

    Feature and Technical Overview Process flow: Pushing content to subscribed users through the BlackBerry Enterprise Server

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    16/22

    Process flow: Pushing content to subscribed users through the BlackBerryEnterprise Server

    1. The Push Initiator sends push message to the BlackBerry Monitoring Service of the BlackBerry Enterprise Server in the

    form of an HTTPS POST.

    The push message is a MIME multipart message, which contains the following items:

    a WAP PAP 2.0 XML control entity, which describes the delivery parameters and specifies one or more BlackBerrydevices to which the content will be delivered

    the push content to deliver to the specified BlackBerry devices

    2. The BlackBerry Monitoring Service returns a push response to acknowledge receipt of the push message, and indicates

    whether the message has been accepted for processing or rejected. If the push message has been rejected, the BlackBerry

    Monitoring Service returns an error code to the content provider that provides the reason for the rejection.

    3. The BlackBerry Monitoring Service sends the push content to the specified BlackBerry devices.

    4. Each BlackBerry device notifies the BlackBerry Monitoring Service when the push content is received. A push message isconsidered successful if the push content is delivered within the specified delivery time and it meets the criteria specified

    by the element in the push message.

    5. If the Push Initiator requests notification, the BlackBerry Monitoring Service sends a result notification message to the push

    server.

    6. The Push Initiator returns a notification to the BlackBerry Monitoring Service, acknowledging the receipt of the result

    notification.

    Feature and Technical Overview Process flow: Pushing content to subscribed users through the BlackBerry Enterprise Server

    14

    Feature and Technical Overview Prerequisites for using the BlackBerry Push Service SDK

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    17/22

    Prerequisites for using the BlackBerry Push Service SDK 5To use the BlackBerry Push Service SDK, be aware of the following considerations:

    You must identify the following requirements for your push application:

    whether it will use the BlackBerry Internet Service or a BlackBerry Enterprise Server as the Push Proxy Gateway topush content

    the number of daily pushes

    the size of the file or content that the Push Initiator submits to the push framework

    If your push framework uses the BlackBerry Internet Service as the PPG to push content, you must register your pushapplication with Research In Motion. To register, visitwww.blackberry.com/profile/?eventId=push_api.

    To create a complete push solution, you must develop the following components:

    the Push Initiator (that is, the application that submits push requests to the Push Proxy Gateway) for the server side

    a push-enabled application (that is, the application on the BlackBerry device that receives push content) for the client-side

    Feature and Technical Overview Prerequisites for using the BlackBerry Push Service SDK

    15

    Feature and Technical Overview Glossary

    https://www.blackberry.com/profile/?eventId=push_api
  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    18/22

    Glossary 6API

    application programming interface

    HTTP

    Hypertext Transfer Protocol

    HTTPS

    Hypertext Transfer Protocol over Secure Sockets Layer

    IPPP

    Internet Protocol Proxy Protocol

    PAP

    Push Access Protocol

    PPGPush Proxy Gateway

    y

    16

    Feature and Technical Overview Provide feedback

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    19/22

    Provide feedback 7To provide feedback on this deliverable, visitwww.blackberry.com/docsfeedback.

    17

    Feature and Technical Overview Legal notice

    http://www.blackberry.com/docsfeedback
  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    20/22

    Legal notice 82010 Research In Motion Limited. All rights reserved. BlackBerry, RIM, Research In Motion, SureType, SurePress and

    related trademarks, names, and logos are the property of Research In Motion Limited and are registered and/or used in the U.S.

    and countries around the world.

    Apache Tomcat is a trademark of The Apache Software Foundation. Eclipse is a trademark of Eclipse Foundation, Inc. MySQL is

    a registered trademark of MySQL AB in the United States, the European Union and other countries. Java is a trademark of Sun

    Microsystems, Inc. All other trademarks are the property of their respective owners.

    The BlackBerry smartphone and other devices and/or associated software are protected by copyright, international treaties, and

    various patents, including one or more of the following U.S. patents: 6,278,442; 6,271,605; 6,219,694; 6,075,470; 6,073,318;

    D445,428; D433,460; D416,256. Other patents are registered or pending in the U.S. and in various countries around the world.

    Visitwww.rim.com/patents for a list of RIM (as hereinafter defined) patents.

    This documentation including all documentation incorporated by reference herein such as documentation provided or made

    available atwww.blackberry.com/go/docs is provided or made accessible "AS IS" and "AS AVAILABLE" and without condition,

    endorsement, guarantee, representation, or warranty of any kind by Research In Motion Limited and its affiliated companies

    ("RIM") and RIM assumes no responsibility for any typographical, technical, or other inaccuracies, errors, or omissions in thisdocumentation. In order to protect RIM proprietary and confidential information and/or trade secrets, this documentation may

    describe some aspects of RIM technology in generalized terms. RIM reserves the right to periodically change information that

    is contained in this documentation; however, RIM makes no commitment to provide any such changes, updates, enhancements,

    or other additions to this documentation to you in a timely manner or at all.

    This documentation might contain references to third-party sources of information, hardware or software, products or servicesincluding components and content such as content protected by copyright and/or third-party web sites (collectively the "ThirdParty Products and Services"). RIM does not control, and is not responsible for, any Third Party Products and Services including,without limitation the content, accuracy, copyright compliance, compatibility, performance, trustworthiness, legality, decency,links, or any other aspect of Third Party Products and Services. The inclusion of a reference to Third Party Products and Servicesin this documentation does not imply endorsement by RIM of the Third Party Products and Services or the third party in any way.

    EXCEPT TO THE EXTENT SPECIFICALLY PROHIBITED BY APPLICABLE LAW IN YOUR JURISDICTION, ALL CONDITIONS,ENDORSEMENTS, GUARANTEES, REPRESENTATIONS, OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDINGWITHOUT LIMITATION, ANY CONDITIONS, ENDORSEMENTS, GUARANTEES, REPRESENTATIONS OR WARRANTIES OFDURABILITY, FITNESS FOR A PARTICULAR PURPOSE OR USE, MERCHANTABILITY, MERCHANTABLE QUALITY, NON-INFRINGEMENT, SATISFACTORY QUALITY, OR TITLE, OR ARISING FROM A STATUTE OR CUSTOM OR A COURSE OF DEALINGOR USAGE OF TRADE, OR RELATEDTO THE DOCUMENTATION OR ITS USE, OR PERFORMANCE OR NON-PERFORMANCEOF ANY SOFTWARE, HARDWARE, SERVICE, OR ANY THIRD PARTY PRODUCTS AND SERVICES REFERENCED HEREIN, AREHEREBY EXCLUDED. YOU MAY ALSO HAVE OTHER RIGHTS THAT VARY BY STATE OR PROVINCE. SOME JURISDICTIONSMAY NOT ALLOW THE EXCLUSION OR LIMITATION OF IMPLIED WARRANTIES AND CONDITIONS. TO THE EXTENTPERMITTED BY LAW, ANY IMPLIED WARRANTIES OR CONDITIONS RELATING TO THE DOCUMENTATION TO THE EXTENTTHEY CANNOT BE EXCLUDED AS SET OUT ABOVE, BUT CAN BE LIMITED, ARE HEREBY LIMITED TO NINETY (90) DAYS FROMTHE DATE YOU FIRST ACQUIRED THE DOCUMENTATION OR THE ITEM THAT IS THE SUBJECT OF THE CLAIM.

    18

    Feature and Technical Overview Legal notice

    http://www.blackberry.com/go/docshttp://www.rim.com/patentshttp://www.blackberry.com/go/docshttp://www.rim.com/patents
  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    21/22

    TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION, IN NO EVENT SHALL RIM BE LIABLEFOR ANY TYPE OF DAMAGES RELATED TO THIS DOCUMENTATION OR ITS USE, OR PERFORMANCE OR NON-

    PERFORMANCE OF ANY SOFTWARE, HARDWARE, SERVICE, OR ANY THIRD PARTY PRODUCTS AND SERVICES REFERENCEDHEREIN INCLUDING WITHOUT LIMITATION ANY OF THE FOLLOWING DAMAGES: DIRECT, CONSEQUENTIAL, EXEMPLARY,INCIDENTAL, INDIRECT, SPECIAL, PUNITIVE, OR AGGRAVATED DAMAGES, DAMAGES FOR LOSS OF PROFITS OR REVENUES,FAILURE TO REALIZE ANY EXPECTED SAVINGS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, LOSS OFBUSINESS OPPORTUNITY, OR CORRUPTION OR LOSS OF DATA, FAILURES TO TRANSMIT OR RECEIVE ANY DATA, PROBLEMSASSOCIATED WITH ANY APPLICATIONS USED IN CONJUNCTION WITH RIM PRODUCTS OR SERVICES, DOWNTIME COSTS,LOSS OF THE USE OF RIM PRODUCTS OR SERVICES OR ANY PORTION THEREOF OR OF ANY AIRTIME SERVICES, COST OFSUBSTITUTE GOODS, COSTS OF COVER, FACILITIES OR SERVICES, COST OF CAPITAL, OR OTHER SIMILAR PECUNIARY

    LOSSES, WHETHER OR NOT SUCH DAMAGES WERE FORESEEN OR UNFORESEEN, AND EVEN IF RIM HAS BEEN ADVISEDOF THE POSSIBILITY OF SUCH DAMAGES.

    TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION, RIM SHALL HAVE NO OTHEROBLIGATION, DUTY, OR LIABILITY WHATSOEVER IN CONTRACT, TORT, OR OTHERWISE TO YOU INCLUDING ANY LIABILITYFOR NEGLIGENCE OR STRICT LIABILITY.

    THE LIMITATIONS, EXCLUSIONS, AND DISCLAIMERS HEREIN SHALL APPLY: (A) IRRESPECTIVE OF THE NATURE OF THECAUSE OF ACTION, DEMAND, OR ACTION BY YOU INCLUDING BUT NOT LIMITED TO BREACH OF CONTRACT, NEGLIGENCE,TORT, STRICT LIABILITY OR ANY OTHER LEGAL THEORY AND SHALL SURVIVE A FUNDAMENTAL BREACH OR BREACHES

    OR THE FAILURE OF THE ESSENTIAL PURPOSE OF THIS AGREEMENT OR OF ANY REMEDY CONTAINED HEREIN; AND (B)TO RIM AND ITS AFFILIATED COMPANIES, THEIR SUCCESSORS, ASSIGNS, AGENTS, SUPPLIERS (INCLUDING AIRTIMESERVICE PROVIDERS), AUTHORIZED RIM DISTRIBUTORS (ALSO INCLUDING AIRTIME SERVICE PROVIDERS) AND THEIRRESPECTIVE DIRECTORS, EMPLOYEES, AND INDEPENDENT CONTRACTORS.

    IN ADDITION TO THE LIMITATIONS AND EXCLUSIONS SET OUT ABOVE, IN NO EVENT SHALL ANY DIRECTOR, EMPLOYEE,AGENT, DISTRIBUTOR, SUPPLIER, INDEPENDENT CONTRACTOR OF RIM OR ANY AFFILIATES OF RIM HAVE ANY LIABILITYARISING FROM OR RELATED TO THE DOCUMENTATION.

    Prior to subscribing for, installing, or using any Third Party Products and Services, it is your responsibility to ensure that yourairtime service provider has agreed to support all of their features. Some airtime service providers might not offer Internet browsingfunctionality with a subscription to the BlackBerry Internet Service. Check with your service provider for availability, roamingarrangements, service plans and features. Installation or use of Third Party Products and Services with RIM's products and servicesmay require one or more patent, trademark, copyright, or other licenses in order to avoid infringement or violation of third partyrights. You are solely responsible for determining whether to use Third Party Products and Services and if any third party licensesare required to do so. If required you are responsible for acquiring them. You should not install or use Third Party Products andServices until all necessary licenses have been acquired. Any Third Party Products and Services that are provided with RIM'sproducts and services are provided as a convenience to you and are provided "AS IS" with no express or implied conditions,

    endorsements, guarantees, representations, or warranties of any kind by RIM and RIM assumes no liability whatsoever, in relationthereto. Your use of Third Party Products and Services shall be governed by and subject to you agreeing to the terms of separatelicenses and other agreements applicable thereto with third parties, except to the extent expressly covered by a license or otheragreement with RIM.

    Certain features outlined in this documentation require a minimum version of BlackBerry Enterprise Server, BlackBerry DesktopSoftware, and/or BlackBerry Device Software.

    19

    Feature and Technical Overview Legal notice

  • 7/29/2019 BlackBerry Push Service SDK Feature and Technical Overview 1014976 0316054039 001 1.0.0.5 US

    22/22

    The terms of use of any RIM product or service are set out in a separate license or other agreement with RIM applicable thereto.NOTHING IN THIS DOCUMENTATION IS INTENDED TO SUPERSEDE ANY EXPRESS WRITTEN AGREEMENTS OR WARRANTIES

    PROVIDED BY RIM FOR PORTIONS OF ANY RIM PRODUCT OR SERVICE OTHER THAN THIS DOCUMENTATION.

    Research In Motion Limited295 Phillip StreetWaterloo, ON N2L 3W8Canada

    Research In Motion UK Limited

    Centrum House36 Station RoadEgham, Surrey TW20 9LFUnited Kingdom

    Published in Canada

    20