Mobile Phone Development

Colin P. Fahey


<<< BACK TO MOBILE DEVELOPMENT



J2ME VERSUS BREW



INTRODUCTION

There are two dominant development platforms for mobile devices: J2ME and BREW.
Many cellular phone carriers have elected to offer phones with J2ME support:
AT&T, T-Mobile, and Sprint.  One major carrier has elected to offer phones with
BREW support: Verizon.

If one has a mobile device that supports J2ME, it can execute J2ME applications
but cannot execute BREW applications.  If one has a mobile device that supports
BREW, it can execute BREW applications, and there are plans to enable BREW
devices to execute J2ME applications.

Manufacturers of mobile devices often offer several versions based on different
wireless broadcast standards.  For example, Motorola offers two versions of the
T720: GSM and CDMA.  Coincidentally, the GSM version of the T720 supports J2ME
applications, and the CDMA version of the T720 supports BREW applications.
Thus, although wireless broadcast standards have no intrinsic relation to 
phone operating systems, circumstances in the marketplace has led to this
correlation.  




CARRIERS ARE IN CONTROL

Here is a summary of what carriers allow customers to do:

[A] AT&T : [1] J2ME Applications: Download from any site on the Internet, Over The Air (OTA); [2] GIF Files (Images): Download from any site on the Internet, Over The Air (OTA); [3] MIDI Files (Ring Tones): Download from any site on the Internet, Over The Air (OTA); [4] Data Cable: Cannot (officially) be used to transfer files; [B] Verizon : [1] BREW Applications: Download for a fee through Get It Now! (GIN), Over The Air (OTA); [2] GIF Files (Images): Download for a fee through Get It Now! (GIN), Over The Air (OTA); [3] MIDI Files (Ring Tones): Download for a fee through Get It Now! (GIN), Over The Air (OTA); [4] Data Cable: Cannot (officially) be used to transfer files; [C] Sprint : [1] J2ME Applications: **** UNKNOWN **** [2] GIF Files (Images): Download from any site on the Internet, Over The Air (OTA); [3] MIDI Files (Ring Tones): Download from any site on the Internet, Over The Air (OTA); [4] Data Cable: Cannot (officially) be used to transfer files; [D] T-Mobile : [1] J2ME Applications: Download for a fee through T-Mobile's service, Over The Air (OTA); [2] GIF Files (Images): **** UNKNOWN **** [3] MIDI Files (Ring Tones): **** UNKNOWN **** [4] Data Cable: Cannot (officially) be used to transfer files;

Without a doubt, AT&T offers the most developer-friendly and consumer-friendly access to their devices. AT&T has elected to focus on being a carrier, not a data gatekeeper. Verizon is by far the most oppressive carrier of them all. Their "Get It Now!" business model has led to a huge consumer rebellion, with people desperately searching for remedies and work-arounds to be able to make full use of their property (mobile devices) without invasion of privacy and paying third parties who profit based on their relationship to Verizon (gatekeeper), not actual product or service value. Just as movie theaters and sports arenas take advantage of the fact that one is on their premises when charging for food, Verizon takes advantage of the fact that one is on their network.




J2ME VERSUS BREW : WHAT MATTERS?

One can judge J2ME and BREW strictly as programming platforms, and one would
consider the cost of development tools, access to information, speed of
execution, power of available APIs, etc.

I have programmed in C/C++ for years, and I also have Java experience.  I think
both J2ME and BREW are fine platforms for mobile application development.

Unfortunately, the reality is that BREW is part of a development paradigm that
greatly affects developers and consumers.  Verizon, the only major carrier in
the US to elect to use BREW-based phones and force consumers to acquire all 
applications and media through a portal called "Get It Now!", has ruined both
BREW as a viable platform, and the experience of customers with BREW-based
devices.




Binary Runtime Environment
for Wireless (BREW)


BREW is "Binary Runtime Environment for Wireless", a proprietary platform
developed by QUALCOMM.  To learn more about BREW, visit their WWW site:

http://www.qualcomm.com/brew

Since I first wrote this article (2002 December), much has changed with regard
to BREW.  Now it is possible to download an SDK from Qualcomm, and compile
applications using Microsoft Visual C++ 6.0, and deploy to a phone without a
so-called "test signature".  (I am not sure how applications are deployed,
since the data cable is officially off-limits, and Over The Air is controlled
by Verizon's Get It Now! portal.)

All phones with Verizon contracts use BREW.  (NOTE: Applications, Images
(wallpaper) and ring tunes must go through Verizon's "Get It Now!" portal,
usually involving third parties, and always costing money.)




Java 2 Platform, Micro Edition
(J2ME)

J2ME is "Java 2 Platform, Micro Edition", a "highly optimized" Java runtime
environment.  To learn more about J2ME, visit Sun's WWW site:

http://java.sun.com/j2me

Chances are that you have already done some Java programming in your life!
I was very surprised to learn that J2ME really does have a lot of Java
functionality!

You can create threads, sockets, etc, very easily.  You only need to download
a *.JAD file and *.JAR file to install an application on your phone.

Java is FREE and well-documented, and millions of people have developed code
for Java.  I'm sure there are lots of discussion forums for J2ME.

In fifteen minutes of WWW surfing I found tons of cool applications, images,
and sound effects for the Motorola T720 J2ME version -- all FREE.

I am very excited by being able to take full advantage of the multimedia
aspects of my property (phone) without having third parties (Verizon, Microsoft,
etc) invading my privacy and extorting money from me when they added no value
to my images, tunes, and applications.




FLAWED STATEMENTS DEFENDING
CLOSED PARADIGMS

[1] "Expensive projects (e.g. cell phone EverQuest) can only
     happen if a secure distribution channel like BREW exists."
    -----------------------------------------------------------

    Almost all "expensive" cell phone game projects will
    be multiplayer or will otherwise require login to a
    subscription service.  Freely copying the client app
    does not hurt business.

    For J2ME games there is another, VERY SECURE, mechanism
    for copy protection: "Calling Home" on installation.
    Basically, your app can require the user to login to a
    remote server (via HTTP "POST" and "GET", perhaps, or
    UDP sockets) to get run-time authentication, just once
    or on an ongoing basis.  You can store unique authentication
    information in the "RecordStore" (flash memory version
    of file system in J2ME).  This strategy is more effective
    for cell phones than with desktop PC software because
    only your application is allowed to access its own
    "RecordStore".  On the PC, all software can access all
    disk space.  You may assume that someone out there will
    try and hack the *.JAR file for your $5 phone application.
    You can store critical information in the "RecordStore",
    and perhaps even unique code per user, when they do the
    one-time login to finish installation of your application.
    Of course you can compile unique *.JAR files on-demand
    for each customer that buys your application, by some
    automated CGI script perhaps, since the entire app is
    downloaded under all circumstances anyhow.  The key is
    to make copying the *.JAR file useless, and make hacking
    the *.JAR file useless, by an authenticated transaction
    to acquire unique, critical elements of the application.
    I want to stress that apps that require login on a 
    regular basis ARE EXTREMELY SECURE against piracy.

    The Linux operating system, major applications for Linux
    (Apache, mysql, gcc, etc), and millions of other significant
    applications (gimp, winamp, etc) are obviously very
    high quality, and exist despite the ability to freely
    copy the software!

    I have no doubt that an open platform will not hurt
    the quality of available software, but will lead to
    a dazzling array of great software -- and lots of
    junk, too.  But the best stuff rises to the top.


[2] "The author of the article is speaking as a hobbyist,
     and not as a developer considering making a profit
     on cell phone software."
     ----------------------------------------------------

     As I mentioned in item [1] above, I think J2ME apps
     can be as secure as any BREW app against copying and
     software piracy.
     
     Even if you refuse to believe that J2ME deployment
     can be as secure as BREW deployment, then maybe what
     this means is simply that people should not go in to
     business to sell applications for cell phones!  
     This is not bad at all for consumers (see item [1]).
     This just means there's one less way to make money
     in this world!  Lots of other ways of making money
     have become extinct over the years for good reasons.


[3]  "BREW is significantly faster than J2ME."
     -----------------------------------------

     Moore's Law (doubling of performance with time) means
     that it's just a matter of months before the next
     cell phone runs all applications twice as fast.

     The key is whether or not the user notices the
     speed difference.

     The J2ME VM may plow through instructions slower
     than native code or BREW, but if the J2ME code
     is doing high-level stuff, issuing commands like
     "Play Sound" or "Render 3D Model", then the speed
     of the J2ME code isn't so important; it's the
     implementation of the native API that is important.

     As an analogy, you can have a slow Personal Computer
     (PC), and an advanced 3D graphics card capable of
     caching 3D models, and a sound card capable of caching
     audio and complex DSP.  For many applications it won't
     matter what the CPU performance is, the user experience
     will be the same.

     Just like batch files, Perl, and other high-level
     descriptions of operations, J2ME can drive native
     API's to get the same performance as a BREW application.
     If you are doing a lot of work at the high level,
     like AI or other application logic, then maybe
     having native compiled code would be attractive.
     There's Moore's Law, or offloading work to remote
     servers, or thinking harder about how to leverage
     off of the native API calls a bit more.




VERIZON RANT

When I learned that I couldn't even set my desktop wallpaper on my new
Motorola T720 phone without paying Verizon, and uploading my personal images
to a stranger's server, I was stunned and depressed.  I wondered how "The Man"
was able to get this far in a free market.  Now I know, from experience, that
it's just the ignorance of the consumer; I just wasn't aware how radically
different the phone experience could be, just based on partnership decisions
of the carrier.

Business and development models like "Get It Now!", and information gathering
strategies like ".NET Passport", "Real One Player", "Microsoft Windows Media
Player", etc, have greatly held back the promise of technology by setting up
barriers and telling the consumer (by actions, not by promises to the contrary)
that his or her privacy has no value whatsoever.  How can even the most
forgiving personality avoid becoming cynical when giant corporations, which
could comfortably grow without uploading every CD track title and WWW site URL
that you visit, do it anyway just to derive marginally more cash from you?

I think consumers will eventually discover and choose the open paradigms.
Perhaps some day there will be a carrier who has BREW phones but does not
have the "Get It Now!" business model.  In any case, one can do more than
hope for a wide-open development and deployment paradigm; one can vote by
buying non-Verizon mobile phone contracts.




Get Around 'Get It Now!' (GAGIN)

Because consumers are so upset with Verizon's "Get It Now!" business model,
a product called GAGIN (Get Around 'Get It Now!') allows consumers to copy
files freely between their personal computer (PC) and their BREW-based 
mobile phone.

One can do a Google search for information about GAGIN.

I will not offer the application here, because it is apparently illegal.  Also,
I do not advocate its use, because it can mess up the settings on a phone.  But
I know many people who absolutely love GAGIN, and I can't help but think that
GAGIN represents a kind of victory for consumers -- and it demonstrates just
how insane the situation is when consumers have to struggle very hard just to
use their own purchases!  Imagine being blocked from copying files to your 
personal computer!  Imagine if Internet Explorer forbid access to certain web
sites, just because they weren't paying tribute to Microsoft!  You would freak.




<<< BACK TO MOBILE DEVELOPMENT



CONTACT INFORMATION

Colin P. Fahey cpfahey@earthlink.net

http://www.colinfahey.com