Given by Geoffrey C. Fox at ADMI Tutorial Duluth Minnesota on June 3 99. Foils prepared June 11 99
Outside Index
Summary of Material
Designed to follow-on two talks summarizing Java either in computer education or science |
Summary of Base Pragmatic Object Web approach with multi-tier architecture; distributed electronic objects |
Technologies: Client(DHTML, JavaScript); System and Data Structures (XML, VRML, DOM); Languages (Java, Perl ...) |
Services: Security, Naming Registration and look up, Collaboration |
Applications or Systems built using this approach are called Portals to Education, Computing, Commerce etc. |
This foilset and its Java precursors form the curriculum of our courses in field we call Internetics |
Outside Index Summary of Material
Geoffrey Fox |
Syracuse University |
NPAC |
111 College Place |
Syracuse NY 13244 4100 |
Phone: 3154432163 |
Designed to follow-on two talks summarizing Java either in computer education or science |
Summary of Base Pragmatic Object Web approach with multi-tier architecture; distributed electronic objects |
Technologies: Client(DHTML, JavaScript); System and Data Structures (XML, VRML, DOM); Languages (Java, Perl ...) |
Services: Security, Naming Registration and look up, Collaboration |
Applications or Systems built using this approach are called Portals to Education, Computing, Commerce etc. |
This foilset and its Java precursors form the curriculum of our courses in field we call Internetics |
CPS606 is basic Java and a little Perl (CGI Scripts) and introduction to RMI (Remote Method Invocation) and JDBC |
CPS616 is critical leading edge distributed object and web software system and application building technologies including JavaScript, DHTML, CORBA, Advanced Java Capabilities, Web-linked Databases, Security, Object Web. |
CPS616 contains core software technologies needed to build world wide distributed systems -- this is the key challenge today in computer science |
CPS714 is advanced and emerging topics in the same area as CPS616 and is set up as a mix of lectures and a project course
|
CPS640 is MultiMedia and Network Systems including digital video -- it is the hardware and network technologies needed for world wide distributed systems
|
Summary of Base Pragmatic Object Web approach with
|
Technologies:
|
Services:
|
Applications or Systems built using this approach, which are called Portals |
Browsers have SAME interface on ALL Computers |
CGI Programs were originally usually written in PERL but can be essentially any Process and so do simulation, database access (this is JDBC), advanced document processing etc. Java (servlets) is of growing importance in Server Code |
Browser |
e.g. Netscape |
or Microsoft |
interpreting |
HTML and |
Java |
Viewer and |
helper |
Applications |
for MPEG, VRML |
etc. |
HTTP Web Server |
(becoming Java) |
HTML Documents |
CGI Program |
(e.g. PERL |
becoming |
Java) |
MIME format with HTML etc. |
(generalized email) |
URL (location of |
desired information) |
Basic Services |
Client runs custom software produced with components such as Visual Basic for PC's |
and Web (Java Applets) These will merge |
as Object Web |
Application Server |
runs custom software currently |
produced in ad-hoc fashion but will adopt |
Object Web |
Technology approach |
Critical |
Generic Services such as databases |
Specialized |
Software |
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 |
Documents -- URL |
"General Programs including database invocations"
|
Java Servlets can implement server whatever the object model |
Client |
Middle Tiers |
Back End |
Thin Client |
Summary of Base Pragmatic Object Web approach with
|
Technologies:
|
Services:
|
Applications or Systems built using this approach, which are called Portals |
The Object Web Signifies the merger of distributed object and web technologies |
The Pragmatic Object Web asks us to take the best of CORBA (Industry Standard) COM (Microsoft PC Standard) Java (Web Software Infrastructure) and W3C (XML) |
An "object" is an entity that can be
|
The most common object is a Web Page |
The richest available object model is the Web Document Object Model or DOM |
JavaScript is one language to manipulate this DOM |
Web Browsers render this object |
Web Servers broker this object |
As Web Pages are natural user interface to ALL objects, XML extensions to web pages reflects all objects .... |
Contents of (relational) Databases -- give these a web interface and view as an XML (or HTML) stream
|
Computer Programs -- from CGI Scripts to Servlets to CORBA IDL brokered Fortran Programs |
(Large) data resources -- from file systems to archival storage |
Devices -- from toasters, microsensors to surveillance cameras, PC's, Printers, Supercomputers, Telescopes |
Electronic Mail Messages -- favorite form of collaboration |
Define Objects and properties / methods (backend) and define services (frontend) |
Objects (at "backend") can be on client of course |
Broker or Server |
Rendering Engine |
XML |
Result |
XML Query |
User dependent Style Sheets and Rendering engines |
Rendering Engine |
XML result |
HTML |
Objects |
Universal Interfaces |
IDL or Templates |
Summary of Base Pragmatic Object Web approach with
|
Technologies:
|
Services:
|
Applications or Systems built using this approach, which are called Portals |
HTML is powerful but does not separate display and form (structure of document component as an object) |
XML is a generalization of HTML which allows definition of arbitrary tags |
e.g. <student name="Jane Doe" class="CPS616" grade="..." >Working Hard</student> is more elegant way of capturing information in a reliable fashion than HTML |
<h2>Students</h2> <ul><li>Jane Doe: Working Hard</li><ul> <li>Class: CPS616</li> <li>Grade: ...</li> .... </ul> </ul> with a PERL program to extract data |
XML allows powerful way of defining dynamic Ascii databases useful for "modest size data" such as people, document citations etc. |
XML parsers map XML tags into HTML for display |
XML can also be used to define extensions to HTML such as special tags for mathematics or chemistry or ..... |
XML defines syntax for "serializing" Web objects and transmitting between clients and servers |
Document Type Definition (DTD), which defines the tags and their relationships |
Extensible Style Language (XSL) style sheets, which specify the presentation of the document |
Extensible Link Language (XLL), which defines link-handling details |
It supports scripting languages such as ECMAScript (JavaScript) or Java |
As an example a link can be defined in XML as <LINK> <TITLE>XML Recommendation</TITLE> <URL> http://www.w3.org/TR/REC-xml </URL> <DESCRIPTION> The official XML spec from W3C </DESCRIPTION> </LINK> |
XML is a compromise between the non-extensible, limited capabilities of HTML and the full power and complexity of SGML |
XML Tags are converted to HTML for display (or other XML tags) by one or more Servers or clients |
HTML < XML < SGML |
(CSS) (XSL) (DSSSL) |
XML is a kind of SGML Lite! |
Original |
XML |
New XML |
and perhaps some HTML |
Newer XML |
and perhaps more HTML |
Newest XML |
and perhaps all HTML |
H T M L |
<?xml version="1.0"?> |
<!DOCTYPE BIB SYSTEM "bib.dtd"> |
<references> |
<book>
|
</book> |
<journal>
|
</journal> |
</references> |
XML as serialized version of a bibliographic database |
Summary of Base Pragmatic Object Web approach with
|
Technologies:
|
Services:
|
Applications or Systems built using this approach, which are called Portals |
Notation: is represented as: |
<mrow> |
<mrow>
|
<mrow>
|
</mrow>
|
</mrow>
|
</mrow> |
MathML can be found at W3C WebSite |
Every field has data of special significance -- for field xxxxxx, we imagine a group of standards for semantic content realized in XML. We call this xxxxxxML |
http://www.xml.com/xml/pub/submlist lists some standards currently proposed for XML |
The Portal for xxxxxx must support xxxxxxML |
For businesses, perhaps one needs special support for "excelML" (XML export format for EXCEL) as well as support for more general information data
|
This we define as a group of defined formats that support scientific data, note taking and sketches |
XSIL (Scientific data Interchange) defines metadata needed to specify scientific data files including high level parameters and methods needed to read data
|
VML is Vector Graphics Mark up Language |
DrawML is designed to support simple technical drawings (easier than VML but VML should be able to do this?) |
VRML (3D scenes) re-implemented in XML as X3D |
MathML Mathematical Expressions |
CML Support Chemistry -- not clear this proposal will be adopted widely but this is harbinger of future ..... |
XML standards for scientific codes |
Summary of Base Pragmatic Object Web approach with
|
Technologies:
|
Services:
|
Applications or Systems built using this approach, which are called Portals |
VRML plays same role to 3D worlds that HTML does to documents |
VRML 1.0 has been widely available and specifies static 3D scenes through which you can navigate.
|
VRML 2.0 is now the standard with critical enhancements so that individual elements of 3D world are dynamic and can be programmed
|
Bandwidth and computing needs of VRML are handicapping acceptance and appears that VRML will NOT "make it" -- replacement unclear but
|
Non XML( !) Syntax like |
Transform { # The Blue Box Part |
translation -2.4 .2 1 |
rotation 0 1 1 .9 |
children [ |
Shape { geometry Box {} |
appearance Appearance { |
material Material { diffuseColor 0 0 1 } # Blue } |
} |
] |
} |
Gives displays like |
Where each component is programmable and dynamic |
Summary of Base Pragmatic Object Web approach with
|
Technologies:
|
Services:
|
Applications or Systems built using this approach, which are called Portals |
W3C DOM (http://www.w3.org/DOM/ ) defines a platform-independent programmatic interface to web documents:
|
Initially, DOM is bound to ECMAScript but is language neutral in design |
Current Browsers implicitly define a DOM which is somewhat different between Microsoft and Netscape and very different between versions 4 and 5 |
Here is an example of a particular source document encoded in HTML: |
<HTML> |
<TITLE>My home page</TITLE> |
<BODY> |
<H1>My home page</H1> |
<P>Welcome to my home page! Let me tell you about my favorite composers: |
<UL> |
<LI> Elvis Costello |
<LI> Johannes Brahms |
<LI> Georges Brassens |
</UL> |
</BODY> |
</HTML> |
Component Objects in Web Page |
<student stdid="A1231999"> <name>Bugs</name> <surname>Bunny</surname>
|
</student> |
Summary of Base Pragmatic Object Web approach with
|
Technologies:
|
Services:
|
Applications or Systems built using this approach, which are called Portals |
JavaScript (originally called LiveScript) is a web scripting language for clients and servers |
Originally JavaScript was designed to do what you think Java should do -- elegant dynamic animation on the client side |
Then along came Java and JavaScript was eclipsed as it was just Netscape and not so well designed |
Netscape tried to make it a server side language (LiveWire) instead of Perl but Java was much better here as well |
JavaScript lived on for simple arithmetic on client side to produce somewhat better frames (as clicking on a link can call a JavaScript function instead of just loading a URL) and to quickly check forms client side without going back to server which is slow |
A serious weakness was that dynamic aspects of JavaScript could only be used at "load" time and other changes of JavaScript required a "reload" which is real ugly and slow |
Then along came Microsoft and Netscape became distracted and quality of Java on the client side suffered and in fact is still problematical as Java in the browser has poor performance and lags Sun's version |
Further the Web Consortium W3C never really liked Java butting in and thought HTML was the answer |
JavaScript is Java with HTML and browser as AWT |
W3C came along with XML and the DOM (Document Object Model) |
In particular dynamic HTML extensions allowed one to get many benefits of JavaScript dynamically without reloading .... |
Now all this was screwed up in version 4 browsers -- especially by Netscape -- and so the vision was obscured! |
At least Microsoft's version 5 browser implements vision well |
So Java is a good low level client tool and how you program your stock market simulation downloaded from the online broker |
However dynamical HTML and JavaScript is becoming preferred method of client implementations |
Use JavaScript to manipulate "components of documents" and Java to do arithmetic
|
As world develops HTML + JavaScript will become XML and HTML -- both with JavaScript to capture dynamic issues |
On Server, Java always wins over LiveWire (Server Version) but of course you might use C++ for performance |
ECMAScript is that part of JavaScript that is independent of object model |
DHTML is HTML rendering of Document Object Model and includes Cascading Style Sheets (CSS) which allow one powerful ways of assigning properties (such as color fonts etc.) to document components using either name(id) or type (<h2> tag etc.) |
The name DHTML or dynamic HTML reflects feature that one can address the components of document and change on the fly (without reloading page) the properties of these components
|
CSS allows one to take same XML/HTML page and render it in different ways for different clients
|
Database |
or Web Site |
or XML File |
or Computer Program |
or any |
Instrument |
RMI |
DHTML |
User Interacts |
with DHTML Rendering of |
Backend |
Object |
Browser |
renders |
optimally |
for each client |
DHTML is |
Rendering of |
All Objects |
XML |
XML |
HTTP |
Server |
XML Java |
Servlet |
CGI etc. |
IIOP |
Some XML and some |
HTML4 |
HTML or XML+ DHTML Browser |
Etc. |
<HTML> <HEAD> <TITLE>title</TITLE> |
<LINK REL=STYLESHEET TYPE="text/css" HREF="http://style.com/cool.css" TITLE="Cool"> |
<STYLE TYPE="text/css"> |
@import url(http://style.com/basic.css); |
H1 { color: blue } |
H2.vivid {color:pink} |
#myid {position:absolute; color:red; top:20; left:50; background-color:red; visibility:hidden} |
</STYLE></HEAD><BODY> |
<H1>Headline is blue</H1> |
<P STYLE="color: green">While the paragraph is green. |
<h2 class=vivid>And the secondary heading is Vivid</h2> |
<div id=myid> |
<h2>Default Color Positionable element</h2> |
</div> |
</BODY> </HTML> |
Selector |
Declaration |
Summary of Base Pragmatic Object Web approach with
|
Technologies:
|
Services:
|
Applications or Systems built using this approach, which are called Portals |
Java -- Objected Oriented version of C/C++ supporting Interactive Distributed Computing. Original Web architecture (e.g. CGI) was server-side. Java allows design and Implementation of balanced Client Server Applications |
Java likely to be a dominant software engineering and Scientific Computing language -- see http://www.javagrande.org |
Java will probably be preferred language for development of next generation general or custom Web servers using Servlets
|
Java can build client side customized GUI's and graphics/image processing but JavaScript and DHTML competes here and MOST Industry use of Java is in middle tier as Systems Building Language |
New Java 1.1/1.2 have several enhancements including very many specialized API's |
Javabeans are (visual) component model for Java applications |
PERL is a relatively old technology which is being overtaken by Java tidal wave. |
Still PERL has significantly better UNIX System and Document handling capability than Java
|
PERL is traditional but probably not best choice for server CGI extensions and development of filters |
-- except for simpler cases involving text documents |
PERL5 is object oriented but much less elegant (in my opinion) than Java
|
PERL has well understood but now outdated links to databases such as Oracle oraperl |
Education Healthcare Commerce Computing ... |
POW Technologies |
Scripting |
Compiled |
Summary of Base Pragmatic Object Web approach with
|
Technologies:
|
Services:
|
Applications or Systems built using this approach, which are called Portals |
This is critical in many applications and includes a language (Java, JavaScript) as well Object Model implementations |
Security can be implemented simply as a user name / password but there are several special features
|
There are a spate of stories about viruses, hackers and security leaks of computer information from government facilities |
Summary of Base Pragmatic Object Web approach with
|
Technologies:
|
Services:
|
Applications or Systems built using this approach, which are called Portals |
http://www.sun.com/jini/ and also see very interesting Ninja project at UC Berkeley http://ninja.cs.berkeley.edu/ |
Jini is an innovative distributed computing capability that has features that
|
Jini enables services to be dynamically linked to users of services
|
Services can be printers, home stereo components, computers or pieces of software or .... |
All Jini federate members must support the Java VM or be represented by a proxy that does |
Jini has a classic 3 tier architecture with client, lookup service (called broker or server in other architectures) and service provider (the backend) |
There are four basic operations: Discovery, Join, Lookup, and Service Invocation |
Discovery Process: Service Provider broadcasts a request on network that all service providers identify themselves |
Lookup |
Service |
If device is not Java enabled, then a proxy can locate the lookup service on the device's behalf |
Finding one or more lookup services, the Service Provider loads its Java Interface and array of descriptive attributes into the Lookup Service |
Service Provider leases space in yellow pages of Lookup Service for a given time (Say one minute). Lease must be renewed before end of lease time else Lookup Services assumes service has been discontinued -- implements dynamic fault tolerant services |
Add |
Any client locates a Jini Lookup Service and hands a Service Template
|
Lookup Service provides a list of all Services matching this request and Client chooses appropriate service. |
Client downloads a Service object which can implement Service |
The downloaded Service Object implements Service |
Lookup Service no longer part of transaction |
This Service could be:
|
Note Client side Service Object came originally from Service Provider and so automatically consistent and up to date |
Service Object can be downloaded from central source by Service Provider to keep itself up to date |
Use of Lookup Service is typical yellow pages service in all distributed systems (cf. DNS etc.) |
Use of Java as IDL(Interface Definition Language) and RMI as transport layer is specific to Jini
|
Has a particular query syntax with attribute array and use of simple yes/no matching
|
Has a "leasing concept" which seems very valuable in distributed computing where resources are dynamic and fault tolerance important |
Summary of Base Pragmatic Object Web approach with
|
Technologies:
|
Services:
|
Applications or Systems built using this approach, which are called Portals |
Relational databases are increasing in use as it is straightforward in Microsoft Access, Oracle, DB2, Informix, Sybase etc. to provide a Web Interface which can be used for data (mail, curricula material etc.) with Java/JavaScript/Forms based Interfaces |
Object databases such as Illustra also interfaced to Web but "business logic and serialization like XML" separates data object model and storage object model |
Systems such as Cold Fusion provide convenient high level interfaces to Web-linked databases -- use XML templates |
Several excellent Java to Database packages becoming available: in particular the JDBC standard based on ODBC -- more powerful but lower level than systems like Cold Fusion |
CORBA views a database as a managed persistent object |
Old way: Use an Object Database |
Current Approach: Use a Relational Database and business logic in EJB |
Object Database |
Application using data objects |
Backend relational database such as Oracle |
Enterprise Javabean mapping user object to backend persistent data model |
Application using data objects |
Middle Tier |
Summary of Base Pragmatic Object Web approach with
|
Technologies:
|
Services:
|
Applications or Systems built using this approach, which are called Portals |
Assume teachers, students, engineers, shoppers, salespersons, families teach, learn, collaborate, buy, sell, socialize via electronic versions of traditional human interactions combined with shared objects rendered as web pages
|
NPAC Web Server |
JSU Web Server |
Java Tango Server |
....... |
Share URL's |
Audio Video |
Conferencing Chat Rooms |
White Boards etc. |
Address at JSU of Curriculum Page |
Teacher's View of Curriculum Page |
Student's View of Curriculum Page |
Participants at JSU |
Teacher/Lecturer at NPAC |
....... |
Java Sockets |
HTTP |
Java Control Clients |
All Curricula placed on the Web |
Summary of Base Pragmatic Object Web approach with
|
Technologies:
|
Services:
|
Applications or Systems built using this approach, which are called Portals |
Portal to NPAC is http://www.npac.syr.edu |
Portal to the world is http://www.yahoo.com/ or http://my.netscape.com/ |
http://www.amazon.com is a portal to books (and more) |
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.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" |
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 |
Market Value $6.6B |
Annual Sales $154M |
Annual Revenue Growth 210% |
Area 1998 2002 CAGR |
Content Management $1.2B $4.7B 40% |
Business Intelligence $2B $7.3B 38% |
Data Warehouse/Marts $.99B $2.6B 27% |
Data Management $0.18B $0.36B 18% |
Totals $4.4B $14.9B 36% |
http://www.sagemaker.com/company/lynch.htm or |
http://www.sagemaker.com/company/downloads/eip_indepth.pdf |
So between XML/HTML document and backend Fortran is a bunch of servers linked by XML Messages |
This glue (business logic) provided by core POW technologies |
Servers can either be commercial Web Servers (Apache with servlets), CORBA brokers or custom Servers
|
Java/CORBA/WIDL Wrapper |
Style Sheets and Page Design |
Application Integration |
Visualization Server |
Seamless Access |
Collaboration |
Security Lookup |
Registration |
Agents/Brokers |
Backend Services |
Middleware |
Bunch of |
Web Servers |
and Object |
Brokers |