rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9780321154224

Developing Distributed and E-Commerce Applications + CD

by
  • ISBN13:

    9780321154224

  • ISBN10:

    0321154223

  • Edition: 2nd
  • Format: Paperback w/CD
  • Copyright: 2003-01-01
  • Publisher: Addison Wesley
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $54.20

Summary

The growth of interest in distributed systems which address the business needs of companies, and which use network technology primarily the technology employed in the internet - has been dramatic. This book describes the development of the new technologies that have emerged or have matured over recent years, such as web servers, CORBA, HTML, XML and Java. It looks in particular at more challenging applications where major problems in performance and reliability need to be addressed. Using a bottom-up approach, the book discusses client/servers and distributed development paradigms before moving on to more specific technologies that are examples of these concepts. The final part of the book covers advanced topics, such as internet security, concurrency, agents, and ubiquitous/mobile computing.

Author Biography

Darrel Ince is Professor of Computing at the Open University.

Table of Contents

Preface xix
Acknowledgements xxi
1 An Introduction to E-commerce and Distributed Applications
1(36)
1 Introduction
2(4)
1.1 What this book is about
2(1)
1.2 The audience for this book
3(1)
1.3 The features of the book
3(1)
1.4 The technology used in the book
4(1)
1.5 Commerce and the Internet
4(2)
2 E-commerce applications
6(9)
2.1 An example -supply chain management
6(2)
2.2 E-tailing
8(2)
2.3 Procurement
10(1)
2.4 Auction sites
11(1)
2.5 Other commercial Web sites
11(3)
2.6 Search engines
14(1)
3 The facilities of the Internet
15(4)
3.1 The World Wide Web
15(1)
3.2 FTP
16(1)
3.3 E-mail
17(1)
3.4 News groups
17(1)
3.5 Mailing lists
18(1)
4 Issues and problems in e-commerce development
19(8)
4.1 Legacy technology
19(3)
4.2 Security and privacy
22(2)
4.3 Programming and abstraction
24(1)
4.4 The speed of development
25(1)
4.5 Structure and data
25(1)
4.6 Problems with transactions
26(1)
4.7 Design
26(1)
5 A distributed system
27(3)
5.1 The application
27(1)
5.2 The architecture
28(1)
5.3 The Sydney Olympic Games system
29(1)
6 Internet business models
30(6)
6.1 What is a business model?
30(1)
6.2 Business models
31(5)
7 Further reading
36(1)
References
36(1)
2 The Internet and TCP/IP
37(18)
1 Introduction
38(1)
2 Open systems
38(1)
3 Network concepts
39(11)
3.1 Network topologies
39(2)
3.2 Layered models
41(1)
3.3 The Internet
42(3)
3.4 Internet addresses
45(2)
3.5 Domain names and naming
47(2)
3.6 Clients and servers
49(1)
3.7 Ports and sockets
49(1)
4 Network programming in Java
50(4)
4.1 The socket class
51(1)
4.2 The Server Socket class
52(2)
5 Summary
54(1)
6 Further reading
54(1)
References
54(1)
3 Clients and Servers
55(24)
1 Introduction
56(1)
2 Servers
56(5)
2.1 Types of server
56(3)
2.2 Tiered architectures
59(2)
3 Middleware
61(2)
3.1 Message-oriented middleware
62(1)
4 Protocols
63(4)
4.1 A simple application protocol
64(1)
4.2 The POPS protocol
65(1)
4.3 The Secure Sockets Layer
66(1)
4.4 Stacks and hierarchy
67(1)
5 Internal and external services
67(4)
5.1 Introduction
67(1)
5.2 File services
67(2)
5.3 Naming services
69(1)
5.4 Directory services
69(1)
5.5 Timing services
69(1)
5.6 Replication services
70(1)
5.7 Transaction services
70(1)
5.8 Concurrency control services
70(1)
5.9 Security services
71(1)
5.10 External services
71(1)
6 Enterprise frameworks
71(6)
6.1 Introduction
71(1)
6.2 Features
72(1)
6.3 The J2EE framework
73(3)
6.4 The Net framework
76(1)
7 Why client-server?
77(1)
8 Summary
77(1)
9 Further reading
78(1)
References
78(1)
4 Distributed Paradigms
79(22)
1 Introduction
80(1)
2 Message passing
80(4)
2.1 Protocols
80(2)
2.2 Fixed and adaptive protocols
82(1)
2.3 Synchronous and asynchronous message passing
83(1)
2.4 The message passing idea
83(1)
3 Distributed objects technology
84(2)
4 Event-based bus architectures
86(6)
4.1 Introduction
86(1)
4.2 Architectures
87(2)
4.3 A commercial implementation
89(3)
5 Remote procedure call
92(2)
5.1 Introduction
92(1)
5.2 Features of RPC
92(1)
5.3 RPC systems
93(1)
6 Tupte architecture
94(5)
6.1 Introduction
94(2)
6.2 An example
96(3)
7 Further reading
99(1)
References
100(1)
5 Database Servers
101(27)
1 Introduction
102(1)
2 Relational databases
102(1)
3 SQL
103(3)
4 Database servers
106(4)
4.1 Functions
106(1)
4.2 Stored procedures
107(1)
4.3 Referential integrity
108(1)
4.4 Relational middleware
109(1)
5 Distributed databases
110(3)
5.1 Introduction
110(1)
5.2 Problems with distributed data
111(1)
5.3 Types of distribution
112(1)
6 Programming databases
113(11)
6.1 The basic classes
113(1)
6.2 Processing steps
114(5)
6.3 Some support classes
119(1)
6.4 Prepared statements
120(1)
6.5 Callable statements
121(1)
6.6 Metadata
122(2)
7 Object to database mapping
124(1)
8 The anatomy of a database server
125(2)
8.1 Setting up the server
125(1)
8.2 Monitoring the server
126(1)
8.3 Programming
126(1)
9 Summary
127(1)
10 Further reading
127(1)
References
127(1)
6 Web Servers and the World Wide Web
128(52)
1 Introduction
129(1)
2 Browsers and HTML
129(18)
2.1 Markup languages
129(2)
2.2 An example
131(1)
2.3 Components of HTML
132(1)
2.4 Anchors and links
133(4)
2.5 Forms
137(3)
2.6 Tables
140(2)
2.7 Cascading Style Sheets
142(2)
2.8 Web site design
144(3)
2.9 The evolution of the Web
147(1)
3 How Web servers work
147(6)
3.1 HTTP
148(2)
3.2 Status codes
150(1)
3.3 The Common Gateway Interface
151(1)
3.4 Logging
152(1)
4 Administering a Web server
153(1)
5 Client-side Web programming
154(3)
5.1 Applets
154(1)
5.2 Applets and security
155(1)
5.3 Developing applets
155(2)
5.4 The differences between applets and applications
157(1)
6 JavaScript
157(17)
6.1 Introduction
157(3)
6.2 Operators
160(1)
6.3 Control structures
160(1)
6.4 Arrays
161(1)
6.5 Some larger JavaScript programs
162(2)
6.6 JavaScript objects
164(2)
6.7 Functions
166(1)
6.8 Access to Web documents
167(7)
7 Accessing Web sites
174(1)
8 The Apache Web server
175(2)
9 An example of a rich type of web site
177(1)
10 Further reading
178(1)
References
179(1)
7 Programming Web Servers
180(30)
1 Introduction
181(1)
2 Servlets
182(11)
2.1 Servlet mechanisms
183(2)
2.2 The servlet lifecycle
185(5)
2.3 Persistence at the client
190(3)
3 Java Server Pages
193(5)
3.1 Introduction
193(1)
3.2 A forms processing program
194(2)
3.3 A page counter
196(1)
3.4 Using control structures
197(1)
4 Perl
198(3)
4.1 Data types
198(1)
4.2 Control constructs
199(1)
4.3 String processing
199(1)
4.4 Peri and Web server programming
200(1)
5 Web services
201(3)
5.1 Introduction
201(1)
5.2 Web service architecture
202(1)
5.3 The role of SOAP
203(1)
6 An example of a Web service
204(5)
6.1 A stock exchange service
205(1)
6.2 The presentation layer
205(1)
6.3 The business object
206(2)
6.4 The server component
208(1)
7 Further reading
209(1)
References
209(1)
8 XML
210(47)
1 Introduction
211(2)
2 What is XML?
213(6)
2.1 The history of XML
213(2)
2.2 An example of an XML-defined language
215(4)
3 Defining XML-based languages
219(3)
4 Processing XML-based documents
222(5)
4.1 Introduction
222(1)
4.2 An example of a parser
222(5)
5 Approaches to XML processing
227(24)
5.1 SAX
227(7)
5.2 DOM
234(6)
5.3 XSL
240(9)
5.4 Formatting objects
249(1)
5.5 Web publishing systems
250(1)
6 XML in action
251(4)
6.1 Scalable vector graphics
251(1)
6.2 The Channel Definition Format
252(1)
6.3 WebXML
253(2)
7 XML in a retail environment
255(1)
8 Further reading
255(1)
References
256(1)
9 RMI and Distributed Objects
257(16)
1 Introduction
258(1)
2 Distributed objects
258(1)
3 Object-oriented middleware
259(1)
4 Developing object-oriented remote systems
260(2)
5 The RMI architecture
262(2)
5.1 The three-layered architecture
262(1)
5.2 Garbage collection
263(1)
5.3 Security
263(1)
6 Developing remote object programs
264(5)
6.1 Developing the server code
264(2)
6.2 Developing the client code
266(2)
6.3 The RMI registry
268(1)
7 Two examples
269(2)
7.1 Legacy software
269(1)
7.2 Agents
270(1)
8 Summary
271(1)
9 Further reading
272(1)
References
272(1)
10 CO RBA 273(22)
1 Introduction
274(2)
2 CORBA services
276(1)
3 The Interface Definition Language
277(4)
3.1 Interfaces and modules
277(1)
3.2 Attributes
278(1)
3.3 The struct facility
279(1)
3.4 The sequence facility
280(1)
3.5 The array facility
280(1)
3.6 The enum facility
280(1)
3.7 Using the facilities
281(1)
4 Developing CORBA/lava code
281(11)
4.1 An application architecture
281(1)
4.2 Files for remote code
282(1)
4.3 Developing a CORBA application
283(8)
4.4 The code
291(1)
5 An application architecture
292(1)
6 Evaluating distributed object schemes
292(1)
7 Further reading
293(1)
References
293(2)
11 Internet Security 295(40)
1 Introduction
296(1)
2 Reasons for insecurity
296(2)
3 Forms of attack
298(10)
3.1 Non-technological attacks
299(1)
3.2 Destructive devices
300(1)
3.3 Viruses
301(2)
3.4 Scanners
303(1)
3.5 Password crackers
304(1)
3.6 Sniffers
304(1)
3.7 Trojan horses
305(1)
3.8 Spoofing
305(2)
3.9 Technology-based attacks
307(1)
4 Cryptography and its products
308(7)
4.1 The basis of cryptography
309(1)
4.2 Symmetric key cryptography
310(1)
4.3 Attacks on symmetric key schemes
311(1)
4.4 Public key cryptography
312(3)
5 Technologies based on encryption
315(5)
5.1 Message digest functions
315(1)
5.2 Digital signatures
316(1)
5.3 Digital certificates
317(1)
5.4 Cryptographic systems
318(2)
5.5 Key exchange
320(1)
6 Techniques and software tools
320(4)
6.1 Logging tools
321(1)
6.2 Virus scanners
321(1)
6.3 Network topology techniques
321(2)
6.4 Security checking software
323(1)
7 SSL: a case study
324(3)
7.1 Functionality
324(1)
7.2 Supported cipher suites
324(1)
7.3 The transfer process
325(1)
7.4 Server authentication
326(1)
7.5 Client authentication
327(1)
8 Security facilities in Java
327(2)
8.1 The Java security model
328(1)
8.2 The Java Cryptographic Extension
328(1)
9 Payment systems
329(2)
9.1 Customer to business payments
329(2)
9.2 Business to business payments
331(1)
10 Web sites and security
331(2)
11 Further reading
333(1)
References
334(1)
12 Concurrency 335(20)
1 Introduction
336(1)
2 Concurrency in Java
336(4)
2.1 Implementing threads in Java
337(3)
3 Threads and shared objects
340(9)
3.1 Locking
340(2)
3.2 Using wait and notify
342(4)
3.3 A threaded server
346(3)
4 Client and server locks
349(4)
4.1 Locking
349(2)
4.2 Deadlock
351(2)
5 Locking and database servers
353(1)
6 Further reading
354(1)
References
354(1)
13 Transactions 355(19)
1 Introduction
356(1)
1.1 Transactions
356(1)
1.2 Serial equivalence
357(1)
2 Distributed transactions
357(6)
2.1 Atomic commit protocols
358(1)
2.2 Two-phase commit for nested transactions
359(1)
2.3 Concurrency control
360(3)
3 TP monitors
363(1)
4 A simple example of a TP monitor
364(9)
4.1 Introduction
364(2)
4.2 Entity and session beans
366(2)
4.3 Bean classes
368(1)
4.4 Developing bean code
368(5)
5 Further reading
373(1)
References
373(1)
14 Designing Distributed Systems 374(16)
1 Introduction
375(1)
2 Performance prediction
376(2)
2.1 Using vendor measurements
376(1)
2.2 Rules of thumb
377(1)
2.3 Simulation modelling
377(1)
2.4 Analytical modelling
377(1)
2.5 Projecting from measurements
378(1)
3 Design principles
378(9)
3.1 The locality principle
379(4)
3.2 The principle of sharing
383(2)
3.3 The parallelism principle
385(2)
4 Reliability
387(1)
5 Further reading
388(1)
References
389(1)
15 Bots, Agents and Spiders 390(17)
1 Introduction
391(1)
1.1 Terminology
391(1)
1.2 Ataxonomy
392(1)
2 The roots of agents
392(2)
2.1 Search engines and spiders
392(1)
2.2 Exclusion technology
393(1)
3 Types of agent
394(4)
3.1 Chatterbots
394(1)
3.2 Commerce agents
394(1)
3.3 Data management agents
395(1)
3.4 Government agents
395(1)
3.5 Newsagents
395(1)
3.6 Newsgroup agents
396(1)
3.7 Shopping agents
396(1)
3.8 Software agents
396(1)
3.9 Stock agents
397(1)
3.10 Update agents
397(1)
3.11 Web developer agents
397(1)
4 Development issues
398(6)
4.1 Base software
398(3)
4.2 Principles
401(1)
4.3 Agent development
401(3)
5 Agent architectures
404(2)
5.1 Non-mobile agents
404(1)
5.2 Mobile agents
405(1)
6 Further reading
406(1)
References
406(1)
16 Ubiquitous and Mobile Computing 407(15)
1 Introduction
408(1)
2 Problems with mobile computing
408(2)
3 Applications
410(4)
3.1 Active badges
410(2)
3.2 Hand-held devices for nurses
412(1)
3.3 Keeping track of cows
412(1)
3.4 Tracking stolen cars in the Netherlands
412(1)
3.5 The mobile computer engineer
413(1)
3.6 Relaxing with ClubNation
413(1)
3.7 Multi-messaging services
413(1)
4 System aspects
414(4)
4.1 Mobile middleware
414(1)
4.2 Special protocols
415(2)
4.3 Markup languages
417(1)
5 Integrating novel devices
418(3)
6 Further reading
421(1)
References
421(1)
17 Case Study 422(19)
1 Introduction
423(1)
2 Links
424(1)
3 The business model
425(1)
4 The base software
425(3)
5 The Web site
428(1)
5.1 The structure of the Web site
428(1)
6 Functions of the Web site
429(2)
6.1 Link checking site registration
429(1)
6.2 Link checking database maintenance
429(1)
6.3 Link checking
430(1)
6.4 Link software sales
431(1)
7 The software architecture
431(6)
7.1 The link checking service architecture
431(3)
7.2 The link maintenance architecture
434(1)
7.3 The link checking software
434(1)
7.4 The software sales architecture
435(2)
8 Promoting the site
437(2)
8.1 Search engine notification
437(1)
8.2 Best of the Web listings
438(1)
8.3 Links from other sites
438(1)
8.4 Using specialised indexes
438(1)
8.5 Using newsgroups
439(1)
8.6 Using the print media
439(1)
9 Summary
439(1)
10 Further reading
439(1)
References
440(1)
Glossary 441(10)
Index 451

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program