Chapter 8. Making the Most of Funambol: Community and its Projects

In the previous chapter, Maria and her team learned how to synchronize their data and receive e-mails on different devices. They now understand the advantages of a multiplatform solution that allows everyone to keep using the systems and tools they are familiar with, maintaining a similar user experience. In this chapter, Maria will learn that Funambol has another incomparable advantage—it is an open source software solution. Maria can take advantage of the vast Funambol community to satisfy various needs, from the availability of technical support to the wide range of projects that the community makes available. In addition, to learn more about the Funambol community, Maria will be guided through an excellent example which will help her to understand the power of the community. She will learn how to integrate Funambol with SugarCRM, the most popular open source customer relationship management (CRM) system.

Integrating Funambol and SugarCRM

SugarCRM (http://www.sugarcrm.com/crm) is a popular open source CRM system for enterprises. Maria has deployed this CRM system for the company's sales department. Therefore, the next step is to make sure that sales people take their contacts and calendars with them when they are on the road.

Installation and configuration

It is beyond the scope of this book to describe SugarCRM in detail or explain how to set it up. For the rest of this chapter, we will assume that Maria has a good understanding of SugarCRM in her business environment. However, to ease the understanding of the integration, Maria is going to start a clean installation of SugarCRM in a staging environment and she will experiment with the integration using the default dataset created at installation time.

SugarCRM Community Edition installation

First, Maria downloads the latest version (5.02j at the time of writing) of SugarCRM Community Edition from http://www.sugarcrm.com/crm/download/sugar-suite.html. She previously set up the machine with the following required software:

  • Web server with PHP support

  • MySQL database management system with a proper user and database

  • PHP support for MySQL

The program is downloaded in the form of a ZIP, extracted to a directory, which will be served by the web server. This directory is the one used to access the application, so Maria chooses to name it sugarcrm. Maria then completes the installation with the setup wizard available at the URL http://localhost/sugarcrm/install.php.

During setup, Maria selects the following options:

  • MySQL database type

  • Database name and connectivity information (as per the MySQL setup)

  • Created demo data

  • SugarCRM admin password

  • Local settings

After completing the installation, thanks to the creation of the demo dataset, SugarCRM already contains data which can be used to test the integration. For example, the following screenshot shows the address book which appears when someone logs in with the name Sarah:

SugarCRM Community Edition installation

SugarCRM Funambol Connector installation and configuration

Now that Maria has set up the staging environment, it is time to discover how to connect it with Funambol. The answer is a community project called the Funambol-SugarCRM Connector, which is an open source project hosted on the SugarCRM forge website at http://www.sugarforge.org/projects/sync4j.

The packaged version of the connector can be downloaded from the Download section of the project site. At the time of writing, the latest version is distributed in a ZIP file called funambol-sugarcrm-connector-7.0.1.zip, whose content is illustrated in the following file system view:

SugarCRM Funambol Connector installation and configuration

Maria can use the Funambol SugarCRM Connector Quick Start Guide as reference for the installation of the connector, but before starting this task, it is worth learning a bit more about third-party Funambol connectors.

With reference to the architecture illustration of Chapter 2, Funambol uses a connector architecture so that developers can connect the Funambol Server to any kind of backend without knowing anything about devices and synchronization concepts.

Funambol has an out of the box implementation of a PIM connector that accesses PIM data stored in a database. The SugarCRM connector replaces the Funambol PIM Connector with a module that contains the logic to access a remote SugarCRM instance, as illustrated in the following figure:

SugarCRM Funambol Connector installation and configuration

This can be accomplished because SugarCRM exposes an HTTP-based API that can be used by external software to interoperate with the CRM system.

Maria is now ready to install the connector, following these steps:

  1. She expands the archive file into a directory of choice and then copies the connector file, funambol-sugarcrm-7.0.1.s4j, to the Funambol modules directory $FUNAMBOL_HOME/ds-server/modules.

  2. She opens the file $FUNAMBOL_HOME/ds-server/install.properties using a text editor. At the very bottom of the file there is a line that starts with modules-to-install=...; she adds funambol-sugarcrm-connector-7.0.1 at the end of the list, making it look like the following example:

    modules-to-install=content-provider-7.1.2,
    email-connector-7.1.1,foundation-7.1.1,phones-support-
    7.1.0,webdemo-7.1.0,funambol-sugarcrm-connector-7.0.1.
    
  3. She launches a command shell and runs the following command: $FUNAMBOL_HOME/bin/install-modules

The last step launches an installation procedure that requires Maria's input. Basically, all modules are refreshed and Maria is asked if the database for each module must be created. Maria does not need to recreate the database for any of the modules, except the SugarCRM connector. When the installation displays the following output, Maria can press Y so that the connector installation will register the module inside Funambol.

[echo] funambol-sugarcrm-connector-7.0.1 installation...
[echo] Database installation for module funambol-sugarcrm-connector-7.0.1 on hypersonic (/opt/Funambol.sugar/ds-server)
[iterate] The Funambol Data Synchronization Server installation program can now create
[iterate] the database required by the module funambol-sugarcrm-connector-7.0.1 (if any is needed).
[iterate] You can skip this step if you have already a valid database created
[iterate] or the module does not require a database.
[iterate] If you choose 'y' your existing data will be deleted.
[iterate] Do you want to recreate the database?
[iterate] (y,n)

The SugarCRM Connector is now installed. When the server is running, it appears in the connector list in the Funambol Administration Tool:

SugarCRM Funambol Connector installation and configuration

The final step for Maria is to use the Funambol Administration Tool to configure the new SugarCRM SyncSources to connect to the SugarCRM server.

Note

A SyncSource represents a particular datasource provided by a connector. For example, the SugarCRM Connector provides connectivity to SugarCRM contacts and calendar that are linked to the CRM address book and calendar applications.

Maria now needs to create the SyncSource to access the staging installation of SugarCRM. To do so, Maria double-clicks the SugarCRM Calendar SyncSource, opening the following form and inserting the information as shown in the screenshot:

SugarCRM Funambol Connector installation and configuration

Note

Note the Source URI value. This is the identifier of the datasource that will need to be set in the configuration of the client.

Similarly, Maria creates a SugarCRM Contact SyncSource with the following information:

  • Source URI: cardcrm

  • Name: AddressBookSugarCRM

  • SugarCRM Server Url: http://localhost/sugarcrm

  • Type: vCard

  • SugarCRM Version: 5.1

Finally, Maria must tell the Funambol server to authenticate the users on SugarCRM. To do so, she double-clicks the server settings tree, opening the Server settings panel and sets the Officer field to com/funambol/server/security/SugarcrmOfficer.xml.

PIM synchronization

Now, Maria will test the synchronization of Thunderbird's address book and calendar with SugarCRM. First, she configures the Funambol Mozilla Sync Client with the following information:

  • Account

    • Location: http://<stagingserver>:8080/funambol/ds

    • Username: sarah

    • Password: sarah

  • Sync/Contacts/Details

    • Remote name: cardcrm

  • Sync/Calendar/Details

    • Calendar remote name: calcrm

Maria then starts the synchronization. Once the sync has completed, her address book will appear as follows:

PIM synchronization

And the calendar will appear as shown next:

PIM synchronization

The Funambol community

One of the most important aspects of a community is a place to meet. In the days of the Internet, this place is a website—the Funambol Forge (http://forge.funambol.org).

The Funambol community

This website is the starting place for people to follow Funambol news and events, get user and development help, participate in various discussions, and take part in the development of the software. This is the beauty of open source—users, developers, or people who are just curious, can get together to talk about the software and share their ideas and experiences. Users help each other, and together they greatly contribute to making the software better for their needs.

Note

The Funambol community can be divided into end users, developers, and core developers. End users are people who use the services provided by the software and also operations staff responsible for the deployment and maintenance of the service. Developers are those who build Funambol extensions on top of Funambol SDKs and APIs. These may range from custom integration development to open source projects such as connectors and clients. Finally, core developers are the developers of the Funambol software and its core components.

Funambol Forge

The Funambol Forge is the common place where Funambol users can chat and share information, from general discussions to code. It is not just a forum, it also provides a full range of tools that developers can use to start their own development projects on the Funambol platform. These range from the download of the software, to development tools, and new open source projects. These powerful tools will be introduced in the following sections.

Software download

This is a section of the website that Maria is already familiar with. As seen in the previous sections, Maria has used this service to download all the necessary software. It contains all the latest packages of Funambol, plus additional information on community projects and additional packages such as the source packages.

Each download can be completed anonymously, although it is appreciated when people provide optional background information in the download form. This information helps Funambol improve the software.

Note

It is worth noting that from the download section of the Forge, only the latest version of Funambol can be downloaded. If, for any reason, an earlier Funambol version is needed, it can be downloaded from the hosting facility at: http://forge.ow2.org/project/showfiles.php?group_id=96.

Getting help

Open source Funambol software relies on the dedication of developers and the experience of users. Sharing of knowledge is essential, as are user comments and contributions. Funambol's success can be greatly attributed to the global community of Funambol users that support each other.

At the same time, Maria has access to a great source of help and an opportunity to contribute to the growth of the community in a positive feedback loop that results in higher quality software.

In this area of the Forge (https://help.forge.funambol.org), Maria can find online documentation, information on each project (Funambol or community), and links to the discussion forums.

There are two main discussion forums for the core Funambol software:

  • Open discussions forum: This forum includes topics started by Funambol users and general developers

  • Developer's discussion forum: This forum includes topics that interest Funambol core developers

Once Maria has created a forge account, she can access these forums using a web interface or e-mail, as an old-fashioned e-mail list.

Other important sources of information are the Top Answers and the Frequently Asked Questions, accessible from this section of the Forge website.

Participate

This section of the Forge explains how to participate in the development of Funambol. People can participate in different ways. Contributing code is the most common way of participating, but non-developers can contribute with testing, helping other people, translating the software in different languages, and so on.

Funambol, and its community members, agree to honor the Funambol Open Source Project Social Contract, which is reported in the next list (the latest version can be found a https://www.forge.funambol.org/participate/socialcontract.html):

As a member of the community, Funambol:

Contributes code and documentation to the project.

Provides the forge and generates the binaries:

  • Integrates community code and documentation contributions into each release

  • Makes source code available via popular and appropriate open source licenses

  • Maintains back-revs of the source and binaries for two years after release

Provides vehicles for community interaction such as discussion services:

  • A Core Developers mailing list for all contributors to Funambol code and platform extensions.

  • An Open Discussion list to discuss future development, SyncML issues and everything useful for Funambol Community.

  • Help Project a knowledge base and forum for installation problems, configuration issues and user questions.

Resolves bugs when they are identified.

Integrates feature requests.

Supports the community and responds promptly to requests.

Helps grow, inform, and unify the community:

  • Communicates regularly with the community

  • Organizes and implements developer and community programs

  • Recognizes top contributors

  • Sponsors related groups (if you want to have a local user group, talk to us about sponsoring it)

Users and members of the open source community

You may use the software as you see fit, following Funambol open source licensing norms.

You may also develop, extend, and create bug fixes following open source license norms. Read about licensing to understand more. Also, Funambol pays for extensions of the code base via the Funambol Code Sniper Program.

It is requested that you provide your e-mail address when you download, though it's completely optional.

  • "Beta" releases are the most bleeding-edge versions of the code. They have bugs but they also have the latest feature and performance enhancements.

  • The "Stable" release is just that, stable. It has fixes for bugs found by the community.

Many people choose to post questions and answers to the mailing lists. For developer-oriented issues, participate in the developer mailing list. If you've discovered a work-around or fixed a bug, please post it.

Another important way to participate in the Funambol community is by submitting bugs. This is done using a tool called bug tracker which, for historical reasons, is not part of the Forge. Therefore, if Maria finds a bug, she can go to http://forge.ow2.org/tracker/?atid=100096&group_id=96&func=browse, search if the issue has already been reported and, if not, file a new issue.

News and information

There are many ways to stay in touch with Funambol. The Forge homepage summarizes the most recent news from different sources. Another channel is Twitter (http://twitter.com/funambol). Also, when downloading Funambol software, the user can sign up for the Funambol e-newsletter. The discussion boards are also a powerful source of information and news about the software and community.

Personal workspace

It is a convenient way for Maria to create a personalized workspace so that she can have all she is interested in about Funambol in one place. This can be done after creating an account on the Forge and then clicking on the My pages link. This brings her to a customizable page, as illustrated in the following screenshot, where she can follow her projects, news, and discussions:

Personal workspace

Projects

One of the most important features of the Forge is that it is a powerful tool to host community projects. A community project can be started and maintained by potentially anyone in the Funambol community. There is no direct intervention by Funambol personnel or core developers. Funambol simply provides the tools to facilitate the community to develop the project. This means providing a way to store and share the code through an online Subversion repository, communication through discussion forums, and documentation through a dedicated wiki. Each community project has its own space and set of tools.

If Maria wants to start a community project to develop a connector to a backend that is not natively supported by Funambol, all she needs to do is create a Forge account and suggest a new project from her personal page.

At the time of writing, the Funambol Forge hosts the following projects:

Name

Description

akunambol

Funambol client for Akonadi

android-client

Android Sync Client

atollon Funambol

Connector to sync Atollon groupware

avatargrabber

Grabs the avatar of your contacts from social networks

core

FUNAMBOL COMMUNITY EDITION CORE PROJECT

db-connector

Enables synchronization for DB tables

dc-connecter

A customized connecter for synching contacts with dc server

dm

Funambol device management server

domino-connector

Funambol Connector for Domino server

exchange-connector

Funambol connector for Microsoft Exchange groupware

facebook-client

Plugin to sync facebook contacts and events

fcppunit

Funambol tiny CPP Unit

google-connector

Funambol Google plug-in and connector

groupdav-connector

Funambol GroupDAV Connector

jajah-connector

Funambol Jajah PIM plug-in

jsr75-plugin

This module will import both SIM address book and phone

jsr75toolkit

A J2ME test program for JSR75 API capabilities

knowledgetree-plugin

Integration of Funambol with KnowledgeTree

l10n

L10N Sniper program

lanciadelta

Scripting automation for Rally of Rally software

ldap-connector

Funambol connector for LDAP

lotus-client

Lotus Organizer Connector

mac-plugin

Funambol plugin for Apple Mac desktop applications

mozilla-plugin

Funambol Mozilla Sync Client

openlemonade

A project to investigate the OpenLemonade protocol

palm-client

Sync Client for Palm OS

phonesniper

Test phones

pysyncml

Python binding for Funambol C++ API

rtm-sync-client

Synchronization client for "Remember The Milk" service

samsung-instinct

Enable e-mail

scalix-connector

Funambol connector for Scalix

sogo-connector

Funambol connector for SOGo

sts

Source-to-Source Synchronization Service

tinyerpconnector

A connector to synchronize Tinyerp contacts

ws-connector

Funambol connector for web services

yahoo-connector

Funambol Yahoo plug-in and connector

Some projects have subprojects. A project of this type is a container of other projects, each with its own space. The most important collection of projects is "core", which contains the majority of all Funambol core components. The subprojects of the core project are:

Name

Description

apple-clients

All the funambol Sync clients for Apple's platforms

blackberry-client

Funambol BlackBerry Sync Client

client-sdk

Funambol Client SDK

funamboloxconnector

Funambol connector for OpenXchange

ipod-client

Funambol iPod Sync Client

jme-client

Funambol JavaME Email Client

outlook-client

Outlook Sync Client

sdk

Funambol SDK

symbian-client

Funambol Symbian Sync Client

windowsmobile-client

Windows Mobile Sync Client

Funambol community programs

Funambol strongly believes in the power of the community and particular in the mobile space, considering the diversity of the available devices and how they are used in different business environments.

To encourage people to make valuable contributions to the entire community, Funambol started three Community Programs called snipers: Code Sniper, Lion Sniper, and Phone Sniper.

Code Sniper

Funambol maintains a wish list of additional software components that community members would like to have. To encourage community members to work on these components, Funambol offers bounties to the developers who deliver certain projects. It's a great way to learn more about mobile software and to help other community members, while being economically rewarded for their work.

One of the goals of the the program is to broaden interoperability of Funambol to connect with as many useful, widely-requested applications and services as possible (based on feedback from the Funambol Community). This is not only interesting for developers, but also for Maria because she knows that she may find what she needs as result of this program (as seen earlier with SugarCRM). Another possibility for Maria is to propose to add new sniper projects.

Another important goal of the Code Sniper is to recognize community members who developed connectors, sync clients, and so on, with the aim of encouraging the start of new projects that the community can take over, improve, and maintain.

Finally, the Code Sniper is a great way to influence the direction and reach of the Funambol project through direct contribution of open source code.

Note

More details about the Code Sniper program can be found here: https://codesniper.forge.funambol.org.

Lion Sniper

Lion Sniper is a community program that is intended to make Funambol's mobile sync and push e-mail more accessible for non-English speakers. The name Lion Sniper is a play on the term L10n, which is a technical nickname for localization that uses the number 10 between the letters l and n. The Funambol Lion Sniper program provides a bounty to community members who want to localize Funambol Mobile Sync and Push E-mail open source clients into other languages.

Maria works for a multinational company, so she may need clients in different languages. Some of these clients may already have been supported, but if this is not the case, she has the opportunity to make the translation internally and contribute it to the community for the benefits of all users.

The Lion Sniper is designed to:

  • Translate and adapt Funambol open source e-mail and sync clients to other languages

  • Reward community members that contribute to the global Funambol community

  • Enable increased participation from non-English speaking users

Note

More details about the Lion Sniper program can be found here: https://l10n.forge.funambol.org.

Phone Sniper

One of Funambol's greatest strengths is its broad support of many mobile devices, including SyncML, Windows Mobile, and Java ME-based handsets. The Phone Sniper program rewards community members by offering to pay them for testing their mobile devices with Funambol to ensure compatibility.

Note

More details about the Phone Sniper program can be found here: https://phonesniper.forge.funambol.org.

Funambol license

Funambol uses a dual licensing model that is common with commercial open source companies, consisting of both open source and commercial licensing. For open source licensing, Funambol uses AGPLv3 (http://www.fsf.org/licensing/licenses/agpl-3.0.htmls) for server and connector code, and GPLv3 for client code. If Maria agrees with using this kind of license inside her organization, she can use the software as described in the previous chapters.

If, instead, Maria's company policy is not to use AGPL software, she can acquire a commercial license which provides access to additional features. For details, Maria should refer to the Funambol website and for more on licensing information, she can visit the page at http://funambol.com/solutions/licensing.php.

Note

This is just a brief introduction on the Funambol license. It is not meant to contain specific legal information or advice. If Maria has specific legal questions or needs, she should sort them out with her legal department.

Summary

In this chapter, Maria learned how to connect Funambol to her enterprise CRM system using an open source community project. She also learned how the Funambol community can help her and her users, and how she can contribute back to the community. This gives her the advantage of being able to share Funambol knowledge and experience with many other users, administrators, and developers, thus lowering the risks of being stuck waiting for an issue to be resolved and, in fact, increasing the chances of finding exactly what she needs.

This chapter is also the natural ending point of the journey to describe the use of the Funambol mobile open source platform in an enterprise environment. It started from the basic need of bringing user address books and calendars to their mobile phones and ventured all the way to integration with the company's CRM system. All of this is powered by open source and the Funambol community.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.191.189.23