Given by Geoffrey C. Fox at Madison Wisconsin Internet Server Performance Workshop on June 23 98. Foils prepared July 5 98
Outside Index
Summary of Material
We describe the implications of a modern multi-tier Enterprise system where a server does not just get web pages but is a general host of services which are linked together to solve complex problems |
These servers can respect any of the 4 distributed object models CORBA, Java/RMI, COM or W3C's XLM WOM/DOM |
We illustrate these ideas with an analysis of a multi-protocol server JWORB -- written in Java but serving all protocols |
We point out how a multi-tier architecture allows you to build backend systems to increase performance when necessary |
Outside Index Summary of Material
Geoffrey Fox, Wojtek Furmanski |
Syracuse University |
NPAC |
111 College Place Syracuse NY 13244 |
Phone:3154432163 |
June 23 Madison Wisconsin |
1998 Workshop on Internet Server Performance |
in conjunction with SIGMETRICS 98 |
http://www.npac.syr.edu/users/gcf/wisconsinjune98 http://www.npac.syr.edu/users/gcf/wiscpaper/wisc98.html |
We describe the implications of a modern multi-tier Enterprise system where a server does not just get web pages but is a general host of services which are linked together to solve complex problems |
These servers can respect any of the 4 distributed object models CORBA, Java/RMI, COM or W3C's XLM WOM/DOM |
We illustrate these ideas with an analysis of a multi-protocol server JWORB -- written in Java but serving all protocols |
We point out how a multi-tier architecture allows you to build backend systems to increase performance when necessary |
Pragmatic Object Web - integrate competing models for distributed objects: Java, CORBA, COM, WOM |
High Performance Commodity Computing - traditional HPC modules managed by POW on new commodity clusters (PC with NT, Linux or Solaris OS) using Distributed Computing Concepts (HLA,RTI) at coarse grain and classic HPCC for computational kernels |
Visual Authoring of HPDC Applications - towards a uniform high-level visual framework that integrates design / modeling, development / authoring and runtime / steering of distributed applications |
Basic Vision: The current incoherent but highly creative Web will merge with distributed object technology in a multi-tier client-server-service architecture with Java based combined Web-ORB's |
COM(Microsoft) and CORBA(world) are competing cross platform and language object technologies
|
Need to abstract entities (Web Pages, database entries, simulations) and services as objects with methods(interfaces)
|
How do we do this while infrastructure still being designed! |
Major Commercial Java Activity today is on Server NOT Client |
One can anticipate this by building systems in terms of Java objects e.g. develop Web-based databases with Java objects using standard JDBC (Java Database Connectivity) interfaces
|
Even better use (Enterprise) Javabeans which are Java's (middle tier) or client componentware offering visual interfaces, containers (here they are consistent with CORBA standard) and standard software engineering interfacing rules
|
Confused? Read "Building Distributed Systems on the Pragmatic Object Web" -- Book of class I teach to CS/CE students at Syracuse http://www.npac.syr.edu/users/shrideep/book |
Distributed Computing becomes a commodity article (driven by Web Technologies) |
Market niches for orthodox MPP style HPC are shrinking |
NT clusters become a viable and more cost effective alternative to classic high performance systems |
HLA/RTI from distributed simulation community natural for coarse grain while MPI/HPF/.... Natural for fine grain -- must integrate which we claim can be done using a multi tier architecture |
Web/Commodity software - promising base to build new HPcc (commodity computing) |
HPCC has developed good research ideas but cannot implement them as solving computing's hardest problem with 1 percent of the funding
|
We have learnt to use commodity hardware either
|
Let us do the same with software and design systems with maximum possible commodity software basis |
The world is building a wonderful distributed computing (information processing) environment using Web (dissemination) and distributed object (CORBA COM) technologies |
This includes Java, Web-linked databases and the essential standards such as HTML(documents), VRML(3D objects), JDBC (Java database connectivity).
|
We will "just" add high performance to this commodity distributed infrastructure
|
The alternative strategy starts with HPCC technologies (such as MPI,HPF) and adds links to commodity world. This approach does not easily track evolution of commodity systems and so has large maintenance costs |
Essential idea is consider a three tier model
|
Preserve the first two tiers as a high functionality commodity information processing system and confine HPCC to the third (lowest) tier.
|
The backend servers would include CORBA objects from Educom's IMS projects; Video servers and Oracle database defined curricula pages from NPAC |
The front end servers would include distributed students with mirror sites to get performance |
In the middle tier, we have JDBC query processing and XLM servlet parsers mapping original data in optimal fashion to match needs of student -- choosing from pure HTML or Interactive Java Whiteboard views of a given object |
Middle Server Tier |
Basic HTTP/CGI Web Server |
Java Web Server |
Transaction Processing Server |
Business Transaction Management |
Javabean |
Enterprise Javabean |
Old and New Useful Backend Software |
Object Broker |
Back-end Tier |
The Services |
Client |
Front-end Tier |
Client |
Middle Tiers |
Back End |
Thin Client |
We have multiple supercomputers in the backend -- one doing CFD simulation of airflow; another structural analysis while in more detail you have linear algebra servers (Netsolve); Optimization servers (NEOS); image processing filters(Khoros);databases (NCSA Biology workbench); visualization systems(AVS, CAVEs)
|
All linked to collaborative information systems in a sea of middle tier servers(as on previous page) to support design, crisis management, multi-disciplinary research |
W is Web Server |
PD Parallel Database |
DC Distributed Computer |
PC Parallel Computer |
O Object Broker |
N Network Server e.g. Netsolve |
T Collaboratory Server |
Clients |
Middle Layer (Server Tier) |
Third Backend Tier |
Larry Smarr and NCSA Collaboration have stressed analogy of deployment of computer/communication technology with impact that electrical and transportation grids had
|
The transportation system was built using lessons from and feed up/down from Sports cars, Cadillacs, Model T's, Ford Escorts etc. |
Computational Grid will be shaped by and shape all applications and technologies |
Internetics expresses synergy between high-end and commodity approaches |
A computational grid is a metacomputer or a "high performance distributed computer system" which must be influenced by and influence the "Object Web" which is here defined as "mass-market"/business IntraNet (low to low) use of Internet/distributed Information Systems |
Applications are metaproblems with a mix of module and data parallelism |
Modules are decomposed into parts (data parallelism) and composed hierarchically into full applications.They can be the
|
Modules are "natural" message-parallel components of problem and tend to have less stringent latency and bandwidth requirements than those needed to link data-parallel components
|
Assume that primary goal of metacomputing system is to add to existing parallel computing environments, a higher level supporting module parallelism
|
1)One can "just" use Object Web technologies as a software infrastructure for building parallel, distributed or sequential computing environments which can have a very different architecture from the Web
|
2)Harness the power of the Web as a computer -- use up the idle cycles on the WebTV's in every home -- typically a Web Client based system
|
3)One can view the Object Web as a distributed information system with modest performance and build a metacomputing system with the Web architecture
|
It is natural to base on either a network of Web Clients or Web Servers
|
Web Client Models Include SuperWeb (Javelin) from UCSB and are well illustrated by the January 1997 hotwired article "Suck your Mips". |
Greater functionality but less power and pervasiveness is a pure Web Server model as proposed by NPAC
|
Note total compute power in all Web "clients" is about 100 times that in all Central Supercomputers |
Object Web Software provides a high functionality but modest performance distributed computing (Metacomputing) environment based on either Web (soon to be CORBA IIOP and HTTP/Java Socket) Servers or Clients |
Here we will explore an architecture using servers for control as higher functionality than clients although currently less broadly deployed
|
Object Web Only addresses Integration of already decomposed parts!
|
Here are some examples of using our approach where large scale industry investment in Web technology appears to add significant value to metacomputing systems built with Web architecture
|
Multidisciplinary and Computational Steering Applications
|
Visual and Interpreted Programming Environments
|
Technologies to get High Performance CORBA |
Integration with Forces Modeling (Distributed Event driven Simulation) |
Integration with Networked enabled servers such as NEOS and Netsolve
|
1)Simple Server Approach 2)Classic HPCC Approach |
3)Hybrid Approach with control at server and |
data transfer at |
HPCC level |
Client Tier 1 |
Middle Tier 2 IIOP |
Tier 3: VIA,MPI-IO,Globus |
High Performance Messaging |
High Functionality Messaging |
Use Event Mechanism of Javabeans to invoke High |
performance third tier data transfer from middle tier data control |
4)Invoke High Performance Message Transfer between Observers and Sources specified in Message Event |
Server Tier |
Data Source |
Data Sink (Observers) |
5)Actual Data Transfer |
High Performance Tier |
2)Prepare |
Message Event in Source Control |
1)Register Observers with Listener |
HPcc is High Performance commodity computing |
Encapsulate services (from databases to instruments to MPP's) as middle tier distributed objects using an approach that will evolve to COM/CORBA in future but is deployable today
|
Establish Java Frameworks and Equivalent CORBA Facilities
|
This already gives you an approach to seamless access and a framework for composing complex metaproblems by linking programs together or programs to databases |
Use of Java for: |
High Performance Network Computing |
Scientific and Engineering Computation |
(Distributed) Modeling and Simulation |
Parallel and Distributed Computing |
Data Intensive Computing |
Communication and Computing Intensive Commercial and Academic Applications |
HPCC Computational Grids ........ |
Very difficult to find a "conventional name" that doesn't get misunderstood by some community! |
Java has potential to be a better environment for "Grande application development" than any previous languages such as Fortran and C++ |
The Forum Goal is to develop community consensus and recommendations for either changes to Java or establishment of standards (frameworks) for "Grande" libraries and services |
These Language changes or frameworks are designed to realize "best ever Grande programming environment" |
First Meeting Mar 1 Palo Alto at Java 98 -- 200 Attendees set Agenda -- 30 permanent people and second meeting May 9-10 |
Two more meetings this year -- Draft Report SC98 |
http://www.npac.syr.edu/projects/javaforcse |
The Forum identified several types of benchmarks to probe issues not covered by the many commercial sets. In particular
|
WebFlow - Web based visual dataflow programming |
JWORB - Java Web Object Request Broker - POW middleware server node |
Globus Wrappers - Globus services as WebFlow modules (to become CORBA objects and services) |
Object Web RTI - DMSO RTI of HLA as JWORB service |
Visual Authoring Tools - integrates POW with commodity front-ends (Java applets, ActiveX controls, Office+VBA apps etc.) |
Televirtual (TVR) Environments - Interactive Web/3D front-ends for multi-user POW applications (DirectX, VRML, Java3D) |
(FMS) Training Space - TVR front-ends to POW linked databases |
Pragmatic Object Web is multi-lingual and programmatically complex |
Web based Visual Programming offers a promising avenue towards uniform visual standards (e.g. UML accepted both by Microsoft and OMG) |
NPAC WebFlow starts from the visual composition support (a la AVS / Khoros) and extends it towards steering (NCSA apps) and design / development (planned integration with UML) |
Related NPAC technologies include: DARP, SciVis |
WebFlow - a visual programming environment for the Web with real-time dataflow graph authoring tools |
3-tier multi-server system with Web browser / Java applet front-end, Java Web Server middleware and (Java) computational modules in the backend |
Early prototype - pure Java system, controlled by servlet based Session, Module and Connection Managers |
POW middleware will support all languages |
Used to build both linked modules and as framework for "wrapping legacy codes" as "distributed scientific objects" |
Original Image |
Output Image |
Some of |
Available Image Filters |
Visual DataFlow |
Interface |
Client (Tier 1): Java Graph Editor for Webflow or interpreted debugger (DARP) linked to Java Visualizer SciVis
|
Middle Tier 2: Network of Java Servers linking UNIX and Windows NT systems with "all" services |
Back-end Tier 3: Globus where available. In early 98, this is high performance UNIX system links with no databases and no NT |
Note this is a good high performance I/O architecture whether file system, CORBA or database based |
After architecture foil, next Foils show
|
Client Tier |
IIOP High Functionality |
Middle Tier |
Future Globus |
Globus |
Future Parallel I/O |
A chain of high performance applications is run repeatedly for different data sets |
Each application can be run on several different platforms, depending on the problem size and the load of the machines |
Input and output files must be moved between the machines, as needed |
Output files are visually inspected by the researcher; if necessary applications are rerun with modified input files |
Typically, output files must be converted to a different format before using them as input to the next application in the chain |
WebFlow front-end for visual authoring: drag-and-drop composition of meta-applications from compute-web nodes. |
WebFlow middle-tier implementing distributed object technologies in Java (platform independent, including NT-workstations). The implementation is based on industry standards: currently servlet extended httpd servers, and evolving towards CORBA base |
WebFlow back-end based on commodity software components, in particular low level matacomputing toolkit Globus for HPCC |
Use WebFlow editor to visually compose the chain |
Use integrated with the WebFlow metacomputing directory services (MDS) of Globus to identify resources |
Use WebFlow proxies to Globus resource allocation manager (GRAM) to allocate the resources, including authentication |
Use high performance data transfer mechanisms of Globus (GASS, RIO) |
Use commodity DBMS or LDAP services to identify and retrieve data set as needed. |
Rose by Rational is the leading implementation of the new standard UML (Uniform Modeling Language) |
UML supports OO design for various object-oriented languages in terms of a family of diagram topologies (class, sequence, interaction, activity, deployment..) |
Microsoft has a similar product called Visual Modeler as part of Visual Studio Enterprise Edition |
We are planning to build new WebFlow front-end that would conform to UML and extend it from the design stage towards composition and runtime steering stages |
Currently WebFlow uses a Java Server and manipulates Java applications which can be frontends with native methods to Fortran C or C++ routines |
Change Java Server to JWORB -- server integrating HTTP and IIOP (Web and CORBA) |
Change Java Applications to JavaBeans and non-Java apps to CORBA objects |
Change linkage in WebFlow to respect JavaBean event mechanism |
Then we get HPComponentware |
And using our multi-tier model high performance CORBA |
WebFlow is HPCC version of a |
Typical Visual Interface for JavaBeans |
3-(or more)-tier architecture - Web browser front-ends, legacy (e.g. databases, HPC modules) backends; fat (1+tier) middleware |
Alternative / competing Middleware models:
|
Each model does one or other service particularly well |
POW attempts at integrating various models and services in terms of multi-protocol middleware servers (JWORB) |
JWORB - Java Web Object Request Broker - multi-protocol middleware network server (HTTP + IIOP + DCE RPC + RTP + ..) |
Current prototype integrates HTTP+IIOP i.e. acts as Web Server and CORBA Broker |
Next step: add DCE RPC support to include Microsoft COM |
JWORB - our trial implementation of POW |
JWORB (Java Web Object Request Broker) is our multi-protocol (now HTTP + IOOP) middleware server |
Difficult to demo as middleware invisible... |
We illustrate HTTP and IIOP integration by timing a ping call over IIOP channel while invoking a Web page from JWORB - to notice a transient ping performance drop |
Just IIOP |
Slow down in Ping when JWORB answers HTTP request |
JacORB |
JWORB |
ORBIX |
RMI |
Variable Size Integer Arrays |
Java ORBs Transferring |
variable size Array of Structures |
(RMI slowed by serialization) |
RMI |
JacORB |
ORBIX, JWORB |
Arrays of Integers C++ about 20 times faster than Java |
RMI (Fastest Java) omniORB (C++) |
DoD modeling and simulation (FMS,IMT) community is currently evolving towards the HLA(High level Architecture) framework with the RTI (Run Time Infrastructure) based communication bus. |
The goal of HLA/RTI is to enhance interoperability across more diverse simulators than in the DIS realm, ranging from real-time to time-stepped to event-driven paradigms. |
HLA defines a set of rules governing how simulators (federates) interact with each others. Federates describe their objects via Object Model Template (OMT) and agree on a common Federation Object Model (FOM). |
The overall HLA/RTI model is strongly influenced by the CORBA architecture and in fact the current prototype development is indeed CORBA based. |
Building HPCC on the Object Web implies that we can a common framework for both distributed (event driven) simulations and classic time stepped parallel computing |
Implements DMSO RTI as JWORB service with 2 major CORBA objects: RTI Ambassador and Federate Ambassador |
Offers natural Web interfaces to HLA simulations via HTTP or IIOP channels |
Natural support for human-in-the-loop (Web surfers join WebHLA federation and can collabortate as WebHLA federates) |
Attractive model for High Level Metacomputing |
We can support any given paradigm at either high functionality (web server) or high performance (backend) level |
HPCC Messaging could be a Java/RMI middle tier MPI or Nexus/Optimized Machine specific MPI at backend |
JWORB supports CORBA based RTI already and we can bridge to high performance event driven simulation systems like SPEEDES at the high performance backend layer |
However most problems can be thought of a set of coarse grain entities which are internally data parallel but the coarse grain structure is "functional" parallelism |
So HLA/RTI is especially natural as tier 2 management level of these coarse entities |
Entities can be time synchronized simulations and use MPI(HPF?) at either middle or back end tier or in fact as in DMSO simulations a federate running a custom discrete event simulation |
Resource Management typically breaks down into either
|
So a) is all at middle tier and should use commodity solutions -- there are many queuing systems such as Condor, Codine, LSF which we can "wrap" and Microsoft does not yet have a fully scalable commodity solution
|
So it is still embryonic but we suggest adopting the HLA/RTI framework as this supports job placement, interdependencies (time management) and hierarchical systems of federations --> federates |
Optimized data placement has been largely solved as a mathematical problem by HPCC but not packaged broadly. Our suggestion suggests how to invoke as backend support for a commodity service |
So we have a hierarchy of entities Federation --> Federates --> Objects where can have many tiers in each category |
A Federation could be the set of all jobs to be run on a particular site |
A Federate could be a job consisting of multiple possibly shared objects |
Objects are just data structures in HLA -- you send interaction events instead of invoking methods |
These aspects are organized by Federation, Object and Ownership management services |
We can classify both jobs and computers as separate federations |
Declaration Management corresponds to publication and subscription model of matching services and needs
|
Time Management corresponds to scheduling of sequenced events in discrete event simulations -- it will allow support generally dependencies in jobs -- the CAVE visualization system must be used after simulation |
Data management is classic "load-balancing" problem of parallel computing where you map objects optimally to computers to minimize communication cost and load imbalance |
DMSO specifies FEDEP (Federation Development Process) that enforces tools reuse via common DIFs (Data Interchange Formats) |
This maps naturally on the dataflow model of WebFlow with modules linked by DIF channels |
Textual/spreadsheet editor modules can be built from commodity tools using VBA scripting |
This project uses WebFlow and commodity software to support visual HLA authoring |
|
SBA - Simulation based Acquisiton |
New concept in advanced DoD M&S - full product development cycle in Synthetic Environment (including CFD, CEA etc. HPC simulations) |
We claim that WebHLA is capable to deliver SBA in the near term due to the critical mass of accumulated open standards and freeware |
HPcc can be applied to either parallel or high-performance distributed computing (aka metacomputing) |
In metacomputing, HPcc fills a void as few if any high level tools |
In parallel computing, HPcc provides uniform and perhaps more attractive sustainable user environment |
Can view a parallel computer either as a single tier 2 object
|
Both are interesting
|
This is classic host-node computing model |
Host is logically distinct but can be on same machine as a "node" |
The "Host" is logically a separate Corba object but could of course be instantiated on the same computer as one or more of the nodes. Using the protocol bridge of fig. 15, one could address objects using Corba with local parallel computing nodes invoking MPI and remote accesses using Corba where its functionality (access to very many services) is valuable. |
From HPcc as High Performance Commodity Components |
YES! If one uses the same separation between control and data transfer explained for metacomputing case |
Build a "bridge" that accepts MPI HTTP or CORBA invocation but invokes either the powerful slow CORBA mechanism or the nifty optimized MPI |
Why address nodes as CORBA? -- so you can build applications uniformly so they can access nodes and servers around the world in same message passing style |
Why address nodes with MPI? -- so you can get code that executes very fast! |
Why address nodes with HTTP? -- so you can get advantages of CORBA today as Web Servers dominate! |
This allows MPI (or equivalently Nexus, Globus or PVM) and commodity technologies to coexist with a seamless user interface. |
From HPcc as High Performance Commodity Components |