Week 1 - January 18, 2000

 

1.1 Short History of the WWW
1.2 Server Side Programming (CGI programs in C/C++, Perl, etc)
1.3 Client Side Programming (JavaScripts and Java)
1.4 Perl vs Java

 

1.1 Short History of the WWW

    1957    USSR lounched Sputnik
    1958    US created ARPA - Advanced Research Projects Agency
    1969    DoD commisioned ARPAnet to be created for research into networking protocols
    1973    TCP/IP (Transmision Control Protocol/Internet Protocol) proposed as standard
    1982    TCP/IP adopted as a standard
    1983    First release of a UNIX system incorporating  TCP/IP protocols
                about 500 Internet hosts
    1986    NSF creates NSFnet, connecting 5 supercomputing centers around hte country running at 56Kbps
                about 5,000 Internet hosts
    1989    NSFnet was upgraded to T1 capacity (1.5 Mbps)
                about 100,000 Internet hosts
    1990    ARPAnet ceased to exit
                once a purely academic research project, the Internet is now suddently the next big thing on campuses and large corporation.
                Tim Berbers-Lee, from the European particle research laboratory CERN, developed a protocol for delivering different kind of files over the Internet, using a common protocol. It was the beginning of the World Wide Web. The interface was fully text based.
    1991    National Center for Supercomputing Applications (NCSA) in Illinois, developed a graphical inerface for the web, known as Mosaic.
    1992    over 1,000,000 Internet hosts; it took 20 years for the original ARPAnet to reach this number
                to make things more interactive than just static text and pictures, the Commong Gateway Interface (CGI) protocol was added to HTTP servers, allowing users to interact with the data and create on the fly content for web pages.
                search engines started to appear on the Web.
    1993    over 2,000,000 Internet hosts
    1994    over 4,000,000 Internet hosts
    1995    NSF decommissioned the NSFnet
                March 1995 - number of official business addresses (.com) surpassed that of educational ones (.edu)
                May 1995 - Java Environment was announced by Sun at SunWorld95.
 

1.2 Server Side Programming (CGI programs in C/C++, Perl, etc)

    By Server Side Programs we understand programs that are running on the same computer with the HTTP (Hyper Text Transfer Protocol) server, or programs that are not interacting directely with the user's HTML browser: they use the HTTP server to create the user interface.
    CGI protocol defines how the HTTP server communicates with these programs.
    Its function is to allow the HTTP server to go beyond its normal boundaries for retrieving and accessing information (external databases, files or programs output).
    It then specifies how the data will transfered from the server to the program/database and from this back to the server.
    One can use any language to run a CGI script, as long as the computer used to run the program is the same one with the one running the HTTP server, or they are networked together.
    Because its ease of use, PERL has become the de facto standard language for CGI scripts.

1.3 Client Side Programming (JavaScripts and Java)

    By Client Side Programs we understand programs that are running on the same computer with the HTML browser. They usually have their own interface inside or outside the web page or they change the content of the page dinamically and locally, based on user input.
    In order to run a client side program, the HTML browser has to understand that language. For JavaScript the web browser has a special interpretor which reads and executes each line of code. For Java programs, the web browser has to have a Java RunTime Module, which can understand and run the Java code (these are not instructions, this is compiled code).
    Both the JavaScript interpretor and the Java RunTime Module are creating the Gateway between the local program and the web browser.
  

1.4 Perl vs Java

    This is not only a war between Perl and Java, it's more a war between Server Side and Clien Side programming.
    A page containing a form which is the interface for a CGI program may load 10 time faster than a page containing a Java applet performing the same operation as the CGI program, Java applet may be 10 times faster in processing the user request than the CGI program.
    There a pros and cons for each type of program, and it's the developer's decision which method to use. During the decision process one has to take in consideration the following elements:
         - the number of times a user will interact with the program during one session
         - which part is going to take more time: running the CGI program or downloading the Java program.
         - the amount of data that will be transfered between the server and the client.
         - the importance of the interface for the program and the time used to write the program in both ways.
         - the computer time used by each program to process the information: sometimes downloading the data to the server, processing it and loading it back to the client will be faster than processing the data locally.