An Introduction to Internet Architecture for Web-Based Software

 

 

 

This 3-day course provides a general introduction to the way Internet applications are constructed, and the innovative technologies that are available to build them.  Multiple technical models compete for “standard” status in web application development.  We identify the significant technology choices, enabling the architect, designer, programmer, and decision-maker to compare and contrast the competing models.  We employ the device of a sample e-commerce application, a web-based ticket purchase brokerage, to illustrate different topics and bring the issues into perspective.  As the course progresses we’ll repeatedly return to “Web Tickets”, our hypothetical web-based service, to apply what we’ve learned to a real-world business.

 

 

Who Should Attend

 

Planners, architects, and managers who will be responsible for deploying web-based applications, IT professionals at all levels looking for an introductory survey of Internet technologies, and how to use them.

 

 

Prerequisites

 

Basic computer and Internet literacy, familiarity with at lease one web browser, and some background in information technologies.

 

 

Seminar Objectives:

 

<          Understand and use the Internet as an application development platform.

<          Understand the differences between Internet, Intranet, and Extranet application

            scope.

<          Understand the importance of standards in web development, and identify and access

            the major groups and consortia who are forging policy for the future of the Web.

<          Understand the concepts of two- and three-tier architectures, and make sound

            decisions about layering, scoping, and scaling web-based applications.

<          Apply basic principles of Object-Oriented Analysis and Design to planning web

            applications.

<          Choose appropriate strategies to web-enable existing applications.

<          Evaluate and select development tools for internetworking and browser-based

            presentation.

<          Evaluate and select programming models for Tier 2 development.

<          Identify tools and techniques to make existing databases web-aware.

<          Understand the basic methods for using the Web for business-to-business data

            interchange.

<          Avoid creating barriers to application access and interoperability by making judicious

            technology choices.



 


I.  The Internet Today

 

The Internet’s profound effect on the state of computing, networking, and commerce over the last five years is indisputable.  During this time business in the U.S. especially has gone from being generally unaware of internetworking — to being, in many cases, dependent for survival on their ability to develop Internet savvy.  At the same time, many IT professionals are struggling to update their skills, knowledge, and plans to take this burgeoning technology into account.

 

(a)   What Is the Internet?

(b)   History and Development of the Internet

(c)   Impact of E-Commerce on the Marketplace

(d)   Business Imperatives

 

 

II.      Enabling Technologies

 

Many technologies had to mature in order to enable the Internet, as we know it today, to exist.  Before it could become practical as a graphical medium it had to acquire the bandwidth to transfer large amounts of data in reasonable time.  Before it could become a tool for commerce the tools to access it had to be in the hands of a large base of customers.  In order to conduct business transactions the Internet needed methods for keeping transactions confidential.  Reliability became a greater concern than when the Internet was used primarily for public purposes.

 

(a)   the Internet as We Know it Today

              High Bandwidth

              Graphical Presentation

              User-Centered

              High Availability

              High Accessability

(b)   TCP/IP

              Adaptive Routing

              Error Detection

              Delivery Guarantees

              Address Space

              Layered Protocol Stacks

              Multiple Application Layers

(c)   Important Application Protocols

              Telnet

              FTP

              HTTP

(d)   Hypertext

              Definition of Hypertext

              History of Rich Text and Markup                                           (Languages

              HTML

(e)   Client/Server

              Distributed Computing

              Basic Client/Server Concepts

              What Is a Client?

              What Is a Server?

              Two-Tier Architectures

              Three-Tier Architectures

              Multi-Tier Architectures

(f)    Object-Oriented Technology

              Goals of OO

              OO Concepts

              OO and User-Centric Applications

              Characteristics of OO Languages

 

 

III.     The Microsoft Model and the Sun Model

 

This chapter explores the fundamental differences in the approaches to web-based development taken by Sun Microsystems and Microsoft.

 

(a)   Proprietary vs. Standards-driven                                                 Architectures

(b)   Sun and Java:  Language-driven                                                Common Model

              Sun Technologies Are All Based on                          (the Java Language

              Disadvantage:  Some Services                                             (Accessible Only from Java

              Advantage:  Java and Java Virtual                           (Machine are Platform-Independent

              Advantage:  Java and JVM Are                                             (Open Standards

(c)   Microsoft and COM:  Interface-driven                                          Common Model

              Advantage:  COM Interfaces Can Be                                    (Implemented in Many Languages,                                (C++, J++, and others

              Advantage:  COM Objects Can Be                                        (Embedded in Many Application                                              (Frameworks

              Disadvantage:  COM is Microsoft                                          (Proprietary, and Most Services Are                                (Limited to Windows-based                           (Platforms

 

 

IV.    “Web Tickets”:  A Simple Web-Based

         Distributing Application

 

This section describes “Web Tickets”, a simple e-commerce application where consumers can purchase tickets to public events over the Internet.  In this section we design the Web Tickets application requirements and high-level object model, introducing some fundamental concepts of OO architecture and design as we go.

 

(a)   “Web Tickets” Overview

(b)   “Web Tickets” Context Diagram

(c)   Building the Context Diagram

(d)   Identifying the System Story

(e)   Identifying Actors

(f)    Describing Actors

              Actor Goals

              Skill Set Requirements

(g)   “Web Tickets” Actors

              Human Actors

              System Actors

(h)   Use Cases

(i)    Identifying the Use Cases

(j)    Describing the Use Cases

(k)   “Web Tickets” Use Cases

 

 

V.     Tier 1:  The Architecture of Web-based

         Presentation

 

The World Wide Web has evolved fastest as a presentation medium.  Arguably, the Internet revolution came about because of pioneering in graphical browsers, and its use for transaction processing and database access is merely a consequence of the interest that that revolution generated.  While there are many ways to embellish and enrich web presentation, the basic story is still the same:  Hypertext documents transferred between web servers and browsers using the HTTP protocol.

 

(a)   What Do Browsers Do?

(b)   What Is a Web Server?

(c)   Popular Web Servers Today

              Apache

              Microsoft IIS

              Netscape FastTrack and Enterprise                          (Web Servers

(d)   HTML

(e)   HTML and HTTP

(f)    Activating Web Pages

              Scripting

              Microsoft:  VBScript

              Sun:  JavaScript

(g)   Microsoft Model

              ActiveX

              Active Server Pages

(h)   Sun Model

              Java

              JavaBeans

 

 

VI.    “Web Tickets” Tier 1:  Practical

         Presentation Design

 

This chapter returns to our sample application to consider how the presentation layer could be designed and implemented.  We touch on effective presentation, ease of use, and special problems created by transferring sensitive information (in this case, credit card account numbers) across a public medium.  We consider the effect of different implementation choices on the presentation architecture.

 

(a)   Design Considerations

(b)   Creating Effective Pages

(c)   “Web Tickets” Home Page

(d)   Searching Events

(e)   Reserving Seats

(f)    Completing the Transaction

              Security

              HTTPS

(g)   Implementation Models

 

 

VII.   Tier 2:  Business Objects and Distributed

         Object Models

 

The Internet is, by definition, a distributed computing environment.  Distributed computing means nothing more than spreading the work of a single program or task across several computers.  The first goal of Distributed Object Models is to hide the mechanics of distributed computing from the application developer.  The second goal is to do so in a way that is Object-Oriented and uniform, so that objects from different sources are interoperable and can be reused and recombined in multiple applications.  Distributed Object Models are being increasingly refined and abstracted to approach these goals.  Each refinement builds on the preceding technology.

 

(a)   What Are Distributed Objects?

(b)   Distributed Object Technology

              CORBA

              Java RMI

              DCOM

(c)   A Modern 3-Tier Architecture

              Presentation Layer

              Business Objects Layer

              Database Layer

(d)   Remote Method Invocation Protocols

              Common Characteristics

              Responsibilities of the RMI

              The RMI Loop

(e)   Object Request Brokers

              Common Characteristics

              Responsibilities of the ORB

              Services ORBs May Provide

              Shortcomings of ORB Models

(f)    Component Transaction Monitors

              What Is a Component Model?

              What Is a Component Transaction                                        (Monitor?

              CTMs and Server-side Component                                       (Models

              Characteristics of CTMs

              Services Provided by CTMs

              History of CTMs

(g)   Layered Architecture at Tier 2

 

 

VIII.  Enterprise JavaBeans

 

Enterprise JavaBeans is the preferred Component Model for Java-based Tier 2 development.  EJB is designed specifically for distributed computing, and primarily for Tier 2.  Further, it divides the space of components into two varieties — Entity Beans and Session Beans — which reflect the two main types of business objects needed to deploy 3-tier web-based applications.

 

(a)   What is EJB?

(b)   EJB vs. (plain) JavaBeans

(c)   CTMs That Support EJB

(d)   Enterprise Bean Components (“Beans”)

(e)   Entity Beans

(f)    Session Beans

(g)   The Remote Interface

(h)   The Home Interface

(i)    The Bean Class

(j)    The Primary Key Class

(k)   Enterprise JavaBeans in a 3-Tier Model

(l)    Client-Bean Interaction

(m)  Database-Bean Interaction

(n)   Database Containers

(o)   Responsibilities of Containers

 

 

IX.     “Web Tickets” Tier 2:  Business Object

         Classes

 

This chapter illustrates how easily and directly the use cases for the Web Tickets application model are expressed as JavaBeans.  The natural way the EJB model supports good OOA and OOD practice is an argument in favor of this model.

 

(a)   Entity Beans

              Events

              Theaters

              Reservations

(b)   Sessions Beans

              Browse Events

              Order Tickets

              Verify Credit

              Post Charge

              Print Tickets

(c)   “Web Tickets” Implementation Notes

 

 

X.      Introduction to XML

 

Microsoft’s Tier 2 and 3 strategies are increasingly focused on the XML markup meta-language.  Before we can examine those strategies and contrast them with the EJB model it is necessary to learn the basic structure and philosophy of XML.

 

(a)   Understanding Markup Languages

              A Brief History

              How Markup Works

              Specific and Generalized Markup                                          (Languages

(b)   What Is XML?

              Where Does XML Fit In?

              Design Goals for XML

              The XML Specification

              The W3 Consortium

(c)   HTML vs. XML

              XML Syntax Compared to HTML                                           (Syntax

              Why Use XML?

(d)   The Structure of an XML Document

              Document Type Definition (DTD)

              Well-Formed vs. Valid Documents

(e)   Generating XML Documents

(f)    W3C Technical Reports

              Recommendations

              Proposed Recommendations

              Working Drafts

(g)   The State of XML Standards Today

(h)   Future Directions of XML

 

 

XI.     XML on Tier 2

 

We have already seen that a primary presentation (Tier 1) strategy for the Web is transforming HTML documents for the purpose of displaying context-sensitive information.  Perl, CGI, and ASP are all primary technologies for accomplishing this single task; XML can be used for this purpose too.  Now Microsoft and some of its business partners have proposed encoding control information and parameter data in self-describing XML documents.  This idea has the effect of turning simple old HTTP into an RMI protocol.

 

(a)   XML as a Presentation Tool

(b)   Drawbacks of XML on the Presentation                          Client

(c)   SOAP

              Simple Object Access Protocol

              An RMI Protocol Using HTTP and                                         (XML

(d)   Advantages of SOAP

(e)   Web Tickets Application Using SOAP

 

 

XII.    Tier 3:  The Database Back End

 

This chapter surveys the basic methods for making data in relational database management systems accessible to distributed applications.  Database access middleware has been evolving for a long time, and some of the earliest solutions are still viable today.  On the other hand, as in Tiers 1 and 2, there are fundamentally different proposals on the table from the rivals Microsoft and Sun.

 

(a)   SQL

(b)   Proprietary Database Middleware

(c)   ODBC

(d)   JDBC

(e)   Database Access Objects

(f)    Containers Again

(g)   XML

 

 

XIII.   Using XML as a Database Interface

 

Self-describing XML documents are a powerful tool for interfacing business objects (or the presentation layer) with relational databases.  The results of joins can be accurately and economically expressed in a single document.  Changes in the schema are automatically reflected in the resulting document.

 

(a)   Traditional Data Source Objects

(b)   SQL and XML

              Join Representations

              Stylesheet Transformations

(c)   JDBC in XML

(d)   Web Applications with a Database

 

 

XIV.  “Web Tickets” Tier 3:  Database Interactions

 

We’ve already considered most of the Web Tickets data model in other contexts.  This chapter illustrates how some of the Web Tickets queries can be expressed in XML documents.  The architecture of the Java/JDBC implementation is also detailed.

(a)   The Events Query

              Using XSL Filters to Avoid Re-Query

(b)   The Seats Query

              Encoding Parent-Child Relationships                                    (in an XML Document

(c)   The Reservations Transaction — One                                        Microsoft Way

(d)   The Reservations Transaction — Sun                                        Style

 

 

XV.   High Level Tools and E-Commerce Support

         Systems

 

The World Wide Web has come a long way since development of ArpaNet, and so have the tools and utilities available to the developer.  It’s important to be aware of these tools to avoid “re-inventing the wheel”.  Additionally, some high-level tools support multiple-component models and can act as a bridge between the competing models.

 

(a)   Tier 1 Tools:  Graphical Web Page                                             Editors

(b)   Tier 2 Tools:  CTMs, Containers, and                                         Code Generators

(c)   Tier 3 Tools:  ColdFusion

(d)   Availability Tools:  BMC Pilot; More

(e)   Microsoft BizTalk Framework (XML                                             Again)