Logical Data Integrity
Under the hood, the IOM-OG Register uses JRuby, an implementation of the Ruby programming language that can be run on a Java Virtual Machine (JVM). JRuby acts much like a bridge between the Java and Ruby world allowing the flexibility of Ruby on Rails development to be combined with the maturity of a JVM.
The IOM-OG Register is deployed as a Java Web Archive (WAR) file. This WAR file can be hosted by any Java application server including Glassfish, JBoss, Tomcat or WebSphere. The WAR file contains all necessary resources required to host the IOM-OG Register application.
The IOM-OG Register supports any of the database types that are supported by Rails’ ActiveRecord JDBC adapter. These include Oracle Database and Express Edition, Microsoft SQL Server and Express, and PostgreSQL.
Cloud Deployment Architecture
The following architecture is used for our cloud deployments to provide a highly available and scalable enterprise solution.
- Static content used by the IOM-OG Register is stored and served by the web server. The reverse proxy provides SSL/TLS termination to ensure all traffic between end users and the IOM-OG Register is secure. If multiple application servers are in use, the load balancer directs a specific request to an available application server.
- The application server provides the functionality of the web application by receiving and responding to HTTP requests.
- A relational database is the primary data store for the appliation and is hosted redundantly to provide high availability.
- To speed up responses to requests, an application cache is used to store commonly accessed data in a in-memory key-value data store.
- Any files including uploaded documents or imports, or files received via a ws-ISBM Service Provider are stored on a file server. These are served to end users via the application server (rather than the web server) to ensure users have permission to access the files.
- Notifications to administrators and users are sent via the email server.
- Error logging and general application performance monitoring provide the health status of the IOM-OG Register. These services are hosted external to the IOM-OG Register so they are reusable across other web applications.
- Integration with other applications occurs via a ws-ISBM Service Provider, which provides a standardized interface to an application messaging service.