Architecture Overview

Overall Environment

IntraSmart is a suite of web-based, database driven, applications designed to enhance an organizations ability to communicate and collaborate. The technology behind IntraSmart is designed to adhere to industry standards and to accommodate itself to conform to your chosen Information Technology infrastructure rather than forcing you to accommodate yourself to it's requirements.

Because it is a web-based application, it requires all of the basics one might expect including a network with the TCP/IP protocol implemented, clients running a web browser, and a web-server. Because it is a web-based application, it requires some additional infrastructure like application servers, database servers and mail servers.


Overall Environment Details

Running IntraSmart requires four different components, browser, a web server (with servlet engine), application server(s) and database server. These components may run on a single computer or they may be spread out across many computers.

The server side components of IntraSmart were written in the Java programming language. The computers running the web server and the application server require Sun's Java Runtime Environment (JRE). The JRE is provided with the IntraSmart distribution CD.

The browser does not require a Java Virtual Machine (JVM). IntraSmart does not require that the database server have a JVM installed on it.

The overall flow of the application looks like this:

The picture above indicates how the IntraSmart application flow works.

The user submits a form, via Hyper Text Transport Protocol (HTTP) to the web server. Generally this is done on port 80, the standard port for HTTP transmission, though an administrator may change this if they wish. The web server interprets this submission as being directed towards the Load Balancing Broker Servlet (LBBServlet) and configured to run on the web servers servlet engine, routing it appropriately. The LBBServlet then passes the request onto the Application Server, or the Application Server with the least load on it.

The Application Servers are running various IntraSmart programs, for example the Announcement.class. In Java, these .class programs are basically the same sort of program that one might see as a .exe in the MS Windows environment. The IntraSmart .class programs require supporting .class files. These files reside in the Sapphire/saclasses directory accessible to the Application Server machine(s).

The IntraSmart .class file processes the request, submits or extracts information to the database, then returns the resulting information (via HTTP) to the browser.

 

Client Technologies

IntraSmart requires its users to be equipped with a browser. The browsers that IntraSmart supports are Netscape Navigator 4+, Mozilla 1+, and Internet Explorer 4+.

Browsers are designed to "cache" data - that is, browsers copy files to your local hard drive to reuse if that page is requested again. In general, this is a good thing because the user is not forced to download files (HTML documents, GIFs, and JPEGs) that they have previously downloaded, again. However, IntraSmart's data is "live." If a browser forces you to view a "page" that you have already seen, with the same information on it that you previously viewed, two problems can arise:

  • You may not see information that someone has just entered into the system.
  • You may not see information that you have just entered!

For this reason, we recommend that you set your browser to "View the Page: Every time." This will prevent the above issues from occurring. The data that you are viewing will be the latest in the database.

IntraSmart has two requirements for browser settings:

  • JavaScript must be enabled
  • Cookies must be enabled

We also recommend, under certain circumstances, that some applications be Secure Socket Layer (SSL) enabled, allowing the transmission to be encrypted. Thus, the highest available cryptography (generally 128 bit) is recommended. This will prevent bad people from being able to intercept your username and password, for instance as they are sent to the server.

Netscape 4+/Mozilla 1+
Internet Explorer 4.x
Internet Explorer 5+
Windows 95 Windows 95 Windows 95
Windows 98 Windows 98 Windows 98
Windows NT Windows NT Windows NT
Macintosh Macintosh Windows 2000
Sun Solaris Sun Solaris Windows XP
Linux (Red Hat & Calderas)    

IntraSmart has been tested in these environments. Netscape 4+/Mozilla 1+

A final word about our use of browser technology: the only thing that is being downloaded to it is HTML and JavaScripts. The vast majority of corporate firewalls are enabled to allow this sort of data to be passed to the user requesting the information.
IntraSmart uses JavaScripts primarily for two purposes:

  • Display characteristics (e.g. the bulletin board indentation when responses are added, the days that have items scheduled are highlighted blue in the calendar).
  • Local processing of data (e.g. field verification that a user name has been added in the employee directory, day/month/year navigation in the calendar).

Although IntraSmart is written in Server-Side Java, the product never requires the browsers built in Java Virtual Machine to be invoked within the browser. The only thing Java and JavaScript have in common is that they are both programming languages and they share the name "Java."

In some cases IntraSmart's applications generate email. Therefore, though not required, it is a good idea to have an email client installed. IntraSmart generates emails that are wholly text based and does not incorporate either JavaScripts or Visual Basic Scripts (of ILOVEYOU infamy). As a result any sort of email client is acceptable.

 

Server Technologies

The choices of platforms for the different components of IntraSmart are at the systems administrators' total discretion. IntraSmart has only four requirements:
  • The operating system chosen for the web server must be able to run Java 2 (v1.2.x or greater).
  • The web server platform chosen must be able to run a servlet engine (more on this later).
  • The application server platform must be Windows NT/2000, Linux or Solaris.
  • The platform you choose to run your database server on must be able to support MS SQL Server 7, Oracle 8, or MySQL.

The operating system is the choice of the administrator and the organization the administrator works for. Obviously, the administrator must feel comfortable with the manageability and stability of their chosen operating system. The main platform issue confronting the administration of IntraSmart is disk utilization. IntraSmart uses the web server as the place to store files uploaded to it. Thus, expandability of the file system over time is a major consideration.

The web server is the first step in processing a browser request for IntraSmart.

The web server has four primary purposes in IntraSmart:

  • Storage of IntraSmart template documents
  • Host for Servlet Engine
  • Storage of documents uploaded to IntraSmart via Document Library or Bulletin Board applications
  • Storage of forms created by the Form Generator

Mindbridge has successfully installed IntraSmart on the following web servers:

  • Microsoft IIS (3.x, 4.x & 5.x) on NT 4 & 2000
  • Apache 1.1.3 (NT 4, Linux [RedHat and Caldera distributions] and Solaris)
  • Netscape (iPlanet) Enterprise Server (Solaris and NT)

The security of your web server is of paramount importance; thus, Mindbridge recommends that the IntraSmart template have directory browsing disabled. Should the administrator select this option, Mindbridge supports directories that are encrypted via the Secure Socket Layer (SSL).

Typically, the login page (ismenusystem) and the uploaded documents (isdoclibrary/isfiles) are the encrypted directories. Remember the choice to SSL enable directories is optional, but once the choice has been made, for all practical purposes it is an all or nothing decision.

IntraSmart also employs a servlet called SaLBBServlet. This servlet has the following functions:

  • Act as a gateway to the application servers
  • Decide which application server has the least load on it and route to the application server with the least load on it