Technology
Introduction
Technology is a vast area. It covers the programming language and permanent storage used, how the development environment is organized, including tools, the system architecture including components used and finally the delivery platform. This page is organized accordingly, below this introduction. Solutions are described along with some brief rationale why we have opted for a certain tool and solution.
A general principle for the Foris development has been to use open source tools when, and wherever, possible. This is valid with two notable exceptions. We use the IntelliJ IDE and Oracle.
The editor is not part of the project as such so the editor to use is only a matter of preference. Oracle on the other hand, is the Organization's choice as corporate database. Since this decision was made, also other database solutions have become accepted, notably open source alternatives. At some point we may drift away from Oracle altogether.
Programming language, permanent storage, and authentication
Foris is built using Java. Java is the Organization's choice as standard development environment. Java is also very well known and is part of the biggest open source community in existence. It is a little trickier to use than more recently developed general-purpose scripting language that is especially suited for Web development. However, Java has the cutting edge advantage of being proven, rock-solid, and immensibly scalable. The Foris team is looking into newer technologies for web development, but, when doing this, stay with Java based technologies.
Oracle is used for storing data. The rationale is simple. When the development of Foris commenced, no proven open source solution existed. Moreover, Oracle was, and still is, the organization's database standard.
The Foris team tries to stay away from using Oracle unique (beyond sql-92) SQL functions, procedures and routines. Having that said, in early built modules some of these may have crept in. With an increased database encapsulation using tools as hibernate, the risk of tailor-made SQL has become less of an issue. Alternatives to Oracle are casually considered. MySql is also used by the organization and is one alternative.
FAO has an organization wide system for authentication, "Common Authentication Framework" , (CAF) maintained by the central computer group (CIO). Foris uses CAF across all modules.
System architecture
To be written
Development environment
The Foris developers run their systems on Ubuntu. Coding is done using IntelliJ. Code is kept in in GIT on a common server. Issues are tracked using Jira. Code is regulalry tested, using JUnit.
Delivery plattform
Foris uses a small cluster set-up, based on three virtural server instances maintained by the central computer group, (CIO). One server acts as a load balancer runnig Apache, while two runs Tomcat delivering the actual system.