The Internet
The Internet is the name for the interconnection of millions of computers around the world. It is relatively decentralized with a relatively high degree of shared governance.
The Internet grew out of projects supported by the U.S. Department of Defense Advanced Research Projects Agency (ARPA). This work developed the basic protocols of the Internet including the Transmission Control Protocol (TCP), which ensures that messages are routed from sender to receiver, and the Internetworking Protocol (IP), which allows communications between different networking hardware and software. Together called TCP/IP, these protocols were the foundation of the ARPAnet and later the Internet.
The utility of the ARPAnet and other computer interconnections (including UUnet, email, network news groups, and online services) led the National Science Foundation to establish the NSFnet. The commercialization of the NSFnet beginning in 1994 marks the beginning of the rapid general popularization of the Internet. Several technology advances have contributed to this rise in popularity, including personal computers, graphical display hardware, and computer networking equipment.
The World Wide Web
The ideas for a linked computer documents dates from the 1940's and began to be implemented in the 1960s. The 1980s saw several popular hyperlinked systems including Bill Atkinson's HyperCard.
The World Wide Web (WWW) began at CERN, the European Laboratory for Particle Physics, in Switzerland, with the work of Tim Berners-Lee and others. The basis of the WWW was HTTP, a simple transfer protocol for hyperlinked documents, and HTML, a simple markup language. The Mosaic browser, developed by Marc Andreessen and others at the National Center for Supercomputer Applications (NCSA), at the University of Illinois, allowed sharing of HTML files via HTTP. The WWW quickly overwhelmed other network sharing systems such as UseNet, Gopher, and WAIS. One of the reasons for this success was that the technologies were made public and not held for proprietary licensing.
Today, many of the fundamental WWW technologies are developed under the auspices of the World Wide Web Consortium (W3C). Its website, http://www.w3c.org, is a rich resource for documentation.
Internet Programming
Several programming paradigms are fundamental to the Internet, including object-oriented programming, distributed systems, GUIs, and database systems.
Object-oriented programming (OOP) is an approach that segments logical software components consisting of both data and operations. Objects are instances of general classes that encapsulate data and operations in a conceptually useful way. C++ and Java are popular object-oriented programming languages. Java is especially popular for Internet programming because it is built for a virtual machine. A virtual machine is a software system that acts like a computer, but can be run on a variety of actual computers. This increases application portability and platform independence.
Object-oriented programming promises better and more manageable designs through abstraction, modularity, and layering. Abstraction removes concerns about the internal details of software components and presents just what is essential for understanding and use. The external specifics for interacting with an implementation is an application programmer interface (API). Modularity is an implementation that supports interchangeable components. Layering is progressive abstraction and implementation (e.g., from hardware, to operating software, to middleware, to application).
Distributed computing includes both client-server computing, which allows client computers to access services provided by the server, and peer-to-peer computing. The client-server paradigm uses two cooperating computers: the client makes requests and the server satisfies requests. The client-server paradigm is particularly important in the Internet. For example, client computers use browser software to contact web servers. Similarly, web servers may contact database servers to retrieve required information. In this course, we will consider programming for both the client and server.
Graphical-user interfaces (GUIs) have contributed greatly to the popularization of the Internet. The intuitivity of graphical elements such as buttons, scrollbars, menus, etc. allows even novice users to be highly productive. Much of the motivation for popular Internet programming languages such as Java and JavaScript is their support for GUI objects. A central theme in GUI programming is event-based programming, in which the program responds to events generated by user actions. Effective programming in these environments requires familiarity with these sophisticated GUI APIs.
The wide acceptance of relational databases and the Structured Query Language (SQL) has contributed to the development of the Internet. The easy use of these systems facilitates dynamic applications for handling large datasets. The Internet has in turn spurred consideration of other ways of structuring and accessing data and archiving information. This course will consider both SQL and some new approaches for information.
Show: