# Presentation: 304415

## JEST ArchitectureShow-Fune Chen

**JEST Architecture****Show-Fune Chen**

- SFC-1

**January 29, 1997**

- 733-PP-005-001

## CLS Context Diagram

**CLS Context Diagram**

**Client**

**User**

**DSS**

**DMS**

**IOS**

**MSS**

**CSS**

**Valid List, Dependent Valids,**
**Definition,**
**Service (Search, Acquire, etc.) Results,**
- Session Management Response

**Advertisement,**
**Service List,**
**Software**

**User Registration/ Profile,**
**Service (Search, Acquire, etc.) Results,**
**Comment Survey, Order Tracking Response**,
**Account Info,**
**Subscription Notification**

**User Registration/Profile Request,**
**Service (Search, Acquire, etc.) Request,**
**Comments, Order Tracking Request,**
- Account Info Request,
- Subscription Request

**Service (Search, Acquire, etc.) Results,**
- Session Management Response

**Service (Search, Acquire, etc.) Request,**
- Session Management Request

**User Profile,**
**Comment Survey,**
**Order Tracking Response,**
- Account Info

**User Registration/Profile Request,**
**User Profile Update, Comments,**
**Order Tracking Request,**
- Account Info Request

**User Authentication Response,**
**DARs, DAR Development Aids,**
- Subscription Response

**User Authentication Request,**
**DARs, DAR Search Request,**
- Subscription Request

***Adv I/F***

***URT, CST***

***Desktop,***
***DART***

***All Tools***

***JEST, DST, (PRT), ****DPRT*

**Advertisement Search Request,**
**Service List Request,**
**Install Request**

***JEST, DDT,***
***          ******DST***

**Valid List Request,**
**Dependent Valids Request,**
**Definition Request,**
**Service (Search, Acquire, etc.) Request,**
- Session Management Request

## HTML Tools Architecture

**HTML Tools Architecture**

**CGI**

**CST**

**DST**

**URT**

**DDT**

**Data**
**Mgmt**

**Mgmt**
**Subsystem**

**Document **
**Data Server**

**User**
**Preferences**

**EOSView**

**DART**

**Advertising**
**Service**

**Java Earth**
**Science**

**Data**
**Dictionary**

**Document**
**Search**

**User**
**Profile**

**Comment**
**Survey**

**Trouble**
**Ticketing**

**V0**
**Guide Server**

**Desktop**

**User ****Workstation**

**ECS Host Computer - HP **

**H**
**T**
**T**
**P**
**d**

## JEST Architecture Design Drivers

**JEST Architecture Design Drivers**

**Accessibility**
**Maximize the distribution of the Client to major Unix workstations, personal computers, and Mac**
**Reduce dependency on dedicated hardware and/or software as opposed to X/Motif applications**
**Interoperability**
**Support simple interfaces to packages of complex, possibly parameterized logic and display**
**Plug and play**
**Maintainability**
**Use open standard technologies**
**Separate application logic from data**
**Reusability**
**Make use of omponents - GUIs and services**

## JEST Architecture - Physical

**JEST Architecture - Physical**

***Applet Class***

**User***** *****Workstation**

**Java Earth**
**Science**

**User**
**Preferences**

**EOSView**

**DART**

**Advertising**
**Service**

**Trouble**
**Ticketing**

**Desktop**

**ECS Host Computer - Sun**

**H**
**T**
**T**
**P**
**d**

**JEST**

***Mojo******      ***

**Service Drivers**

**CSS**

**DMS**

**DSS**

**IOS**

**MSS**

**Others**

## JEST Architecture - Conceptual 

**JEST Architecture - Conceptual **

**3-Tier Application Partitioning**
**Presentation, functionality and data - model, control, view**
**CORBA based framework**
**Independently scaleable**
**Plug and play**
**Message-Oriented Middleware**
**Simple**
**Expandable**
**Fault tolerant**
**Flexible communication mode**

**Mojo**

**...**

**Spatial**

**...**

**MSS**

**IOS**

**DSS**

**DMS**

**CSS**

**Subset**

**Acquire**

**Discrete**

**Temporal**

**Search**

**Hub**

***Messages***
***through***
***HTTP***

**Notes:**
6
Fault tolerant - message can be queued, routed, or stored until a server is available for reception

Flexible communication mode - supports both sync and async modes.

## Mojo Architecture

**Mojo Architecture**

**Every DAD needs a MOM.**
**Benefits**
**Platform independent**
**Fault tolerant**
**Good for stateless communication protocol, such as HTTP**
**Supports persistence of user states**
**No need to support DCE specific protocol on the client system**
**Design Fundamentals**
**Decouple DCE from the GUI**
**Well-defined and robust message framework**
**Designed for human readability**
**Easily extensible**

**HTTPd**

**Mojo**
**Listener**

**CSS**

**DSS**

**Others**

**. . . .**

**ECS Services**

**Login**
**Driver**

**DSI**

**Illustra**
**Driver**

**DSI**
**Driver**

**Other**
**Drivers**

**Illustra**

**. . . .**

- Unix domain socket

**Mojo Process**

- DSS API

- fork/pipe

- fork/pipe

- CSS
- API

- fork/exec/pipe

- Illustra
- API

- HTTP

- Mojo Msgs

## JEST Message Protocol

**JEST Message Protocol**

**Purpose**
**A simple protocol for use between ECS Client applications and the Mojo session server.**
**A common entry point for other clients accessing ECS services.**
**Message Frame: Header/Payload Pairs**
**12-byte length header starts with an ‘L’ followed by the actual size of the message, I.e., L nnnnnnnnnn \n.**
**Message types**
**          ****Hub-->Mojo****	****          Mojo-->Hub**
**	****LOGIN****	****	****	****SESSION**
**	****SEARCH****	****	****	****DONE**
**	****SUBSET****	****	****	****DATA**
**	****  ...****.****	****	****	****  ....**
**	**

## Hub Architecture

**Hub Architecture**

**Benefits**
**Easy separation and reuse of ECS components**
**Supports collaborative efforts**
**Allows simplified APIs**
**Components can be modified independently allowing more rapid development/test cycles**
**Easy integration of COTS packages**
**Design Fundamentals**
**Architecture based on OMG CORBA**
**Supports flexible run-time binding**
**ORB Core receives and translates Mojo messages into internal method calls.**
**The BOA marshals/unmarshals method calls to/from the proper components.**

**ORB Core**

**Basic Object Adapter (BOA)**

- Methods
- A

- Methods
- B

- Interface
- A

- Interface
- B

**Object Implementation**
**e.g., Spatial Package**

**. . . .**

**Object**
**Adapter**
**Calls**

**...****.**

**...****.**

- HTTP

- Mojo Msgs

**Hub**

## JEST Package Hierarchy

**JEST Package Hierarchy**

**ClWbJt - top level directory (to conform ECS naming standard)**
**db - query object manipulation**
**discrete - discrete attribute manipulation**
**gui - GUI related classes, e.g., BorderPanel, Tree, TreeNode**
**image - image related classes, e.g., ImageButton, ImageLoader**
**interfaces - major component bindings**
**javadoc - JEST API documentation**
**jest - JEST core directory**
**options - user configurable options**
**project - project object manipulation**
**result - results object management**
**search - search object management**
**order - product request tool (acquire)**
**spatial - map tool**
**temporal - timeline tool**
**util - misc. utilities, e.g., JulianDay, QuickSort, etc.**