Chapter 5 Technologies
5.2 Web technologies
5.2.1 Java applet
Java applets («Java applet», n.d.) are developed by Sun Microsystems («Sun», 2008) and
were introduced with the first Java language in 1995. Java applet is Java code that can be integrated in HTML code. When the HTML code then is viewed with a Java-technology enabled web browser, the applet code is transferred to the local machine's Java Virtual Machine (JVM) and executed in a sandbox there.
The main advantage by using Java applet in our project would be that the users do not need to download and install the game itself but rather play it directly in the web browser. The
disadvantages would be that the user would need constant Internet connection in order to play our game. Another major disadvantage is that our target group for the game often is located at universities with computers where they do not have administrator rights. This could
potentially exclude people from playing our game and thus limit our user group. Therefore we chose not to use Java applet to develop out educational system development game.
5.2.2 Java Web Start
Java Web Start («Java Web Start», n.d.) is a framework developed by Sun Microsystems that
allow Java applications to be run through a web browser. Java Web Start has been included as default in the Java Run-time Environment since J2SE, and thus most people that have Java installed on their computer got access to Java Web Start.
In difference to Java applets, Java Web Start does not run the application directly in the web browser but rather in a sandbox on the client computer. The end-user download a JNLP file that includes information about where the jar files for the Java program is located. Then the jar file is downloaded and executed accordingly to the information in the JNLP file. One of the main benefits of using Java Web Start is that it is easy to write a Java program for a stand alone computer, and make it available over the Internet without having to rewrite large chunks of the code.
Another huge advantage with using Java Web Start is that it overcomes much of the difficulty with problems that often occur with browser's Java plug-ins and Java Virtual Machine
versions when publishing programs over the Internet. Java Web Start supports Internet Explorer 4 or higher and Mozilla, but any browser that can launch JNLP files can run Java Web Start if MIME-type association is set correctly. We chose not to use Java Web Start because we tested it on several computers campus at the University of Oslo, and found out that since the regular student lack computer administrator rights, Java Web Start fail to initialize correctly.
5.2.3 Google Docs
We used Google Docs («GoogleDocs», 2008) for most of our document writing, taking notes, and discussing further progress. When multiple people work on the same project it is essential to have an asynchronous form of communication, and since we were already using Google Docs for our document collaboration, it was a natural choice for simple asynchronous communication as well.
Google Docs is a free online collaborating writing tool that let the users share documents, spreadsheets and presentations over the Internet. The main collaborating artefact is the feature that lets several people located at different geographical locations edit the same document simultaneously.
To get access to Google Docs one need to register a Google-account (often referred to as a Gmail account). Then one is given a personal hard disk space on their server and is free to upload documents or create new ones from scratch. Every document is private until one chooses to either publish them so other people can view them, or invite other collaborators with Google accounts to the document and thus allow them to edit it.
Google Docs comes with an easy browser supported editor with the same functionality as regular text editors such as Word and OpenOfficeWriter. The functionalities include spell- check, regular text formatting etc. One can also upload images that one can associate and add to the document.
When editing a document one is shown a list of user names over the other users that are working on the same document at the same time. If a conflict should occur, for instance that two users edit the same paragraph simultaneously, a pop up message is shown to one of the users informing him/her about the conflict and neglects the changes made.
The Google Docs database is constantly backed up, and because of this it is a relatively safe way of preventing information being lost due to hardware failure etc. Another nice feature with Google Docs is that one can download the finished documents to your local computer in different file formats such as: Word, OpenOffice, RTF, PDF, HTML or ZIP.
5.2.4 HTML
Hyper Text Markup Language (HTML) is the most used publishing language on the Internet. HTML is standardized by the World Wide Web Consortium (W3C) («W3C», 2008) which is the main international standards organization for the World Wide Web. In our project we used it to develop Internet pages to aid the users download our program and read the tutorial.
5.2.5 PHP
PHP: Hypertext Preprocessor (PHP) is a HTML-embedded scripting language that allows web developers to write dynamically generated pages. PHP is developed by The PHP Group («PHP», 2008) and is not standardized by W3C or any other such Consortium. As of today The PHP Group serves as a de-facto standard for PHP. We used it in our project to develop an online Internet web survey that sent the results straight to our e-mail.
5.3 Development tools
5.3.1 Eclipse
Eclipse («Eclipse», 2008) is an open source community whose projects are focused on
building an open development platform comprised of extensible frameworks, tools and run- times for building, deploying and managing software across the lifecycle.
Eclipse SDK includes Eclipse Java Development Tools, offering and Integrated Development Environment (IDE) for Java with a built-in Java compiler and the full model of the Java source files. This allows Eclipse to provide features like advanced code re-factoring, debugging and built in syntax checker in the code editor.
We used Eclipse basically as a program to organize our Java project in a well arranged way. Among several things we used in the program, Eclipse includes a package explorer, code- editor, built in compiler and debugger. Eclipse also includes nice graphical overview windows that easily let the programmer find methods and classes in a quick way instead of having to scroll through the whole file.
5.3.2 Subversion
Subversion («SVN», 2006) is an open source revision control system. It is used to keep track
of changes in files and directories, and allows for multiple users to make changes to the same file or file structure. Subversion stores files in their current form, and older revision, in a repository. When users are satisfied with a change made to a file they commit those changes in the repository, and likewise they can check out files to get updated changes from other users. The most important functions of revision control systems, is their ability to restore older versions of files, and resolve file conflicts. Restoring older versions can be important. Ff changes that have been made to a file later appears to be wrong and perhaps break the
program or application they belong to, restoring an older version of the file might correct the problem. Conflict solving is essential for allowing multiple people to edit the same file. Sometimes changes are made that do not reconcile, for instance two users may edit the same word in a text file, to a synonym of that word. Subversion will then let the users know that there is a file conflict, and suggest solutions.
We used subversion during our entire development process to handle our program files. It allowed us to work on the same files in the program, even from different locations. Whenever
we wanted to work on the game, we simply checked out the latest version of the software from the repository, and check the changes into the repository when we were done.
Subversion also worked as a continuous backup of our system as we always had an up to date version of the game stored in the repository.