This is the abstract that was submitted to the 17th annual California State University Student Research Competition. The project was awarded 2nd place in the "Engineering and Computer Science, Undergraduate" session.IlohaMail: A multilingual webmail systemRyo ChijiiwaIntroduction and Initial ObjectivesThe initial objective of the project was to create a web-based email client (also known as ÒwebmailÓ) with extensive multilingual capabilities, namely support for both Japanese and English, that was also fast, easy to use, and easy to install. Webmail systems allow users to access, manage, and send email from any computer with an Internet connection, using a standard web browser. In order to provide such services to users, administrators must install webmail systems on publicly accessible servers. At the time the project was initiated, there were no freely available webmail systems that offered adequate support for Japanese, and existing systems generally had poor user interfaces and were difficult to install. To this day, very few webmail systems support Japanese adequately by default, and ease of installation remains a major concern. Development began in May 2000, and in April of 2002, after nearly two years of development, a version of the system was made public under the name IlohaMail. The project is still under active development today with new versions being released, on average, once a month. MethodologyFor this project, the PHP programming language was chosen for several reasons. Most importantly, unlike any other language, PHP was designed specifically for creating web-based applications, and was thus an obvious choice. Secondly, the language was easier to learn and use than languages like Perl or Java, however, it also offered all the required functionality. Thirdly, programs written in PHP can run on virtually any server environment, including the vast majority of commercially hosted websites. Some key design decisions were made early on to make the software capable of handling multiple languages. One of the most important steps was to separate all aspects of the program unique to languages and regions from the rest of the program. More specifically, all region and language dependent parts the program were separated into modules. When the program runs, it loads the required files from the appropriate language module based on the user's preferred language. Other than being able to dynamically change the user interface's language, modularizing region specific aspects also made it easier for new languages to be added, since all the parts requiring modification are in one centralized location. One of the difficulties in supporting Japanese was negotiating the different character sets (ways in which characters are represented). Because email messages are usually encoded using one character set, and web pages are in one of two other encodings, it was necessary to add translation mechanisms that converted text from one character set to another. This has allowed IlohaMail to be one of the very few webmail systems capable of handling Japanese gracefully and accurately. To ensure ease of installation, IlohaMail was initially developed to use a simple file-based back-end, however, support for databases was later added as an option to compensate for certain concerns with the file-based back-end. The back-end is required to store permanent data such as user preferences, as well as temporary information such as users' email IDs and passwords, which are discarded when users log out. The file-based system greatly simplified the installation process by only requiring administrators to create a few folders to setup the back-end. On the other hand, the file-based back-end had several significant disadvantages over a more complex database back-end, especially on larger scale installations supporting hundreds or thousands of users. Even though a database back-end complicates the installation process somewhat (in some cases by requiring a server administrator to install a database) it also offers significant benefits by allowing portions of data processing tasks to be relegated to the database, reducing the need for slow file operations. It is also possible to install the database back-end on separate servers entirely, freeing up more processing power on the server IlohaMail is installed on. To improve ease of use, a layout similar to most desktop email software was used. A horizontal toolbar across the top of the window shows some globally accessible features such as, checking the inbox, sending email, or accessing the contacts list. On the left side, folders are listed vertically. Lists of messages and message contents can be viewed in the main section immediately to the right of the folder list. Efforts have also been made to keep the interface clean of clutter, and new features requiring new user interface elements have been carefully considered before addition. This is in contrast to typical software packages where excessive and unwanted features are added, often complicating the user interface. Like all ordinary desktop email software, IlohaMail uses the IMAP and POP3 protocols to retrieve and manage email. Initially, IlohaMail was developed around IMAP functionality included in PHP, which was eventually deemed inadequate due to its poor performance and efficiency. As a result, fully optimized IMAP and POP3 libraries were written from scratch, offering improved performance and flexibility. For example, when sorting and showing a message listing, with PHP's library, detailed information about each of the messages had to be retrieved, even if only a small portion of the messages were to be displayed. More specifically, in order to sort, say, 1000 messages by size and show the first 20, it had to retrieve the size, as well as other unnecessary information like subject, sender, recipient, date, etc for all 1000 messages. With IlohaMail's customized library, in the case of the previous example, the message sizes Ðand only the message sizes- for 1000 messages will be fetched and sorted to determine which messages will actually be displayed, then detailed information for only those messages will be fetched. As a result, message listings can be generated several times faster, especially when viewing mailboxes containing large numbers of messages. Other similar optimizations in the custom library have helped drastically improve performance. Because the original purpose of the project was not to generate profit but to create a high quality webmail package, an Open Source license was chosen in the distribution of IlohaMail. Unlike licenses used in common desktop software, Open Source licenses give users the freedom to access and modify the source code (the blueprints of the software), and also redistribute such changes. As a result, users are given more freedom in using the software (after all, if they don't like it, they can modify it to suite their needs and tastes), and improvements made by users are often submitted back to the project, further improving the quality of the software. ResultsIn July 2002, only three months after the project's public debut, Global Online Japan (or GOL), a medium-sized Internet service provider based in Tokyo with around 20,000 users, deployed IlohaMail following a rigorous evaluation and testing period. They chose IlohaMail for it's unique multilingual capabilities, namely it's support for both Japanese and English, which fit their demands perfectly since their customers were split roughly equally between English and Japanese speakers. During the July ''02 rollout, the system logged 900 users in the first 8 hours alone, while generating less than 5 support calls. The system had logged over 4000 users within the first month, and according to GOL technicians, the feedback has been overwhelmingly positive. The project has seen considerable growth in the months following public release. Between May and December ''02, the number of unique visitors to the website IlohaMail.org grew 159% from 2785 to 7233 per month, and as of early February ''03, the website has logged a total of nearly 43,000 distinct visits. More than 3800 users have logged into the demo site, while over 550 people have become registered members of the community. The number of new user registrations also tripled, from 40 in May '02 to 125 in December '02. Today, IlohaMail continues to improve with the help of modifications submitted through a global user-base. Although there are no exact statistics on the number of user contributed modifications, perhaps it would suffice to say that in May 2002 IlohaMail supported only the 2 original languages (English and Japanese), yet volunteers among users have since translated it into 19 more languages for a total of 21 languages. In comparison, version 3.0 of IMP, a similar project with a larger development team in existence since 1998, also supports 21 languages, but it does not offer support for Japanese by default. Across all versions released, IlohaMail has been downloaded over 19,000 times, and is documented as having been installed on hundreds of servers. Including undocumented installations, however, it is estimated that IlohaMail is in active use on around 1000 servers serving 25,000 people through Internet service providers, schools, municipalities, and small-to-medium businesses in over 60 countries around the world. Perhaps this widespread global adoption of IlohaMail could be seen as a testament to its unique capabilities and successful implementation. |