Showing posts with label WWW. Show all posts
Showing posts with label WWW. Show all posts

Current Web Architecture

Introduction

This section of the Internet Tool Survey describes the current architecture of the World Wide Web (WWW). The NCSA Glossary is a useful starting point for Web terms. Another is the ILC glossary of Internet Terms.

The following sections describe

  • the basic two-tier architecture of the web in which static web pages (documents) are transferred from information servers to browser clients world-wide,
  • extensions that permit three-tiered architectures where content pages can be constructed dynamically and where programs as well as data can be transferred,
  • other information transfer protocols, and
  • related standards.



Basic Web Architecture

The basic web architecture is two-tiered and characterized by a web client that displays information content and a web server that transfers information to the client. This architecture depends on three key standards: HTML for encoding document content, URLs for naming remote information objects in a global namespace, and HTTP for staging the transfer.

  • HyperText Markup Language (HTML) - the common representation language for hypertext documents on the Web. HTML had a first public release as HTML 0.0 in 1990, was Internet draft HTML 1.0 in 1993, and HTML 2.0 in 1994. The September 22 1995 draft of the HTML 2.0 specification has been approved as a standard by the IETF Application Area HTML Working Group. HTML 3.0 and Netscape HTML are competing next generations of HTML 2.0. Proposed features in HTML 3.0 include: forms, style sheets, mathematical markup, and text flow around figures. For more detailed information, see the HTML Reference Manual.
    HTML is an application of the Standard Generalized Markup Language (SGML ISO-8879), an international standard approved in 1986, which specifies a formal meta-language for defining document markup systems (more here and here). An SGML Document Type Definition (DTD) specifies valid tag names and element attributes. HTML consists of embedded content separated by hierarchical case sensitive start and end tag names which may contain embedded element attributes in the start tag. These attributes may be required, optional, or empty. In addition, documents can be inter or intra linked by establishing source and target anchor points. Many HTML documents are the result of manual authoring or word processing HTML converters, but now several WYSIWYG editors support HTML styles -- see listing at W3C and the Internet Tools Survey section on Authoring HTML.
    HTML files are viewed using a WWW client browser (software), the primary user interface to the Web. HTML allows for embedding of images, sounds, video streams, form fields and simple text formatting. References, called hyperlinks, to other objects are embedded using URLs (see below). When an object is selected by a hyperlink, the browser takes an action based on the URL's type, e.g., retrieve a file, connect to another Web site and display a HTML file stored there, or launch an application such as an E-mail or newsgroup reader.
  • Universal Resource Identifier (URI) - an IETF addressing protocol for objects in the WWW ("if it's out there, we can point at it"). There are two types of URIs, Universal Resource Names (URN) and the Universal Resource Locators (URL). The current IETF URI spec is here and the URL spec is here.
    URLs are location dependent and contain four distinct parts: the protocol type, the machine name, the directory path and the file name. There are several kinds of URLs: file URLs, FTP URLs, Gopher URLs, News URLs, and HTTP URLs. URLs may be relative to a directory or offsets into a document. Arguments to CGI programs (see below) may be embedded in URLs after the ? character.
  • HyperText Transfer Protocol (HTTP) - an application-level network protocol for the WWW. Tim Berners-Lee, father of the Web, describes it as a "generic stateless object-oriented protocol." Stateless means neither the client nor the server store information about the state of the other side of an ongoing connection. Statelessness is a scalability property but is not necessarily efficient since HTTP sets up a new connection for each request, which is not desirable for situations requiring sessions or transactions.
    • In HTTP, commands (request methods) can be associated with particular types of network objects (files, documents, network services). Commands are provided for
      • establishing a TCP/IP connection to a WWW server,
      • sending a request to the server (containing a method to be applied to a specific network object identified by the object's identifier, and the HTTP protocol version, followed by information encoded in a header style),
      • returning a response from the server to the client (consisting of three parts: a status line, a response header, and response data), and
      • closing the connection.
    • HTTP supports dynamic data representation through client-server negotiation. The requesting client specifies it can accept certain MIME content types (more on this below) and the server responds with one of these. All WWW clients can handle text/plain and text/html.
    • HTTP/1.0 Internet Draft 05 (the seventh release of HTTP/1.0) is targeted as an Internet Informational RFC. The next immediate version of HTTP is HTTP/1.1 Internet Draft 01.

Web Architecture Extensibility

This basic web architecture is fast evolving to serve a wider variety of needs beyond static document access and browsing. The Common Gateway Interface (CGI) extends the architecture to three-tiers by adding a back-end server that provides services to the Web server on behalf of the Web client, permitting dynamic composition of web pages. Helpers/plug-ins and Java/JavaScript provide other interesting Web architecture extensions.

  • Common Gateway Interface(CGI) - CGI is a standard for interfacing external programs with Web servers (see Figure 1). The server hands client requests encoded in URLs to the appropriate registered CGI program, which executes and returns results encoded as MIME messages back to the server. CGI's openness avoids the need to extend HTTP. The most common CGI applications handle HTML
    and commands.
    • CGI programs are executable programs that run on the Web server. They can be written in any scripting language (interpreted) or programming language (must be compiled first) available to be executed on a Web server, including C, C++, Fortran, PERL, TCL, Unix shells, Visual Basic, Applescript, and others. Security precautions typically require that CGI programs be run from a specified directory (e.g, /cgi-bin) under control of the webmaster (Web system administrator), that is, they must be registered with the system.
    • Arguments to CGI programs are transmitted from client to server via environment variables encoded in URLs. The CGI program typically returns HTML pages that it constructs on the fly.
    • Some problems with CGI are:
      • the CGI interface requires the server to execute a program
      • the CGI interface does not provide a way to share data and communications resources so if a program must access an external resource, it must open and close that resource. It is difficult to construct transactional interactions using CGI.
    • The current version is CGI/1.1. W3C and others are experimenting with next generation object-oriented APIs based on OMG IDL; Netscape provides Netscape Server API (NSAPI) and Progress Software and Microsoft provide Internet Server API (ISAPI).
  • IMG-cgi

    • Helpers/Plug-ins - When a client browser retrieves a file, it launches an installed helper application or plug-in to process the file based on the file's MIME-type (see below). For example, it may launch a Postscript or Acrobat reader, or MPEG or QuickTime player. A helper application runs external to the browser while a plug-in runs within the browser. For information on how to create new Netscape Navigator plug-ins, see The Plug-in Developer's Guide.
    • Common Client Gateway (CCI) - this gateway allows a third-party application to remotely control the Web browser client. Netscape Client APIs 2.0 (NCAPIs) depends on platform specific native methods of interprocess communication (IPC). They plan to support DDE and OLE2 for Windows clients, X properties for UNIX clients, and Apple Events for Macintosh clients.
    • Extensions to HTTP. W3C and IETF Application Area HTTP Working Group are working together on current and future versions of HTTP. The HTTP-NG project is assessing two implementation approaches to HTTP "replacements":
      • Spero's approach - allows many requests per connection, the requests can be asynchronous and the server can respond in any order, allowing several transfers in parallel. A "session layer" divides the connection into numerous channels. Control messages (GET requests, meta information) are returned in a control channel; each object is returned in its own channel.
      • W3C approach - Jim Gettys at W3C is using Xerox ILU (a CORBA variant) to implement an ILU transport similar to Spero's session protocol. The advantages of this approach are openness with respect to pluggable transport protocols, support for multiple language environments, and a step towards viewing the "web of objects." Related to this approach, Netscape recently announced future support for OMG Internet Inter-ORB Protocol (IIOP) standard on both client and server. This will provide a uniform and language neutral object interchange format making it easier to construct distributed object applications.
    • Java/ JavaScript - Java is a cross-platform WWW programming language modeled after C++ from Sun Microsystems. Java programs embedded in HTML documents are called applets and are specified using tags. The HTML for an applet contains a code attribute that specifies the URL of the compiled applet file. Applets are compiled to a platform-independent bytecode which can be safely downloaded and executed by the Java interpreter embedded into the Web browser. Browsers that support Java are said to be Java-enabled. If performance is critical, a Java applet can be compiled to native machine language on the fly. Such a compiler is known as a Just-In-Time (JIT) compiler.
      JavaScript is a scripting language designed for creating dynamic, interactive Web applications that link together objects and resources on both clients and servers. A client JavaScript can recognize and respond to user events such as mouse clicks, form input, and page navigation, and query the state or alter the performance of an applet or plug-in. A server JavaScript script can exhibit behavior similar to common gateway interface (CGI) programs. JavaScript scripts are embedded in HTML documents using

Posted bySumedh at 11:10 PM 0 comments  

Blogs and RSS

The Web is a welcoming medium for experimentation and user participation. It is becoming easier to post Web content and share comments with other users. The idea of the Web site is still very much alive, but Web participation is taking new forms and being driven by new technologies that foster social interaction. Here are two of the latest trends.

Blogs: A blog is an easy-to-create Web site that allows users to share their thoughts with the world managed by a lightweight content management system. The word "blog" comes from "Weblog" because a blog consists of a signed and dated log of individual postings. The topic of the blog can be anything, from the personal to the professional. A blog is what you make of it.

What is important about blogs is the content management system that manages the content. This system can offer a variety of features that can make the blog a useful tool. Examples include a calendar view of postings, organization of postings into categories, archived postings, options to send e-mail notification of new postings, and so on.

Blogging can be an interactive activity. Readers can add comments to a blogger's postings, other can respond, and a conversation ensues. Lately, bloggers have become well-known commentators on the political scene, but blogging can encompass any topic or no topic at all. If the blogging software allows it, bloggers can use RSS to distribute their postings.

Visit Technorati, a search engine devoted to locating blogs. You can set up your own blog by visiting Blogger.

RSS: RSS allows people to place news and other announcement-type items into a simple XML format that can then be pushed to RSS readers and Web pages. The initials RSS can stand for different things, including Rich Site Summary or Really Simple Syndication. Users can subscribe to the RSS newsfeeds of their choice, and then have access to the updated information as it comes in. RSS is used for all kinds of purposes, including the news itself and announcing new content on Web sites.

RSS content may be read by using an RSS reader, or aggregator. This is usually free software that you can install on your computer that posts new items and stores old ones in a graphical interface. An RSS reader similar to e-mail software in that it displays incoming items and can store content for offline reading. Subscribing to a newsfeed is usually as simple as entering the address of the RSS document.

A useful list of RSS readers is available on the site of RSS Compendium.

It is also possible to subscribe to and read your own collection of RSS feeds on Web sites devoted to this purpose. Bloglines is one such example. The advantage here is that you can access your RSS feeds from any computer that is connected to the Web.

Posted bySumedh at 11:08 PM 0 comments  

Web - Programming Languages and Functions

The use of existing and new programming languages have extended the capabilities of the Web. What follows is a basic guide to a group of the more common languages and functions in use on the Web today.

CGI, Active Server Pages: CGI (Common Gateway Interface) refers to a specification by which programs can communicate with a Web server. A CGI program, or script, is any program designed to accept and return data that conforms to the CGI specification. The program can be written in any programming language, including C, Perl, and Visual Basic Script. A common use for a CGI script is to process a form on a Web page. For example, you might fill out a form to order a book at Amazon. The script processes your information and sends it to Amazon to process your order.

Another type of dynamically generated Web page is called Active Server Pages (ASP). Developed by Microsoft, ASP is a programming environment that processes scripts on the Web server. The scripts run on the server, rather than on the Web browser, to generate the HTML pages sent to browsers. Visual Basic and JScript (a subset of JavaScript) are often used for the scripting. ASPs end in the file extension .asp or .aspx.

Java/Java Applets: Java Java is an object-oriented programming language similar to C++. Developed by Sun Microsystems, the aim of Java is to create programs that will be platform independent. The Java motto is, "Write once, run anywhere." A perfect Java program should work equally well on a PC, Macintosh, Unix, and so on, without any additional programming. This goal has yet to be realized. Java can be used to write applications for both Web and non-Web use.

Web-based Java applications are usually in the form of Java applets. These are small Java programs called from an HTML page that can be downloaded from a Web server and run on a Java-compatible Web browser. A few examples include live newsfeeds, moving images with sound, calculators, charts and spreadsheets, and interactive visual displays. Java applets can tend to load slowly, but programming improvements should lead to a shortened loading time.

JavaScript/JScript: JavaScript is a programming language created by Netscape Communications. Small programs written in this language are embedded within an HTML page, or called externally from the page, to enhance the page's the functionality. Examples of JavaScript include moving tickers, drop-down menus, real-time calendars and clocks, and mouse-over interactions. JScript is a similar language developed by Microsoft and works with the company's Internet Explorer browser.

XML: XML (eXtensible Markup Language) is a mark-up language that enables Web designers to create their own customized tags to provide functionality not available with HTML alone. XML is a language of data structure and exchange, and allows developers to separate form from content. With XML, the same content can be formatted for multiple applications. In May 1999, the W3 Consortium announced that HTML 4.0 has been recast as an XML application called XHTML. This move is slowing having an impact on the future of both XML and HTML.

Ajax: Ajax stands for Asynchronous JavaScript and XML. This langauge creates interactive Web applications. Its premise is that it sends data to the browser behind the scenes, so that when it is time to view the information, it is already "there." Google Maps is an example of an Ajax-enabled application. Another is SurfWax LookAhead, an RSS search tool that retrieves feeds as you type your query.

Real-Time Communication

Text, audio and video communication can occur in real time on the Web. This capability allows people to conference and collaborate in real time. In general, the faster the Internet connection, the more successful the experience.

At its simplest, chat programs allow multiple users to type to each other in real time. Internet Relay Chat and America Online's Instant Messenger are prime examples of this type of program. The development of a messenging protocols is underway. Such a protocol would allow for the expansion of this capability throughout the Internet.

More enhanced real-time communication offers an audio and/or video component. CU-See Me is a sotware programs of this type. Even more elaborate are programs that allow for true real-time collaboration. Microsoft's NetMeeting and Netscape's Conference (available with Communicator) are good examples of this.

Featured collaboration tools include:

  • audio: conduct a telephone conversation on the Web
  • video: view your audience
  • file transfer: send files back and forth among participants
  • chat: type in real time
  • whiteboard: draw, mark up, and save images on a shared window or board
  • document/application sharing: view and use a program on another's desktop machine
  • collaborative Web browsing: visit Web pages together

Currently no standard exists that will work among all conferencing programs.

Posted bySumedh at 11:07 PM 0 comments  

WEB BROWSERS

To access the World Wide Web, you must use a Web browser. A browser is a software program that allows users to access and navigate the World Wide Web. There are two types of browsers:

  1. Graphical: Text, images, audio, and video are retrievable through a graphical software program such as Internet Explorer, Firefox , Netscape, Mozilla and Opera. These browsers are available for Windows, Apple, Linux and other operating systems. Navigation is accomplished by pointing and clicking with a mouse on highlighted words and graphics.

You can install a graphical browser on your computer. For example, Internet Explorer is a part of the Windows operating system, and is also available on the Microsoft site: http://www.microsoft.com/. Firefox is available for downloading from http://www.mozilla.org/products/firefox/ and Netscape is available from http://home.netscape.com/.

  1. Text: Lynx is a browser that provides access to the Web in text-only mode. Navigation is accomplished by highlighting emphasized words in the screen with the arrow up and down keys, and then pressing the forward arrow (or Enter) key to follow the link. In these days of graphical browsers, it may be hard to believe that Lynx was once very popular.

Extending the Browser: Plug-Ins

Software programs may be configured to a Web browser in order to enhance its capabilities. When the browser encounters a sound, image or video file, it hands off the data to other programs, called plug-ins, to run or display the file. Working in conjunction with plug-ins, browsers can offer a seamless multimedia experience. Many plug-ins are available for free.

File formats requiring plug-ins are known as MIME types. MIME stands for Multimedia Internet Mail Extension, and was originally developed to help e-mail software handle a variety of binary (non-ASCII) file attachments. The use of MIME has expanded to the Web. For example, the basic MIME type handled by Web browsers is text/html associated with the file extention .html.

A common plug-in utilized on the Web is the Adobe Acrobat Reader. The Acrobat Reader allows you to view documents created in Adobe's Portable Document Format (PDF). These documents are the MIME type "application/pdf" and are associated with the file extension .pdf. When the Acrobat Reader has been downloaded to your computer, the program will open and display the file requested when you click on a hyperlinked file name with the suffix .pdf. The latest versions of the Acrobat Reader allow for the viewing of documents within the browser window.

Web browsers are often standardized with a small suite of plug-ins, especially for playing multimedia content. Additional plug-ins may be obtained at the browser's Web site, at special download sites on the Web, or from the Web sites of the companies that created the programs.

Once a plug-in is configured to your browser, it will automatically launch when you choose to access a file type that it uses.

Beyond Plug-Ins: Active X

ActiveX is a technology developed by Microsoft which make plug-ins less neccesary. ActiveX offers the opportunity to embed animated objects, data, and computer code on Web pages. A Web browser supporting ActiveX can render most items encountered on a Web page. As just one example, Active X allows you to view and edit PowerPoint presentations directly within your Web browser. ActiveX works best with Microsoft's Internet Explorer.

Posted bySumedh at 11:05 PM 0 comments