IT tutorials
 
Mobile
 

BlackBerry Development : The BlackBerry Mobile Data System - MDS Components, MDS Functions

1/14/2013 11:05:57 AM
- Free product key for windows 10
- Free Product Key for Microsoft office 365
- Malwarebytes Premium 3.7.1 Serial Keys (LifeTime) 2019

1. MDS Components

MDS consists primarily of two components: the MDS Connection Service (MDS-CS) and the MDS Integration Service (MDS-IS). Both components help extend enterprise systems (and corporate data) to BlackBerry devices. You might have heard the components called MDS Services and MDS Connection Services, but the name for MDS Services was changed in BES 4.1.6.

Administrators have the option to install the MDS components on the same server as the BES or on a separate system. An organization would split the MDS components off onto a separate system to minimize the impact on BES performance while MDS processes content requests. Note, however, that for many organizations, the BES attachment rendering service usually places a higher load on the BES than the MDS components.

1.1. MDS Connection Service

The BlackBerry MDS-CS proxies any TCP or HTTP requests between a BlackBerry application and backend application servers. Any TCP or HTTP (and HTTPS) connection opened by either the browser or a custom Java application is managed by MDS-CS. The service submits the request to the application server and optimizes the results before delivering them across the wireless network.

1.2. MDS Integration Service

The BlackBerry MDS-IS manages all the application connectivity and data optimizations for MDS Runtime applications. This means that MDS-IS acts as a proxy for any web-services requests and directs database access requests from a MDS Runtime application. When an MDS Runtime application requests data via an XML web service (using SOAP over HTTP, for example) or when it issues a database query through the MDS Runtime database connectors, MDS-IS makes the request on behalf of the user and optimizes the data returned to the requesting application.

2. MDS Functions

Components of MDS-CS optimize any data before sending it to the requesting application. This data optimization is important because it reduces the amount of work a BlackBerry device must do to receive and process the data. By optimizing the data before placing it on the network, MDS helps application data communication appear faster than on other types of devices and helps dramatically increase the device’ battery life.

MDS performs some optimizations that apply to all application traffic. As previously mentioned, all the data transmitted between the device and the BES (MDS, too) is encrypted and compressed. Additionally, all XML content is converted to WAP Binary XML (WBXML), which is a binary representation of XML. WBXML allows XML data to be transmitted across the wireless network in a compact format.

2.1. Browser Optimizations

For the BlackBerry browser , MDS-CS provides an encrypted connection between the device browser and the BES. The encryption is provided through the same mechanism that encrypts all mail and PIM data communication between the device and the BES.

When a browser requests a typical desktop browser web page, the computer has to do a lot of work before it can get a page back from the server. It has to open a network connection and locate the server hosting the page being requested (typically through a DNS lookup). After it’s located the server, it has to connect to the server and request the page. If the server is down, or if there are network issues between the requestor and the server, the system must wait a reasonable time for a response and then either try again or report an error to the user. When the page finally comes back from the server, the browser has to retrieve any images, style sheets, and other media that are a part of the page being requested. After the data gets to the browser, it must render everything and process any client-side scripting included on the page.

When the BlackBerry browser requests a page from the web server, the request is sent to MDS-CS, and it requests the page on the behalf of the BlackBerry browser. This proxying of the request dramatically reduces the load placed on the device to retrieve the page. MDS-CS does all the work to locate the web server via a DNS lookup, connect to the server, retry any connections, and request the page. All the BlackBerry browser does is send off the request and wait for something to come back (either the requested page or an error).

Before MDS-CS delivers the results of the request to the BlackBerry, it processes the data returned from the server (the web page, any style sheets, included files, images, and other media) to allow it to be more efficiently transmitted across the wireless network to the requesting device. It doesn’t reformat the page for better rendering on the BlackBerry’s small screen (see the sidebar, “What MDS Doesn’t Do for Browser Requests,” for more information); it allows it to be transmitted to the device as efficiently as possible.

This processing includes several steps:

  • Converts data to a tokenized format

  • Removes unsupported/unneeded HTML tags, white space, and erroneous JavaScript

  • Compresses the data[2]

    [2] This is actually performed by the Dispatcher, which is another component of the BES.

After this optimization, the data is encrypted and sent to the device.

Regarding removing unsupported and unneeded content from the page: What gets removed is comments, extra white space (extra spaces, line breaks, and so on) and any HTML tags that MDS knows the BlackBerry device won’t recognize.

Unwanted Side Effect of Browser Optimization

The process of stripping HTML tags has a side effect that can affect your applications. If you think about how MDS-CS knows which tags to remove from the page, it bases its actions on what it knows about the capabilities of the BlackBerry browser available at the time it was released. So, if the version of MDS-CS you’re running knows that the browser doesn’t support a particular markup tag that your page contains, it strips it—even though your device might be running a later version of the browser that does support the particular tag.

I was working with a customer mobilizing an internal web application specifically for the BlackBerry. He had done all the work to convert the pages to a format that rendered well on the device’s smaller screen and within the limitations of the BlackBerry browser . In the middle of testing the application, the customer noticed that the tables he used on the pages weren’t rendering properly. He double-checked the browser to make sure tables were a supported feature, but it still wouldn’t work.

After doing some research, I determined that, although the browser supported HTML Table tags, the BES actually removed them before sending the pages to the browser. What happened was that the company was part of a larger organization that was late in upgrading its BES to the latest version. The devices were running BlackBerry Device Software 4.1, but the BES was running an older version, 4.0. When the BES 4.0 software was released, the BlackBerry Device Software 4.0 Browser didn’t support tables. Because the company was still running this older BES, MDS assumed that all devices couldn’t handle tables, so it stripped them from the HTML on the way out to the device. The only options available to this customer were to build the pages without tables or wait to roll the application out until after the company upgraded to BES 4.1.


MDS also retrieves images referenced on the page while processing HTML and XHTML pages. This allows the server to do some work in parallel so it can deliver all of the data as quickly as possible. When MDS receives the images, it optimizes them before sending them on to the device. It

  • Converts the images in Joint Photographic Experts Group (.JPEG), Graphics Interchange Format (.GIF), Portable Pixel Map (.PPM), and Portable Anymap (.PNM) formats to Portable Network Graphics (.PNG) files for better rendering on the device

  • Resizes the images to fit the screen resolution of the destination device MDS resizes images to the device screen so that they render more efficiently when the web page is first rendered on the device. Imagine a mobile user accessing a product image that is sized for the desktop browser; what benefit is there delivering an image at 1024 by 768 pixels resolution to a device with a screen sized at 320 by 240 pixels? The user is unable to really look at the picture on such a small screen; she could view it, but she would have to pan around to see the entire image. By reducing the image to the device screen resolution, it allows the mobile user to view the entire image immediately and dramatically reduces the amount of data sent across the wireless network. If a user wants to view the entire image, she can click on the device’s menu button and select Full Image to download the image at full resolution. This way, the user only downloads what she needs to be able see what the picture is before deciding to consume the necessary time, bandwidth and battery life to get the entire picture on the device.

Slipstream Acquisition

In the middle of 2006, RIM made an acquisition that allowed the BlackBerry platform to further optimize images delivered to the BlackBerry browser. The acquisition, a small company called Slipstream, created the content optimization technology that helped give NetZero customers a performance boost over other dial-up networks. The integration of the Slipstream technology into the BlackBerry platform allowed images to be reduced in size even more before being sent across the wireless network to the browser.


As previously mentioned, because MDS-CS is brokering all HTTP requests from the device, all BlackBerry browser requests appear to the web server that they’re coming from the MDS server. Even though the requests are coming from external devices, the requests all seem like they’re coming from an internal IP address; this is a side effect of the work the BES is doing and the fact that nobody is opening firewall ports to provide access to these applications.

MDS can be configured to store browser cookies on MDS rather than on the BlackBerry device. This further reduces the amount of data sent between MDS and the BlackBerry device.

What MDS Doesn’t Do for Browser Requests

When people hear about or read the descriptions of the MDS components, they often misunderstand what is really happening when MDS optimizes content. The BlackBerry Mobile Data System Technical Overview says this:

Both the BlackBerry MDS Connection Service and the BlackBerry MDS Integration Service convert server-side content and data into a format that is optimized for efficient wireless transmission and for use on wireless smartphones.

Many people think this means that MDS-CS reformats a page so it looks better on the BlackBerry screen—that’s not what happens.

This quoted text says that the data is reformatted into a format that is optimized for efficient transmission across the wireless network and processing on the device. MDS-CS helps reduce the load on the BlackBerry device by reducing the amount of data sent across the network—even removing some data that it knows the device can never use. It does not make any decisions about the content; it just makes sure that it’s formatted and transmitted in a manner that sends as little data across the network as possible and puts as small of a strain as possible on the device.

Any optimization that converts desktop-sized HTML pages to render on a mobile device on the fly needs to understand a fair amount about the page layout before it can do this reliably. RIM can do this, but not through MDS. RIM offers its partners special tools to do some of this optimization through the e-Commerce Content Optimization Service. It isn’t done on the fly; it’s done through a manual analysis of the page and the manual creation of a special tag file that instructs the BlackBerry infrastructure how to adjust the content on the way to a custom browser application running on the device.


2.2. Java Application Optimizations

BlackBerry applications written in Java can do just about anything. To support these applications and provide access to application servers and resources inside the corporate firewall, MDS-CS acts as a proxy for any connections from BlackBerry devices. When a connection is opened from a device and a server, MDSCS acts as a gateway that provides the connection with access to the corporate network.

When MDS-CS receives data to deliver to a BlackBerry application, it compresses and encrypts the data before sending it across the wireless network to the requesting application.

 
Others
 
- BlackBerry Development : The BlackBerry Mobile Data System - The BlackBerry Enterprise Server, BlackBerry MDS Overview
- Enter Java ME on Symbian OS : Exposing the Power of Symbian OS
- Enter Java ME on Symbian OS : Proprietary JAD Attributes, Computing Capabilities of Java ME on Symbian OS
- iphone Programming : Distributing Your Application - Submitting to the App Store, Reasons for Rejection
- iphone Programming : Distributing Your Application - Building and Signing
- Windows Phone 7 Advanced Programming Model : Working with Video and Audio Media
- Windows Phone 7 Advanced Programming Model : Building a Photo Extras Application
- IPad : Working with Contacts - Adding Contacts from E-mails, Sending an E-mail Message from Contacts
- IPad : Working with Contacts - Adding a Photo to Contacts, Searching Your Contacts
- Enter Java ME on Symbian OS : Which APIs Are Supported?
 
 
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
Technology FAQ
- Is possible to just to use a wireless router to extend wireless access to wireless access points?
- Ruby - Insert Struct to MySql
- how to find my Symantec pcAnywhere serial number
- About direct X / Open GL issue
- How to determine eclipse version?
- What SAN cert Exchange 2010 for UM, OA?
- How do I populate a SQL Express table from Excel file?
- code for express check out with Paypal.
- Problem with Templated User Control
- ShellExecute SW_HIDE
programming4us programming4us