Designed for use in undergraduate and graduate courses in Information/Library Science, Telecom, Business, Engineering and Medical Infomatics
programs, this textbook offers nonexperts an accessible, thoughtful introduction to the applications and infrastructure in networked
computing, providing information to make the right technological and organizational decisions in working with developers to design or
acquire effective computing solutions.
Understanding the rich conjunction of networking and computing is essential for anyone involved
in the formulation and implementation of new application ideas, whether in business, education, or government. Most non-computer science
students entering the IT profession today have not been adequately prepared to work with, let alone take advantage of the computing infrastructures
they'll encounter in the real world. The only courses that currently discuss aspects of this environment in any detail are in Computer
Science departments, and are at a level that is considerably too advanced for their needs and backgrounds. And these courses are not
likely to cover the economic, societal, and governmental issues that are also important for them to understand.
This is probably
the first book in computing that takes a top-down approach, starting with applications. The focus is on explaining core concepts and
terminology, getting into technical detail only where necessary. Example and analogies from everyday life help students to better understand
concepts such as object-oriented programming, data mining, encryption, firewalls, etc. which might otherwise seem intimidating. Peppered
throughout are sidebars that contain anecdotes, more detailed explanations, and additional examples that give students a refreshing break
from the running text.
Contents
Preface
Chapter 1 Introduction
1.1 The Evolution of Computing
1.1.1 Previous Phases of Computing
Technology View
User and
Organization View
Legacy Applications
1.1.2 The Future
1.2 Overview of the Book
1.2.1 Applications
1.2.2 Architecture
1.2.3
Industry and Government Context
1.2.4 Making It Happen
1.2.5 Infrastructure
1.2.6 Performance
Part I: The Applications
Chapter
2 Applications Supporting Individuals and Groups
2.1 Three Ingredients
2.1.1 Information Technology
2.1.2 Information Content
2.1.3 Users and Applications
2.2 Social Applications
2.2.1 Characteristics of User Groups
2.2.2 Styles of Social Applications
Communication Style
Coordination Style
2.2.3 Remote Conferencing with Shared Workspace
2.2.4 Groupware
2.2.5 Discussion Forums
Chatroom
Listserver
2.2.6 Cyberspace Applications
Broadcasting
Mass Publication
World-Wide Web
Information Retrieval
Consumer
Electronic Commerce
Recommendation Sharing
2.2.7 Back to the Big Picture
2.3 Information Management
2.3.1 What is Information?
2.3.2 Finding Useful Information
User-directed Access
Assistance from Others
Third-party or Collective Recommendations
Third-party
Organization and Indexing: Digital Libraries
2.3.3 Autonomous Information SourcesUser Control: Subscriptions
User Awareness: Notifications
Timing
Push and Pull in Social Applications
2.4 Education and Training
2.5
Open Issue: Information and Communication Glut
Chapter 3 Applications Supporting Organizations
3.1 Examples of Organizational Applications
3.1.1 Customer Care
3.1.2 On-line
Book Selling
3.1.3 On-line Stock Trading
3.1.4 Floral Delivery Service
3.1.5 Observations
3.2 Departmental Applications
3.2.1
On-line Transaction Processing
3.2.2 Workflow
3.2.3 From Centralized to Decentralized Computing
3.3 Enterprise Applications
3.3.1 Operations
Business Processes
Business Transformation
Enterprise Resource Planning
3.3.2 Decision-support
3.3.3 Knowledge
Management
3.4 Electronic Commerce
3.4.1 Types of E-commerce Applications
3.4.2 Steps in a Sale
Matching Buyers and Sellers
Negotiating Terms and Conditions
Consummation
Customer Support
3.4.3 Role of Intermediaries
3.4.4 Consumer E-commerce
3.4.5 Inter-Consumer
E-commerce
3.4.6 Inter-Enterprise E-commerce
Direct Procurement
Indirect Procurement
3.5 Critical Societal Infrastructure
3.6 Parallels Between Social and Computing Systems
3.7
Open Issues
3.7.1 The Productivity Paradox
3.7.2 How do New Organizational
Applications Get Invented and Developed?
3.7.3 Better Accommodating Change
Part II: Architecture
Chapter 4 Information Technology
4.1 Information Content
4.1.1 Bits as a Building Block
4.1.2 Information is Represented by Data
4.1.3 Data Processing
4.2
Building Blocks
4.3 System Architecture
4.3.1 Elements of Any Architecture
4.3.2 Emergence
4.3.3 Hierarchy
4.4 Networked Computing
Infrastructure
4.4.1 Infrastructure Software Layering
4.4.2 Communications
Network Functions
Packets
Network Topology
4.4.3
Storage
Files System
Database
Database Management System (DBMS)
4.5 The Internet
4.5.1 Intranet
4.5.2 Extranet
4.5.3 Nomadic
and Mobile Internet Access
4.5.4 Internet Application Suite
4.6
Open Issues
4.6.1 Pacing Change
4.6.2 The Future of Intranets
4.6.3 Archiving Digital Information
Chapter 5 Client-Server Computing
5.1 Two Host Architectures
5.1.1 Client-Server
5.1.2
Peer-to-Peer
5.2 Three-tier Client-server
5.2.1 Thin- and Ultra-thin Clients
5.2.2 World-Wide Web
5.3 Application Examples
5.3.1 On-line Book Merchant
5.3.2 Floral Delivery Service
5.4
Trends in Client-server
5.5
Open Issue: Beyond Client-Server Computing
Chapter 6 Modularity and Layering
6.1 Software Complexity
6.2 Modularity
6.2.1 Properties of Modularity
6.2.2 Granularity
and Hierarchy
6.2.3 Interfaces
Actions
Parameters and Returns
Action Menus
Data types
Data types
Protocols
Human Interfaces
Messages
6.3 More on Layered Infrastructure Software
6.3.1 Goals of the Infrastructure
6.3.2 Layering Principle
6.3.3 The
Layers in a Computing Infrastructure
6.3.4 Data and Information in Layers
A Package of Data
Responding to Platform Heterogeneity
More Layering Principles
6.3.5 The Horizontal Layer Interface
6.3.6 The Spanning Layer
6.4
More on Good Architectures
6.4.1
Abstraction
6.4.2 Encapsulation
6.4.3 Flexibility
Part III: Industry and Government Context
Chapter 7 Computer and Communications
Industry
7.1 Participants, Products and Services
7.1.1 Components and Integration
7.1.2 Suppliers, providers, and consumers
7.1.3
Types of Information Goods
7.1.4 Types of Software Goods
7.1.5 Equipment
7.2 The Changing Industry Structure
7.2.1 The Role of
Architecture
7.2.2 From Stovepipe to Integrated Infrastructure
7.2.3 Less Vertical Integration and More Diversification
7.2.4 Venture
Capital and Start-up Companies
7.2.5 Computing/Communications Convergence
7.3 Standardization
7.3.1 Reference Models and Interfaces
7.3.2 Industry Organization and Standardization
7.3.3 The Standardization Process
7.3.4 Who Controls and Who Enforces Standards?
7.3.5 Why Open Standards?
7.3.6 Standardization Has Downsides Too
7.4
Open Issues
7.4.1 Industry Organization
7.4.2 The Best
Standardization Processes
Chapter 8 Economics and Policy
8.1 Obstacles to Change
8.1.1 Network Effects
Economic model
of network effects
Standardization and network effects
8.1.2 Lock-in
Supplier and Industry Lock-in
Open Systems and Lock-in
8.1.3
Path-Dependent Effects
8.2 Challenges for Suppliers
8.2.1
Technical Properties of Information
8.2.2 Economic Properties
of Information
8.2.3 Software as a Special Case
8.2.4 Equipment
8.2.5
Protecting Investments with Intellectual Property
8.2.6
Selling Content and Software
Value of content
Value of software
Price Discrimination and Versioning
8.3
Government Roles
8.3.1 Protecting Intellectual Property
Copyrights
Copyrighting software
Patents
Software patents
8.3.2 Government Policies
and Laws
Privacy
Content Regulation
Law enforcement and national security
Antitrust law
Telecommunications Regulation
8.4
Open Issues
8.4.1 Sovereignty and the Global Internet
8.4.2 The Language of the Internet
8.4.3 A New Partnership
Part IV: Making
It Happen
Chapter 9 Applications and the Organization
9.1 Organizational Rationale for Networked Computing
9.1.1 Scalability
9.1.2 Administration
9.2 Acquisition Options
9.2.1 Make vs. Buy
9.2.2 Purchase Terms and Conditions
9.3 Application Lifecycle
9.3.1 Lifecycle Model of Development
Conceptualization
Analysis
Architecture Design
Development Evolution
Testing and Evaluation
Deployment
Operations, Maintenance and Upgrade
9.3.2 Alternative Development Methodologies
9.4 Examples
9.4.1 Customer Care
9.4.2 On-line Bookseller
9.4.3 Stock Trading
9.4.4 Floral Delivery
9.4.5 Observations
9.5 Open Issue: Best Development Methodology
Chapter 10 Application Architecture
10.1 Major Considerations
10.1.1 Decomposition vs. Assembly
Decomposition: Objects
Assembly: Software Components
10.1.2 Software Reuse
10.1.3 Location of Data and Processing
10.1.4 Data as an Asset
10.2
Object-Oriented Architectures
10.2.1 Objects and the Application Context
Physical and Information Entities
Software Objects
Relationship
of Software and Real-World Entities
Representation Objects
Proxy Objects
Modeling Objects
10.2.2 Objects as Information Entities
10.2.3 Class
10.2.4 Visual Architecture Modeling
10.2.5 Dealing with Legacy Systems
10.3 Components and Frameworks
10.3.1 Software
Components
Designing Components
Scripting and Visual Assembly
10.3.2 Software Frameworks
Example: Compound Document
Chapter 11 Programming an Application
11.1 Algorithms, Protocols, and Policies
11.1.1 Algorithms and Flowcharts
11.1.2 Protocols
and Interaction Diagrams
11.1.3 Three Common Protocols
11.2 Locating Things
11.2.1 Names
11.2.2 Addresses
11.2.3 References
11.3
Programs and Languages
11.3.1 Imperative vs Declarative Languages
11.3.2 Object-oriented Programming Language
11.3.3 Scripting
vs. System Programming Languages
11.3.4 Program Execution
Chapter 12 Communication Services
12.1 Generic Communication Services
12.1.1 Message Service
12.1.2 Message Queueing and Multiplexing
Queuing
Multiplexing
12.1.3 Message with Reply Service
Remote
Method Invocation
Timing and Concurrency
12.1.4 The Conversation
Multimedia Transport
12.1.5 The Broadcast
12.2 Internet
Communication Services
12.2.1 Internet Protocol
12.2.2 User Datagram Protocol (UDP)
12.2.3 Transmission Control Protocol (TCP)
12.2.4 Internet Inter-ORB Protocol (IIOP)
12.2.5 Streaming Multimedia
Chapter 13 Trustworthiness
13.1 Availability
13.1.1
Intrinsic Reliability
Software Bugs
Configuration and Operation
Emergent Behavior
Cost of Reliability
13.1.2 Security: Countering
Deliberate Threats
13.2 Security Measures
13.2.1 Postal System Analogy
13.2.2 Some Threats
13.2.3 Pillars of Security
13.3
Confidentiality
13.3.1 Symmetric vs. Asymmetric Encryption
13.3.2 Encryption Algorithms
13.4 Authentication
13.4.1 Biometrics
13.4.2 Secrets
13.4.3 Digital Certificates and Certificate Authorities
13.5 Signatures
13.6 Security Systems
13.6.1 Confidential
Sessions
13.7 Example: Stock Trading Application
13.8 Open Issues
13.8.1 Increasing Vulnerability?
13.8.2 National Security
and Law Enforcement Needs
13.8.3 Theft and Piracy of Software and Information
Chapter 14 Electronic Payments
14.1 Some Benefits
to Electronic Payments
14.2 Types of Payments
14.3 Credit or Debit Card Payments
14.3.1 Problems with Card Payments
14.3.2 Secure
Electronic Transactions (SET)
SET Chain of Trust
SET Order-Authorization Protocol
14.4 Digital Cash
Many Questions About
Digital Cash
14.4.1 Challenges for Digital Cash
14.4.2 Privacy and Digital Cash
Chapter 15 Data Sharing
15.1 Database
Management
15.1.1 The Relational Model
Application Logic and Tables
Objects and Tables
15.1.2
Extending the DBMS
15.2 Documents
and XML
15.2.1 Markup Languages
15.3 Transaction Processing
15.3.1 Example: Travel Reservations
15.3.2 Role of Transaction Processing
15.3.3 What's in a Transaction
15.3.4 Transaction Processing Architecture
15.3.5
Transaction protocols
15.3.6 Examples
Automatic
Teller Networks
E-Commerce
Stock Trading
15.4 Example: Stock Trading System
15.4.1 The Databases
15.4.2 The Transactions
15.4.3 Inter-Enterprise Messages
15.5
Open Issue: Future of the DBMS
Chapter 16 Communications Middleware
16.1 Messaging and
Queueing Middleware
16.2 Mobile Code, Objects, and Agents
16.2.1 Advantages of Mobile Code
Interactivity and Scalability
Interoperability
Information Access
16.2.2 Mobile Code and Object Middleware
16.3 Distributed Object Management
16.3.1 One DOM Standard: CORBA
16.3.2 Changing data representations
16.3.3 Interface Discovery
16.3.4 Services
16.3.5 Interoperability Among ORB's: IIOP
16.3.6
Horizontal and Vertical Facilities
16.4 Open Issues
16.4.1 Middleware Service Providers?
16.4.2 Middleware Spanning Layer?
16.4.3
Middleware vs. XML and the Web
Part VI: Performance
Chapter 17 Scalability
17.1 Metrics
17.1.1 Performance
17.1.2 Quality
403
17.1.3 Contributors to Performance and Quality
17.2 The Role of Concurrency
17.2.1 Concurrency with Multiple Hosts
17.2.2
Concurrency in a Single Host
17.2.3 Resource Conflicts and Transactions
17.3
Scalability
17.3.1 Blocking
17.3.2 Duplicated Work
17.3.3 Faulty Load Balancing
17.3.4 Congestion
Congestion in Processing
Congestion on Communication Links
Congestion in Storage
17.3.5 Role of Application Architecture
Designing High Performance Systems
17.3.6 Role of Mobile Code
17.3.7 Example: Stock
Trading System
17.4
Operating Systems
17.4.1 Processes
17.4.2
Other Operating System Functions
Chapter 18 Collective
Issues in Networking
18.1 Functions of a Network
18.1.1 Sharing Communication Links: Statistical Multiplexing
18.1.2 Packet Forwarding
and Routing
18.1.3 Name Services
Hierarchical Names and Addresses
18.1.4 Flow Control
18.1.5 Network Congestion
Congestion
Instability
Implementation of Congestion Control
18.2 Quality of Service (QoS)
18.2.1 The Internet Transport Services and QoS
18.2.2 Integrated Services
18.2.3 Pricing of Network Services
18.3 Open Issues
18.3.1 The Future of the Internet
18.3.2 Multiple
Networks
Chapter 19 Network Architecture and Protocols
19.1 Network Architecture
19.1.1 Network Protocols
19.1.2 Packet
Encapsulation
19.1.3 Packet Fragmentation and Reassembly
19.1.4 Protocol Layering
19.2
Internet Protocols
19.2.1 Internet Protocol
Architecture
19.2.2 Packet Header Formats
19.2.3 IP Multicast
19.2.4 Domain Name System
19.2.5 Reliable and Ordered Delivery
19.2.6
Flow Control
19.2.7 Integrated Services
Chapter 20 Communication Providers and Links
20.1 Communications Service Providers
20.1.1 Trends in Communications
20.1.2 Data Communications
20.1.3 Communication Regulation
20.2 Current Developments In Internet
Access
20.2.1 Broadband Network Access for Residences
20.2.2 Nomadic and Untethered Internet Access
20.2.3 IP Telephony
20.2.4 Integrated
IP Networks
20.3 Communication Links
20.3.1 Message Latency on a Link
20.3.2 Impact of Message Latency on Application Performance
20.3.3 Why Broadband?
20.3.4 Mitigating Communications Bottlenecks
Data caching
Data compression
Mobile code
20.4 Open
Issues
20.4.1 Is Communications Regulation Needed?
20.4.2 Regulation of the Internet
Glossary
References
Books and book related electronic products are priced in US dollars (USD), euro (EUR), and Great Britain Pounds (GBP). USD prices apply to the Americas and Asia Pacific. EUR prices apply in Europe and the Middle East. GBP prices apply to the UK and all other countries.