`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
`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