The development of Portal reached its next step. Portal now links with Unison. But at first lets recap what has happened so far. Last time I wrote about the decision process how to get the best file synchronization engine for Portal. After I decided we go for Unison it was time to get it to work on Mac OS X. It’s a cross-platform product written in OCaml, a language which is not very common among Mac OS X developers. I wrestled some time with its build process but now it builds just fine and is ready for use in Portal.
After I wrote about the decision to use Unison the question regarding Portals license quickly arose. Unison is GPL-licensed which basically means for Portal that its source must be made available if it links against Unison. While the current development version of Portal does exactly that I have different plans for the final version. It will consist of two pieces, an agent running in the background and a standard desktop application. The agent will implement the core file synching functions and relies heavily on Unison. The desktop application will provide the actual user interface and talks to the agent in the background to accomplish its tasks. Only the agent depends on Unison. The desktop application knows only the agent and uses some kind of inter-process communication to interact with it. You’ll find a similar architecture in iChat which also relies on an agent running in the background. In summary, only the source of the agent would then need to be made availabe.
Now that Portal links with Unison I will wrap its functionality in a way so that it can be used from the actual user interface. The first iteration of the user interface will emphasize functionality to test the user interaction and simply provide a interface during development. After that we will focus on developing the user interface envisioned by Farzad. That’s it so far.



























