`
`.
`
`. Obiect Model
`0 Active Server
`Components
`0 HS 4 Administration
`
`0 ActiveX Data Obiects
`O Transactions
`
`Murphy, Sussmun, Smith and Wood
`
`0 Index Server
`
`0 Case St d'es
`U '
`
`.
`.
`Frunus, Fedorov, Harrison, Homer,
`
`Starbucks Ex. 1037
`
`Page 1 of 81
`
`Starbucks Ex. 1037
`Page 1 of 81
`
`
`
`CONTENTS
`
`Contents
`
`Summary of
`
`An Introduction to Active Server Pages
`Chapter 1: A New Generation of Web Solutions
`Richard Harrison
`Chapter 2: Active Server Pages Fundamentals
`Richard Harrison
`Chapter 3: The Active Server Pages Request Object
`Alex Fedorov
`Chapter 4: The Active Server Pages Server Objects
`Alex Fedorov
`Chapter 5: The Active Server Pages Scripting Objects
`Alex Fedorov
`Chapter 6: Active Server Components
`Alex Fedorov
`Chapter 7: The Database Access Component
`David Sussman
`Chapter 8: Advanced Database Techniques
`David Sussman
`Chapter 9: Managing Enterprise Data
`David Sussman
`Chapter 10: Getting Into Client/Server
`Brian Francis
`Chapter 11: Creating Online Communities
`Shawn Murphy
`Chapter 12: Interacting with Internet Explorer 4
`Shawn Murphy
`Chapter 13: Introducing Transactions
`Brian Francis
`Chapter 14: Implementing ASP Security
`Richard Harrison
`Chapter 15: An Electronic Commerce Case Study
`Brian Francis / Richard Harrison
`Chapter 16: Creating Components in the Electronic Commerce Case Study
`Brian Francis /Richard Harrison
`Chapter 17: Message Queuing In the Electronic Commerce Case Study
`Brian Francis / Richard Harrison
`Chapter 18: ASP and Internet Mall
`Robert Smith
`Chapter 19: Integrating Microsoft Index Server
`Stephen Wood
`Chapter 20: A Case Study In Compatibility
`Alex Homer
`Chapter 21: A Case Study In Legacy Component Reuse
`Alex Homer
`Appendix A: The VBScript Language
`Appendix B: .lScrIpt Reference
`Appendix C: Active Server Pages Object Model
`Appendix D: Scripting Object and Server Component Methods and Properties
`Appendix E: Active Database Component Methods and Properties
`Appendix F: Scripting Library and Remote Scriptlng
`Appendix G: Creating a System Data Source Name
`Appendix H: Configuring IIS4
`Appendix I: HTTP Server Variables
`Appendix J: HTTP 1.1 Header Codes
`Appendix K: Useiul Information
`Appendix L: Support and Errata
`Index
`
`
`
`1
`13
`
`51
`
`81
`
`113
`
`147
`
`175
`
`217
`
`257
`
`295
`
`321
`
`357
`
`405
`
`435
`
`483
`
`523
`
`565
`
`601
`
`641
`
`671
`
`709
`
`747
`
`795
`813
`841
`847
`857
`877
`899
`907
`919
`923
`929
`941
`949
`
`Starbucks Ex. 1037
`
`Page 2 of 81
`
`Starbucks Ex. 1037
`Page 2 of 81
`
`
`
`Professional
`
`Active Server Pages 2.0
`
`Alex Fedorov
`
`Brian Francis
`
`Richard Harrison
`
`Alex Homer
`
`Shawn Murphy
`Robert Smith
`
`David Sussman
`
`Stephen Wood
`
`Wrox Press Ltd.
`
`Starbucks Ex. 1037
`
`Page 3 of 81
`
`Starbucks Ex. 1037
`Page 3 of 81
`
`
`
`Professional Active Server Pages 2.0
`
`© 1998 Wrox Press
`
`All rights reserved. No part of this book may be reproduced, stored in a retrieval system or transmitted in any
`form or by any means—electronic, electrostatic, mechanical, photocopying, recording or otherwise, without the
`prior written permission of the publisher, except in the Case of brief quotations embodied in critical articles or
`reviews.
`
`The author and publisher l1':i.VP IIIELtlt' every effort in Ihe preparation oi [his book to ensure the accuracy of the
`in lira-minim]. However. Izhu ini'urmnlion mnlzlinud in this book is sold without warranty, either express or
`implied. Neither Ilia author, Wrox Press 1101' its dealers or llislrihnlm's will be held liable for any damages
`mused or alIogetl to be caused. either directly or indirectly by this book.
`
`WPOX
`
`Published by Wrox Press Ltd,
`Arden House, 1102 Warwick Road, Acocks Green, Birmingham B27 6BH, UK.
`Printed in Canada
`10 11 12 13 14 TRI O3 02 01 00 99
`
`ISBN 1 - 861001 - 26 - 6
`
`Starbucks Ex. 1037
`
`Page 4 of 81
`
`Starbucks Ex. 1037
`Page 4 of 81
`
`
`
`Trademark Acknowledgements
`
`Wrox has endeavored to provide trademark information about all the companies and products mentioned in
`this book by the appropriate use of capitals. However, Wrox cannot guarantee the accuracy of this information.
`
`Credits
`
`'Ibchnical Reviewers
`Michael Corning
`John de Robeck
`Glen Eastman
`Andrew Enfield
`Richard Harrison
`
`John Kauffman
`Rick Kingslan
`Srini Krishnamurthy
`Richard Mario
`Chris Owens
`
`George Reilly
`Steven Rice
`Torn Rizzo
`Kevin Roche
`
`John Schenken
`
`Cover/ Design/ Layout
`Andrew Guillaume
`Graham Butler
`
`Authors
`Alex Fedorov
`Brian Francis
`Richard Harrison
`Alex Homer
`
`Shawn Murphy
`Robert Smith
`David Sussman
`
`Stephen Wood
`
`Development Editor
`Anthea Elston
`
`Editors
`
`Jeremy Beacock
`Daniel Maharry
`Chris Ullman
`
`Index
`Simon Gilks
`
`Marilyn Rowland
`
`Cover photo by Sean Ellisi Supplied by Getty Images
`
`
`
`Starbucks Ex. 1037
`
`Page 5 of 81
`
`Starbucks Ex. 1037
`Page 5 of 81
`
`
`
`ACTIVE ssnven PAGES
`
`PROFESSIONAL
`
`r k
`
`Customer Support
`
`If you find a mistake, please have a look at the errata page for this book on our web site first. Appendix I.
`outlines how can you can submit an errata in much greater detail, if you are unsure. The full URL for the
`errata page is:
`
`http: / /www . wrox . com/ Scripts /Errata . idc ?Code= 12 6 6
`
`If you can't find an answer there, tell us about the problem and we'll do everything we can to answer
`promptly!
`
`just send us an email to supportewrox.com.
`
`or fill in the form on our web site: http: l/www.wrox.com/Contact . stm
`
`A History Lesson: The Evolution of the Client / Server
`Model
`
`Before we begin this book, we're going to give a quick history lesson on how the present client/server
`model evolved. If you're familiar with this then please feel free to skip to Chapter 1, but if not, then we
`recommend that you read this as we reference the concepts discussed here throughout this book.
`
`Senior management have long recognized that an effective Information Technology strategy is required to
`provide productivity improvements, access to new and enhanced revenue streams, and increased customer
`satisfaction. For many years, businesses have exploited IT in the following three dimensions:
`
`Q Data Processing—these are typically the core systems that control the fundamental business
`processes in an organization, such as Accounting, Stock Control, Order Processing, Job Tracking,
`etc. Many types of technologies, from large mainframes to client/server architectures have been
`applied to these business critical systems and most of these still have a part to play in today's IT
`infrastructures.
`
`A Personal Productivity—the rapid evolution of the PC and Integrated Office suites has forever
`changed the way individual employees work with information and has often changed business
`practices and strategies. These tools have dramatically increased productivity, streamlined
`operations and made IT more cost effective.
`
`A GroupWare—the use of communications and collaboration software has enabled both
`organizations and individuals to work in partnership and teams. Such systems can scale to
`thousands of users across the enterprise enabling businesses to redefine their operations for
`further advantage and reduced costs.
`
`However, many of these benefits do not come without cost. Each of these dimensions typically has their
`own infrastructures and businesses have been faced with the complex problem of building 'informatinn
`bridges' between the different systems and applications—building systems that span all dimensions has been
`historically difficult. Furthermore, having multiple different infrastructures results in additional costs for
`software, hardware, support and training.
`
`Starbucks Ex. 1037
`
`Page 6 of 81
`
`Starbucks Ex. 1037
`Page 6 of 81
`
`
`
`INTRODUCTION
`
`
`
`i GroupWare
`
`K
`
`Data
`
`Processing
`
`
`
`ll
`
`\ Productivity
`
`['
`
`
`
`Personnel
`
`
`
`Over the years, a series of architectures have been devised in an attempt to integrate the various
`distributed environments within an organization. Forwardlooking businesses now demanded that this
`integration must:
`
`A automate the business processes to reduce costs
`
`the organization's information (with appropriate security of course]
`-A provide easy access to all
`A provide new opportunities for marketing advantage
`A remove barriers across the organization
`
`A provide flexibility enabling the business to react quickly to change
`
`We shall see that a distributed computing framework using client/server and Internet technologies provides
`the key to fulfilling these requirements.
`
`Data
`Processing
`
`X
`
`,.—_,_
`
`f
`\
`
`\
`
`Personnel
`Productivity
`
`If}
`‘1' Client/Server
`Technology
`‘I
`-r.
`
`‘_
`
`'
`
`
`
`I ..
`
`..
`
`‘I
`
`I
`
`I
`
`GrOUpWare
`
`Starbucks Ex. 1037
`
`Page 7 of 81
`
`Starbucks Ex. 1037
`Page 7 of 81
`
`
`
`ACTIVE SERVER PAGES
`
`PROFESSIONAL
`
`r h
`
`Client/Server: Moving Towards Decentralisation
`
`Client/server computing is one of the most dominant paradigms of IT and has developed as the computer
`industry moved from a centralized shared logic based system to a network of workstations and servers.
`Client/server involves providing an application architecture that enables a computerized process to be
`broken up into two or more less complex tasks with a communication mechanism for these sub-processes
`to co-operate. The key notion of breaking up the problem is to provide designated layers of functionality
`that can be written and deployed across multiple machines in an optimized manner.
`
`Typical examples of application layers are:
`
`" Presentation logic—handling how the user interacts with the application; usually implemented
`by providing an easy to use graphical user interface (GUI)
`
`‘ Business logic—handling the mechanics (or business rules) of the application
`
`A Data access logic—handling the storage and retrieval of data; important that the integrity of
`the data is maintained
`
`The development of separate layers needs careful design and an accurate definition of the distinct
`boundaries to ensure that logic within the different layers is not intertwined. Encapsulating the logic in this
`fashion ensures that future changes can be implemented with minimal impact on the other layers and
`enables both reusability and reliability
`
`Client/server is regarded as an enabling technology that can implement systems across an organization in a
`modular and flexible manner. It allows for the distribution of applications away from single machines
`located in isolated departments to an implementation across the enterprise. For example, it is now possible
`for one person in customer services to access all corporate systems—gone are the old days of annoying
`transfers between the different representatives in each department.
`
`Many companies have rewritten old applications so they remain cost effective by taking advantage of the
`benefits offered by client/server environments. The investment in client/server systems has been accelerated
`by the rapid advances in hardware technology, the appearance of powerful client/server development tools
`and the decrease in prices of implementing these smaller faster platforms.
`
`As we shall now see, there are many variations to client/server architectures. There is no greater decision,
`when implementing such a system, than which of these should be used.
`
`Two-tier client/server
`
`The first generation of client/server systems is an evolution of the file sharing applications discussed above.
`With these applications, the central file server is replaced with a specialized relational database
`management system (RDBMS). Such databases can offer high transaction rates at a fraction of the cost
`associated with mainframes. When the client (a workstation application typically using a GUI) needs to act
`upon data,
`it makes a request via the network to the database server—the database then processes the
`request and returns just the data appropriate the client's needs.
`
`When compared to the file sharing application (which returned the complete file), this client/server
`architecture dramatically reduces network traffic. In addition, today's databases provide marry features that
`enable the development of sophisticated multiruser applications—for example, allowing multiple users to
`access and update the same set of data safely.
`
`Starbucks Ex. 1037
`
`Page 8 of 81
`
`Starbucks Ex. 1037
`Page 8 of 81
`
`
`
`1'"
`
`INTRODUCTION
`
`Because the processing is split between distinct layersithe workstation and the database server—such
`architectures are referred to as being two-tier client/server.
`
`
`
`‘
`I
`I
`|
`
`CPerSO'la'
`ompu erg
`
`
`
`_
`J J —1
`fit
`i
`presentation logic l
`business logic
`I
`
`_
`
`i
`
`‘
`
`Database Server
`
`
`
`
`
`
`
`
`{;*'
`
`Hiatus
`
`client - Centric Computing
`The most simple and common implementation of two-
`tier systems is to place both the presentation and
`business logic on the clientAmaking the architecture fat
`client/thin server. Database requests from the clients are
`typically implemented using the database query and
`programming language SQL. The database request is
`carried to the database server using a remote database
`transport protocol—however the programmer can be
`insulated from such complexities by means of database
`
`Connectivity (ODBC).
`
`middleware such as Microsoft's Open Database
`
`Such systems can be implemented quickly (and thus cheaply) using rapid application development (RAD)
`techniques and are great for small workgroup type environments. Many toolset vendors have implemented
`lowecost development products for creating such applications; examples include Microsoft‘s Visual Basic,
`Sybase's PowerBuilder and Borland‘s Delphi.
`
`However, tightly binding the business logic into the fat client can cause some severe problems, including
`the following:
`
`A the architecture imposes substantial processing on the client; this means workstations with
`powerful CPUs and large amounts of disk and memory may be required
`
`& the database requests can generate large result sets; with a large user base this can cause
`severe network degradation
`
`A each workstation session requires a separate database connection; this can drain resources on
`the database server—for example, Microsoft SQL Server requires 37K of memory for each user
`connection (and this is much lower than many other RDBMSS)
`
`A deploying the business rules on the client can lead to high costs of deployment and support;
`if the logic changes, the effort in updating software on numerous workstations can be
`excessive
`
`In practice, it is found that the performance of such two-tier architectures rapidly deteriorates as networking
`bottlenecks occur when an optimum number of users is exceeded. As a result, it does not provide the
`flexibility 0r scalability for largeeseale applications deployed across the enterprise or Internet.
`
`Starbucks Ex. 1037
`
`Page 9 of 81
`
`Starbucks Ex. 1037
`Page 9 of 81
`
`
`
`ACTIVE SERVER PAGES
`
`PROFESSIONAL
`
`r h
`
`Database Server—Centric Computing
`
`An alternative implementation is the thin client/fat server approach in which the business logic is pushed
`down to the database server using techniques such as stored procedures. triggers and constraints.
`
`A stored procedure is business logic that is invoked by sending a request to the database server that
`includes the stored procedure name and any parameter values. As with the previous client-centric case, this
`request is transmitted using remote database transport protocols and can be implemented simply using
`database middleware (eg. ODBC).
`
`
`
`‘
`
`|
`
`Personal
`
`Computers
`
`‘
`
`'J
`
`i‘
`
`,_ .L
`’4‘-77‘s
`'._
`| .—
`i .prescntation logic
`
`3
`Vii-Si
`
`
`I
`‘1‘
`
`
`Database Server
`
`'
`
`
`
`'
`
`r
`
`-
`
`_
`
`seams
`.business logic
`Odata access logic
`
`
`
`
`A constraint is a restriction placed on a data entered into a
`database. A trigger is a stored procedure that is invoked
`automatically on the Add/Update/Delete of items in a table.
`Both can he used to validate entered data and ensure
`referential integrity or consistency across multiple related
`tables in the database.
`
`Stored procedures enable business rules to be defined and deployed across the enterprise. However, two-
`tier database applications can involve high development and maintenance costs since two toolsets are
`requiredione for the client and another for the RDBMS stored procedure programming language. The
`proprietary nature of the RDBMS languages usually mean database vendor lock-in and reduces the
`possibilities for flexibility and portability—they also require specialized skills which can impact on costs.
`
`Furthermore, as with the client-centric case, the need for the RDBMS to maintain a separate database
`session for each client workstation severely impacts central server resources. This makes the two-tier
`database server unsuitable for sealing across the enterprise or Internet. Large and complex two-tier
`solutions will nearly always result in failure and leave a lot. of egg on the IT managers face!
`
`Two-tier Transaction Processing
`
`A transaction is a set of independent actions that are grouped together to form a ‘single item of work'. The
`use of transactions with databases is important to ensure the following, which are often known by their
`acronym 'ACTD':
`
`Atomicity—all updates to a database under a transaction must be either committed or get
`rolled back to their previous state
`
`Consistency—that the database is updated in the correct manner
`
`IsolaHon—uncommitted transactional results are not seen by other pending transactions
`
`Durability—once a transaction is committed, it will persist even if failures occur
`
`A 9
`
`??
`
`Starbucks Ex. 1037
`
`Page 10 of 81
`
`Starbucks Ex. 1037
`Page 10 of 81
`
`
`
`
`
`INTRODUCTION
`
`Using transactions with twoetier client / server architectures is simple. Commands to be processed within a
`Lmnsaction must be bound by calls to iunctions with the RDBMsitypically these are called 'Begin
`Tiansaction' and ‘Conirnit Transaction'. If a failure is detected, the database can be reverted to its original
`state by another call—typically 'RollBack Transaction' or 'Abort Transaction'r If a system crash occurs,
`outstanding transactions can be identified and the integrity of the database restored, when the system
`restarts.
`
`Multi-tier client/server
`
`From the problems we have encountered when discussng two-tier client server architectures, it should be
`no surprise to learn that this approach is now generally accepted as being a poor solution other than for
`small workgroup applications.
`
`Drawing on the lessons learnt from the twortier systcrns, an increase in application performance and a
`notable reduction in network traffic can be been achieved by implementing an alternative thrcceticr client/
`server architecture.
`
`Three-tier Computing
`
`The improved architecture involves inserting an additional middle tier between a thin client and a thin
`server to create three tiers.
`
` I
`
`Personal
`Computers
`
`j
`
`l
`
`,__k
`'1.
`~—‘_'\\
`l...
`O presentation logic
`l
`
`___i_f
`
`.
`
`
`
`
`
`: Ohusiness logic
`
`l
`
`‘7
`
`-
`
`I .data access logic
`
`Application Server
`
`Database Server
`
`RDBMS
`
`fl Stored Procedures
`
`The client. communicates with the middle tier using standard communications protocols such as TCP/IP.
`The middle tier interfaces with the backend RDBMS using standard database protocols or by means of
`database middleware (thus making the solution independent of the RDBMS). The middle tier provides
`basic message switching and contains the business rules of the application; it is responsible for:
`
`K acting upon client requests, applying business logic and invoking database requests
`
`handling the database responses, applying further business logic and generating a client
`response
`
`Starbucks Ex. 1037
`
`Page 11 of 81
`
`Starbucks Ex. 1037
`Page 11 of 81
`
`
`
`PROFESSIONAL
`
`ACTIVE SERVER PAGES
`
`Furthermore, this approach does not require a separate database connection for each user; instead many
`users sessions can be funneled into just a few database connections and make considerable savings to the
`precious resources on the database server. This means that 1000 users simultaneously accessing an SQL
`Server system would not require a 37M (1000 x 37K) overhead of memory.
`
`By creating three tiers, we have now completely partitioned the presentation logic, the business logic and
`the data access logic. One advantage is that any of the tiers can be enhanced or replaced without affecting
`the other tiers. For example, we can easily enhance a system to support new delivery channels. Let's
`consider a customers services based upon a three tier client/server solution. Now suppose that business
`reasons dictate that an interactive voice service is required so that a customer can access the system
`directly from their own telephone using speech recognition and text to speech play-back. Whereas a two-
`tier solution would need major surgery, the three-tier solution would only require the development of a
`new user interface (Le. the voice handling) and could use the existing layers that contained the business
`logic and data access logic.
`
`
`_
`
`‘
`
`.j
`
`.
`
`@- .
`JPubllch l
`Telephone
`‘ " I ‘ Network
`
`~4_
`_
`I
`.._.-_ 45*
`V0|ce
`Response l Opresentation logic l
`fl_' 7
`Unit
`|.
`l
`
`it
`Internet
`‘4.
`
`‘7
`
`Firewall
`
`l
`
`Personal
`Computers
`
`’ 4k
`
`_
`
`:
`
`|
`
`I
`
`.
`
`-—l I
`'Opresentation logic I
`- —_.
`I
`
`‘
`
`
`
`.
`.
`Application Server
`
`
`
`I .business logic
`
`
`
`i
`
`
`
`Database Server
`
`
`
`'
`_
`.data access logic
`I
`‘
`
`
`
`
`
`4.
`_
`
`
`
`
`
`it is possible to provide both the business logic and database on the same platformr and in many cases this
`can provide an optimum solution. However, for it to be recognized as three-tier, distinct boundaries or
`interfaces must exist between the two layers to ensure the advantages of the architecture are achieved.
`
`While two-tier systems still have their place for simple applications, three—tier client/server solutions are
`nowadays recognized as being the ideal choice for the enterprise since they are more maintainable and
`supportable, and are flexible to evolve to everichanging business requirements.
`
`10
`
`Starbucks Ex. 1037
`
`Page 12 of 81
`
`Starbucks Ex. 1037
`Page 12 of 81
`
`
`
`.
`
`_
`
`INTRODUCTION
`
`Multi-tier Computing
`A further extension to three»tier solutions is the multietier or, as it is sometimes called, n-tier. These
`solutions are the most flexible and scaleable and build on all the advantages of the threerticr architecture.
`
`2% _
`_
`
`.
`
`l
`
`I.r—b
`..
`3,
`Public
`Telephone‘)
`.
`"' NEW/("k
`‘
`"wl
`®~
`
`,
`.
`,
`-—— —I— k
`Vulee
`Response I .presentation logic I
`Un“
`_
`
`Iii
`“Jill
`Internet
`
`I
`
`I
`
`'4
`
`Personal
`Computers
`
`J
`Firewall
`
`'_,
`
`l
`I "
`'I
`
`
`4'1.
`4-
`'
`.-—
`
`I
`I Opresentation- logic I
`'-
`I n;
`I
`I
`
`
`
`
`
`i
`
`
`
`lll|
`-' _,_ _
`iii—7.! _— _
`
`I r
`I.
`_
`
`".x‘
`—_~
`_.‘
`
`Application Server
`
`I
`'
`.
`
`I ml
`
`a —i_ _ __
`I H44?!“ _ —\_
`. I
`. —‘
`I
`
`Database Server
`
`
`,.—..
`roams
`I I .data access logic
`I
`I
`-
`
`
`"
`
`.-__srnrplerauaduras
`
`7
`
`_ _
`
`_.
`
`
`
`l .business logic
`
`_
`
`
`~,
`
`In a multi—tier client/server solution, the business logic is partitioned and distributed over several machines.
`As requirements change during a systems lifetime, this partitioning and deployment can be reviewed and
`amended with minimal impact. Furthermore, additional tiers are included to support multiple databases and
`other services such as message switches, legacy systems, data warehouses, communication channels and so
`on. By enabling the distribution of the workload over many CPUs (using either symmetric multiprocessing
`or massively parallel clustered technology), it is obvious how scalability—with the aim of ‘no limilslican be
`achieved. Sometimes the distribution of the logic over separate geographical regions can be considered to
`achieve optimum performance; for example, processes can be located at sites where they can limit the
`amount of slow network communications performed.
`
`Drawbacks of Multi-Tier Client/Server — Where Next?
`
`Unfortunately, three-tier and multi-tier client/server solutions are not trivial to implement. There are more
`tasks to undertake and complex issues to address than when building twoeticr systems. A strong
`understanding of the multi-tier client/server development techniques and an appreciation of the potential
`pitfalls are vital. However with the innovation of the Internet, interest is being diverted away from client/
`server architectures. Demand for dynamic content on the web has transformed web computing into a new
`implementation of multi-tier computing, which offers solutions to many of the traditional problems of
`client/server. With HTML it's possible to develop an application in one language to be used on any
`operating system. However HTML is not without its own drawbacks, such as the static nature of the pages
`it creates. This is where HS 4.0 and Active Server Pages come in...
`
`11
`
`Starbucks Ex. 1037
`
`Page 13 of 81
`
`Starbucks Ex. 1037
`Page 13 of 81
`
`
`
`r
`
`A New Generation of
`
`Web Solutions
`
`CHAPTER
`
`
`
`Without doubt, the World Wide Web is currently the major excitement in business, but the challenges that
`abound are also probably giving a lot of sleepless nights to many senior company personnel. The rapid
`changes in information processing and networking technology are compressing time—the time that is
`desperately needed for the business to adapt to the many opportunities offered by the new generation of
`Internet solutions.
`
`While Microsoft joined the Internet game relatively late, they rapidly gained momentum and have since
`released an incredible range of innovative Internet products, all embracing various industry standards.
`These products have provided users with rich Internet experiences and organizations with the mechanisms
`to develop business critical Internet solutions. Internet Information Server version 4.0 (1184) is the latest
`release of Microsoft's leading commercial web server and is an essential component in their Internet
`strategy.
`
`Fundamental to Web development with 1154 is Active Server Pages (ASP) version 2 and we shall see that
`this is a compelling technology for quickly building dynamic pages Ion the fly' by integrating the Web
`server with other software components, databases and legacy systems. In this book we shall study ASP in
`depth and see that not only is it extremely powerful, but also far simpler to implement than the traditional
`(and soon to become obsolete) methods used for extending web servers.
`
`To begin, we'll discuss Microsoft's web solution that enables the next generation of business systems to
`exploit the convergence of computers and networking for business advantage:
`
`?????
`
`Microsoft's Internet strategy and development toolkit
`
`Developing solutions using software components and Microsoft's AetiveX technology for
`software component cooperation
`
`The powerful functionality available in Microsoft BackOffice which can be exploited in Web
`Solutions
`
`The architecture of HS 4
`
`\Nhere to get hold of HS 4, PWS and ASP and how to install them
`
`Internet Technologies: Centralized Computing With a
`
`Twist
`
`just as we were beginning to get used to the issues of developing multi-tier architectures, the new paradigm
`of Internet Technologies arrived to direct interest from the traditional client/server architectures.
`
`Starbucks Ex. 1037
`
`Page 14 of 81
`
`Starbucks Ex. 1037
`Page 14 of 81
`
`
`
`m
`
`PROFESSIONAL
`
`ACTIVE SERVER PAGES
`
`The recent rapid expansion of the Internet has led many people to think of the Internet as a new
`invention. In fact, it has actually been around a number of years after starting off as a US Department of
`Defense project in the late 1960's. The DoD was concerned that their communications infrastructure could
`be wiped out by a single nuclear strike on their central systems. They decided to research into the
`development of a decentralized computer network such that each node is of equal importance and the
`resilience of the network is not affected by an unexpected malfunction or deletion of a node. Should a
`node be taken out of service, then the network automatically adjusts to use alternative routes to ensure that
`the information is delivered to its intended destination.
`
`This network later opened up to research/education establishments and commercial organizations, and
`became known as the Internet, i.e. a collection of interconnected networks. It has adopted a suite of
`communications protocols called TCP/IP that enables a number of services to simultaneously operate on
`the network—common examples include File Transfer, Bulletin Boards and Electronic Mail. Since these
`early days, the growth of the Internet has been exponential with the increase in number of computer
`systems on the network. While no one is sure of the user base, recent estimates indicate that there are
`probably around 60 million Internet users worldwide.
`
`The World Wide Web
`
`Many people confuse the terms Internet and WWW or consider the two as equivalent but7 in fact, the two
`are very distinct. It is important to recognize that the Web is not a network but an application that
`operates over networks using TCP/IP protocols. The Web architecture is based on a client/server model
`and uses a Web Browser (client) to retrieve documents from a Web Server which may be located on your
`own local network or half way around the world on the Internet.
`
`Today's Web Browsers support the display of multimedia within the retrieved documents—including text,
`graphics, sound, video and hyperlinks in which items on the document are linked to other Web resources.
`By clicking 011 a hyperlink, the Web Browser automatically navigates to the target document. Furthermore—
`as we shall see soon—executable client logic can also be embedded in the Web page by means of scripting
`lallgllflgES,JflVEt applets and ActiveX Controls.
`
`Web Directions
`
`We shall now see how client/server underpins the evolving Web architectures.
`
`First Generation Web Applications
`
`The first generation of web browsers were only capable of handling text and simple multimedia such as
`images and sound. Information from a user could be captured by means of simple HTML forms and
`transmitted to the Web Server.
`
`The functionality of Web servers could be extended by means of the Common Gateway Interface (CGI)
`which enabled the contents of a page to be generated dynamically by a program typically written in the C
`programming language or a scripting language such as Perl. This enabled the page contents to be
`personalized for the user and constructed from information stored in backend databases and applications.
`Unfortunately CGI programs are recognized as being a poor solutionithis is because each CGI HTTP
`request will cause a new process to be spawned, and after the request has been handled, the process is
`killed. In a heavily hit site, the repetition of process creations and database opening imposes an excessive
`overhead on system resources.
`
`14
`
`Starbucks Ex. 1037
`
`Page 15 of 81
`
`Starbucks Ex. 1037
`Page 15 of 81
`
`
`
`
`
`CHAPTER 1 A NEW GENERATION OF WEB SOLUTIONS
`
`I
`
`
`
`Web
`
`t:— l
`W
`
`Internet
`
`_ l I.
`- —— ,_I Browsers
`
`.presentation logic I
`.
`
`a
`
`.- -’
`
`'_
`
`_
`J
`
`
`
`'1.—
`Intranet
`' 4“)
`.
`.
`.presentatlon logic
`
`l
`I
`
`l
`{r
`‘
`
`
`
`.:Ri§BMS
`
`
`
`.data access logic
`
`
`
`
`'
`
`.
`
`
`
`__
`
`
`CGI
`
`
`
`HTML —_—..
`I
`"f‘_ ‘3
`_ web
`Opresentatlon logic IL
`=
`
`=
`
`1-
`
`h
`
`\
`‘
`‘
`
`
`
`The first serious use of Web technology within business was for the implementation of intranets. Whereas
`the lnternet is global and publicly open to all, an intranet is closed and has strict user access controls
`enforced or is hidden behind a firewall, Intranets take full advantage of the open lnternet standards and
`the familiar Web browser software to provide employees, close partners and suppliers with access to
`corporate information and processes.
`
`Because an intranet provides applications that are serverebased, the corporate IT department does not have
`to deploy client’side software or configure user's machines (with the exception of the operating system and
`Web browser). With an intranet, users can navigate to an internal Web site and have seamless access to the
`application without any setup or configuration necessary. If any application is changed, perhaps due to a
`bug fix or enhancement, the IT department can just make updates on the server, instantly upgrading all
`desktops with the new functionality. This dynamic application distribution can produce considerable savings
`to organizations which have many hundreds of desktops distributed throughout the enterprise.
`
`Organisations are using intranets to make it easier for their staff and partners to collaborate and locate/
`process infbrmation. The web browser provides a consistent operational approach and view of all company
`information irrespective of its format or the type of data source. To most companies, information is key
`and many have huge amounts of investment in existing data systems and electronic documents—
`meehanisms enabling the reuse of such existing information can have considerable impact on business
`performance.
`
`15
`
`Starbucks Ex. 1037
`
`Page 16 of 81
`
`Starbucks Ex. 1037
`Page 16 of 81
`
`
`
`I
`
`PROFESSIONAL
`
`ACTIVE SERVER PAGES
`
`
`
`" Web
`Browser
`
`
`
`Y
`Intranet
`Seamless browsing and
`consistent front-end to current infrastructure
`
`
`
`
`
`
`Database
`
`
`Systems