Given by Nancy McCracken, Geoffrey C. Fox at Basic Information Track Computational Science Course CPS616 on Spring Semester 1999. Foils prepared January 19 1999
Outside Index
Summary of Material
This Foilset contains introductory material on CPS616 course for spring 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 CPS640 CPS714 and Syracuse University CIS PhD Qualifying exams |
Summary of Base Pragmatic Object Web and Relevant Technologies |
This field is also called Internetics |
Outside Index Summary of Material
Instructor: Nancy McCracken |
teamed with Geoffrey Fox and Wojtek Furmanski and many talented NPAC students |
Syracuse University |
NPAC |
111 College Place |
Syracuse NY 13244 4100 |
Phone: 3154432163 |
This Foilset contains introductory material on CPS616 course for spring 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 CPS640 CPS714 and Syracuse University CIS PhD Qualifying exams |
Summary of Base Pragmatic Object Web and Relevant Technologies |
This field is also called Internetics |
CPS606 Taught last semester is basic Java and Perl (CGI Scripts) and introduction to RMI (Remote Method Invocation) |
CPS616 is critical leading edge distributed object and web software system and application building technologies including JavaScript, 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 new and specialized 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 |
CPS690 are introductory research projects with Geoffrey Fox and NPAC staff |
Courses CPS606 616 714 <--- HTML Java Web Technologies Web Systems <-- |
Material changes with time(<--) so that as new technologies added in CPS714, older and better understood ones are moved into CPS616 which itself hands technologies to CPS606!
|
There are two sections of course: |
1) Main Syracuse University Offering: 4 --> 5.20pm Tuesday Thursday |
2)Internet Section (Access via TangoInteractive or in room 3-201 CST): 5-> 6.20pm (Eastern Time) Monday Wednesday |
All Students MUST read introductory material at Web Sites |
1) Syracuse Course: http://www.npac.syr.edu/projects/cps616spring99/ |
2) Internet Section of Course: http://www.npac.syr.edu/projects/jsuspring99 |
Instructor: Nancy McCracken njm@npac.syr.edu X4687, Room 3-234 |
Reserve Instructor: Geoffrey Fox gcf@npac.syr.edu, Phone X2163, Room 3-131 CST |
There are no special books as we are covering so much material and much is on the Web.
|
We will assume Basic Web Browsing and HTML expertise and Java at the level of CPS606
|
You should be familiar with either PC or UNIX environment and program in at least one real language including Java
|
We will not assume any database or CORBA knowledge and will review basic material such as SQL |
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) |
CPS616 material underlies all major new software systems built by modern companies and so you can get ahead by exploiting NPAC's unusually deep knowledge of it as we are engaged in many significant distributed systems projects
|
Geoffrey Fox leads NPAC but is out of town some 40% of the time starting the end of January. Thus he misses many classes This is plus and minus respectively of being at leading edge ..... |
If you register for class, you accept this "feature" |
Host with Web Server |
and attached CGI Script |
in Perl or Java |
Perhaps linking to a Backend |
service such as a database |
or digital video server |
Host holds HTML files |
typically stored in a |
UNIX/Windows NT |
file system but could also |
be in a database such as |
Oracle or Microsoft Access |
Network trying to |
provide Quality of |
Service |
and using |
compression |
to make better |
use of available |
bandwidth |
Client with a Web |
Browser displaying |
"simple" HTML Text |
and Images obtained |
from host. |
Client runs JavaScript |
(from HTML documents) |
and Java Interpreters |
(acting on downloaded |
JavaVM bytecodes) |
Java and JavaScript |
give general dynamic |
behavior |
Backend |
Service |
CPS606: HTML, Java and CGI Scripts with PERL |
CPS640: Network Services, Multimedia Systems including Server and Client Digital Video |
CPS616: Web-linked Databases (JDBC to Cold Fusion), JavaScript, Javabeans, dynamic HTML, XML, Java Web Servers, Servlets, RMI, Java IDL, CORBA, COM, ActiveX, Security, JDK1.2, and some mention of Lotus Notes, VRML 2.0, Java2D and Java3D |
CPS714: Collaborative and Computing Technologies and whatever is on leading edge |
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 |
There are evolving/confusing/overlapping capabilities ... |
Client |
HTML Java |
Javascript |
User Multimedia |
Viewer |
Plug-Ins |
Java C++ and other processes |
Classic HTTP Server |
LiveWire Interpreter |
Java Server |
General or Specialized |
JDBC |
Perl(5) |
Java |
CGI |
JDBC |
Servlets / Java Processes |
Ora perl etc. |
HTML(2D) |
VRML(3D) JavaScript |
embedded |
in VRML/HTML |
Java bytecodes |
invoked |
from Applet Tags |
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 |
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
|
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
|
Use CORBA to wrap existing applications |
Note Middle tier insulates client from backend -- can use one object model for user level and different one for backend
|
Documents -- URL |
"General Programs including database invocations"
|
2 Tier Model |
Client |
Middle Tiers |
Back End |
Thin Client |
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 |
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 |
Clients and their servers |
Middle Tier Custom Servers |
Back End Servers and |
their services |
Database |
Matrix Solver |
Optimization Service |
MPP |
MPP |
Parallel DB Proxy |
NEOS Control Optimization |
Origin 2000 Proxy |
NetSolve Linear Alg. Server |
IBM SP2 Proxy |
Gateway Control |
Agent-based Choice of Compute Engine |
Multidisciplinary Control (WebFlow) |
Data Analysis Server |
3-(or more)-tier architecture - Web browser front-ends, legacy (e.g. databases, HPC modules) backends; fat middleware |
Use as appropriate the alternative / competing Middleware models:
|
Each model has different tradeoffs (most elegant, powerful, fastest, simplest) |
POW attempts to integrate various models and services in terms of multi-protocol middleware servers (JWORB)
|
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 |
This course will not discuss Java as a language but rather as a system building tool |
Java will probably be preferred language for development of next generation general or custom Web servers and clients
|
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 |
New Java 1.1/1.2 have several enhancements including very many specialized API's |
Javabeans are (visual) component model for Java applications |
JavaScript -- only superficially related to Java and was called LiveScript -- is Netscape's (somewhat supported by Microsoft) fully interpreted Client side extension of HTML. This is a good Client Window integration /customization technology where flexibility more important than performance |
i.e. use JavaScript for Rapid Prototyping of Complex User Interfaces
|
Server side version of JavaScript called LiveWire runs on Netscape Servers -- unsuccessful |
Expect client side use of JavaScript to grow in importance |
There is an emerging DOM or Document Object Model which will be uniform model used by W3C, Netscape, Microsoft
|
Cascading Style Sheets allow one more powerful ways of assigning properties (such as color fonts etc.) to these components using either name(id) or type (<h2> tag etc.) |
DHTML or dynamic HTML allows one to address the components of document and change on the fly (without reloading page) the properties of these components
|
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 |
PERL is a relatively old technology which is being overtaken by Java tidal wave. |
Still PERL has significantly better Systems 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 links to databases such as Oracle oraperl |
The Web provides a convenient integration environment for "mature" technologies migrating from existing computer environments. |
Relational databases are a good example where it is now 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 |
Systems such as Cold Fusion provide convenient high level interfaces to Web-linked databases |
Several excellent Java to Database packages becoming available with the JDBC standard based on ODBC -- more powerful but lower level than systems like Cold Fusion |
CORBA will have good Web and Java Interfaces and we will discuss integration of Web CORBA and database technologies
|
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. Already provides universal visualization environment and we have examples of use In Geographical Information Systems
|
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
|