Presenting Bifrost –
follow-me printing and printout management

24. januar 2008 · 4 Kommentar

Follow-me printing solutions have always been an expensive investment and often come with strict limitations such as lock-in to a single hardware or software vendor. This is no longer true; the name is Bifrost.

The name Bifrost originates from Norse mythology and means rainbow. Bifrost is a bridge connecting the realm of the mortals, Midgard, and the realm of the gods, Asgard.

Bifrost is a new follow-me printing system based upon open source software and development tools. The principle of use is simple: Configure your Windows/Linux/OS X/BSD workstation to print to a generic PostScript queue on the central Bifrost server. Print your document and walk to the nearest printer. Swipe your card in the attached card reader, and your document is immediately printed on that printer. The magnetic card used may well be an existing card issued for other purposes – we are not in this to sell cards after all.

There are many environments where printouts are left alone in the printer before getting picked up, and if you print documents containing sensitive information, this can easily become a security breach unless you stand next to the printer to look after your documents. Bifrost uses magnetic card readers to prevent other users from taking your printouts. All submissions need to be authenticated, and this is dealt with in various ways for different platforms, using IPP and Samba.

Bifrost also supports printer quota for accounting. On a user web page users can at any time check which print jobs are pending, and delete unwanted jobs. They can also keep track of their own printing quota.

The system has a modular design from the ground up, making this a good platform for printing. It can be extended with other kinds of identification such as fingerprint readers, proximity cards and keypads for pin codes, without disturbing other parts of the system.

Integrating free software like Apache, CUPS, OpenLDAP, OpenWRT, Samba and Perl, this provides for more freedom than any other follow-me solution out there. The back-end server and the web front-end software are written in Perl using the powerful web framework Catalyst and Template Toolkit. There is no need for special client side software, as it uses a standard PostScript driver. All this helps keep the costs low, and your users are free to choose the operating system they prefer.

Each printer has a cheap embedded computer attached, an ASUS WL500g Premium router running a customized version of OpenWRT, with software for reading card data from USB card readers. The ASUS router and the USB card reader combined costs less than a thousand Norwegian kroner (approximately 185 USD). Other solutions we have looked at cost around seven times more, and force you to use printers from one vendor only.

It has been a real joy working on this project, because I have learned a lot during this time; working with LDAP, writing CUPS back-ends and getting to know Catalyst. I will keep following this project, as there is still a lot I want to do with it, especially on the user web for manipulating pending print jobs.

The project is funded by “Møre og Romsdal fylkeskommune“, a county council on the west coast of Norway. Project management and development has been and will be done by Linpro. Version 0.9 has been tagged in our repository, and we will get to version 1.0 when our client is happy with the functionality. The solution will be tested this semester by a selection of students at one high school, starting now. The plan is to expand to more schools after the summer school vacation.

The Norwegian government is becoming increasingly interested in open standards and free software. As a result of this, the Ministry of Government Administration and Reform has contributed five million Norwegian kroner to free software projects. This project got 125.000 kroner. YOU can contribute to this project by trying it out, getting active on the mailing lists and submitting bug reports, patches and translations. Head on over to Trac and check it out.