Full HTML for

Basic foilset Tutorial on Java for Middle tier in Computing Portals

Given by Tom Haupt at Tutorials at ACM Java Grande Meeting on June 14 99. Foils prepared July 6 99
Outside Index Summary of Material


Computing Portals and Web-based PSE's
WebFlow CORBA and Middle Tier
  • Globus and security
WebFlow Applications
  • CEWES LMS
  • NCSA Quantum Simulations
Gateway in Detail
  • Front End and CCM
  • Middle Tier
  • Back End
  • Buildind Gateway components

Table of Contents for full HTML of Tutorial on Java for Middle tier in Computing Portals

Denote Foils where Image Critical
Denote Foils where HTML is sufficient

1 Part I
2 Portals for scientific and engineering communities
3 PPT Slide
4 Seamless Access
5 Example: Globus
6 Towards a complete solution ...
7 PPT Slide
8 Target Architecture
9 Example of a portal
10 PSE Example: CCM IPSE
11 QS Front End
12 Part II
13 WebFlow design
14 A few words about CORBA
15 Distributed objects
16 How is this possible?
17 Example of IDL definition
18 We need more flexibility...
19 Event binding
20 Controlling a module
21 Adding a remote module
22 Back to WebFlow design
23 CORBA Based Middle-Tier
24 WebFlow Server
25 WebFlow Server
26 WebFlow Context Hierarchy
27 Gatekeeper
28 Middle-Tier modules serve as proxies of Back-End Services
29 Modules
30 Services
31 Example of a proxy module
32 WebFlow over Globus
33 Secure Access: terminology
34 Secure Access
35 Security Model
36 Distributed Objects are less secure
37 CORBA security is built into ORB
38 Authentication
39 Privilege Delegation
40 CORBA access model
41 Part III
42 Applications vary by the functionality of their Front-Ends
43 Applications vary by how they are composed from modules
44 The modules can interact with each other in different ways:
45 Applications vary on how the Front-End interacts with the Middle-Tier
46 Landscape Management System
47 LMS Objectives
48 LMS: Changes in Vegetation
49 LMS: Changes in Vegetation
50 LMS Front End
51 Data Retrieval
52 PPT Slide
53 WMS based Visualizations
54 Implementation of LMS
55 Running LMS
56 Client code
57 Interactions between components
58 Quantum Simulations
59 Quantum Simulations
60 QS: WebFlow implementation
61 PPT Slide
62 Implementation of QS
63 QS: Front-End
64 Building an application
65 Document Type Definition
66 Example XML document
67 Object Oriented Applications
68 Mobility System's Applications
69 Part IV
70 Target Architecture
71 Design Issues
72 Gateway Implementation
73 Gateway Implementation (2)
74 Gateway Implementation (3)
75 Gateway Implementation (4)
76 Front End
77 CTA specific knowledge database
78 Visual Authoring Tools
79 Example: Data Flow
80 Example: DARP
81 User and Group Profile
82 Resource Identification and Access
83 Front-End infrastructure
84 Front-End Support
85 User Context
86 PPT Slide
87 Control Applet
88 Screen Dump of the Control Applet
89 Navigator
90 PPT Slide
91 Problem description toolboxes
92 Code toolboxes
93 Resource Request Toolbox
94 Other toolboxes
95 Middle-Tier
96 WebFlow Server
97 CORBA Based Middle-Tier
98 Back End
99 Back End Services
100 Gateway Security
101 Security Model (Keberos)
102 Building Gateway Components
103 Middle-Tier is given by a mesh of WebFlow Servers that manage and coordinate distributed computation
104 How to develop a Gateway component (or a toolbox)
105 How the Back-End interacts with the rest of the system?
106 Implementing Back-End Services
107 What does it take to develop a Gateway module (a proxy)?
108 Selecting a Predefined Task
109 Gateway/WebFlow Mission
110 Updates

Outside Index Summary of Material



HTML version of Basic Foils prepared July 6 99

Foil 1 Part I

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Web Portals for Scientific and Engineering communities
Tom Haupt NPAC

HTML version of Basic Foils prepared July 6 99

Foil 2 Portals for scientific and engineering communities

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Seamless access to HPC resources
Seamless access to instruments
Data storage
Application specific data base
Visualization Tools
Collaboratory
Scientific notepads

HTML version of Basic Foils prepared July 6 99

Foil 3 PPT Slide

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Remote Resources
FRONT-END:
high-level user friendly
- visual programming and authoring tools - application GUI
RESOURCES:
all hardware and software
components needed to complete the user task, including, but not limited to,
compute engines from
workstations to supercomputers,
storage, databases, instruments,
codes, libraries, and licenses.
Desktop/Laptop
Seamless
Access

HTML version of Basic Foils prepared July 6 99

Foil 4 Seamless Access

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Create an illusion that all resources needed to complete the user tasks are available locally.
In particular, an authorized user can allocate the resources she needs without explicit login to the host controlling the resources.
An analogy: NSF mounted disk or a network printer.

HTML version of Basic Foils prepared July 6 99

Foil 5 Example: Globus

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Advantages:
- platform independent mini-language (RSL) for specification of resources
- can be layered on top of different schedulers - enables interoperability between resources (can allocate many resources at a time, file transfer, monitoring, etc.) Disadvantage:
- a bag of low level tools
GRAM Client
Contact address Resource Language Specification
MDS
Directory
Service
GSS-API

HTML version of Basic Foils prepared July 6 99

Foil 6 Towards a complete solution ...

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
PSE: problem description (physics, chemistry, ...)
Task description: I need 64 nodes of SP-2 at Argonne to run my
MPI-based executable "a.out" you can find in "/tmp/users/haupt" on marylin.npac.syr.edu. In addition, I need any idle workstation with jdk1.1 installed. Make sure that the output of my a.out is
transferred to that workstation
Middle-Tier: map the user's task description onto the resource specification; this may include resource discovery, and other services
Resource Specification
Resource Allocation: run, transfer data, run

HTML version of Basic Foils prepared July 6 99

Foil 7 PPT Slide

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Remote Resources
We need a third tier!

HTML version of Basic Foils prepared July 6 99

Foil 8 Target Architecture

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
CTA specific knowledge databases
Visual
Authoring
Tools
User and
Group
Profiles
Resource Identification and Access
Visualizations
Collaboration
WebFlow
Back-End Resources
Problem Solving Environment

HTML version of Basic Foils prepared July 6 99

Foil 9 Example of a portal

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Navigate and choose an existing application to solve the problem at hand. Import all necessary data.
Retrieve data
Pre/post-processing
Run simulations
Select host
Select model
Set parameters
Run

HTML version of Basic Foils prepared July 6 99

Foil 10 PSE Example: CCM IPSE

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Ken Flurchick, http://www.osc.edu/~kenf/Gateway
1 .Define your problem
2. Identify resources (software and hardware)
3. Create input file
4. Run your application
5. Analyze results

HTML version of Basic Foils prepared July 6 99

Foil 11 QS Front End

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Compose interactively
your application
from pre-existing
modules
Data-Flow Front-End

HTML version of Basic Foils prepared July 6 99

Foil 12 Part II

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
WebFlow

HTML version of Basic Foils prepared July 6 99

Foil 13 WebFlow design

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Object Oriented, follows JavaBeans model
  • everything is an object
  • objects interact through events
Firing event E by object A causes invocation of method M of object B. The association of event E and method M is achieved by an event registration mechanism. An event is also an object and it carries data.

HTML version of Basic Foils prepared July 6 99

Foil 14 A few words about CORBA

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
(a digression)
more information on Java, Corba, Distributed Object:
http://www.npac.syr.edu/projects/cps616spring96/index.html

HTML version of Basic Foils prepared July 6 99

Foil 15 Distributed objects

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Typically WebFlow objects live in different address spaces. We use CORBA to invoke methods of the remote objects.
Object A
(event source)
Object B
(event target)
Fire event E
Method M(){
...}
ORB

HTML version of Basic Foils prepared July 6 99

Foil 16 How is this possible?

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
ORB2
Object A
(event source)
Object B
(event target)
Fire event E
Method M(){
...}
ORB1
IIOP
- Objects A and B are CORBA objects (thus not Java objects)
- Objects are defined in IDL (Interface Definition Language)
- IDL definitions are compiled using (Java)IDL compiler
- The IDL compiler generates new classes to be used by the Java compiler
(javac) instead of the original ones, on both the client and server side
- The IDL compiler generates either classes to be extended, or interfaces to be implemented
Object Adapter
serves also as a daemon

HTML version of Basic Foils prepared July 6 99

Foil 17 Example of IDL definition

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
#include "..\BC.idl" module WebFlow {
module lms{
interface runEdys:BeanContextChild { void run(); void receiveData();
void setParameter(in string p);
}; interface runCasc2d:BeanContextChild{ void run(); void runAgain();
}; interface DoneEvent{ Object getSource(); };
}; };
We will create 3 CORBA objects
* two modules: - runEdys - runCasc2d * one event - DoneEvent They will be added to package WebFlow.lms

HTML version of Basic Foils prepared July 6 99

Foil 18 We need more flexibility...

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
WebFlow objects are developed independently of each other (reusable modules): we cannot assume that the event source knows anything about the event target and vice versa

HTML version of Basic Foils prepared July 6 99

Foil 19 Event binding

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
addEventListener
rmEventListener
fireEvent(E,M)
method M
Event Source
Event Target
Adapter
Event
ORB
binding
table
DII
DSI

HTML version of Basic Foils prepared July 6 99

Foil 20 Controlling a module

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Proxy Module
Module
ActionButton1
ActionButton2
....
IIOP
Another complication:
Java sandbox!

HTML version of Basic Foils prepared July 6 99

Foil 21 Adding a remote module

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Local Host
Add module
Module Factory
Proxy Module
Remote Host
FE
request
Add module
Module Factory
Module

HTML version of Basic Foils prepared July 6 99

Foil 22 Back to WebFlow design

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 23 CORBA Based Middle-Tier

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Mesh of WebFlow Servers
implemented as CORBA objects
that manage and coordinate
distributed computation.
Gatekeeper
Authentication
Authorization

HTML version of Basic Foils prepared July 6 99

Foil 24 WebFlow Server

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
The WebFlow server is a container object, a.k.a. context - in fact it implements JavaBeanContext class (Java1.2)
The BeanContext acts as a logical container for JavaBeans ("WebFlow modules and services") and BeanContexts.

HTML version of Basic Foils prepared July 6 99

Foil 25 WebFlow Server

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
User 1
User 2
Application 1
Application 2
App 2
App 1
WebFlow server is given
by a hierarchy of containers
and components
WebFlow server hosts users and services
Each user maintains a number of applications composed of custom modules and common services
WebFlow Services

HTML version of Basic Foils prepared July 6 99

Foil 26 WebFlow Context Hierarchy

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Master Server (Gatekeeper)
Slave Server
Slave Server
User Context
Application Context
Module
Slave Server Proxy

HTML version of Basic Foils prepared July 6 99

Foil 27 Gatekeeper

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 28 Middle-Tier modules serve as proxies of Back-End Services

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Services
User Modules
Browser based Front-End
Browser
based
Front-End
User Space Definition and Task Specification
Metacomputing Services
Back-End Resources

HTML version of Basic Foils prepared July 6 99

Foil 29 Modules

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Similar to JavaBeans
  • full power of Java (or C++) to implement functionality
  • can encapsulate legacy applications
May serve as Proxies
  • JDBC
  • metacomputing services (such as Globus)
  • schedulers (such as PBS, CONDOR, etc)

HTML version of Basic Foils prepared July 6 99

Foil 30 Services

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Services are modules provided by the system and offers a generic functionality
  • job services (submit,monitor,kill,... a job)
  • file services (edit,copy,move,... a file)
  • XML parser
  • database access
  • mass storage access
  • ...

HTML version of Basic Foils prepared July 6 99

Foil 31 Example of a proxy module

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Generate Data
Run Job
Analyze
The Run Job module is a proxy module. It generates the RSL on-the-fly
and submits the job for execution using globusrun function.
The module knows only exec name, location and its arguments/parameters.

HTML version of Basic Foils prepared July 6 99

Foil 32 WebFlow over Globus

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
In order to run WebFlow over Globus there must be at least one WebFlow node capable of executing Globus commands, such as globusrun
Jobs that require computational power of massively parallel computers are directed to the Globus domain, while other jobs can be launched on much more modest platforms, such as the user's desktop or even a laptop running Windows NT.
Bridge between WebFlow and Globus

HTML version of Basic Foils prepared July 6 99

Foil 33 Secure Access: terminology

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Access Control (or Authorization)
  • Assurance that the person or computer at the other end of the session is permitted to do what he asks for.
Authentication
  • Assurance that the resource (human or machine) at the other end of the session is what it claims to be
Integrity
  • Assurance that the information that arrives is the same as when it was sent
Accountability (or non-repudiation)
  • Assurance that any transaction that takes place can subsequently proved to have taken place
Privacy
  • Assurance that sensitive information is not visible to an eavesdropper (usually achieved using encryption)

HTML version of Basic Foils prepared July 6 99

Foil 34 Secure Access

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Mutual authentication of servers and users
  • Certificates, Keberos/SecurID
Access control
  • Full autonomy of the resources owner(s)
  • Akenti
Privacy
Integrity

HTML version of Basic Foils prepared July 6 99

Foil 35 Security Model

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
SECIOP
Front End Applet
https
authentication
& authorization
Gatekeeper
delegation
Stakeholders
HPCC resources
GSSAPI
GSSAPI
Layer 1: secure Web
Layer 2: secure CORBA
Layer 3: Secure access to resources
Policies defined by resource owners
https (SSL)
AKENTI
CORBA security service
GSSAPI (Globus)

HTML version of Basic Foils prepared July 6 99

Foil 36 Distributed Objects are less secure

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
can play both client and server
  • in client/server you trust the server, but not the clients
evolve continually
  • objects delegate parts of their implementation to the other objects (also dynamically composed at runtime). Because of subclassing, the implementation of an object may change over time
interactions are not well defined
  • because of encapsulation, you cannot understand all the interactions between objects
are polymorphic (ideal for Trojan horses!)
can scale without limit
  • how do you manage the access right to millions of servers?
are very dynamic

HTML version of Basic Foils prepared July 6 99

Foil 37 CORBA security is built into ORB

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Secure Communications
Authentication
Client
User
Encryption
Audit
Authorization
Server
Encryption
Credentials
Object
Adapter
ORB

HTML version of Basic Foils prepared July 6 99

Foil 38 Authentication

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
A principal is authenticated once by ORB and given a set of credentials, including one or more roles, privileges, and an authenticated ID.
An authenticated ID is automatically propagated by a secure ORB; it is part of the caller context
Principal
Credentials
Current
Client
Server
set_credentials
get_attributes
authenticate

HTML version of Basic Foils prepared July 6 99

Foil 39 Privilege Delegation

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
No delegation
  • The intermediary uses its own credentials
Simple delegation
  • The intermediary impersonates the client
Composite delegation
  • The intermediary uses both
Client
Target
Client
Target
Client
Target
Client
Target
Object
IIOP

HTML version of Basic Foils prepared July 6 99

Foil 40 CORBA access model

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Based on a trusted ORB model: you must trust that your ORB will enforce the access policy on the server resource
The ORB determines: if this client on behalf of this principal can do this operation on this object
Server uses Access Control Lists (ACL) to control user access
Principal
Role
Rights
Operation

HTML version of Basic Foils prepared July 6 99

Foil 41 Part III

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
WebFlow Applications

HTML version of Basic Foils prepared July 6 99

Foil 42 Applications vary by the functionality of their Front-Ends

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Applications vary by the functionality of their Front-Ends
  • Front-End Applications
    • must be pre-installed
    • run fast, no restrictions
  • Front-End Applets
    • no installation, but may take time to download
    • sandbox restrictions apply, unless signed

HTML version of Basic Foils prepared July 6 99

Foil 43 Applications vary by how they are composed from modules

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Applications vary by how they are composed from modules
  • statically
    • can by prepared in the Middle-Tier
  • dynamically
    • the user composes them from reusable components

HTML version of Basic Foils prepared July 6 99

Foil 44 The modules can interact with each other in different ways:

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
The modules can interact with each other in different ways:
  • through events (object oriented approach)
  • through ports (data flow model)
  • through message passing

HTML version of Basic Foils prepared July 6 99

Foil 45 Applications vary on how the Front-End interacts with the Middle-Tier

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Applications vary on how the Front-End interacts with the Middle-Tier
  • A complete task description is sent to the middle-tier
    • composed of reusable modules
    • predefined
  • Objects are added to the user context one at a time, and Front-End keeps their references

HTML version of Basic Foils prepared July 6 99

Foil 46 Landscape Management System

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
(CEWES)

HTML version of Basic Foils prepared July 6 99

Foil 47 LMS Objectives

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
To develop a web based system that implements a "navigate-and-choose" paradigm and allows the end user to:
  • Select (a set of) computational modules that provide answers to the problem at hand
  • Retrieve input data sets from remote sources
  • Use adequate (remote) computational resources
  • Visualize and analyze output data on the local host
Anytime, anywhere, using any platform
(e.g., a connected to the Internet laptop PC)

HTML version of Basic Foils prepared July 6 99

Foil 48 LMS: Changes in Vegetation

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
A decision maker (the end user of the system) wants to evaluate changes in vegetation in a geographical region over a long time period caused by short term disturbances such as a fire or human activity.
One of the critical parameters of the vegetation model (EDYS) is soil condition at the time of the disturbance.
This in turn is dominated by rainfall that possibly occurs at that time (CASC2D simulation)
Input data for the simulations are available from the Internet, such as Data Elevation Models (DEM) from USGS web site or from custom databases (spices characteristics)

HTML version of Basic Foils prepared July 6 99

Foil 49 LMS: Changes in Vegetation

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Data retrieval
Data preprocessing
Simulation: two interacting codes
  • EDYS
  • CASC2D
Visualization
WMS
EDYS
CASC2D
DEM
Land Use
Soil
Texture
Vegetation
EDYS: vegetation model
CASC2D: watershed model
WMS: Watershed Modeling System

HTML version of Basic Foils prepared July 6 99

Foil 50 LMS Front End

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Data retrieval
Data pre- and post-processing
Simulations

HTML version of Basic Foils prepared July 6 99

Foil 51 Data Retrieval

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
The data wizard allows the user to interactively select the data and
download them to the local machine. The raw data are then fed to the WMS system launched from the browser to generate input files for simulations.

HTML version of Basic Foils prepared July 6 99

Foil 52 PPT Slide

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Launching coupled simulations on different Back-End computational resources

HTML version of Basic Foils prepared July 6 99

Foil 53 WMS based Visualizations

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
The results of the
simulations are send
back to the Front-End,
and can be visualized
using tools included
in WMS package

HTML version of Basic Foils prepared July 6 99

Foil 54 Implementation of LMS

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Front-End (client) is a Java application
  • Data wizard, EDYS and WMS are run locally
"navigate and choose" - no interactive composition of applications
  • EDYS, CASC2D, EDYS and CASC2D
modules exchange data through message passing mediated by WebFlow
client keeps the module references

HTML version of Basic Foils prepared July 6 99

Foil 55 Running LMS

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
slave
runCasc2d
master
UNIX
WinNT
slave
runEdys
lms.class
Data wizard
WMS
exeCasc2d
Web
Server
Web
Server
WebFlow Servers
Client
- WebFlow modules

HTML version of Basic Foils prepared July 6 99

Foil 56 Client code

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
try {
//add modules
p1 = slaveNT.addNewModule("runEdys"); //as defined in conf.file
runEdys re = runEdysHelper.narrow(p1);
p2 = slaveUNIX.addNewModule("runCasc2d"); //as defined in conf.file
runCasc2d rc = runCasc2dHelper.narrow(p2);
//bind events
master.attachEvent(p2,"Casc2dDone","Casc2dDone",p1,"run");
master.attachEvent(p1,"EdysStarted","EdysStarted",p2,"run");
master.attachEvent(p1,"EdysDone","EdysDone",p2,"runAgain");
//invoke methods of runCasc2dImp
rc.run();
}
catch(COMM_FAILURE ex)
{System.err.println(ex.getMessage()); System.exit(1);}

HTML version of Basic Foils prepared July 6 99

Foil 57 Interactions between components

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Write
slave
runCasc2d
master
UNIX
WinNT
slave
runEdys
lms.class
Data wizard
WMS
exeCasc2d
Web
Server
Web
Server
casc2d
IIOP
http
Write
http

HTML version of Basic Foils prepared July 6 99

Foil 58 Quantum Simulations

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 59 Quantum Simulations

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 60 QS: WebFlow implementation

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 61 PPT Slide

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 62 Implementation of QS

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Front-End (client) is a Java applet
applications are created dynamically from pre-existing modules
modules exchange data through ports (data flow model)
server keeps the module references; the references are published on a web site

HTML version of Basic Foils prepared July 6 99

Foil 63 QS: Front-End

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 64 Building an application

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
XML
A visual representation is converted into a XML
document
XML
service
Web
Server
save
parse
ApplContext
Generates Java code to add modules to ApplContext
Publishes IOR
Front-End Applet
Middle-Tier

HTML version of Basic Foils prepared July 6 99

Foil 65 Document Type Definition

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
<!DOCTYPE taskspec [
<!ELEMENT taskspec (task)+>
<!ATTLIST taskspec
UserContextRef CDATA #REQUIRED
AppName CDATA #REQUIRED>
<!ELEMENT task ((task | module)*,connection*) >
<!ELEMENT module (#PCDATA) >
<!ATTLIST module
modulename CDATA #REQUIRED
host CDATA #REQUIRED >
<!ELEMENT connection (out,in)>
<!ELEMENT in EMPTY>
<!ELEMENT out EMPTY>
<!ATTLIST out
modulename CDATA #REQUIRED
eventname CDATA #REQUIRED
<!ATTLIST in
modulename CDATA #REQUIRED
method CDATA #REQUIRED >
]>

HTML version of Basic Foils prepared July 6 99

Foil 66 Example XML document

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
<taskspec UserContextRef="123as321" AppName="TestApplication">
<task>
<module modulename="FileBrowser" host="localhost">
</module>
<module modulename="FileEditor" host="localhost">
</module>
<module modulename="Gaussian" host="localhost">
</module>
<connection>
<out modulename="FileBrowser" eventname="FileEvent" event="File"/>
<in modulename="FileEditor" method="run"/>
</connection>
<connection>
<out modulename="FileEditor" eventname="FileEvent" event="File"/>
<in modulename="Gaussian" method="run"/>
</connection>
</task>
</taskspec>

HTML version of Basic Foils prepared July 6 99

Foil 67 Object Oriented Applications

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 68 Mobility System's Applications

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Coordinates transformations
Remote HPCC resources
- Web interface to store data in DB in variable format - Data transfer from DB to a visualization engine
- Coordinates transformations on
a remote server - Launching simulations on remote
hosts with interactive input

HTML version of Basic Foils prepared July 6 99

Foil 69 Part IV

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Gateway: Portal for Computing

HTML version of Basic Foils prepared July 6 99

Foil 70 Target Architecture

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
CTA specific knowledge databases
Visual
Authoring
Tools
User and
Group
Profiles
Resource Identification and Access
Visualizations
Collaboration
WebFlow
Back-End Resources
Problem Solving Environment

HTML version of Basic Foils prepared July 6 99

Foil 71 Design Issues

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Support for a seamless access (security)
Support for distributed, heterogeneous Back-End services (HPCC, DBMS, Internet, ...) managed independently from Gateway
Variable pool of resources: support for discovery and dynamical incorporation into the system
Scalable, extensible, low-maintenance Middle Tier
Web-based, extensible, customizable, self-adjusting to varying capacities and capabilities of clients (humans, software and hardware) front end

HTML version of Basic Foils prepared July 6 99

Foil 72 Gateway Implementation

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Distributed, object-oriented middle tier
  • CORBA objects (Gateway Containers, Gateway Modules and Gateway Services) implemented in Java. [Scalable, extensible, low-maintenance middle tier]
  • Containers define the user environment.
  • Modules and Services serve as proxies: they accept the user requests (Front End) and delegate them to the Back End. [Support for distributed, heterogeneous back-end services managed independently from Gateway]
  • Note: modules can be implemented in C++; also can be DCOM components

HTML version of Basic Foils prepared July 6 99

Foil 73 Gateway Implementation (2)

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Gateway operates in a keberized environment [Support for a seamless access]
  • tickets are generated on the client side
  • Keberos-based CORBA security service is used to manage the user sessions
  • Globus GSSAPI implemented over Keberos is used for resource allocation

HTML version of Basic Foils prepared July 6 99

Foil 74 Gateway Implementation (3)

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Task Specification is expressed in XML
  • CTA independent
  • Decouples implementation of the Front End and the Middle Tier
  • Allows for an abstract (platform independent) task specification, and thus the Middle Tier may act as a resource broker
Resource Specification is expressed in XML
  • Simplifies match-making and resource discovery
  • Simplifies generating Globus RSL in-the-fly
[Support for distributed, heterogeneous Back-End services; Variable pool of resources; Scalable, extensible, low-maintenance Middle Tier]

HTML version of Basic Foils prepared July 6 99

Foil 75 Gateway Implementation (4)

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Component-based Front-End [extensible]
Front-End Components ("toolbox interfaces") are
  • applets (interfaces for common services)
  • XML pages or frames [Web-based, extensible, customizable, self-adjusting]
All components (Front End, Middle-Tier) are defined in XML and contain metadata (used for component mining)

HTML version of Basic Foils prepared July 6 99

Foil 76 Front End

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 77 CTA specific knowledge database

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
requires server side support (both the middle tier and the back-end) through well defined interfaces
should be constructed from reusable or cloneable components
allows for identification of software components best suited to solve the problem at hand

HTML version of Basic Foils prepared July 6 99

Foil 78 Visual Authoring Tools

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Allows for composition of the computational task from components (reusable modules)
Different tools to support various programming models such as data parallel, task parallel, data flow, object oriented
No assumption on granularity
Metadata about components and support for archiving and mining the components
Support for instrumentation and steering

HTML version of Basic Foils prepared July 6 99

Foil 79 Example: Data Flow

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 80 Example: DARP

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 81 User and Group Profile

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Controls the user/group environment
  • file access
  • job monitoring
  • ...
Allows for customization
  • preferences
  • users with disabilities
  • ...
History of actions
Scientific notebook

HTML version of Basic Foils prepared July 6 99

Foil 82 Resource Identification and Access

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Computational resources
  • hardware, software, licenses
  • desktop applications
Data
  • file systems, mass storage, distributed databases
  • Internet data repositories
Networks

HTML version of Basic Foils prepared July 6 99

Foil 83 Front-End infrastructure

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 84 Front-End Support

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Portal Page
User Context
Control Applet
Navigator (extensible, customizable)
PSE specific toolboxes
  • A placeholder for the Problem Description toolboxes
  • A placeholder for the code toolbox
  • Resource request toolbox
  • Data postprocessing toolbox
Other (Collaboration, Visualizations, ...)

HTML version of Basic Foils prepared July 6 99

Foil 85 User Context

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Represents a Gateway session.
The session is associated with a user (or group) profile.
WebFlow extends the notion of the UNIX profile via the 'User Data Base' (UDB). This UDB contains information about submitted jobs, history of the users actions, and other user state information. The user context may also contain application/front-end specific information.

HTML version of Basic Foils prepared July 6 99

Foil 86 PPT Slide

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 87 Control Applet

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
The control applet is responsible for maintaining the session, and direct communication with the middle-tier.
Direct communication is the most efficient, but since it is buried into an applet, this mechanism is not readily customizable.
The generic services, such as file service (upload, download, edit, copy, move, delete) and job services (show current jobs/show queues/kill jobs) will be supported this way. [combination of the user context and a query]
The Gateway will also support a non-direct communication with the middle-tier through servelts.

HTML version of Basic Foils prepared July 6 99

Foil 88 Screen Dump of the Control Applet

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 89 Navigator

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
The navigator allows the user to select and customize toolboxes.
Embedded in a separate frame, it consists of menus, buttons, links, etc, derived from an XML document.
The navigator is a hierarchical, extensible and customizable.

HTML version of Basic Foils prepared July 6 99

Foil 90 PPT Slide

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 91 Problem description toolboxes

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
The problem description is application specific, and the Gateway only provides a general framework for creating a PSE.
The most important part is the specification of what services (middle and back tier) are needed, what is their API, and how to add new services.
Example services: access to databases, XML parsing, generating HTML in-the-fly, file services.

HTML version of Basic Foils prepared July 6 99

Foil 92 Code toolboxes

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
The end user see it as a mapping between the problem description and software to be used to solve the problem. Actually, it identifies WebFlow modules and their parameters to be used to construct the application (see resource request toolbox below).
The module parameters may include input files, and if necessary, the input files are generated at this stage (using this or a separate toolbox). In addition, some parameters will be constructed from information stored in data bases, including UDB, and other sources.

HTML version of Basic Foils prepared July 6 99

Foil 93 Resource Request Toolbox

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
The front-end activities result in an abstract task specification.
Abstract in the sense that the user may not know nor care what actual resources are used.
The task is composed of independently developed modules and services following different programming models.

HTML version of Basic Foils prepared July 6 99

Foil 94 Other toolboxes

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Visualizations
Collaboration
Scientific notebook
...

HTML version of Basic Foils prepared July 6 99

Foil 95 Middle-Tier

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 96 WebFlow Server

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
User 1
User 2
Application 1
Application 2
App 2
App 1
WebFlow server is given
by a hierarchy of containers
and components
WebFlow server hosts users and services
Each user maintains a number of applications composed of custom modules and common services
WebFlow Services

HTML version of Basic Foils prepared July 6 99

Foil 97 CORBA Based Middle-Tier

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Mesh of WebFlow Servers
implemented as CORBA objects
that manage and coordinate
distributed computation.
Gatekeeper
Authentication
Authorization

HTML version of Basic Foils prepared July 6 99

Foil 98 Back End

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 99 Back End Services

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Access to HPCC (via Globus)
Access to distributed databases (via JDBC)
Access to mass storage
Access to the Internet resources
Access to desktop application and local data
Access to code repositories

HTML version of Basic Foils prepared July 6 99

Foil 100 Gateway Security

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 101 Security Model (Keberos)

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
SECIOP
Front End Applet
SECIOP
authentication
& authorization
Gatekeeper
delegation
HPCC resources
GSSAPI
GSSAPI
Layer 1: secure Web
Layer 2: secure CORBA
Layer 3: Secure access to resources
Policies defined by resource owners

HTML version of Basic Foils prepared July 6 99

Foil 102 Building Gateway Components

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 103 Middle-Tier is given by a mesh of WebFlow Servers that manage and coordinate distributed computation

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
.
Gateway applications are composed of independent reusable modules
Modules are written by module developers who have only limited knowledge of the system on which the modules will run.
The WebFlow system hides module management and coordination functions

HTML version of Basic Foils prepared July 6 99

Foil 104 How to develop a Gateway component (or a toolbox)

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Back-end service
Middle-tier proxy
Front-end controls

HTML version of Basic Foils prepared July 6 99

Foil 105 How the Back-End interacts with the rest of the system?

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Often, your job do not need to interact.
  • Using GRAM and GASS you stage data and executable, submit the job and retrieve output.
  • Using DUROC you can coallocate resources and run MPI-based parallel/distributed codes. The messages between nodes are sent outside Gateway control or support.
  • HPF runtime will distribute your job and facilitate interprocess communication.

HTML version of Basic Foils prepared July 6 99

Foil 106 Implementing Back-End Services

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
If you need to interact
  • Using a separate module, you may move files between nodes while your jobs are executing
  • Your job may be a server (e.g., database, GRAM) [if socket listener - be careful about security!]
  • Your job my be a CORBA client (Java, C++)
  • ...

HTML version of Basic Foils prepared July 6 99

Foil 107 What does it take to develop a Gateway module (a proxy)?

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Many come as a standard Gateway modules
User's modules
  • Are CORBA objects
    • Define IDL (as an XML document)
    • Compile IDL (in the tie mode)
    • Implement the functionality of the module
    • Implement events
    • Develop Front-End controls that invoke methods of the module

HTML version of Basic Foils prepared July 6 99

Foil 108 Selecting a Predefined Task

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index

HTML version of Basic Foils prepared July 6 99

Foil 109 Gateway/WebFlow Mission

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
seamless access to remote resources
  • through a Web based user interface
  • customized application GUI
high-level user friendly visual programming and runtime environment for HPDC
portable system based on industry standards and commodity software components

HTML version of Basic Foils prepared July 6 99

Foil 110 Updates

From Tutorial on Java for Middle tier in Computing Portals Tutorials at ACM Java Grande Meeting -- June 14 99. *
Full HTML Index
Contact person: Tomasz Haupt
haupt@npac.syr.edu
voice (315) 443-2087
http://www.npac.syr.edu/users/haupt/WebFlow/

© Northeast Parallel Architectures Center, Syracuse University, npac@npac.syr.edu

If you have any comments about this server, send e-mail to webmaster@npac.syr.edu.

Page produced by wwwfoil on Wed Jul 7 1999