throbber
anh{e
`oaaeh
`lee
`
`Murphy, Sussman, Smith and Wood
`
`® Object Model
`@ Active Server
`Components
`@ IIS 4 Administration
`
`@ ActiveX Data Objects
`® Transactions
`
`®@ Index Server
`
`@ Case Studies
`
`Tat) ELLle
`
`Starbucks Ex. 1037
`Page 1 of 81
`
`t-=W
`|o
`
`w
`oe
`fee
`Le
`
`©C
`
`s
`ie
`
`Starbucks Ex. 1037
`Page 1 of 81
`
`

`

`CONTENTS
`
`Contents
`
`Summaryof
`
`AnIntroduction to Active Server Pages
`Chapter 1: A New Generatlon of Web Solutions
`Richard Harrison
`Chapter 2: Active Server Pages Fundamentals
`Richard Harrison
`Chapter 3: The Active Server Pages Request Object
`Alex Fedorov
`Chapter4: The Active Server Pages Server Objects
`Alex Fedorov
`Chapter5: The Active Server Pages Scripting Objects
`Alex Fedorov
`Chapter6: 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
`Chapter10: 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 Iarrison
`Chapter 16: Creating Componentsin 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 Mail
`Robert Smith
`Chapter19: 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: JScript Reference
`Appendix C: Active Server Pages Object Model
`Appendix D: Seripting Object and Server Component Methods and Properties
`Appendlx E: Active Database Component Methods and Properties
`Appendix F: Scripting Library and Remote Scripting
`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: Useful 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, withoul the
`prior written permissionof the publisher, exceptin the case of brief quotations embodiedin critical articles or
`reviews.
`
`The authorand publisher have madeevery effort in the preparation ofthis book to ensure the accuracyofthe
`information. However, the information contained in this book is sold without warranty, either express or
`implied. Neither the author, Wrox Press norits dealers or distributors will be held able for any damages
`caused or alleged to be causedeitherdirectly or indirectly by this book.
`
`wrox
`
`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 03 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
`
`Wroxhas endeavored to provide trademark information aboutall the companies and products mentioned in
`this book by the appropriate use of capitals. However, Wrox cannot guarantee the accuracy of this information.
`
`Credits
`
`Technical 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
`Tom 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
`
`DevelopmentEditor
`Anthea Elston
`
`Editors
`Jeremy Beacock
`Daniel Maharry
`Chris Ullman
`
`Index
`Simon Gilks
`Marilyn Rowland
`
`Cover photo by Sean Ellis. Supplied by Getty Images
`
`Starbucks Ex. 1037
`Page 5 of 81
`
`
`
`Starbucks Ex. 1037
`Page 5 of 81
`
`

`

`al
`
`ATS
`
`ACTIVE SERVER PAGES
`
`Customer Support
`If you find a mistake, please have a look at the errata page for this book on our website first. Appendix L
`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=1266
`
`If you can't find an answerthere,tell us about the problem and we'll do everything we can to answer
`promptly!
`
`Just send us an email to support@wrox.com.
`
`orfill in the form on our web site: http: //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 howthe present client/server
`model evolved. If you're familiar with this then please feel free to skip to Chapter 1, butif 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 revenuestreams, and increased customer
`satisfaction. For many years, businesses have exploited IT in the following three dimensions:
`
`% 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 mainframesto client/server architectures have been
`applied to these business critical systems and most of these still have a part to playin today's IT
`infrastructures.
`
`% 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 strategics. These tools have dramatically increased productivity, streamlined
`operations and made IT morecosteffective.
`
`% 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 ‘information
`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 andtraining.
`
`Starbucks Ex. 1037
`Page6of 81
`
`Starbucks Ex. 1037
`Page 6 of 81
`
`

`

`INTRODUCTION
`
`
` Data
`
`Processing
`
`
`
`
`
`
`(
`
`Personnel
`Productivity
`
` =)(-)
`
`Over the years, a series of architectures have been devised in an attempt to integrate the various
`distributed environments within an organization. Forward-looking businesses now demandedthatthis
`integration must:
`
`4 automate the business processes to reduce costs
`provide easy access to all
`the organization's information (with appropriate securily of course)
`provide new opportunities for marketing advantage
`% remove barriers across the organization
`
`/ @
`
`% provide Mexibility enabling the business to react quickly to change
`
`Weshall see that a distributed computing framework using client/server and Interne! technologies provides
`the key to fulfilling these requirements.
`
`
`
`Data
`Processing
`
`\
`
`/
`
`“]
`‘
`
`oa
`‘Technology
`Personnel
`Productivity
` GroupWare
`
`Starbucks Ex. 1037
`Page 7 of 81
`
`Starbucks Ex. 1037
`Page 7 of 81
`
`

`

`ACTIVE SERVER PAGES
`
`PROFESSIONAL
`
`-i
`
`y
`
`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 archilecturc 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
`@ Data access lugic—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 (hal 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 ofthe
`benefits offered by client/server environments. The investmentin client/server systems has been accelerated
`by the rapid advances in hardware technology, the appearance of powerfulclient/server developmenttools
`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
`‘Thefirst generation of client/server systems is an cvolution ofthe 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. Whentheclient (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 returnsjust the data appropriate the client's needs.
`
`When compared to the file sharing application (which returned the completefilc), this client/server
`architecture dramatically reduces network traffic. In addition, today's databases provide many features that
`enable the developmentof sophisticated multi-user 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
`
`

`

`rm
`
`INTRODUCTION
`
`Because the processing is split between distinct layersthe workstation and the database server—such
`architectures are referred to as being two-tier client/server.
`
`Client - Centric Computing
`The most simple and common implementation of two-
`
`
`
`Z
`
`f{
`|
`tier systems is to place both the presentation and
`|
`Computers \(=a
`busincss Ogic Oo
`uf
`ma ing :
`Teh
`ane a
`fat
`on the client~making the architecture
`iness logic
`Personal
`|
`client/thin server. Database requests from the clients are
`—
`
`
`iypically implemented using the database query andtationlogic|| resentation logic
`
`NI] ep
`programminglanguage SQL. The database requestis
`|Wire@businesslogic
`carried to the database server using a remote database
`transport pratocal—howeverthe programmercan be
`insulated from such complexities by means of database
`middleware such as Microsoft's Open Database
`Connectivity (ODBC).
`
`|
`
`
`
`A ae@dataaccess@ciataaccesslogic|
` a RDBMS
`
`Database Server
`
`
`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
`low-cost 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:
`
`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
`
`™.
`
`this can drain resources on
`each workstation session requires a scparate database connection,
`the database server—for example, Microsoft SQL Server requires 37K of memory for cach user
`connection (and this is much lower than many other RDBMSs)
`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 numberofusers is exceeded. As a result, it does not provide the
`flexibility or scalability for large-scale applications deployed across the enterprise or Internet.
`
`Starbucks Ex. 1037
`Page 9 of 81
`
`
`
`Starbucks Ex. 1037
`Page 9 of 81
`
`

`

`all
`
`fi
`
`PROFESSIONAL
`
`ACTIVE SERVER PAGES
`
`Database Server—Centric Computing
`Analternative implementationis the thin client/fat server approach in which the business logic is pushed
`downto 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 parametervalues. As with the previous client-centric case, this
`request is transmitted using remote database transport protocols and can be implemented simply using
`database middleware (e.g. ODBC),
`
`
`
`| lic =
`Personal
`Computers x {rot
`=.=. —_
`| NY | @prescntation logic
`
`
`| —
`|
`|
`
`|
`
`A constraint is a restriction placed on a data entered into a
`database. A triggeris a stored procedure that is invoked
`automatically on the Add/Update/Delete of items in a table.
`Both can be used to validate entered data and ensure
`referential integrity or consistency across multiple related
`tables in the database.
`
`|
`
`|
`
`|
`
`-
`
`.
`
`|
`
`=
`Database Server
`
`:
`
`(RDBMS
`@business logic
`@data accesslogic
`
`|
`
`
`
`; r
`
`
`
`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
`required—one for the client and another for the RDBMSstored procedure programming language. The
`proprietary nature of the RDBMS languages usually mean database vendorlock-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 RDBMSto maintain a separate database
`session for each client workstation severely impacts central server resources. This makes the two-tier
`database server unsuitable for scaling 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 managersface!
`
`Two-tier Transaction Processing
`A transaction is a set of independentactions 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 oflen known bytheir
`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
`Isolation—uncommitted transactional results are not seen by other pending transactions
`Durability—once a transaction is committed, il will persist even if failures occur
`
`a r
`
`rp?
`
`Starbucks Ex. 1037
`Page 10 of 81
`
`Starbucks Ex. 1037
`Page 10 of 81
`
`

`

`
`
`|
`
`
`
` |
`
`ln,
`Personal {f =,
`
`Computers
`
`Applicatian Server
`
`RDBMS
`
`—
`
`|
`|@data access logic
`
`
`Stored Procedures —
`
`@business logic
`
`i : ;
`
`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:
`
`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
`
`INTRODUCTION
`
`Using transactions with two-tier client / server architectures is simple. Commandsto be processed within a
`transaction must be bound bycalls to functions with the RDBMS—typically these are called "Begin
`Transaction’ and 'Commit Transaction’. If a failure is detected, the database can be reverted to its original
`state by anothercall-typically ‘RollBack Transaction’ or 'Abort Transaction’. If a system crash occurs,
`outstanding transactions can be identified andthe integrity of the database restored, when the system
`restarts.
`
`Multi-tier client/server
`From the problems we have encountered whendiscussing two-tier client server architectures, it should be
`no surprise to learn that this approach is nowgenerally accepted as being a poorsolution other than for
`small workgroup applications.
`
`Drawing on the lessons learnt from the two-tier sysicms, an increase in application performance and a
`notable reduction in network traffic can be been achieved by implementing an alternative three-tier client/
`server architecture.
`
`Three-tier Computing
`The improvedarchitecture involves inserting an additional middle tier betweenathin client and a thin
`server to create three tiers.
`
`N (foc@presentationlogic|logic.TE
`
`Starbucks Ex. 1037
`Page 11 of 81
`
`

`

`A
`
`PROFESSIONAL
`
`ACTIVE SERVER PAGES
`
`Furthermore, this approach does nol 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 simultaneouslyaccessing an SOL
`Server system would not require a 37M (1000 x 37K) overhead of memory,
`
`By creating three ticrs, 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 othertiers. For example, we can easily enhance a system to support new delivery channels. Let's
`consider a customers services based upona three tier client/server solution. Now suppose that business
`reasons dictate that an interactive voice service is required so that a customercan access the system
`directly from their owntelephone using speech recognition and text to speech play-back. Whercas a two-
`lier solution would need majorsurgery, the three-tier solution would only require the development of a
`new userinterface (i.e. the voice handling) and could use the existing layers that contained the business
`logic and data access logic.
`
`
`-
`Lp TN
`a
`"Public b
`Telephone
`€& wy Network
`~d.
`be
`|
`Ee
`Voicerr
`
`Response | @presentation logic |
`|
`i |
`Unit —
`
`|
`|
`
`Personal \
`
`Computers
`
`_a,
`a,
`
`7
`
`|
`| @presentation logic |
`|
`
`———————
`
`|
`
`_
`
`_{
`
`
`
`L
`

`CN
`Internet
`
`(
`a
`
`=
`|
`
`Firewall
`
`
`
`-
`Application Server
`
`@ business logic
`
`Database Server
`
`
`
`
`
`RAMS
`| @data accesslogic |
`|
`
`
`
`
`
`
`Tt is possible to provide both the business logic and database on the same platform: and in manycases this
`can provide an optimumsolution. 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 archilecture are achieved.
`
`While two-tier systemsstill 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 ever-changing business requirements.
`
`re
`
`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 multi-tier or, as it is sometimes called, n-tier. These
`solutions are the mostflexible and scaleable and build on all the advantages of the three-licr architecture.
`
`Poa
`_\ “Public
`Bo
`(
`Internet
`
`——
`{ Reerore. ~
`Personal \
`Uy Network
`wl
`i
`{
`{
`i a
`|
`)o _ Computers
`LES
`' a
`Firewall
`x | @presentation logic |
`
`Voice ——_ T0EIC|st
`
`Response | @presentation logic |
`| ——
`Unit
`_ —
`|
`|
`
`||
`ll
`|
`
`- a a =
`(Aa a =.
`
`|Se SS SS
`7
`ia
`ae
`1
`~
`
`=
`
`sy
`
`
`
`Application Server
`
`| @business logic
`
`|
`}
`NY
`
`Database Server
`
`
`Roe
`| @data access logic
`:
`
`‘Stored Procedures
`
`
`Ud
`
`—_— a
`
`=
`
`—_
`
`In a multi-tier client/server solution, the business logic is partitioned and distributed over several machines.
`As requirements change during a systemslifetime, this partitioning and deploymentcan 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 lechnology), it is obvious how scalability—with the aim of 'no limits'—can be
`achieved. Sometimes the distribution ofthe logic over separate geographical regions can be considered to
`achieve optimum performance; for example, processes can belocated at sites where they can limit the
`amount of slow network communications performed.
`
`Drawbacksof Multi-Tier Client/Server —- Where Next?
`Unfortunately, three-tier and multi-tier client/server solutions are nottrivial to implement. There are more
`iasks to undertake and complex issues to address than when building two-tier systems. A strong
`understanding of the multi-tier client/server development techniques and an appreciation ofthe 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 ofthe traditional problems of
`client/server. With HTML. it's possible to develop an application in onc 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 IIS 4.0 and Active Server Pages comein...
`
`11
`
`Starbucks Ex. 1037
`Page 13 of 81
`
`Starbucks Ex. 1037
`Page 13 of 81
`
`

`

`_
`
`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 thatis
`desperately needed for the business to adapt to the many opportunities offered by the new generation of
`Internet solutions.
`
`While Microsoft joined the Internet gamerelatively late, they rapidly gained momentum and havesince
`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 (IIS4) is the latest
`release of Microsoft's leading commercial web server and is an essential componentin their Internet
`strategy.
`
`Fundamental to Web development with IIS4 is Active Server Pages (ASP) version 2 and weshall see that
`this is a compelling technology for quickly building dynamic pages 'on 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:
`
`ype,PP
`
`Microsoft's Internet strategy and development toolkit
`Developing solutions using software components and Microsoft's ActiveX technology for
`software component co-operation
`The powerful functionality available in Microsoft BackOffice which can be exploited in Web
`Solutions
`
`The architecture of IIS 4
`
`Where lo get hold of JIS 4, PWS and ASP and howto install them
`
`Internet Technologies: Centralized Computing With a
`Twist
`
`Just as we were beginning to get uscd 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
`
`

`

`fh
`
`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 numberofyears aller starting off as a US Departmentof
`Defense project in the late 1960's. The DoD was concerned that their communicationsinfrastructure could
`be wiped out by a single nuclear strike on their central systems. They decided to research into the
`developmentof a decentralized computer network such that each node is of equal importance and the
`resilience of the networkis 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, ic. a collection of interconnected networks. It has adopted a suite of
`communications protocols called TCP/IP that enables a numberofservices to simultaneously operate on
`the network—commonexamples include File ‘[ransfer, 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 oneis 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 but, 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—includingtext,
`graphics, sound, video and hyperlinks in which items on the documentare linked to other Web resources.
`By clicking on 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
`languages, Java applets and ActiveX Controls.
`
`WebDirections
`
`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 lo 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 programsare recognized as being a poor solution—this 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 ANEW GENERATION OF WEB SOLUTIONS
`
`
`
` —,
`
`,
`
`.
`
`ry a Af @presentation logic |
`CN
`(Internet
`} i
`=
`
`
`-ROBMS
`| @data access logic
`|
`
`
`
`
`
`Web
`
`~
`-———_ Browsers
`=
`ok
`
`—
`
`Intranet
`ie
`| Sa
`
`xf @presentation logic
`
`
`
`‘The first serious use of Web technology within business was for the implementation of intranets. Whereas
`ihe Internet is global and publicly open to all, an intranet is closed and hasstrict user access controls
`enforced or is hidden behind a firewall. Intranets take full advantage of the open Internet 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 thal are server-based, 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 navigale to an internal Web site and have seamless access to the
`application without any setup or configuration necessary. If any application is changed, perhaps ducto a
`bug fix or enhancement, the IT department can just make updates on the server, instantly upgradingall
`desktops with the new functionality. This dynamic application distribution can produce considerable savings
`to organizations which have many hundredsof desktops distributed throughout the enterprise.
`
`Organisations are using intranets to makeit easier for their staff and partners to collaborate and locate/
`process information. The web browser providesa 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 investmentin cxisling data systems and electronic documents—
`mechanisms enabling the reuse of such existing information can have considerable impact on busincss
`performance.
`
`
`
`15
`
`Starbucks Ex. 1037
`Page 16 of 81
`
`Starbucks Ex. 1037
`Page 16 of 81
`
`

`

` |
`
`PROFESSIONAL
`
`ACTIVE SERVER PAGES
`
`
`
`"Web
`Browser
`
`-
`
`_
`

`Intranet
`Seamless browsing and
`consistent front-end to current infrastructure
`
`
`
`
`is
`
`Files
`
`
`and
`Documents
`
`
`
`Applications
`and
`Services
`
`Database
`Systems
`
`Electronic
`Mail
`Systems
`
`Legacy
`Systems
`
`Second Generation Web Applications
`These early Web pages are nowoften called static pages since they were fixed in an .htm/.html file and
`were rather dull looking, lacking the facilities for user interaction that we are accustomed to from typical
`PC software.
`
`The next generation addressed these limitations by providing facilities for Active pages enabling user
`interaction and an architecture for distributed client/server processing. This was achieved by

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