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)