throbber
H < z 2 aa u E O H I
`
`.
`
`. 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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket