I have recently blogged a little on Funambol, the open source mobile
application server. After spending the last week playing with this software and
finally having some success with PIM synchronisation, I thought it may be a
good idea to take a closer look and go through the basic steps required to get
things running.
What is it?
Funambol is
an open source mobile application server platform which provides both a data
synchronisation engine and a software development platform for mobile
applications. Funambol is the de facto standard implementation of the Open Mobile Alliance
Data Synchronization and Device Management protocols (OMA DS and DM, formerly
known as SyncML).
What does it offer?
Funambol claims to offer the following:
- Push
E-mail - Address
book and calendar (PIM) data synchronisation - Application
provisioning - Device
management for wireless devices and PCs - This
means BlackBerry-like capabilities on commodity handsets
Now I say that Funambol claims to offer these features, as
while looking into the project, I have found that there is a divide between
what Funambol can actually do in the real world and what people may be led to
believe it can accomplish. There is quite a bit of future tense being used on
the mailing lists; well come to this later. I am, of course, approaching this
from the viewpoint of an enterprise user rather than that of a mobile operator.
Many different devices are supported by Funambol and its
various plugins/connectors. SyncML-enabled mobile phones (from Sony Ericsson,
Nokia, Motorola, Samsung and others), RIM Blackberry, Windows Mobile (pocket
pc), Palm, and even Apple’s iPod can be used with the data synchronisation
engine. On top of that, various software clients can be used including
Microsoft Outlook and Mozilla.
History
The history of Funambol dates back to 2001software
developers saw the potential of SyncML for mobile computing but did not see a
platform independent (java) open source implementation. The Sync4j project later
became Funambol and has gone way beyond the original engine with many
components now available:
- Funambol Data
Synchronization Server: a mobile application server providing
synchronization services for wireless clients and PCs, including push
email.
- Funambol Device Management:
an OMA DM server to remotely manage mobile devices. - Funambol Connectors:
gateways to file systems, databases, email systems, and applications for
two-way synchronization with existing data assets.
- Funambol Client Plug-ins:
protocol extenders and clients for Microsoft Office Outlook, Windows
Mobile, BlackBerry, Palm and iPod so users can
synchronize their email messages and PIM data (address book, calendar,
tasks and notes) with the server.
- Funambol Software
Development Kit: tools to develop sometimes-connected mobile applications
on devices (in Java – J2SE and J2ME – and C++) and to
add data sources to the server.
Getting stuck in
Ok, thats enough of the sales jargonI think the best way
to find out whether something can be of use is to try it out. This can be
especially true with open source software, as the only cost of testing it is
that of time. Hopefully Ill be able to guide you through the basic setup and
configuration, saving a lot of wasted time trawling through mailing list
archives and hundreds of useless Google results!
Platform
The fact that Funambol runs on a standard java-based
application server platform (JBoss)
means it can be deployed on almost any platform. Pre-packaged server bundles
are available for Linux / Windows and individual packages can also be
downloaded.
Requirements
Other than a platform capable of running java applications
whats required to run and use Funambol? I would recommend having a
SyncML-compatible mobile phone (I have used both a Sony Ericsson W550i and
W800i) and Outlook in order to test the synchronisation server.
Some type of static internet address is also needed. If
youre looking to use Funambol at home rather than in a corporate environment,
dont panic; there are various solutions. I have successfully been using DynDNS along with the built-in IP updater in
my NetGear DSL router and had no problems. I created a new service in the
router for port 8080 and then added a firewall rule to redirect all incoming
connections for that service to the internal IP of my Funambol serverthis
almost worked perfectly. The only issue was thatinternallyredirection
didnt work, meaning the Outlook connector wouldnt connect to the service. Two
solutions to this were viable, and both worked: (1) Insert dynamic.dnsdomain.com 192.168.0.x into your hosts file, where
192.168.0.x is the internal Funambol server IP. (2) Set the server address in
the Outlook connector to statically point to the internal server (e.g., Server
URI=http://192.168.0.x:8080/funambol/ds). These fixes only work if you are
going to be on the internal networkif youre outside of the network on a
laptop, etc., then the dynamic DNS should resolve and the firewall rules will
forward data correctly. If you hold a static IP, then there is, of course, no need
to worry about this, youll be fine.
Installing
Funambol can be downloaded as a Server Bundle or as
individual components. If youre starting from scratch, I guess its probably
best to go with a bundle. The components, along with additional connectors, can
all be downloaded here.
My first attempt at installing Funambol was using the Latest
Beta (v3.0) bundle on a clean Ubuntu server. Despite the simple install process
(simply execute the install script) this gave me nothing but trouble. I
couldnt get the server admin tool running, so after wasting an hour looking
for solutions and fixes, I decided to dump that idea and install it on
Windowsafter all, Im only evaluating the software, not building a full-time
production system. The Latest Beta (v3.0) for Windows installed flawlessly;
simply execute the downloaded installer and follow the prompts.
I now have the application server and Funambol installed,
but I need to configure the Data Server, SyncSources (more on this later too)
and mobile devices. Next week, Ill follow up with details on accomplishing
this, while avoiding the initial problems that I ran into.
If anybody is already using Funambol (or possibly a similar
mobile synchronisation system) in production, it would be interesting to hear
your experiencesleave a comment for us.