jSyncManager History

The jSyncManager Project has a long, and somewhat troubled history.

The project initially began forming in my mind in 1997.  At the time, I owned a PalmPilot Professional, that I had been given earlier that summer at my summer job at an ISP called "Internet Direct" in Toronto, Ontario, Canada.  At home, all of my computers (at the time) were running IBM's OS/2 WARP v4.  I was also working toward completing my Honours B.Sc. in Computer Science at Brock University in St. Catharines, Ontario.  As there was no decent Palm synchronization software for OS/2 at the time, and as I was looking forward towards making a proposal for my Honours Thesis, I decided to undertake the task of creating such software myself.

I had a choice to make at this juncture:  I could either write a native OS/2 program to do the job, and target a small audience that excluded everyone else, or I could think bigger, and work in a cross-platform environment where my code could be run as-is on a variety of different environments, including all of those that weren't being targeted by Palm.  I decided on the latter, and choose to do everything in Java.

At the time I started, there was no mechanism to communicate with hardware ports in Java, so when I pitched my proposal to members of Brock's Computer Science Department, I decided to break it into two separate projects:

  1. A project to create a specification and implementation for communicating with serial ports in Java.  This project was known as the Java-Serial Project, and was worth one-half credit towards my degree, and
     
  2. The Java-PalmPilot Project, which would be my Honours Thesis Project (worth a full credit towards my degree), which would implement all of the synchronization code.

The Java-Serial Project was released to the general public in mid 1998.  Around the same time, Sun released its first beta of their Java Communications API, making the Java-Serial Project moot in the real world.  It was, however, my introduction to JNI coding, and was marked quite favorably as a project.  It is now but a footnote in my development history (although I do still have the source -- if anyone requests, I'd be happy to send copies to interested parties).

The Java-PalmPilot Project was released to the public as v1.0 in May of 1999, this time as the jSyncManager.  The initial release used both the Java-Serial Project API, and Sun's Java Communications API.  Brock University still has a website for the project, accessible via this link.

Towards the end of my time as a student at Brock, I was offered a job at IBM's Toronto Software Development Lab.  While at the time I was intending to go on towards my Masters degree, IBM's offer changed my mind.  In late May of 1999, I began working for IBM.  As with most big corporations that do R&D work, I was required to sign a rather restrictive agreement that basically said "Whatever is theirs is theirs, and whatever is mine is also theirs".  Basically, it stated that whatever I developed while I was working at IBM, IBM owned the rights to.  Whatever I developed previous to working for IBM, however, I continued to own.

This created some difficulties when it came to the jSyncManager Project.  It had just been released as a v1.0 release earlier that month, and it was getting a lot of attention from users, particularly corporate users running Lotus Notes.  Prior to the time I started working for IBM, an IBM employee who also desired Palm data synchronization functionality on his OS/2 box used my jConduit API to write a conduit for Lotus Notes, which he released for free online.  This quickly became the jSyncManager's "killer app", both inside and outside IBM.  People were downloading the jSyncManager, and were requesting changes, updates, and making suggestions for new functionality.

Now at this point, had I been really smart, I would have released the v1.0 code as GPL.  But I wasn't.  In my naivete, I decided to work with IBM to create a co-copyrighted version, to be released via the IBM Public Licence (IPL).  After unknown hours working with IBM's legal representatives over the course of several months, we finally worked something out, and in February of 2001 the source for the jSyncManager was posted to an IBM-internal SourceForge based system.  I recruited two other IBM developers to help me on the project, and we went to work cleaning up the code, completely re-working the GUI (which went from ugly but functional to really nice and super-functional), and making it an overall much better, more polished end product.

We were required to change the name of the project, so after some thinking and discussion, it was renamed ManplatoSync for Java.  Object code was made available to the general public via a 90 day trial license through their alphaWorks website.  You can also access IBM's ManplatoSync for Java Web site.

ManplatoSync for Java was really what I always though the jSyncManager could be.  It took my core synchronization engine code, and built upon it to make in an excellent application that users really loved.  It was quick, stable, looked good, and worked well.  But two forces were at work to stunt its possible horizons.

The first force at work was the fact that the code was co-copyrighted between IBM and myself.  As the code contained things I developed before I started working for IBM, I own part of the copyright.  Because of this, the lawyers at IBM completely dragged their feet and passed the buck whenever possible when it came to the issue of releasing the source to the public.  At the same time, while alphaWorks provides a link for companies to request paid licences for ManplatoSync for Java, the co-copyright issue caused them to never sell a single such license (that I'm aware of), even though there were tons of requests.  Because the object code licence limited it to a 90-day trial, and as alphaWorks wouldn't sell the unlimited licenses due to its bastard status, corporations couldn't legally use the code for long-term use and projects.

The second force at work was management at the IBM Toronto Lab which, in January 2001 decided my services were simply no longer needed.  With my termination, I could no longer be officially involved with the ManplatoSync for Java Project.  Three weeks after my termination, the other ManplatoSync developers took the new functionality we were working on, finished off the incomplete parts, and released it as beta 03.  To this day, nine months later (as of this writing), it hasn't been updated since.

As I do own the copyright for the old, original release, and as I've had lots of requests to make it Open Source, I've taken what I own, and have updated it somewhat, and have released it via SourceForge  under the GNU Lesser General Public License  (LGPL).


Brad Barclay
 
 
· home | product | docs | news | press | resources | team | history | contacts | store ·


 jSyncManager  ·  All Rights Reserved
Designed by Studio IQ            
Valid CSS! Valid HTML 4.01! SourceForge.net Logo