| <?php | |
| require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); | |
| require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); | |
| require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); | |
| $App = new App(); | |
| $Nav = new Nav(); | |
| $Menu = new Menu(); | |
| include($App->getProjectCommon()); | |
| # All on the same line to unclutter the user's desktop' | |
| #***************************************************************************** | |
| # | |
| #**************************************************************************** | |
| # | |
| # Begin: page-specific settings. Change these. | |
| $pageTitle = "OSEE - Client/Server Overview"; | |
| $pageKeywords = "OSEE, Open, System, Engineering, Environment, Eclipse, Define, ATS, OTE, Application Framework, Install"; | |
| $pageAuthor = "Roberto E. Escobar"; | |
| # Paste your HTML content between the EOHTML markers! | |
| $html = <<<EOHTML | |
| <div id="midcolumn"> | |
| <h3>$pageTitle</h3> | |
| <p>In order to be a scalable system, the Open System Engineering Environment (OSEE) has been slowly migrating | |
| into a distributed architecture where clients interact with an application server in-charge of managing access | |
| to an OSEE data store. Additionally, in an effort to provide load balancing, failure recovery, and code compatibility, | |
| clients consult an arbitration server before connecting to an application server. The arbitration server's responsibility | |
| is to keep track of all the application servers interacting with a common data store and direct clients to a healthy | |
| application server compatible with the clients OSEE code version. In this arrangement, arbitration servers act as the | |
| initial access points into the OSEE server cloud where a collection of application servers manage client requests to | |
| access and operate on a common OSEE data store. Figure 1 shows an example of the OSEE Client/Server network.</p> | |
| <br/> | |
| <center><img border="1" style="width:120%;height:120%;" src="images/client_server_view.png" alt="OSEE Client/Server View"/></center> | |
| <center><b>Figure 1. Example of an OSEE Client/Server Network.</b></center> | |
| <br/> | |
| <p>In the figure above, three application servers interact with a single OSEE data store. The data store is comprised | |
| of a relational database and a remote file system used to store binary data. It is not necessary for the database and | |
| the binary data to exist on the same machine. The only requirement is that the application servers have access to both | |
| resources. Upon start-up, each application server registers himself on the data stores server lookup table by entering | |
| its host address, port, supported code versions, and its unique id. When the arbitration server receives a request to find | |
| an application server to support a client connection, the arbitration server reads the data stores server lookup table and | |
| selects the best match for the client. The client requests this information from the arbitration server upon start-up or | |
| whenever it cant communicate with an application server. It is important to note that the arbitration server does not have | |
| to be a different server than an application server. All application servers are able to act as an arbitration server. An | |
| application server is referred as an arbitration server when clients interact with it in this context. Figure 2 depicts | |
| the sequence of events involved in the arbitration process.</p> | |
| <br/> | |
| <center><img border="1" style="width:150%;height:150%;" src="images/arbitration_sequence.png" alt="Arbitration Sequence"/></center> | |
| <center><b>Figure 2. OSEE Client/Server Arbitration Sequence Diagram.</b></center> | |
| <br/> | |
| <p>Once a client receives an application server's address and port information, the client must authenticate with the | |
| application server before it can gain access to the OSEE data store. During the authentication process, a client | |
| submits to the application server the current user's credential information and the authentication protocol id to use | |
| during the process. The application server verifies the user via the selected protocol and grants access to the data | |
| store by creating a session for the user. From this point forward, the application server will be responsible for | |
| managing access to the data store by identifying the user via the session id. Whenever a client wants to interact | |
| with the application server, it will need to submit its session id in order to gain access to the OSEE data store. | |
| Figure 3 shows the sequence of events involved in the authentication process. | |
| </p> | |
| <br/> | |
| <center><img border="1" style="width:150%;height:150%;" src="images/authentication_sequence.png" alt="Authentication Sequence"/></center> | |
| <center><b>Figure 3. OSEE Authentication Sequence Diagram.</b></center> | |
| <br/><br/> | |
| <p></p> | |
| <br> | |
| </br> | |
| </div> | |
| EOHTML; | |
| # Generate the web page | |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
| ?> |