|
|
|
Instructors: Geoffrey Fox and Bryan Carpenter |
|
Dept. of Computer Science |
|
School of Computational Science and Information
Technology |
|
400 Dirac Science Library
Florida State University
Tallahassee |
|
Florida 32306-4130 |
|
http://www.csit.fsu.edu |
|
fox@csit.fsu.edu 850-644-4587 |
|
dbc@csit.fsu.edu 850-644-0180 |
|
|
|
|
|
|
|
|
|
|
|
This Foilset contains introductory material on CSIT/CS
Course IT1 for fall 2000 |
|
Some Aspects of Course Logistics -- all students
must go to web site for complete discussion of this |
|
http://aspen.csit.fsu.edu/it1fall00/ |
|
Overview of Field and Material covered and
relation to other courses IT2, IT3 (proposed) and the synergy between computational
science and information technology |
|
The Internet is the most important distributed
computer system and it has spawned the most remarkable and general purpose
software – In studying the Internet, we study distributed computing
(hardware and software) |
|
Students should be able to design and build any
distributed system |
|
Summary of Base Distributed Object Web and
Internet Technologies |
|
|
|
|
|
You are practically minded and wish to learn how
to write real software to solve real distributed systems |
|
Your software should work and be documented! |
|
At the end of IT1 you will have basic knowledge
for a .com job |
|
At the end of IT2 and a good grade, you will be
top applicant for .com job |
|
At end of IT3, you will be prepared for PhD
study in Information Technology |
|
|
|
|
|
Grade will be based on about 6 homework sets.
The first of these will be a report and the last a modest project. The rest
will be largely Java oriented programming tasks |
|
The Books are: |
|
Core Java 2 |
|
Volume 1-Fundamentals |
|
Volume 2-Advanced Features |
|
The Sun Microsystems Press Java Series (Prentice
Hall) |
|
Cay S. Horstmann and Gary Cornell |
|
ISBN 0-13-081933-6 |
|
ISBN 0-13-081934-4 |
|
|
|
|
|
IT1 assumes good programming skills and
familiarity with the Internet/web |
|
It will teach Java and use Internet examples to
illustrate use of language |
|
Course could be useful even if you know Java –
we will emphasize topics like |
|
Servlets – Simple way of building Java Server
side applications |
|
RMI – Foundation of pure Java distributed
objects and systems built in these terms |
|
JDBC (Java Database Connectivity) – Universal
interface between Java and databases |
|
The beat up client side (in Microsoft-Netscape
battle won by MSFT) – Applets, Dynamic HTML and JavaScript (good ideas
albeit a victims of battle) and Java Server Pages (how to build client
software if you sell servers and don’t like MSFT) |
|
|
|
|
|
We will try to cover basic concepts of
distributed systems and use the most elegant technology to illustrate – we
will generalize to other approaches which could be best to use in a
particular application |
|
Servlets illustrate Server side application
where you can of course use Perl, C++, JavaScript, Fortran, Machine
Language or what have you |
|
RMI illustrates the integration of Internet and
distributed object ideas – the Object Web that underlies all modern
distributed systems |
|
IT1 will be basic 3 tier systems with core
Client and Server Side technologies – Java, JavaScript and Dynamic HTML |
|
IT2 will assume IT1 (including mastery of Java)
and cover remaining core technologies |
|
IT3 will cover the nifty new emerging ideas – if
taught today it will cover the Wireless Internet and Computational Grids |
|
|
|
|
|
|
|
|
|
|
Provisional IT2 Syllabus |
|
XML and some exemplar applications such as
MathML |
|
More on IT1 technologies such as Dynamic HTML
with W3C (World Wide Web Consortium) Document Object Model |
|
Virtual Machines and Java from pico to
enterprise editions (Smart Cards to Cell Phones to PC’s to Servers) |
|
Security for Java and for heterogeneous Systems
(Public Key infrastructure, Kerberos) |
|
The four approaches to the Object Web |
|
CORBA from the Object Management Group |
|
SOAP
(Simple Object Access Protocol) from W3C – the pure web approach |
|
RMI, Enterprise Javabeans (EJB) and Jini – the
pure Java approach |
|
COM from Microsoft |
|
Component and event based programming –
Javabeans on the client; CORBA and EJB on the server |
|
Graphics on the Web: VRML X3D and SVG (Scalable
Vector Graphics) |
|
|
|
|
|
|
|
Some topics left over for “IT3” or other courses
or Universities |
|
Java API’s (frameworks) for Multimedia, Graphics |
|
Java and High performance |
|
Computational Grids - using internet for
(parallel) Computing |
|
The Wireless Internet – WAP, web clipping |
|
Complete Web Frameworks like iPlanet (from Sun),
ninja (from UC Berkeley) or e-Speak from Hewlett Packard |
|
Applications: e-commerce, web-based education |
|
Portals as the metaphor for web applications |
|
Nifty companies and their technologies, Yahoo
(Portals), Google (search), Real
Networks (Multimedia), Ariba (Business to Business), Akamai (Caching and
Routing), Inktomi (Web Infrastructure) |
|
There are also other issues besides software |
|
Algorithms for caching and multimedia |
|
Communication hardware – conventional, optical,
wireless |
|
Communication architecture for Internet Services
including quality of service |
|
|
|
|
|
|
|
We will assume Basic Web Browsing and HTML
expertise and programming experience |
|
Permission of Instructor is needed for IT2 if
you have not taken IT1 |
|
You should be familiar with either PC or UNIX
environment and program in at least one real language including Java |
|
Perl is still widely used, but not taught here? |
|
We will not assume any database or CORBA
knowledge and will review basic material such as SQL if needed |
|
CSIT provides servers for you to access Oracle
databases and other needed core resources |
|
You need a UNIX workstation or a PC running
Windows |
|
|
|
|
|
Computational Science is the Interdisciplinary
field between computer science/engineering/math and application areas using
simulation technologies |
|
CSIT is the Interdisciplinary field between
computer science/engineering/math and application areas using simulation
and information technologies |
|
CSIT can be studied from either a technology (CS
CE Math) or an application perspective |
|
It covers all of practical (applied) computer
science and its application motivation |
|
This course gives either technology or
application scientists the base knowledge of information technology |
|
|
|
|
|
|
Together cover practical use of leading edge
computer science technologies to address “real” applications |
|
There are many technologies in common |
|
|
|
|
|
There can be no doubt that topics in Computational
Science are useful and those in CSIT (Computational Science and Information
Technology) are even more useful |
|
CSIT incorporates trend towards data intensive
computing and networked scientific collaboration |
|
CSIT includes e-commerce |
|
The CSIT technologies are also difficult and
involve fundamental ideas |
|
The area is of interest to both those in computer
science and application fields |
|
Probably most jobs going to Computer Science
graduates really need CSIT education but unfortunately |
|
Employers only know about “Computer
Science/Engineering” |
|
So most current implementations make
Computational Science as a set of courses within existing disciplines |
|
Situation could change though as CSIT is
“correct” |
|
|
|
|
|
|
|
Universal machine independent interfaces – Success
of Web as much to with standards as software/hardware |
|
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 |
|
|
|
|
|
|
|
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) |
|
CORBA .. XML
is “just” CGI done right |
|
COM(Microsoft) and CORBA(world) are competing
cross platform and language object technologies |
|
Every Netscape4 browser has a Visigenic ORB
built in |
|
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! |
|
|
|
|
|
|
|
|
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 |
|
Oracle, DB2, Informix, Sybase, Lotus Notes,
Object database choice becomes an issue of performance/robustness NOT
functionality |
|
Use CORBA (C++) or Java as software to wrap
existing applications with XML as syntax to define these distributed
objects |
|
Note Middle tier insulates client from backend
-- can use one object model for user level
(object functionality) and different one for backend (object access
and persistent store) |
|
specialized object databases getting
“overwhelmed” by multi-tier approach with Oracle etc. traditional backends |
|
Program the server not the backend or the client |
|
Do this programming in Java |
|
And this implied that Oracle won the database
battle as they got model correct and supplied an appropriate backend
database with functionality added through middle tier extensions |
|
|
|
|
There are several important Object Models: COM,
CORBA, Java, Web, Oracle Database …… |
|
But it doesn’t matter!! |
|
|
|
|
|
|
|
|
|
|
Examples of current object technologies |
|
Documents -- URL |
|
"General Programs including database
invocations" |
|
Old style Web -- CGI |
|
New Style Web -- XML makes server side objects
look like applets as far as invocation goes |
|
CORBA and COM -- special "interface
definition language" (IDL) defines invocation in C++ like syntax |
|
RMI uses Java language as IDL language |
|
Benefits of distributed objects |
|
allows objects written in different languages to
communicate seamlessly via standardized messaging protocols embodied by
middleware. |
|
Higher levels of transparency of
interoperability |
|
Objects can be “self-managing” of resources |
|
provides flexible grain of decomposition for
building complex systems |
|
|
|
|
|
|
|
|
|
|
Old way: Use an Object Database |
|
Current Approach: Use a Relational Database and
business logic in EJB |
|
|
|
|
|
|
|
|
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: |
|
Java RMI+ EJB (Enterprise Javabean) - single
language solution by Sun |
|
CORBA - all languages solution by OMG |
|
COM - multi-language solution by Microsoft |
|
SOAP/XML - emergent solution by the Web
Consortium |
|
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 |
|
Note Java is often the best language to build
middleware whether this is Java or some other distributed object model |
|
Most commercial Java activity is on Server not
Client |
|
|
|
|
|
Originally we thought of Web Systems as a set of
communicating objects with |
|
Not much on client linking to UNIX processes
invoked by CGI |
|
Then we excitedly got balanced client server
applications with JavaScript and Java applets on client which was faster as
no network traffic for “small” local actions |
|
Servlets, Enterprise Javabeans and CORBA
provided robust middle tier programming model |
|
But browsers never became a good programming
environment as actions (say of JavaScript) undefined or quality (of Java
virtual machine in browser) poor. |
|
So browsers are just display technology and one
should use servers or applications for software |
|
Java Server Pages provide similar functionality
to Java Applets with Java running outside browser in a nice robust server |
|
This is the old way we built applications done
with faster networks and more elegant implementation (we used to invoke
Perl CGI scripts to provide dynamic web pages but this was too slow) |
|
|
|
|
There is growing interest in wireless portable
displays in the confluence of cell phone and personal digital assistant
markets |
|
One needs to design web systems so they can be
accessed from either a PDA or a PC or a Powerwall |
|
This implies that only code in browser should be
that immediately needed to relay events between user and web system – all
“logic” (state) should be outside browser. |
|
|
|
|
|
Java -- Objected Oriented version of C/C++
supporting Interactive Distributed Computing. |
|
Original Web architecture (e.g. CGI) was
server-side. Java allowed design and Implementation of balanced Client
Server Applications but this original motivation is less important now |
|
Java likely to be a dominant software
engineering and Scientific Computing
language -- see http://www.javagrande.org |
|
This course discusses Java as a language in
context of a system building tool |
|
Java will probably be preferred language for
development of next generation general or custom Web servers and clients |
|
Programmers more productive in Java |
|
Java has frameworks (libraries) for key Internet
functionalities |
|
Java can build client side customized GUI's and graphics/image processing but
Microsoft JavaScript and DHTML competes here and MOST Industry use of Java
is in middle tier |
|
New Java 2 has several enhancements including
very many specialized API’s |
|
Javabeans are (visual) component model for Java
applications |
|
Enterprise Javabeans are Java middleware
containers |
|
Jini and RMI allow distributed objects to be
found and communicate |
|
|
|
|
|
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 |
|
First examples use JavaScript together with
frames ( HTML extension) for interactive multi-window technologies |
|
JavaScript is roughly equivalent to "Abstract
Windowing Toolkit/ Layout Manager" in Java but applied to Browser
Frames and not Java windows |
|
JavaScript cannot build complex filters or
simulations as slow |
|
But JavaScript with dynamic HTML is powerful
client technology which is often easier and faster than Java -- it is
faster as invokes optimized browser functions |
|
both Internet Explorer 4 and Netscape have
excellent JavaScript support |
|
Server side version of JavaScript called LiveWire
runs on Netscape Servers -- unsuccessful |
|
Originally expected client side use of
JavaScript to grow in importance but new view of Web clients limits use of
JavaScript to small critical event handling |
|
JavaScript on Palmtops called WMLScript |
|
|
|
|
|
There is an emerging DOM or Document Object Model which will be
uniform model used by W3C, Netscape, Microsoft |
|
It allow you to address individual components of
a page e.g. text box, image or collections thereof as separate entities |
|
DOM is quite close to IE 5 conventions and is
based on XML |
|
DOM ought to be critical for publishing industry
– Microsoft Word does not use except implicitly in Web export |
|
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 |
|
This includes not only natural style properties
but also position, size and “visibility” |
|
DHTML currently handicapped by major differences
between IE5 and Netscape 4 -- functionalities are similar but syntax very
different |
|
JavaScript combined with DHTML allows
animations, graphs and replacement of just parts of text |
|
|
|
|
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=“CSIT:IT1” 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: IT1</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
or hand to programs to interpret |
|
XML can also be used to define extensions to
HTML such as special tags for mathematics (MathML) or chemistry or ….. |
|
XML defines syntax for “serializing” Web objects
and transmitting between clients and servers SOAP |
|
|
|
|
|
PERL is a C like Interpreter with powerful
direct access to UNIX system commands and very easy ways of processing text
files |
|
PERL is a relatively old technology which has
being overtaken by Java tidal wave. |
|
Still PERL has significantly better Systems and
Document handling capability than Java |
|
Very good for UNIX as much easier than Shell for
system scripts -- PC versions exist but not so well integrated into O/S |
|
Wonderful regular expression handling |
|
PERL is traditional but not best choice for
server CGI extensions and development of filters even for simpler cases
involving text documents |
|
PERL5 is object oriented but much less elegant
(in my opinion) than Java |
|
PERL5 has very useful multidimensional
associative and regular arrays |
|
Use PERL for UNIX batch jobs to edit text files (e.g.
map www.npac.syr.edu to aspen.csit.fsu.edu) and quick simple Web server
extensions – Convert latter to Java for production |
|
|
|
|
|
The Web provides a convenient integration
environment for "mature" technologies migrating from existing
computer environments. |
|
Object Relational databases are a good example
where it is now straightforward in Microsoft Access, Oracle, DB2, Informix,
Sybase etc. to provide a Web Interface to access and edit database with
Java/JavaScript/Forms based Interfaces |
|
Object databases such as Illustra also
interfaced to Web but this is wrong way to thing about problem |
|
Systems such as Cold Fusion and Dreamweaver
provide convenient high level interfaces to Web-linked databases |
|
Note Web Authoring “confusion” is another result
of unfortunate browser war lost by Netscape |
|
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
in IT2 we will discuss integration of Web CORBA and database technologies |
|
CORBA views a database as a managed persistent
object |
|
|
|
|
|
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 |
|
Note can embed clickable URL's as with ImageMaps
which can be used to annotate images to provide interactive resources |
|
VRML 2.0 is now the standard with critical
enhancements so that individual elements of 3D world are dynamic and can be
programmed |
|
It is designed to support full interactivity
(televirtuality) with texture mapped video, avatars etc. |
|
VRML 2.0 could require huge computing resources
whether used as the virtual car-dealership / interactivity gaming or more
academic uses such as collaboration between teachers and students in 3D
virtual classroom |
|
Bandwidth and computing needs of VRML are
handicapping acceptance and appears that VRML will NOT “make it” --
replacement unclear |
|
Microsoft ChromeEffects (XML based) and |
|
Java3D address some but not all VRML
applications |
|
X3D is XML syntax for VRML |
|
SVG is XML for Vector Graphics Primitives (much
more limited but perhaps more realistic than VRML) |
|
|
|
|
|
There are classic computational science areas
based high performance parallel computers and the software needed to use
them |
|
Cluster of PC’s to Teraflop machines in CSIT or
DoD DoE NSF Centers |
|
Nifty algorithms |
|
New languages such as Java (Grande) optimized
for performance |
|
Information Technology can benefit simulations
in many ways: |
|
XML based scientific (meta)data standards to
allow sensor data access to modern tools and support interoperability |
|
Convenient access to multiple (super)computers
and technology to integrate diverse simulations and data sources |
|
Portal or “Problem Solving Environment” |
|
Customization of generic portal services like
real-time collaboration |
|
We will look at this for a couple of examples |
|
|
|
|
|
|
|
|
|
|
Security |
|
Fault Tolerance |
|
Object Lookup and Registration |
|
Object Persistence and Database support (as in
EIP’s) |
|
Event and Transaction Services |
|
Collaboration among scientists around world |
|
Job Status as in HotPage (NPACI) and myGrid
(NCSA) |
|
File Services (as in NPACI Storage Resource
Broker) |
|
Support (XML based) computational science
specific metadata like MathML, XSIL |
|
Visualization |
|
Programming |
|
Application Integration (chaining services
viewed as backend compute filters) |
|
“Seamless Access” and integration of resources
between different users/application domains |
|
Parameter Specification Service (get data from
Web form into Fortran program wrapped as backend object) |
|
|
|
|