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
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.
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.
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.
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.