Domain: softwarestudio.org
Stories and comments across the archive that link to softwarestudio.org.
Comments · 7
-
Nobody has written the server
The standards exist, but no one has written the server.
You can't really blame them since the Calendar Access Protocol (CAP) which is going to be the IMAP+SMTP of Calendaring, providing synchronous calendaring to clients is on it's 10th draft. Read this email if you have lost hope that the IETF would have calendaring anytime soon. Appearently draft 11 is coming soon and it will be the last one. So it looks like CAP will be finalized RSN. (Thank God, this thing was becoming like Duke Nukem Forever)
You could poke a stick at the OpenCap Server project and see if you get a response. But I haven't heard anything in months.
I don't know what's up with the Libical guys. The mail archive has been dead since December 16. Of course some of them are working on Free Association which is supposed to be a server and client. Since the mailing lists for libical seem dead I couldn't tell you what the status of CAP support currently is. My understanding was that they had been keeping up with the drafts, but since the 10th one was released about a month ago, I have no idea what the current status is.
Mozilla should be getting Calendaring in 1.4. IIRC, the calendaring uses libical. The College of Charleston computing dept has taken on enhancing the client (Go Cougars!). Hopefully they'll be putting CAP support in.
If anyone wants to know what it would take to write a calendar server and put an end to the Notes/Exchange duopoly in groupware, visit the Calendaring and Scheduling Working Group of the IETF. These are the guys that have brought you iCAL (RFC2445), iTIP (RFC2446), iMip (RFC2447), iCal Locating and LDAP (RFC2739) and the Guide to Internet Calendaring (RFC3283).
Read the iCalendar Guide then all the other documents at the site. Next go write the server. Then make sure Mozilla's Calendar client works with it, and email me so I can go replace exchange servers with it.
If you find a solution that does not use CAP, beat the authors with a ClueStick till they give in and write something that uses IETF protocols so we can interop with it.
Personally I'd really like to see the Cyrus IMAP server get a CAP piece put in. Combined with OpenLDAP and Mozilla as the client, it would be a Notes/Exchange killer.
While I'm sitting here making demands from the Open Source messaging community, why the hell doesn't Mozilla get SIEVE (RFC3028) support so we can have a standard for server-side email filtering rules, Cyrus supports it in the IMAP server. Oh, and I also want write support for LDAP address books in Mozilla.
To answer the original question, I think it's coming, slowly, but coming. Lord knows, I've only been waiting for 4 years or so. -
Just a few thoughts...
I've been trying to do this for a couple of years. I wrote the Exchange Server Replacement HOWTO back in '99 when it looked like this might be possible very soon.
Essentially I talked about how to get IMAP/POP3/SMTP with a global Address Book and authentication and user accounts via LDAP. I've been watching this space with a lot of interest since then. The lack of updates to the HOWTO should give you some idea of what's changed, not much.
As far as calendaring goes, here's the skinny: CAP is the current IETF draft, and has been for some time, although when it will be finalized is anybody's guess. Why aren't there any shared calendaring servers? Cause there's no shared calendaring standard. You can get asynchronous calendaring in IMAP by having a decent IMAP client and using a Calendar folder, but that's hardly as feature rich as Outlook/Exchange. libical has kept up with the draft but has no server process. It's used in Evolution and the Mozilla Calendar client. So we have calendaring on the client side, but nothing on the server side. From what I've been able to discern, nobody wants to write a CAP based server till CAP is finalized, since it's gone through too many changes during the drafting process already.
The other problem is the outlook clients. The way Bynari and OpenMail (Contact) have gotten around the proprietary Exchange RPC call stuff, is to write a MAPI driver for Outlook that intercepts the client calls and sends them to the server in whatever proprietary method they might have. Integrating Outlook clients will either require a server side project on the level of Samba or a client side MAPI replacement that uses CAP, unless M$ has a change of heart and decides to support it.
In order to replace the functionality of Exchange you would need, a Calendar Server (none exists in the Open Source world), a searchable document share (WebDav on Apache can't index M$Office documents AFAIK), searchable email w/ public folders and mailing lists (Cyrus + majordomo or Sympa could feasibly work), a global address book (OpenLDAP).
Now,the real kicker, it has to all be integrated, single point of management and have a web interface for users to boot. There are a million and one PHP/Perl based web interfaces to one piece of this or another. However, trying to integrate all of this is impossible. Why?
For starters, everyone seems to want to do LAMP, as if these apps all live alone and users want to log into a seperate web interface for each function then cut and paste data between web pages and not be able to search everything as one data repository, if they can search at all.
LDAP has been available for years, and the guys at OpenLDAP have been there to solve a lot of these problems for years. Quit using an RDBMS for everything, for data that applications should share, use LDAP, stuff like authentication and application user information. LDAP has seemingly been ignored by a lot of open source programmers. Evolution's LDAP support has flat out been broken, everytime I've tried it. Mozilla's works but lacks some functionality. Granted LDAP takes about as much knowledge as learning an RDBMS to understand, but ther are currently about 3 decent LDAP management tools (lape, Directory Administrator and GQ). With LDAP you can essentially have a database schema that all apps can program to, cause it's standardized (inetOrgPerson, etc.)
Other apps seem to be developed without a thought to integrating with other apps. I tried to integrate Sympa, OpenCA, cyrus, sendmail and OpenLDAP with a custom web front end about a year ago. I paid the salaries of myself and 2 other developers for about 8 months, trying to do this. It was a failure, especially in the cases of the Perl pieces. The CPAN Perl libraries didn't do LDAPv3 extensions, isolating code in most of these projects to use a different front end was hopeless and providing an interface to manage the configuration files for the servers was a lot of work. We got about 80% done before I sold the company (and codebase). We had originally planned to GPL our work then sell support and customization, with a calendaring solution and MAPI driver for outlook in the 2.0 feature set.
Most of the frustration we had and was due to using other people's code that was not extensible or modularized. If I had to do it over again, I'd do it in Java on JBoss (esp considering the BEEP servlets JSR for CAP and the great LDAP support via JNDI).
I don't think that developer's of various open source projects need to have some overreaching design group (a la GNOME or KDE) to implement these projects with integration in mind. There are plenty of standards already out there. It just takes some good design and up front research (something I've done a lot of) and thinking about how other developers and users might want to use this stuff for their projects.
Now, I don't want to sound like I'm whining about my own failures, I should have made sure we had enough capital to do it all from scratch. I'm more concerned about our ability to compete with the Exchange servers and Lotus Notes of the world and have a stable, customizable platform that we own. Quit rewriting the same stuff over and over and build new stuff... innovate, be creative, push the industry forward.
There is a glimmer of hope, the Open Source Java community is doing fantastic stuff. I've never seen more modularization, code reuse, integration and faster development in any environment or community. JBoss really takes the lead, the feature list is amazing and I've used it in several corporate environments where it beat out commercial J2EE app servers. JBoss pulls from Ant, XDoclet, Jetty, Tomcat, JacORB, Axis, HyperSonic SQL and a bunch of other projects. Struts and the Java commons and taglib projects at Jakarta are another example of really cool work.
The point is, it all works together. End users don't care if you wrote it in Perl, PHP, Python, C or Java... Just that it makes their lives easier, if we want Open Source to get more places we have to make sure we can deliver on this. Considering most of us make a living programming, supporting or administering networked systems, which would you rather have, propietary crap or really good open source stuff? So next time your designing that project, or writing some more code think about how you can make integration easier. Documentation helps too... we shouldn't have to know fifteen languages and countless codebases to get stuff working together. Most of us specialize in a couple of things.
Well, that's been my experience and is currently my struggle, so hope you get something out of this... BTW, I'd loved to be proved wrong on any pessimism I may currently have. -
libicalSomeone pointed the libical project. They have the start of a server at:
www.softwarestudio.org/projects/FreeAssociation/C
S /Quoting from the webpage: The CS is a calendar server. It holds a users calendar data and allows users to add, remove, modify and search for calendar entries. This project is just getting restarted, so see the road map for a basic architecture and goals of the project.
-
libicalSomeone pointed the libical project. They have the start of a server at:
www.softwarestudio.org/projects/FreeAssociation/C
S /Quoting from the webpage: The CS is a calendar server. It holds a users calendar data and allows users to add, remove, modify and search for calendar entries. This project is just getting restarted, so see the road map for a basic architecture and goals of the project.
-
libical
Maybe ask on the libical list?
-Peter -
Open Source Implementations of ICalendar
I am creating a libary that implements the iCal RFCs, including iTIP, iMIP, iRIP and CAP. The web page for the libary is:
http://softwarestudio.org/libical/inde x.htmlI am also working with a small team on a CS server and web-based client. These projects are in early design, and their web pages are at:
http://softwarestudio.org/Free Association/index.htmlYou can address any comments or questions to me at eric@softwarestudio.org
-
Open Source Implementations of ICalendar
I am creating a libary that implements the iCal RFCs, including iTIP, iMIP, iRIP and CAP. The web page for the libary is:
http://softwarestudio.org/libical/inde x.htmlI am also working with a small team on a CS server and web-based client. These projects are in early design, and their web pages are at:
http://softwarestudio.org/Free Association/index.htmlYou can address any comments or questions to me at eric@softwarestudio.org