Doing groupware with open-source solutions
Introduction
As of June 2001, the main open-source groupware projects are PHPGroupware,
Mioga, Amphora, PHProjekt, Wiki and its derivatives (ZWiki, Twiki, etc.). Where all
of those fail, however, is that all support client access through web browsers
only, which can be a problem for some features (eg. WYSIWYG in-place editing
for the document management module), none support PDAs (so users cannot upload/dowload
entries in PHPGroupware's shared calendar), and support for disconnected mode
is just about non-existent.
For the latter, a temporary solution for road-warriors is to use an IMAP
mail client such as Outlook Express, off-line web browsers like WebCopier or
HTTrack, and the fabulous HTML WYSIWYG editor WebEditor from Namo. I am still
looking for ways to have PHPGroupware work with my PalmPilot, and would also
like to have PHPGW's shared address book be synchronized with mail clients,
but it's probably no pic-nic (eg. what happens if the user has entered entries
in Outlook Express: Will downloading infos from PHPGW erase those local entries?
Better yet, how to merge local and global entries?)
As for document management, you should look into Apache's WebDAV module and
Windows clients that allows users to access Apache's directories through the
familiar Windows Explorer interface, with the benefit of file locking and versioning
as compared to Samba.
Another solution is TreepadX,
the client-server version of the popular Treepad outliner.
Here's a possible architecture:
The dedicated client application ("Client app") is used to write
and read data that live in the DBMS; Any web browser can be used to read data.
The advantage of using a dedicated client is that it solves the issue of WYSIWYG
editing, access to data while in offline mode ("disconnected mode"),
and synchronization with PDA's like PalmPilot. None of this is currently
possible with server-based apps that are called from a web browser.
The whole server-side part, from "www server" to "DBMS"
should be available in either a server version or a local version, so that the
dedicated client application can access data either through the network when
the client host is connected to the network, or in offline mode when the client
host is disconnected. The server application is called through a web server
through eg. CGI calls. The advantage of going through a web server is that data
can be access even from a web browser, so that you don't need to install the
client application to read data. The server application goes through a source
control manager (SCM) so as to provide data versioning. The SCM application
in turn saves and retrieves data in a DBMS so as to provide high-performance
and scalibility.
Here's what the client application could look like:
The icons in the Outlook-style tree are links to sites, which
would actually be saved in a DBMS. Clicking on a site would open up an outliner
to display the list of documents that make up that site. Clicking on any document
would display it in the WYSIWYG window on the right. Ideally, the application
would support MDI windows, so the user could work on more than one document
at at time. The client application connects to a process which itself connects
to a DBMS, regardless of where the server and DBMS live: If online, the client
app connects to a remote server through the network; If offline, it works locally.
This requires writing a server process and using a DBMS that can run on the
server or client hosts.
Required features
INFORMATION - DATA
- Replicated on servers in other sites to enhance performance. Policy-permitting,
users in all sites should be able to modify information on their local server,
and those changes should be replicated on all servers
- Downloadable on clients for offline ("disconnected") mode
- Syncing must handle merging conflicts (what if a given document is modified
both on the server - by someone who worked online -, while it has also been
modified on a client - by someone who was on the road and edited the document
while in offline mode?)
- Merging should show the user what parts conflict, like FileCompare32
- Must support information versioning, so as to know who/when modified
an information, and what changes where made to the latest version
- Adapted to workflow through standard and easy to use languages
- Searchable through fine-grained search engine
- Available in different forms, all in rich-text (enhanced formatting,
tables, pictures, clickable URLs, etc.): emails, individual/shared calendars,
individual/shared address books, project management (including basic to-do
list), document database (possibly, including easy import of external documentation
from the Internet), meeting organization (invite attendants, and reserve
rooms), discussion (either threaded like Usenet, or all-in-one like web
portals), help desk tickets, bugtracking for SW development, procurement
- Be kept in non-binary form and be exportable in non-binary form to protect
against data corruption (see Lotus Notes...), or, if exported from binary
form, non-binary data should be re-importable with no problem (ie. exporting
to ASCII doesn't help much if data cannot be re-imported with no fuss after
a server crashed)
- Exportable to other formats (eg. Word, RTF, PDF, etc.)
- Protected through secure access, both on- and off-line (laptops get
stolen all the time; what about visitors on site who fiddle with an available
client and access sensitive corporate information?). Information should
be kept in secure form, and only be available in un-encrypted form while
in RAM
- Documentation management: Enforce use of templates for consistent layout
(style sheets)
CLIENT
- Provide dedicated clients (at least Windows and Linux) along with access
through web browser
- Information available in offline mode on the client should be editable,
and syncing with the server should be easy and safe (commit/rollback). This
includes emails, documents, group calendar, and contact list from an LDAP
server
- Protection against concurrency: When modifying an information, the client
should warn the users that someone else has already checked it out in write
mode to avoid unnecessary merging later
- Editing documents should be easy even for non-techies, and should enforce
use of templates to maintain identical look & feel. Look & feel
should be centralized, and changes should be transparent to users (ie. one
change to the template should make all stored documents change their appearance.)
In addition, should support easy hierarchizing (eg. Word's Master view),
cross-references, etc.
- Sophisticated instant messaging: Server-based instead of P2P (to support
multi-LAN organizations), one-to-one and one-to-many messages, quoted text,
richt-text, clickable URLs in messages, automatic insertion of URLs and
UNCs in messages through drag-and-drop from a file manager (eg. select recipients
in the IM applet, drag-and-drop a file from Windows Explorer: The message
should now include a link to either a web page or a document on an SMB/CIFS
server), easy deployment (Jabber requires initial subscribing/aknowledgment
for every person before being able to send them a message), application
should be iconized in task bar and flash/beep/pop up when a message comes
in
- Single-sign-on: The client should ask the OS for authentication to avoid
asking the user for a second authentication
- Support for PDAs (Palm, PocketPC) to allow at least upload of appointments
to shared calendar and to-dos to project manager
So many questions, so little time...
- All modules must support offline mode: With so many people working on the road with laptops, all information must be accessible in offline mode, for both viewing and editing
- Personal and group calendars
- Personal and group address books
- Sophisticated project management (MS Project look-alike)
- Sophisticated e-mail (HTML, LDAP, multiple mailboxes, script language to build filters and organize e-mails,
encryption, signature, receipts)
- WYSIWYG HMTL editor, with support for CSS to enforce a consistent appearance
for all documents
- Generated code must be clean, and well-indented
- Easy to use by non techies
- Instant messaging: support for HTML (rich text, URLs); by default no need for prior subscription to presence; use the same public address book used by other modules;
whiteboarding; video
- Discussion threads, with support for rich-text, including pointers to documents in other modules
- Document repository, with support for versioning and concurrent editing
- Replication of all information of multiple servers to offer optimal performance for geographically-dispersed teams
- Synchronization must be atomic: In case the connection goes south, changes must be rolled back
- Point-and-click archiving of e-mails
- Open-source, non-proprietary solution
- Synchronization for PDAs, cell phones, and other devices
- Access information from both a small-footprint dedicated application: Web browsers just do not offer enough in terms of UI as compared to full-fledged clients. People put up with web-based e-mail clients only when circumstances force them to access their e-mail when their computer isn't available. A small footprint means that it's OK to install the client on a computer that the user has borrowed in a pinch. Ideally, just a few files that can be copied into a directory, and deleted when needed
- Light administration: This is one of the things that Notes co-creator Ray Ozzie emphasizes. Current groupware solutions like Domino/Notes, Exchange, or Groupwise are just too cumbersome.
- If server-based, must run on at least NT and *nix
- Easy backup and restore
- Data must be encrypted at all times, whether they are on a server, over the wire, or sitting on the user's client
Poor man's intranet
News, documentation (SMB/CIFS, FTP, WebDAV, web browser, offline browser,
NNTP, WYSIWYG HTML editors, rsync/unison), security (access-controled sections,
PGP-encrypted files)
Browser-based Inline-editing by editing documents in HTML with eg. OpenOffice,
and pasting its HTML output
Offline editing by uploading HTML file through WebDAV or FTP
You can build a pretty good intranet with just Apache and an FTP server like
ProFTPd. Users can download documents or whole directories onto their client
for offline access, create or modify documents with their favorite editor, and
upload the result back to the server, either through the WebDAV protocol or
the FTP protocol.
For news and threaded discussions, there's a bunch of open-source solutions
below, Perl- or PHP-based that make it a breeze to set up.
Compile Apache with support for WebDAV so people can upload files with a
WebDAV-capable web browser like IE. Also set up an FTP server to allow IE-allergic
users to upload their stuff without using IE.
Offline browsers: wget, WebStripper,
WebCopier
Redirectors: Utilities are available to map a remote FTP or WebDAV resource to a letter
so it appears as a regular SMB/CIFS resource: WebIFS
and TeamDrive.
Windows Explorer can add links to FTP servers (Tools | Map Network Drive:
Create a shortcut to Web Folder or FTP server = ftp://jdoe:mysecret@ftp.acme.com
Internet Explorer 5.x supports WebDAV so you can have write access to a remote
WebDAV-capable HTTP server: File | Open, check Open as Web Folder, and type
the URL.
List of available solutions
Note: I haven't looked at all of them, and I mixed commercial and open-source
solutions
- Zimbra
- Lucane (Simple
open source groupware) by Dmitri Popov
- Zippy http://www.zippycom.com/
- Cofax http://www.cofax.org
- Rebol Internet OS http://www.rebol.com/
- Sendmail Calendar
- Server http://www.sendmail.com
- CrankSet http://www.spoke.net/
- Ikimbo http://www.ikimbo.com/
- FaceTime http://www.facetime.com/
- Groove http://www.groove.net/
- NextPage http://www.nextpage.com/products/products.asp
- Consilient http://www.consilient.com/products/
- MeetingMaker http://www.meetingmaker.com
- Frontier/Manila/Radio http://www.userland.com
- Bynari (commercial) http://www.bynari.net/
- TeamWare http://www.teamware.com/linux/
- Crosswind (calendar) http://www.crosswind.com/
- Casbah Missing in action
- Collaborative Virtual Workspace http://cvw.sourceforge.net/
- Gather, once PINN, once Sumatra, once Mediator Missing in action
- Gnuotes/Yoga Missing in action
- Citadel http://uncnsrd.mt-kisco.ny.us/citadel/
- Tutos http://www.tutos.org/homepage/about.html
- RearSite http://listes.cru.fr/rs/fd/
- JetSpeed http://java.apache.org/jetspeed/site/index.html
- Zope/Squishdot http://squishdot.org/Documentation
- Mioga (OBSOLETE http://www.mioga.org/) http://www.club-mioga.org Perl-based
with WebDAV
- WebDAV http://www.webdav.org WebDAV in 2 Minutes http://www.fileangel.org/docs/DAV_2min.html
http://nestroy.wi-inf.uni-essen.de/Forschung/Publikationen/WETICE99/webdav-client-impl/
- Phorum http://www.phorum.org/
- PhpGroupware http://phpgroupware.org/
- Zope/WorldPilot http://www.worldpilot.com
- InfoPlace Document Organizer http://www.infoplace.com/
- Twig http://twig.screwdriver.net/
- IMP http://www.horde.org/
- Horde http://www.horde.org/
- Wiki http://www.wikiweb.com
- Roxen http://www.roxen.com/
- IMHO IMAP Mail Host for Roxen http://www.lysator.liu.se/~stewa/IMHO
- HtDIG http://htdig.sourceforge.net/
- HyperNews http://www.hypernews.org/
- Enhydra http://www.enhydra.org/
- COW - Conferencing on the Web http://calypso.rs.itd.umich.edu/COW/about.html
- Collab.net http://www.collab.net/solutions/scast.html
- SiteScape http://www.sitescape.com/
- Business Collaborator http://www.businesscollaborator.com/product/about.html
- ArsDigita http://www.arsdigita.com/products/collaboration
- JoyDesk http://www.joydesk.com
- Intrastore http://intrastore.cdc.com
- Intranets http://www.intranets.com
- OpenText http://www.opentext.com/products/
- Netscape - iPlanet http://www.iplanet.com/downloads/download/index.html
- Collabra http://home.netscape.com/collabra/
- Decosoft http://www.decosoft.com/ http://www.zdnet.com/sr/stories/issue/0,4537,2338168-2,00.html
- Teamware
- Twig http://twig.screwdriver.net/ http://serverwatch.internet.com/groupservers.html
- VINC
- LearnLoop http://www.learnloop.org/
- AUC http://auc.sourceforge.net/
- Habanero (NCSA)
- HyperWave
- BSCW Basic Support for Cooperative Work http://bscw.gmd.de/
- DReSS Document Repository Service Station http://wwwis.win.tue.nl/~wsinatma/webnet98/index.html
- SoftArc FirstClass http://www.softarc.com/ http://www.lantimes.com/testing/98may/805b071a.html
- Web-4MTM http://www.jdhtech.com/web4m/index.html http Mail User
- Agent inventory http://www.cru.fr/http-mail/
- Collaboration http://idm.internet.com/collaboration/
- Conferencing Software for the Web http://thinkofit.com/webconf/
- SideKick 98 Dead but check features as food for thought
- Amphora http://www.amphora.ee
- Wiki http://c2.com/cgi/wiki http://dmoz.org/Computers/Software/Groupware/Wiki/
- Twiki http://twiki.org/
- Kiwi http://kiwi.stanford.edu/
- ZWiki is Wiki for the Python-based Zope web server
- Zope http://www.zope.org/
- Sympa http://listes.cru.fr/sympa/
- PHPNuke - Portal http://phpnuke.org
- Attila - Portal http://www.attila-php.net/
- PHPSlash - Portal http://www.phpslash.org/
- Midgard http://www.midgard-project.org/
- PHProjekt http://www.phprojekt.com/
- Slash - Portal http://slashcode.com/
- SkyBoard http://www.tms-px.co.jp/sky/sky_en.html
- ThinkFree http://www.thinkfree.com/
- HPOpenMail http://www.hp.com/go/openmail
- Collaborative Software Projects http://nexist.sourceforge.net/groupware.html
- The Center for Open Source Collaboration Technologies http://sohodojo.com/techsig/
- Zephyr - Instant messaging http://www.dodds.net/~vorlon/PV-HOWTO/sect6.html
- Jabber - Instant messaging http://www.jabber.com
- Gale - Instant messaging http://gale.org/docs.xml
- Hotline Connect - Instant messaging http://www2.bigredh.com/hotline3/whatisit/what_is_hotline.html
- http://www.webdav.org/projects/
- http://www.lyra.org/sitecopy/
To Read
Resources