i2b2 Web Client
Space shortcuts
Space Tools

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...



Users cannot directly interact with the Hive's Cells but must go through an i2b2 client application. There are two publicly available clients;


1. Eclipse client: written in Java and operating as a fat-client application installed on the user's desktop computer.

...

The i2b2 web client was designed to closely follow the Model-View-Controller (MVC) design pattern. In the i2b2 web client Framework, the standard Model-View-Controller design is taken one step further with the addition of a "Communicator" layer which manages all AJAX communications between the browser and the server.


The general guidelines in determining the placement of code within the MVC pattern is:

Model

JavaScript Object structures containing only data. No executable code.

View

Code that is responsible for rendering, and displaying data to screen. If user interface events need to be captured and processed then those events are attached and detached to DOM objects here. The captured event signals are not processed by code within the view code but passed to the controller code.

Controller

Code which modifies i2b2 data in the model namespace. This code makes calls to objects in the communicator namespace to change data on the Cell's server.

Communicator

Any code which enables communication to a back-end server.

...

The state of Web 2.0 technology today is equivalent to the MS-DOS era of desktop computing in that drag & drop, graphical display/manipulation, and inter-application data communication did not exist or existed in extremely simple forms. As a result, applications had to reinvent the wheel each time this type of advanced functionality was needed. Inter-application communication was essentially non-existent.


When Microsoft created Windows they created standardized libraries of routines for use by applications. This standardization also allowed for the creation of communication methods to transfer data between different applications. In modern computing, the computer's OS handles all the complexities of data communication internally. However, this functionality ends at the browser window. For multiple web applications/components to exist within a browser window and effectively communicate with one another, a standardized communication channel must be created by the parent framework. This is accomplished in the i2b2 web client through the Standard Data Exchange subsystem (or "SDX Subsystem") that is used by all cells wishing to allow drag & drop functionality to, or from, their visual elements.

...

All modern web browsers follow the a universal security standard which does not allow JavaScript code to directly communicate with any server that is not the exact same base URL that was used to load the web page. This behavior is critically important in preventing a hacker's code from offloading your personal information to a random IP overseas; it also prevents web-based applications from directly engaging an enterprise's SOA web services.


The solution to this problem is to use a web proxy that forwards the request to the correct service and then returns the response back to the browser. This extremely simple cell enables the browser based web client to participate fully with the i2b2 Hive.

Overview of Web Client's Communication

...

Starting with Web Client v1.4, all communication objects have been rewritten to utilize a standard communication object. This standardization greatly simplifies extending new i2b2 Hive functionality to the Web Client. In addition, the standardized communication objects allow the Web Client to follow the software engineering principles of code reuse.

For more information on the communication process please see the document called "Web Client Communicator Subsystem".