Full HTML for

Basic foilset Use of WebFlow to build Problem Solving Environments

Given by Tom Haupt at CEWES Training on WebFlow at Vicksburg on March 9 1999. Foils prepared March 26 1999
Outside Index Summary of Material


Erol Akarsu (*)
Geoffrey Fox
Tomasz Haupt
Alexey Kalinichenko (*)
Kang-Seok Kim (*)
Praveen Sheethalnath (*)
Choon-Han Youn
(*) student
Synergistic projects
(led by W. Furmanski)
at NPAC: FMS
Object WebHLA
JWORB http://bombay.npac.syr.edu/fms
also Tango

Table of Contents for full HTML of Use of WebFlow to build Problem Solving Environments

Denote Foils where Image Critical
Denote Foils where HTML is sufficient

1 WebFlow: Web Interface for Computational Modules
2 Authors
3 Agenda
4 Part I
5 WebFlow Mission
6 PPT Slide
7 Seamless Access
8 Examples:
9 Example: Globus
10 Towards a complete solution ...
11 PPT Slide
12 Target Architecture
13 PPT Slide
14 Example of a custom GUI: LMS Front-End
15 PSE Example: CCM IPSE
16 QS Front End
17 Part II
18 Implementation Strategy
19 Java Grande: DATORR Desktop Access to Remote Resources
20 WebFlow design
21 A few words about CORBA
22 Distributed objects
23 How is this possible?
24 Example of IDL definition
25 We need more flexibility...
26 Event binding
27 Controlling a module
28 Adding a remote module
29 Back to WebFlow design
30 WebFlow Server
31 WebFlow Server
32 CORBA Based Middle-Tier
33 WebFlow Context Hierarchy
34 Gatekeeper
35 Middle-Tier modules serve as proxies of Back-End Services
36 Modules
37 Services
38 Example of a proxy module
39 WebFlow over Globus
40 Part III
41 Secure Access: terminology
42 Secure Access
43 Security Model
44 Distributed Objects are less secure
45 CORBA security is built into ORB
46 Authentication
47 Privilege Delegation
48 CORBA access model
49 PPT Slide
50 Part IV
51 Applications vary by the functionality of their Front-Ends
52 Applications vary by how they are composed from modules
53 The modules can interact with each other in different ways:
54 Applications vary on how the Front-End interacts with the Middle-Tier
55 Landscape Management System
56 LMS Objectives
57 LMS: Changes in Vegetation
58 LMS: Changes in Vegetation
59 LMS Front End
60 Data Retrieval
61 PPT Slide
62 WMS based Visualizations
63 Implementation of LMS
64 Running LMS
65 To run LMS
66 Client code
67 1.start runCasc2d;
68 2. casc2 starts in a new thread, uploads data to its web server and sends "done" event to Edys;
69 3. casc2 waits for new data from Edys; Edys downloads data and runs `till the first rain event
70 4. casc2 waits for data; Edys uploads data, sends event "done" and quits
71 5. runcasc2 fetches data from remote web server
72 6. Casc2d detects new data and resumes execution
73 7. Casc2d completes the rain event and writes new data; runCasc2d detects new data and sends event to Edys
74 8. Edys fetches data from the remote web server and starts; casc2d waits for new data
75 9. This cycle is repeated `till all rain events are processed
76 10. Casc2d quits, final run of Edys begins
77 11. Edys terminates. All data are on the WinNT side and can be visualized using WMS tools.
78 Quantum Simulations
79 Quantum Simulations
80 QS: WebFlow implementation
81 PPT Slide
82 Implementation of QS
83 QS: Front-End
84 Building an application
85 Document Type Definition
86 Example XML document
87 Object Oriented Applications
88 Mobility System's Applications
89 Building an application
90 IPSE/Gateway Project
91 PPT Slide
92 Multi-tier Architecture of Gateway
93 Starting Gateway
94 Initialization of a session
95 Middle-Tier is given by a mesh of WebFlow Servers that manage and coordinate distributed computation
96 Summary of features
97 How to use WebFlow
98 How to install
99 Updates
100 How to write a WebFlow module
101 Write IDL definition
102 Compile usig jidl --tie
103 Implement the interfaces
104 Compile everything (javac)
105 Add modules to config files
106 Add modules to config files
107 Simple Client
108 runCasc2dImp
109 runEdysImp
110 Updates
111 PPT Slide

Outside Index Summary of Material



HTML version of Basic Foils prepared March 26 1999

Foil 1 WebFlow: Web Interface for Computational Modules

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
presented by
Tomasz Haupt Northeast Parallel Architectures Center at Syracuse University
This project is sponsored by the U.S. Army Corps of Engineers Waterways Experimental Station MSRC (Vicksburg, MS) under the DoD Modernization Program, Programming Environment and Training

HTML version of Basic Foils prepared March 26 1999

Foil 2 Authors

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Erol Akarsu (*)
Geoffrey Fox
Tomasz Haupt
Alexey Kalinichenko (*)
Kang-Seok Kim (*)
Praveen Sheethalnath (*)
Choon-Han Youn
(*) student
Synergistic projects
(led by W. Furmanski)
at NPAC: FMS
Object WebHLA
JWORB http://bombay.npac.syr.edu/fms
also Tango

HTML version of Basic Foils prepared March 26 1999

Foil 3 Agenda

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Part I: Introduction (25 min)
Part II: WebFlow Design (45 min)
Part III: WebFlow Security (20 min)
10:30 -10:45 break
Part IV: WebFlow Applications (75 min)
12:00-1:30 lunch
Part V: How to Write WebFlow modules (15 min)
Part VI: LMS details, Demos, Discussion

HTML version of Basic Foils prepared March 26 1999

Foil 4 Part I

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Introduction

HTML version of Basic Foils prepared March 26 1999

Foil 5 WebFlow Mission

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 6 PPT Slide

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 7 Seamless Access

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 8 Examples:

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
WebSubmit (NIST)
TeraWeb (NCS, Inc.)
CCM PSE (OSC)
many others
Web Browser
SP-2
O2K
CGI
CGI
SSL
Disadvantage:
- client/server based on custom protocol over CGI

HTML version of Basic Foils prepared March 26 1999

Foil 9 Example: Globus

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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

HTML version of Basic Foils prepared March 26 1999

Foil 10 Towards a complete solution ...

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 11 PPT Slide

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Remote Resources
We need a third tier!

HTML version of Basic Foils prepared March 26 1999

Foil 12 Target Architecture

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Problem
Solving
Environments
OO Visual
Authoring
Tools
Data-Flow
Visual
Authoring
Custom
Application
GUI
Other
WebFlow
Back-End Resources

HTML version of Basic Foils prepared March 26 1999

Foil 13 PPT Slide

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
PSE
OO
Data Flow
Custom
GUI
Other
WebFlow
DATORR, Alliance
DATORR, Alliance
HPCC: Globus
Other as needed
DBMS: JDBC
Small tasks: Java
user codes
https, IIOP/SECIOP
Example: IPSE
Under development
NCSA Alliance
Example: LMS

HTML version of Basic Foils prepared March 26 1999

Foil 14 Example of a custom GUI: LMS Front-End

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 15 PSE Example: CCM IPSE

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 16 QS Front End

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Compose interactively
your application
from pre-existing
modules
Data-Flow Front-End

HTML version of Basic Foils prepared March 26 1999

Foil 17 Part II

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
WebFlow Design

HTML version of Basic Foils prepared March 26 1999

Foil 18 Implementation Strategy

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Follow industry standards
  • distributed objects: CORBA, Java, JavaBeans...
  • security: https, PKI, GSSAPI, SSL, Keberos5
Participate in creation of standards
  • DATORR, Alliance PKI
Use commodity components
  • Commercial: Web servers and browsers, ORB
  • Academic: Globus, Akenti,...

HTML version of Basic Foils prepared March 26 1999

Foil 19 Java Grande: DATORR Desktop Access to Remote Resources

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Development of WebFlow coincides with DATORR standardization initiative
Could lead to definition of CORBA facilities or Java framework for computing services
Defines:
  • Abstract Task Specification ("user view")
  • Metacomputing Services API ("system view")
  • Security Standards
http://www-fp.mcs.anl.gov/~gregor/datorr/ soon to become http://www.datorr.org

HTML version of Basic Foils prepared March 26 1999

Foil 20 WebFlow design

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 21 A few words about CORBA

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 22 Distributed objects

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Typically WebFlow objects live in different address spaces. We use CORBA to invoke methods of the remote objects.

HTML version of Basic Foils prepared March 26 1999

Foil 23 How is this possible?

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
- 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 March 26 1999

Foil 24 Example of IDL definition

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 25 We need more flexibility...

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 26 Event binding

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 27 Controlling a module

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Proxy Module
Module
ActionButton1
ActionButton2
....
IIOP
Another complication:
Java sandbox!

HTML version of Basic Foils prepared March 26 1999

Foil 28 Adding a remote module

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 29 Back to WebFlow design

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index

HTML version of Basic Foils prepared March 26 1999

Foil 30 WebFlow Server

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 31 WebFlow Server

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 32 CORBA Based Middle-Tier

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 33 WebFlow Context Hierarchy

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Master Server (Gatekeeper)
Slave Server
Slave Server
User Context
Application Context
Module
Slave Server Proxy

HTML version of Basic Foils prepared March 26 1999

Foil 34 Gatekeeper

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index

HTML version of Basic Foils prepared March 26 1999

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

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Services
User Modules
Data Flow
Front-End
OO
Front-End
User Space Definition and Task Specification
Metacomputing Services
Back-End Resources

HTML version of Basic Foils prepared March 26 1999

Foil 36 Modules

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 37 Services

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 38 Example of a proxy module

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
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 March 26 1999

Foil 39 WebFlow over Globus

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 40 Part III

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
WebFlow Security
(design)

HTML version of Basic Foils prepared March 26 1999

Foil 41 Secure Access: terminology

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 42 Secure Access

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 43 Security Model

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 44 Distributed Objects are less secure

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 45 CORBA security is built into ORB

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Secure Communications
Authentication
Client
User
Encryption
Audit
Authorization
Server
Encryption
Credentials
Object
Adapter
ORB

HTML version of Basic Foils prepared March 26 1999

Foil 46 Authentication

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 47 Privilege Delegation

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 48 CORBA access model

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 49 PPT Slide

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Mary Thompson, http://www-itg.lbl.gov/security/Akenti/DOE2000/sld014.htm

HTML version of Basic Foils prepared March 26 1999

Foil 50 Part IV

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
WebFlow Applications

HTML version of Basic Foils prepared March 26 1999

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

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 52 Applications vary by how they are composed from modules

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

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

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

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

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 55 Landscape Management System

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index

HTML version of Basic Foils prepared March 26 1999

Foil 56 LMS Objectives

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 57 LMS: Changes in Vegetation

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 58 LMS: Changes in Vegetation

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 59 LMS Front End

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Data retrieval
Data pre- and post-processing
Simulations

HTML version of Basic Foils prepared March 26 1999

Foil 60 Data Retrieval

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 61 PPT Slide

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Launching coupled simulations on different Back-End computational resources

HTML version of Basic Foils prepared March 26 1999

Foil 62 WMS based Visualizations

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 63 Implementation of LMS

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 64 Running LMS

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 65 To run LMS

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Start web servers on both machines
Start master on WinNT
Start slave on WinNT
Start slave on UNIX
Start client (Java lms) on WinNT

HTML version of Basic Foils prepared March 26 1999

Foil 66 Client code

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 67 1.start runCasc2d;

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
slave
runCasc2d
master
UNIX
WinNT
slave
runEdys
lms.class
Data wizard
WMS
exeCasc2d
Web
Server
Web
Server

HTML version of Basic Foils prepared March 26 1999

Foil 68 2. casc2 starts in a new thread, uploads data to its web server and sends "done" event to Edys;

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
slave
runCasc2d
master
UNIX
WinNT
slave
runEdys
lms.class
Data wizard
WMS
exeCasc2d
Web
Server
Web
Server
casc2d

HTML version of Basic Foils prepared March 26 1999

Foil 69 3. casc2 waits for new data from Edys; Edys downloads data and runs `till the first rain event

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
slave
runCasc2d
master
UNIX
WinNT
slave
runEdys
lms.class
Data wizard
WMS
exeCasc2d
Web
Server
Web
Server
casc2d

HTML version of Basic Foils prepared March 26 1999

Foil 70 4. casc2 waits for data; Edys uploads data, sends event "done" and quits

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
slave
runCasc2d
master
UNIX
WinNT
slave
runEdys
lms.class
Data wizard
WMS
exeCasc2d
Web
Server
Web
Server
casc2d

HTML version of Basic Foils prepared March 26 1999

Foil 71 5. runcasc2 fetches data from remote web server

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
slave
runCasc2d
master
UNIX
WinNT
slave
runEdys
lms.class
Data wizard
WMS
exeCasc2d
Web
Server
Web
Server
casc2d

HTML version of Basic Foils prepared March 26 1999

Foil 72 6. Casc2d detects new data and resumes execution

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
slave
runCasc2d
master
UNIX
WinNT
slave
runEdys
lms.class
Data wizard
WMS
exeCasc2d
Web
Server
Web
Server
casc2d

HTML version of Basic Foils prepared March 26 1999

Foil 73 7. Casc2d completes the rain event and writes new data; runCasc2d detects new data and sends event to Edys

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
slave
runCasc2d
master
UNIX
WinNT
slave
runEdys
lms.class
Data wizard
WMS
exeCasc2d
Web
Server
Web
Server
casc2d

HTML version of Basic Foils prepared March 26 1999

Foil 74 8. Edys fetches data from the remote web server and starts; casc2d waits for new data

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
slave
runCasc2d
master
UNIX
WinNT
slave
runEdys
lms.class
Data wizard
WMS
exeCasc2d
Web
Server
Web
Server
casc2d

HTML version of Basic Foils prepared March 26 1999

Foil 75 9. This cycle is repeated `till all rain events are processed

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 76 10. Casc2d quits, final run of Edys begins

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
slave
runCasc2d
master
UNIX
WinNT
slave
runEdys
lms.class
Data wizard
WMS
exeCasc2d
Web
Server
Web
Server

HTML version of Basic Foils prepared March 26 1999

Foil 77 11. Edys terminates. All data are on the WinNT side and can be visualized using WMS tools.

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
slave
runCasc2d
master
UNIX
WinNT
slave
runEdys
lms.class
Data wizard
WMS
exeCasc2d
Web
Server
Web
Server

HTML version of Basic Foils prepared March 26 1999

Foil 78 Quantum Simulations

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index

HTML version of Basic Foils prepared March 26 1999

Foil 79 Quantum Simulations

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index

HTML version of Basic Foils prepared March 26 1999

Foil 80 QS: WebFlow implementation

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index

HTML version of Basic Foils prepared March 26 1999

Foil 81 PPT Slide

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index

HTML version of Basic Foils prepared March 26 1999

Foil 82 Implementation of QS

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 83 QS: Front-End

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index

HTML version of Basic Foils prepared March 26 1999

Foil 84 Building an application

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 85 Document Type Definition

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 86 Example XML document

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 87 Object Oriented Applications

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index

HTML version of Basic Foils prepared March 26 1999

Foil 88 Mobility System's Applications

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
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 March 26 1999

Foil 89 Building an application

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Applet
Application
Context
Netscape ORB
ORBacus ORB
IIOP
List of servers
List of modules
List of events
List of methods
E
M
Add module
Attach Event
local
remote
Adapter
LLM

HTML version of Basic Foils prepared March 26 1999

Foil 90 IPSE/Gateway Project

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index

HTML version of Basic Foils prepared March 26 1999

Foil 91 PPT Slide

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Back-End services
comprise Tier 3.
Tier 1 is a high-level Front-End for visual programming
Distributed object-based, scalable, and
reusable Web server and Object broker
Middleware forms Tier 2

HTML version of Basic Foils prepared March 26 1999

Foil 92 Multi-tier Architecture of Gateway

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index

HTML version of Basic Foils prepared March 26 1999

Foil 93 Starting Gateway

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Master Server is started by administrator
  • command line
  • administrator page
Slave Server is started by administrator
  • command line
  • administrator page
User Context is created by Servlet
  • Slave server method
  • Security
Application Context is created by User
  • User Context method
Module are added by User
  • Application Context method

HTML version of Basic Foils prepared March 26 1999

Foil 94 Initialization of a session

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Portal
Page
Secure
Web Server
Mutual
authentication
start
AKENTI
Credentials
Globus Cert.
Front End
Applet
WebFlow
Server
User
Context
Netscape's ORB
ORBacus ORB
IIOP

HTML version of Basic Foils prepared March 26 1999

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

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
.
WebFlow 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 March 26 1999

Foil 96 Summary of features

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Single Web-based access via Gateway portal
Security based on standards: https, PKI, secure ORB, GSSAPI (SSL/Keberos5)
Access policies controlled by stakeholders
WebFlow API allows implementation of many different front-ends
Modern three-tier architecture (distributed objects)
Access to HPCC through metacomputing services

HTML version of Basic Foils prepared March 26 1999

Foil 97 How to use WebFlow

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
A production version is being developed within Gateway project (ASC/OSC)
  • first release: Jun'99 (with security features, and a subset of services)
  • Beta release: Sept'99
  • release 1.0: Nov-Dec'99 (SC'99)
A preliminary version is available now
I am looking for WebFlow applications and I am ready for a collaboration

HTML version of Basic Foils prepared March 26 1999

Foil 98 How to install

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Middle-Tier
  • Java1.2 (a.k.a. Java2)
  • ORBacus (http://www.ooc.com)
  • WebFlow classes (haupt@npac.syr.edu)
Web Server (optional)
  • for LMS, any will work: it must serve documents (Apache, Jigsaw)
  • Applets as Front-End: more convenient to use servlets (Jigsaw is the easiest to install both UNIX and WinNT)
  • for secure Web transactions: SSL based server (ApacheSSL, JigsawSSL)
Secure Middle-Tier: ORBacusSSL, Akenti
Recommended HPCC backend: Globus or Globus GSS-API
Front-Ends (from simple to sophisticated)

HTML version of Basic Foils prepared March 26 1999

Foil 99 Updates

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Contact person: Tomasz Haupt
haupt@npac.syr.edu
voice (315) 443-2087
http://www.npac.syr.edu/users/haupt/WebFlow/demo.html

HTML version of Basic Foils prepared March 26 1999

Foil 100 How to write a WebFlow module

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index

HTML version of Basic Foils prepared March 26 1999

Foil 101 Write IDL definition

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
#include "..\BC.idl" module WebFlow {
module lms{
interface runEdys:BeanContextChild { void run(); }; interface runCasc2d:BeanContextChild{ void run(); }; 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 March 26 1999

Foil 102 Compile usig jidl --tie

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
#include "..\BC.idl" module WebFlow {
module lms{
interface runEdys:BeanContextChild { void run(); } interface runCasc2d:BeanContextChild{ void run(); } interface DoneEvent{ Object getSource(); };
}; };
The compiler will create 3 Java interfaces: - runEdysOperations.java - runCasc2dOperations.java - DoneEventOperations.java You have to implement these interfaces. Without --tie option the compiler will generate classes to be extended. We already extend from BeanContextChild

HTML version of Basic Foils prepared March 26 1999

Foil 103 Implement the interfaces

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
module WebFlow {
module lms{
interface runEdys:BeanContextChild { void run(); };
package WebFlow.lms import WebFlow.*; import WebFlow.event.*;
import org.omg.CORBA.*;
public class runEdysImpl extends WebFlow.BeanContextChildSupport implements runEdysOperations { String msg; public runEdysImpl(org.omg.CORBA.Object peer, String msg) { super(peer); this.msg=msg; } public void run() { ... } }

HTML version of Basic Foils prepared March 26 1999

Foil 104 Compile everything (javac)

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Everything means: (for runEdys):
  • runEdys.java
  • runEdysHelper.java
  • runEdysHolder.java
  • runEdysOperations.java
  • StubForrunEdys.java
  • _runEdysImplBase_tie.java

HTML version of Basic Foils prepared March 26 1999

Foil 105 Add modules to config files

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
master.conf
Server name = master
File=D:\Jigsaw\Jigsaw\WWW\Gateway\IOR\master.ref URL=none
Modules:================================== runEdys lms.idl WebFlow.lms.runEdysImpl runCasc2d lms.idl WebFlow.lms.runCasc2dImpl Events:=================================== EdysDone ..\BC.idl WebFlow.lms.EdysDoneImpl IDL:WebFlow/lms/EdysDone:1.0
Casc2dDone ..\BC.idl WebFlow.lms.Casc2dDoneImpl IDL:WebFlow/lms/Casc2dDone:1.0

HTML version of Basic Foils prepared March 26 1999

Foil 106 Add modules to config files

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
slave.conf
Server name = master
File=none URL= http://kasia.npac.syr.edu:8001/Gateway/IOR/master.txt
Modules:================================== runEdys lms.idl WebFlow.lms.runEdysImpl runCasc2d lms.idl WebFlow.lms.runCasc2dImpl Events:=================================== EdysDone ..\BC.idl WebFlow.lms.EdysDoneImpl IDL:WebFlow/lms/EdysDone:1.0
Casc2dDone ..\BC.idl WebFlow.lms.Casc2dDoneImpl IDL:WebFlow/lms/Casc2dDone:1.0

HTML version of Basic Foils prepared March 26 1999

Foil 107 Simple Client

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Public class Client {
public static void main(String args[]) {
configReader config;
ORB orb = ORB.init(args, new java.util.Properties());
String masterURL = args[0];
String ref=getIORFromURL(masterURL);
org.omg.CORBA.Object obj=orb.string_to_object(ref);
WebFlowContext master=WebFlowContextHelper.narrow(obj);
WebFlowContext slave;
try {
org.omg.CORBA.Object p1,p2;
slave=WebFlowContextHelper.narrow(master.getWFServer("ntserver"));
--------> make sure that the name match slave.conf
p1 = slave.addNewModule("runEdys"); p2 = slave.addNewModule("runCasc2d");

HTML version of Basic Foils prepared March 26 1999

Foil 108 runCasc2dImp

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
waitForData(){
waitForUpdate=true;
while (waitForUpdate) {
idle for 1 sec
newMod = (new File(testFile)).lastModified; if(newMod>lastMod) waitForUpdate=false; }
sendData(); fireEvent("Casc2dDone",ev); }
sendData(){ createContents [OutContents] copy files from casc2Dir to OutFileBase
}
Casc2dDone
event
Class cas2dThread extends Thread{
run(){
Process p=Runtime.getRuntime().exec(Casc2dExec); p.waitFor(); }}
run(){
cT = new cas2c2Thread(); cT.start(); waitForData(); }
runAgain(){
receiveData(); moreEvents =nextEvent(lmsStatusFile);
lastMod=(new File(testFile)).lastModified(); if(moreEvents) {
reactivateCasc2d(touchCommand); waitForData(); } }
receiveData(){
getHTTPfile(ContentsFile,ContentsFileURL); for i=0;i<nfiles; i++){
getHTTPfile(casc2dDir+fn, FileBaseURL+fn);} }}
EdysDone
event
called from Front-End

HTML version of Basic Foils prepared March 26 1999

Foil 109 runEdysImp

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
receiveData(){
receiveStat(param3,param4,edysend);
receiveEDY();
run(); }
receiveEDY(){
getHTTPfile(ContentsFile,ContentsFileURL); if(ContentsFile.equals("end")) flag=false; else {
for i=0;i<nfiles; i++){ ... translate names *.edy -> edys expectations
getHTTPfile(EdysInDir+fn, FileBaseURL+fn);} }
receiveStat(int, int, long){
readHTTPfile(StatFileURL);
... StartDay, DayDiff ...options writeFile(OptionsFile,options); //options.txt
run(){
Process p = Runtime.getRuntime().exec(EdysExec);
p.waitFor(); if(flag) { sendData(); fireEvent("EdysDone",ev);} }
sendData(){ createContents [OutContents] copy files from EdysOutDir to OutFileBase
}
Casc2dDone
event
EdysDone
event

HTML version of Basic Foils prepared March 26 1999

Foil 110 Updates

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index
Contact person: Tomasz Haupt
haupt@npac.syr.edu
voice (315) 443-2087
http://www.npac.syr.edu/users/haupt/WebFlow/demo.html

HTML version of Basic Foils prepared March 26 1999

Foil 111 PPT Slide

From Use of WebFlow to build Problem Solving Environments CEWES Training on WebFlow at Vicksburg -- March 9 1999. *
Full HTML Index

© 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 Sat Mar 27 1999