FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics (Web technologies: HTTP, CGI, Java applets; Middleware)

Slides:



Advertisements
Similar presentations
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
Advertisements

Web documents types 1. 2 Three basic types of web documents Static. A static web document resides in a file that it is associated with a web server. The.
PART 6 Application Layer
Kyung Hee University 1 1 Application Layer. 2 Kyung Hee University Position of Application Layer.
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
1 Chapter 12 Working With Access 2000 on the Internet.
Introduction to Web Database Processing
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
World Wide Web1 Applications World Wide Web. 2 Introduction What is hypertext model? Use of hypertext in World Wide Web (WWW) – HTML. WWW client-server.
Introduction to Web Interface Technology (CSE2030)
Introduction to HTML 2006 CIS101. What is the Internet? Global network of computers that are connected and communicate via a series of Protocols Protocols.
Chapter 27 HTTP and WWW.
Definitions, Definitions, Definitions Lead to Understanding.
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Chapter 11 ASP.NET JavaScript, Third Edition. 2 Objectives Learn about client/server architecture Study server-side scripting Create ASP.NET applications.
WWW and Internet The Internet Creation of the Web Languages for document description Active web pages.
1 The World Wide Web. 2  Web Fundamentals  Pages are defined by the Hypertext Markup Language (HTML) and contain text, graphics, audio, video and software.
CGI Programming: Part 1. What is CGI? CGI = Common Gateway Interface Provides a standardized way for web browsers to: –Call programs on a server. –Pass.
2440: 141 Web Site Administration Web Server-Side Programming Professor: Enoch E. Damson.
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
INTRODUCTION TO WEB DATABASE PROGRAMMING
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
HTTP; The World Wide Web Protocol
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
Dr. Azeddine Chikh IS444: Modern tools for applications development.
Internet Applications  DNS   TELNET  FTP  Web browsing.
Chapter 33 CGI Technology for Dynamic Web Documents There are two alternative forms of retrieving web documents. Instead of retrieving static HTML documents,
Chapter 16 The World Wide Web Chapter Goals Compare and contrast the Internet and the World Wide Web Describe general Web processing Describe several.
16-1 The World Wide Web The Web An infrastructure of distributed information combined with software that uses networks as a vehicle to exchange that information.
CPS120: Introduction to Computer Science The World Wide Web Nell Dale John Lewis.
1 HTML References: A HTML Tutorial: /HTMLPrimer.html
11/16/2012ISC329 Isabelle Bichindaritz1 Web Database Application Development.
World Wide Web Hypertext model Use of hypertext in World Wide Web (WWW) WWW client-server model Use of TCP/IP protocols in WWW.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Chapter 8 Introduction to HTML and Applets Fundamentals of Java.
1 Week 1 l HTML l Applets Applets and HTML. 2 Overview l Applets: Java programs designed to run from a document on the Internet l HTML: Hypertext Markup.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Chapter 13. Applets and HTML HTML Applets Computer Programming with JAVA.
Active Server Pages  In this chapter, you will learn:  How browsers and servers interacted on the Internet when the Internet first became popular 
1 Welcome to CSC 301 Web Programming Charles Frank.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
Chapter 29 World Wide Web & Browsing World Wide Web (WWW) is a distributed hypermedia (hypertext & graphics) on-line repository of information that users.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
CSIT 220 (Blum)1 Remote Procedure Calls Based on Chapter 38 in Computer Networks and Internets, Comer.
IS-907 Java EE World Wide Web - Overview. World Wide Web - History Tim Berners-Lee, CERN, 1990 Enable researchers to share information: Remote Access.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Introduction and Principles Web Server Scripting.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
The Internet Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
National College of Science & Information Technology.
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
Applications Active Web Documents Active Web Documents.
WWW and HTTP King Fahd University of Petroleum & Minerals
Chapter 27 WWW and HTTP.
CSI 4118 – UNIVERSITY OF OTTAWA
PART 6 Application Layer
INFS 230 L Internet Technology
Presentation transcript:

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics (Web technologies: HTTP, CGI, Java applets; Middleware)

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts Point Click

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA3 Web Components Browser Web server Hypermedia links Document representation Transfer protocol

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA4 Browser Application program User’s interface to Web Becomes Web client to fetch information from Web server Displays information for user

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA5 Web Server Running program Stores set of Web documents Responds to request from browser by sending copy of document

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA6 Hypermedia Concept Web document contains mixture of Text Images Selectable pointers to other Web pages Known as hypermedia

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA7 Hypermedia Link On A Web Document Associated with object or area on screen Internally like a symbolic link Advantage Can reference document on another computer Disadvantage Can become invalid

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA8 Web Document Called a web page One web page per file Can contain Binary image Text file Text standard Readable representation ASCII Specifies contents and layout Known as Hypertext Markup Language (HTML)

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA9 Terminology Markup language Gives general layout guidelines Does not specify exact placement or format

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA10 Consequence of Using A Markup Language Web documents use the HyperText Markup Language representation. Instead of specifying a detailed document format, HTML allows a document to contain general guidelines for display, and allows a browser to choose details. Consequently, two browsers may display an HTML document differently.

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA11 HTML Details Document is free-format Embedded tags give display guidelines Tags often appear in pairs Tag format Beginning tag Ending tag

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA12 General Form of HTML Document text that forms the document title body of the document appears here

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA13 Document Format text that forms the document title body of the document appears here  HTML source is free-form  Previous example equivalent to this

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA14 Example HTML Tags Begin paragraph Line break (force a new line) Main heading (largest, boldest font) … text … Next heading (next largest) … text …

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA15 Example of HTML Line Break Input Hello there. This is an example of HTML. Output Hello there. This is an example of HTML.

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA16 Example of HTML Line Break (continued) Input Hello there. This shows HTML spacing. Output Hello there. This shows HTML spacing.

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA17 Example of HTML Headings Input Hello. This is a heading Back to normal. Output Hello. This is a heading Back to normal.

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA18 Other HTML Features Numbered or unnumbered lists Images Links to other pages

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA19 Images in HTML Explicitly denoted as image Specified with image tag Can specify alignment with text Example image tags

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA20 Images in HTML Here is a picture.

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA21 Links to Other Pages Symbolic representation Embedded in HTML document Browser Hides text of link from user Associates link with item on page Makes item selectable Called Uniform Resource Locator (URL)

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA22 General Form of URL Only domain name required Defaults Protocol is http Port is 80 Path is index.html protocol :// domain_name : port / item_name name of access protocol to use domain name of server computer protocol port number path name of item

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA23 Link in HTML Link specified in tag Applies to successive items Ends with Called anchor

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA24 Example of Anchor Tag in HTML Input The text is published by Prentice Hall, one of the larger publishers of Computer Science textbooks. Produces The text is published by Prentice Hall, one of the larger publishers of Computer Science textbooks.

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA25 Use of Client-Server Paradigm Web server Makes set of pages available Uses port 80 Web client Called a browser Creates TCP connections to server Sends requests for items

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA26 Use of Client-Server Paradigm Primary protocol used between browser and server known as HyperText Transfer Protocol (HTTP) HTTP requests sent as text (ASCII) GET: request an item from the server HEAD: request status information about an item POST: send data to the server

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA27 Use of Client-Server Paradigm Response from server begins with ASCII header Status code (200 = handled request)

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA28 Inside a Browser Main controller Receives input from user Invokes client and interpreter Clients One or more built into browser Uses network to fetch items Interpreter One or more built in Displays items

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA29 Illustration of a Browser Browser contains many components

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA30 Alternative Protocol Example File transfer service Protocol is FTP Example URL ftp://ftp.cs.purdue.edu/pub/comer/netbook/client.c Can be used in anchor tag

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA31 Other Markup Languages Extensible Markup Language (XML) does not specify layout Tag names can be created as needed Example for a corporate phone book:

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA32 Caching in Browsers Cache for recently accessed HTML pages Images Item normally fetched from cache User can override HTTP can verify timestamp before fetching new copy

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA33 Types of Web Pages Static Stored in file Unchanging Dynamic Formed by server Created on demand Output from a program Use Common Gateway Interface (CGI) technology

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA34 Types of Web Pages (cont) Active Executed at client Consists of a computer program Can interact with user Use Java technology

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA35 Summary of Web Document Types Web documents can be grouped into three categories depending on when the information in the document changes. The information in a static document remains unchanged until the author revises the document. The information in a dynamic document can change whenever a server receives a request for the document. Information displayed by an active document can change after the document has been loaded into a browser.

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA36 CGI Technology URL specifies Location of Web server CGI program on that server Arguments to program Web server Uses TCP for communication Accepts HTTP request from client Runs specified CGI program Returns output to client

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA37 CGI Technology (cont) CGI program Performs arbitrary computation Often written in a scripting language Produces output file when run Starts output with header

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA38 Header in CGI Output Stops at first blank line Identifies Encoding used Type of document Format keyword: information

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA39 CGI Header Examples HTML document header Content Type: text/html Text document header Content Type: text/plain Redirection header Location: /over_here/item4

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA40 Example CGI Script Generates document Document contains three lines of text Header Blank line Document creation date

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA41 Parameters CGI programs can be parameterized URL can contain arguments that are passed to CGI program Question mark separates CGI path from arguments Server places information following question mark in environment variable QUERY_STRING

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA42 Example Environment Variables

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA43 Encoding Information in a URL Information that program stores between invocations: state information Information passed to browser in form of cookie Cookie consists of name/value pair Long term (persistent) or short term (session)

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA44 Long-Term State Information Program lifetime CGI program invoked by server Program exits after generating output To maintain persistent data Write to file on disk Read from file on disk

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA45 Long-Term State Information Client’s IP address in environment variable Check if address in file Respond to client

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA46 Short-Term State Information Each invocation of a dynamic document program can produce a document containing a new set of URLs Use new arguments in new URLs

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA47 Short-Term State Information Argument encodes number of times executed

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA48 Example of Script Execution Initial document Content-type: text/html This is the initial page. Click here to refresh the page. Resulting display This is the initial page. Click here to refresh the page.

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA49 Example of Script Execution Generated output Content-type: text/html You have displayed this page 2 times. Click here to refresh the page. Resulting display You have displayed this page 2 times. Click here to refresh the page.

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA50 Generated URL Values When it generates a document, a dynamic document program can embed state information as arguments in URLs. The argument string is passed to the program for the URL, enabling a program to pass state information from one invocation to the next.

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA51 Server-Side Scripting ASP (Active Server Pages) JSP (Java Server Pages) PHP (Perl Helper Pages) ColdFusion

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA52 Server-Side Scripting Server-side scripting technologies allow a dynamic page to be created from a template or skeleton that contains embedded commands or program scripts. Instead of using a computer program to generate an entire page, an interpreter copies the page and replaces only the scripting commands.

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA53 Continuously Changing Information Needed for Animations Rapid updates (e.g., stock prices) Achieved with two mechanisms Server push Active document

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA54 Server Push Technology Client forms connection Server sends updates repeatedly Impractical

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA55 Active Document Technology Server Sends computer program to client Client Runs program locally Program Controls display Interacts with user

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA56 Active Document Representation Desire Platform independence Efficient execution High-speed data transmission Late binding Consequence Compact representation Interpretive execution

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA57 Active Document Translation Compiler produces machine-independent binary Browser interprets binary

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA58 Java Technology Developed by Sun Microsystems Used for Conventional applications Active documents (applets) Includes Programming language Run-time system Class library

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA59 Java Language Characteristics High level General purpose Similar to C++ Object oriented Dynamic Strongly typed Statically type checked Concurrent

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA60 Java Run-Time Environment Characteristics Interpretative execution Automatic garbage collection Multi-threaded execution Internet access Graphics support

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA61 Java Library Classes for Graphics manipulation Low-level network I/O Interaction with a Web server Run-time system access File I/O Conventional data structures Event capture Exception handling

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA62 Choice of Graphics Interface Java includes an extensive graphics toolkit that consists of run-time support for graphics as well as interface software. The toolkit allows a programmer to choose a high-level interface, in which the toolkit handles details, or a low-level interface, in which the applet handles details.

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA63 Example Java Applet Window with two items Text area Button Change text when button clicked

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA64 Illustration of Applet Display Initial After user clicks button

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA65 Example Applet Code

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA66 Applet Invocation Available in HTML Uses applet tag Specifies Codebase (machine and path) Code (specific class to run) Example

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA67 Java Functionality HTML interface Controls display Interacts with user HTTP interface Accesses remote Web documents Invokes other applets Exceptions Indicate unanticipated circumstances Can be caught and handled

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA68 Example Applet Code

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA69 Example Applet Code (continued)

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA70 Illustration of Applet Display

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA71 JavaScript Technology Alternative to Java technology Provides scripting language Browser reads and interprets script in source form JavaScript can be integrated with HTML

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA72 JavaScript Example

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA73 JavaScript Example

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA74 Middleware Tools to help programmers Makes client-server programming Easier Faster Makes resulting software Less error-prone More reliable

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA75 Middleware Approach Allow programmer to work with familiar language constructs Provide tools to help programmer Special translators Libraries Automatically generate code for Network communication Connection management

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA76 Remote Procedure Call Uses standard procedure call paradigm Divides program along procedure call boundaries Main program and procedures for user interaction in client side Other procedures in server side

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA77 Reason for Remote Procedure Call If a programmer follows the same procedure call paradigm used to build conventional programs when building client and server software, the programmer will find the task easier and will make fewer mistakes

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA78 Illustration of Conventional Procedure Call Graph Arrow denotes procedure call

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA79 Procedure Call Graph Divided Into Client and Server Division occurs on call boundary Main program in client piece

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA80 Communication Stubs Inserted to enable remote “call” Automatically generated Use original call interface Allow calling and called procedure to remain unchanged

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA81 Illustration of Client and Server Stubs Original call in (a) Same interface with stubs in (b)

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA82 Creating Stubs Programmer writes Code for a program Specification of procedure interfaces using Interface Definition Language (IDL) Middleware generates Client and server stub code Necessary socket calls Data translation

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA83 Data Representation Network can connect heterogeneous computers Two computers may use different Integer representations Character codes Floating point representations Translation required

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA84 Possible Data Translation Schemes Use receiver’s representation Sender translates all outgoing data Use sender’s representation Receiver translates all incoming data Use external representation (popular) Sender translates to external form before sending Receiver translates from external form after reception

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA85 Middleware Technologies That Use Remote Procedure Call ONC RPC Open Network Computing IETF standard Popular in Unix world DCE RPC Distributed Computing Environment Open Group Standard

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA86 Middleware Technologies That Use Remote Procedure Call (continued) MSRPC Microsoft Variant of DCE RPC

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA87 Object-Oriented Middleware Designed for use with object-oriented programming languages Same general scheme as RPC Interface Definition Language Tool to build stubs Libraries to handle network communication Uses method invocation instead of procedure call

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA88 Middleware Technologies That Use Remote Object Invocation CORBA Common Object Request Broker Architecture Well known object-oriented middleware MSRPC2 Microsoft Also called Object RPC (ORPC)

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA89 Middleware Technologies That Use Remote Object Invocation COM / DCOM Also from Microsoft Component Object Model (COM) Used on single computer Provides mechanism for inter-object references Distributed Component Object Model Used across multiple computers Includes communication stubs

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA90 Middleware Technologies That Use Remote Object Invocation RMI From Sun Microsystems Methods of remote Java objects can be invoked from other Java virtual machines on different hosts Jini Also from Sun; based on Java Provides an environment for creating dynamically networked components, applications, and services that scale

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA91 Summary Web is major application in Internet Client Called browser Fetches and displays document Web documents Stored on servers Standard representation is HTML

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA92 Summary (continued) HTML Markup language Uses tags embedded in text URL components Protocol Domain name of server Protocol port number Path of item Only domain is required

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA93 Summary (continued) Static web page Unchanging Dynamic web page Output from a program on the server Active web page Runs in browser Consists of a computer program

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA94 Summary (continued) Dynamic web page technology Known as CGI CGI program usually a script Document begins with header line URL can contain arguments

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA95 Summary (continued) Active web page technology Known as Java Programming language plus runtime support Document called applet

FALL 2004CSI 4118 – UNIVERSITY OF OTTAWA96 Summary (continued) Middleware Tools to help build client and server Automates routine tasks Two popular paradigms Remote procedure call Object invocation Generates communication stubs