Given by Geoffrey C. Fox at CPS714 Computational Science Information Track on May 23 99. Foils prepared May 23 99
Outside Index
Summary of Material
This Foilset contains introductory material on CPS714 course for summer 1999 |
Some Aspects of Course Logistics -- all students must go to web sites for complete discussion of this |
Overview of Field and Material covered and relation to other courses CPS606 CPS616 CPS640 |
Summary of Base Pragmatic Object Web and Multi Tier Software Model |
Summary of major topics to be covered and some of the things that we will try to teach you |
Outside Index Summary of Material
Instructor: Nancy McCracken |
teamed with Geoffrey Fox and many others from NPAC |
Syracuse University |
NPAC |
111 College Place |
Syracuse NY 13244 4100 |
Phone: 3154432163 |
This Foilset contains introductory material on CPS714 course for summer 1999 |
Some Aspects of Course Logistics -- all students must go to web sites for complete discussion of this |
Overview of Field and Material covered and relation to other courses CPS606 CPS616 CPS640 |
Summary of Base Pragmatic Object Web and Multi Tier Software Model |
Summary of major topics to be covered and some of the things that we will try to teach you |
CPS606 Taught is basic Java and Perl (CGI Scripts) and introduction to RMI (Remote Method Invocation). It will be taught Fall 99 |
CPS616 is critical leading edge distributed object and web software system and application building technologies including JavaScript, Advanced Java Capabilities, Web-linked Databases, CORBA, Dynamic HTML, Introduction to XML and Security. It will be taught Spring 00 |
CPS616 contains core software technologies needed to build world wide distributed systems -- this is the key challenge today in computer science |
CPS714 is new and specialized topics in the same area as CPS616 and is set up as a mix of lectures and a project course It is taught Summer 00 |
CPS640 is Multimedia and Network Systems including digital video -- it is the hardware and network technologies needed for world wide distributed systems. It will be taught Fall 99 |
CPS690 are introductory research projects with Geoffrey Fox and NPAC staff |
We will assume that everybody has taken CPS616 with success or through divine inspiration knows material listed below well ....
|
NPAC provides servers for you to access Oracle databases and other needed core resources |
You need a UNIX workstation or a PC running Windows (95,98 or NT) |
We will continue the theme of CPS616 -- software and standards (interfaces) for construction of (potentially) large scale distributed systems |
This is object web or the combination of distributed object and web technologies |
We will cover a few ( about 5) topics in detail |
The course grade will be based on
|
You can collaborate on both survey articles and project but naturally a collaborative effort should meet higher standards (in completeness if not brilliance) than that of an individual |
Students will need to prepare proposal for project and to present completed project in class |
We will start by surveying topics so you can choose project and then go into topics in detail |
XML and its application to portals in business education and scientific research |
Distributed Object Security and its application to Internet Commerce, portals and computing |
and so we had better discuss portals
|
Distributed Object registration and lookup services including Jini and LDAP |
Computing including discussion of web servers and
|
May 24: Course Structure and Overview of Topics |
May 27: Introduction to Portals |
June 2: Security |
June 7: Internet Infrastructure
|
June 9: XML Basics and Tools |
June 14: XML Examples such as MathML |
June 16: Computing using Web/Distributed Objects |
June 21: WebFlow as an Example of Web/Distributed Object based Computing |
June 23: Discuss Project Proposals,
|
June 7: Report on Portals |
June 16: Report on Security |
June 22: Project Proposal |
July 7: Report on Internet Infrastructure including object registration etc. |
July 14: Report on XML |
July 21: Report on Web based Computing |
July 28, August 2, August 4: Student Project Presentations in class |
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 |
Need to abstract entities (Web Pages, database entries, simulations) and services as objects with methods(interfaces)
|
COM(Microsoft) and CORBA(world) are competing cross platform and language object technologies
|
Javabeans plus RMI and JINI is 100% pure Java distributed object technology |
W3C says you should use XML which defines a better IDL and perhaps an object model -- certainly does for documents |
How do we do this while technology is still changing rapidly! |
Client Tier |
Javabean Enterprise Javabean |
Old and New Useful Backend Systems |
Back-end Tier |
Services |
Middle Tier |
Servers |
Need to use mix of approaches -- choosing what is good and what will last |
For example develop Web-based databases with Java objects using standard JDBC (Java Database Connectivity) interfaces
|
Use XML to record small databases in flat files |
Use CORBA to wrap existing applications |
Use COM to access components of major PC applications such as Microsoft Excel and Word |
Use Jini and Java to implement dynamic registration of objects |
Use HTML to render everything |
1)Rendering of (Multiple) Objects 2)Proxy to some backend capability used to render |
input and output to and |
from service |
Database |
MPP |
Telescope |
File System |
1)Server acts as a broker |
and control layer |
2)Same software as client |
but higher performance |
multi-user |
3)Again service represented |
as proxy used as a token for |
control logic |
Services with |
specialized software |
and capabilities |
The Proxies and actual instantiation are linked by messages whose semantic content is defined (best) in XML |
The lower system level format can be HTTP RMI IIOP or ... |
The client proxy is for rendering input and output including specification of object |
The middle tier proxy allows choice of backend provider and functional integration (the user can specify integration at client proxy level) |
Real Capability |
XML |
XML |
Objects (at "logical backend") can be on client of course |
Front end can define a generic (proxy for a) object. The middle control tier brokers a particular instantiation |
Broker or Server |
XML |
Result |
XML Query |
Rendering Engine |
Browser |
Rendering Engine |
HTML |
Universal Interfaces |
IDL or Templates |
XML Request for service |
followed by return of XML result |
Clients and their servers |
Middle Tier Custom Servers |
Back End Servers and |
their services |
Need version 5 browsers with good XML support to properly implement this |
We draw three tier as minimum architecture but as previous diagram suggests, one is likely to build a more structured system with middle tier having more layers |
Network computer breaks client tier into two with simple HTML at user and Java servlets providing heavier weight capability on a different machine
|
Well you need some hardware -- that is either an Internet or Intranet
|
You need some software |
You need some standards and capabilities expressed in these standards |
You need some capabilities common to many applications |
You a specific system to solve a particular problem |
Note the hardware can be as little as 1 PC on your desk |
More interestingly it is your 64 PC Linux or Windows NT Cluster up to the cluster of 64 128 node SGI Origin's at Los Alamos
|
Software divides into several types |
Fortran Program |
PLSQL Database |
or ..... |
HTML Rendering |
Java/CORBA/WIDL Wrapper |
Style Sheets and Page Design |
"Glue" with (multiple) tier servers and XML inter tier communication |
The backend software can be parallel or sequential and simulation or information based
|
For purposes here, we need only to define its interface needed to
|
This backend interface is defined as an XML file e.g. <program type="physics"> <run domain="npac" machine="maryland" type="pcnt" > c:\myprogs\a.out</run> <input type="htmlform" > <name>userinput</name> <field default="10" >iterations</field> .......... </input> <output> ...</output> </program> |
For this example (running a physics program), we could use a specific machine as defined on previous foil (the Windows NT PC maryland) or a generic machine <run domain="any" machine="any" type="pcnt" > |
In this case, middle tier broker, would look in a database (XML file) to find what machines were available and either automatically or with user input choose one. |
Note databases and an XML files are logically equivalent |
JDBC can access either Oracle (Microsoft) database or XML ASCII file |
More generally XML can be thought of as general object serialization
|
The XML File <machines domain="npac" > <machine os="nt" cpu="pentium2" memory="128" >maryland</machine> <machine os="nt" cpu="pentium3" memory="256" >georgia</machine> <machine os="95" cpu="mmx" memory="128" >foxport1</machine> ..... </machines> <machines domain="cis" > <machine os="solaris" cpu="sparcXX" >top</machine> ..... </machines> |
is equivalent to database tables such as |
The front end is some document consisting of a mix of HTML or XML
|
We will NOT discuss either how to code backend in PLSQL or Fortran or how to compose final rendered document in HTML |
Example comes from WebWisdomDB for storing training and education curricula objects -- PowerPoint, HTML, Photos .. |
XML embedded as part of HTML "Web Page" |
URL of Web Page invokes Servlet |
e.g. http://witch.npac.syr.edu/servlet/TDLServlet/witch/index.tdl?USID=67 |
Servlet leaves HTML untouched but calls Java Methods to process XML tags |
This Servlet processes <WW_... tags -- others are left for other servers or browser |
Educational Objects i.e. |
Data Defining Curricula Material at all levels from "University" to "foil" |
Server side |
Java(JDBC) |
XML Parser |
Servlet |
Metadata |
WebWisdom XML Template Server |
Conventional XML/HTML Pages |
Dynamically Generated |
(IMS/ADL) Metadata |
Streaming Audio/Video |
Cross Disability Shared Choice of CSS |
Templates Defining in XML How educational data stored in Pages |
Share with TangoInteractive |
JavaScript API |
<!-- WW_CONNECT is a tag that establishes a connection to the database. Connection string may be supplied in the CONNECTION attribute, or if it is omitted (empty string) the default connection string is taken from configuration file for current template.--> |
<WW_CONNECT CONNECTION=""/> |
<html> <head> <title> Separate IMAGE for LOCAL foil |
<!-- WW_FOILNUMBER tag takes the position of the current foil in the current presentation. --> |
<WW_FOILNUMBER PARENTID="${PID}" FOILID="${FID}"/> |
<!-- WW_TITLE is a tag that allows to insert title of a presentation or foil. The presentation/foil is identified by an ID supplied in FOILID attribute. PARENTID is not currently used by the WW_TITLE tag, but can be later used, e.g. to check the formatting properties, which can be defined on the presentation level. FID and PID were supplied by the servlet from query attributes of the URL --> |
Yellow is ordinary HTML, Green XML, White Comments |
So this mix of HTML and XML is processed by a special Java Server and XML is translated as shown in green |
The yellow HTML is passed throuigh untouched |
The URL handed to servlet uniquely specifies page in this case. Better one could pass an XML specification of page |
<html> <head> <title> Separate IMAGE for LOCAL foil 17 while this part came from database</title> |
<body bgfile="whatyouwant.gif" > |
<tt><a href="#image">Image</a><a href="#buttons"> Buttons</a> </tt> <b> |
<a href="currenthelp.html"> HELP!</a> * GREY=local</b><tt> LOCAL IMAGE version of Foils prepared |
May 23 1999 </tt> |
<WW_TITLE FOILID="${FID}"/> |
</title> </head> |
<!-- WW_BODYIMAGE inserts a 'body' HTML tag with background image typical for foil files. --> |
<WW_BODYIMAGE/> |
<tt><a href="#image">Image</a><a href="#buttons"> Buttons</a> </tt> <b> |
<WW_LINK FILENAME="temphelp.tdl" ATTR="">HELP!</WW_LINK> * GREY=local</b><tt> LOCAL IMAGE version of Foils prepared |
<!-- WW_MODIFICATIONDATE inserts modification date of the current foil --> |
<WW_MODIFICATIONDATE FOILID="${FID}"/> </tt> |
...... And So On! |
So between XML/HTML document and backend Fortran is a bunch of servers linked by XML Messages |
This glue (business logic) is topic of this course |
Servers can either be commercial Web Servers (Apache with servlets), CORBA brokers or custom Servers
|
Java/CORBA/WIDL Wrapper |
Style Sheets and Page Design |
So we will start with Portals. These are essentially the name for the whole system where it is designed to address a particular application |
Portal to Syracuse University is by definition http://www.syr.edu |
Portal to NPAC is http://www.npac.syr.edu |
Portal to the world is http://www.yahoo.com/ or http://my.netscape.com/ |
Portal to latest news is http://www.cnn.com |
Portal to computational chemistry is http://www.osc.edu/~kenf/theGateway/PSEactivities/CCM.html |
Portal to stock trading is http://quote.yahoo.com/ |
http://www.npac.syr.edu/restricted/ is a portal to NPAC internal information |
http://www.ibm.com is the external portal to IBM for customers. There will also be an internal portal for IBM employees used to "run the company" |
http://www.amazon.com is a portal to books (and more) |
Kodak is interested in portals to family memorabilia |
More generally a portal is a web entrance to a set of resources and consists of a mix of information, computer simulations and various services |
For businesses portals generalize the concept of a a company Intranet and encompass domain of IBM main frames, Lotus Notes etc. |
For computing, portals are called Problem Solving Environments |
We can identify a set of tools that enable the construction of portals |
These are roughly equivalent to the tools needed to build a general application based on "object web technologies" |
There is also an architecture (explained ad nauseam before) implying multi-tier systems with standard compliant interfaces |
A common portal architecture means that portals can be conveniently linked together
|
Historically us Fortan programmers built systems from subroutines and libraries linked by COMMON blocks and argument lists |
Languages like Java support this type of linkage with some changes through methods.
|
However there are other features in portal programming
|
Linkage between portal components is often best done through event signals with listeners and observers
|
JavaBeans use the same event model as the AWT to communicate between Beans. This involves an indirect structure with Listeners acting as a bridge or broker between Sources (of information) and Sinks or what is synonymous observers. |
Source Bean |
Listener |
Sink Bean |
2) Notification of need to communicate |
1) |
Source Bean |
Sink Bean |
3) Communicate |
In the simplest case when one combines sink with listener, then one typically finds cycle (with any number of sinks)
|
Although Javabeans exhibit this model, one needs it throughout the portal and a distributed object system should have some sort of event service and messaging service
|
The messaging service needs support appropriate queuing and other constraints |
Software is built using Design patterns and other software engineering techniques |
Note modules in Portal Programming are larger (coarse grain) than the modules that make up say a typical Java program |
Large modules imply looser synchronization constraints and the asynchronous communication model we described
|
So we currently have languages (Java ..) distributed object support and standards (CORBA ...), interface standards (XML), transport protocols (HTTP, TCP/IP) at various levels, rendering standard(HTML). |
We have web clients and servers |
We need certain capabilities in common to many portals. These include
|
So in this course, we will discuss security as it is a common service needed by many portals
|
And a discussion of special difficulties as seen by spate of stories about viruses, hackers and security leaks of computer information from government facilities |
Although CORBA for instance provides (by definition) most key distributed object services such as persistence, this is not sufficient as we will inevitably mix object models and further these services are still being developed |
So as one part of this course we will discuss "discuss distributed object" and "internet" (software) infrastructure |
with special attention to issues of naming, registering, looking up (yellow pages) and addressing objects
|
We need to contrast classical hierarchy of naming as in DNS and web URL's as implemented in LDAP with much more intriguing dynamic model in Sun's Jini and UCB's Ninja which are suitable for mobile ephemeral objects |
So we will discuss some special portals
|
The latter include several projects aimed at harnessing the power of the web to do computing
|
NPAC has focussed on networks of web servers and these fit the portal model well |
However there is most computing power in collections of web clients |
A server accepts input and produces output
|
IIOP and HTTP are two common protocols (formats of control data) for inter program messages |
A Web browser (Netscape or Microsoft) can access any server at "the click of a button" with data from user refining action |
Similar to invoking a web page |
"CORBA" or "WIDL" (pure XML CGI specification) is just CGI done right ...... |
Object Broker |
Fortran Simulation Code on Sequential or |
Parallel Machine |
Convert Generic Run Request into Specific Request on Chosen Computer |
Fortran Program |
is an Important |
Type of Object |
It can be built up from |
smaller objects |
e.g. Matrix |
library could be an |
object |
But perhaps more interestingly computing portals involve building a web based problem solving environment to link together all the capabilities needed to compute |
run programs and access dynamically status of jobs and computers -- in particular allow a uniform interface to running a given job on one of many backend compute servers |
compile and debug programs |
link diverse data sources with computations run on multiple backend machines |
visualize results |
web-based help systems and collections of related scientific papers |
computational steering i.e. interacting with a job (change parameters) based on dynamic results such as visualized results |
See http://www.osc.edu/~kenf/theGateway/ and http://www-fp.mcs.anl.gov/~gregor/datorr/ |
Application Integration |
Visualization Server |
Seamless Access |
Collaboration |
Security Lookup |
Registration |
Agents/Brokers |
Backend Services |
Middleware |
Bunch of |
Web Servers |
and Object |
Brokers |