Given by Geoffrey C. Fox at Basic Information Track Computational Science Course CPS616 on Spring Semester 1998. Foils prepared 13 January 98
Outside Index
Summary of Material
This Foilset contains introductory material on CPS616 course for spring 1998 |
Course Logistics |
Overview of Field and Material covered and relation to other courses CPS606 CPS640 CPS714 |
Summary of Base Object Web and Relevant Technologies |
This field is also called Internetics |
Outside Index Summary of Material
Instructor: Geoffrey Fox |
teamed with Wojtek Furmanski, Meryem Ispirli, Nancy McCracken, Shrideep Pallickara, Tom Scavo |
Syracuse University |
NPAC |
111 College Place |
Syracuse NY 13244 4100 |
Phone: 3154432163 |
This Foilset contains introductory material on CPS616 course for spring 1998 |
Course Logistics |
Overview of Field and Material covered and relation to other courses CPS606 CPS640 CPS714 |
Summary of Base 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 Web-linked databases with JDBC |
CPS616 is critical leading edge software system and application building technologies including JavaScript, VRML, Advanced Java Capabilities, Full Web-linked Databases, Security, Object Web and Componentware |
CPS714 is new and specialized topics and is set up as a mix of lectures and a project course |
CPS640 is MultiMedia and Network Systems including digital video |
CPS690 are introductory research projects with myself 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!
|
Instructor: Geoffrey Fox gcf@npac.syr.edu, Phone X2163, Room 3-131 CST |
Reserve Instructor: Nancy McCracken njm@npac.syr.edu X4687, Room 3-234 |
Grader: Meryem Ispirli mispirli@npac.syr.edu, Room 3-221 Cubicle C (knock on door with WebWisdom Logo across from 3-226), Phone X9182 |
Material (Notes etc.) will be available from Tina Mucci tmmucci@npac.syr.edu, Phone X1722, Room 3-206 |
There are no special books as we are covering so much material and much is on the Web.
|
All homework will be handled through the Web with dedicated Web and Database Servers set up for the class
|
Grade will be 35% based on project (last part of class) and 65% based on homework (set weekly in first 65% of class!) |
Use University (or NPAC if you work there) clients to access Class material on the Web |
There are a set of dedicated Pentium Pro PC machines running Windows NT/95 for aspects of class |
A Web linked database will manage course but this is NPAC's and not the University's and so |
Our database only handles sign up for the Grading System in which the students will be able to see their grades and the comments the instructor/TA will make. |
Our database is NOT an official course registration for the Office of the Registrar. |
At the beginning of the semester all students should register through the Office of the Registrar first, and then sign up through the NPAC Grading System registration.
|
At the end of the semester, all the students should check their final official grades through the Office of the Registrar, too. |
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 knowledge and will in particular cover SQL and ODBC |
No VRML or 3D Graphics expertise will be assumed |
This material will underlie 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 projects
|
I lead NPAC and am out of town some 40% of the time starting the end of January. Thus I miss many classes and others (usually Nancy McCracken) have to fill in. |
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, VRML 2.0, Javabeans, Java Foundation classes, Java Frameworks, Java Web Servers, Servlets, Java2D and Java3D, RMI, CORBA, COM, ActiveX, Security, JDK1.2, Java IDL, JavaMedia, Lotus Notes |
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 |
Middle Tier |
Web Server |
Application Server |
TP Server |
Resource Management |
Perl CGI Java Servlets ActiveX |
DCOM RMI IIOP HTTP |
2 Tier Model |
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 |
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 customized GUI's and graphics/image processing as in NPAC's Visible Human Viewer (won JARS award Dec 95) and Scivis visualization system. |
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 |
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 |