Building High Performance, Robust Server Applications with Internet Information Server 5.0 Van Van IIS - Program Manager Microsoft Corporation.

Slides:



Advertisements
Similar presentations
WEB AND WIRELESS AUTOMATION connecting people and processes InduSoft Web Solution Welcome.
Advertisements

DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
Synera The Software That Thinks Like You Do Synera Technical Presentation.
Overview of the technology that comprises Attendance Enterprise.
Objectives In this session, you will learn to:
An architecture for webb applications, J2EE
ASP.NET (Active Server Page) SNU OOPSLA Lab. October 2005.
Building Applications using ASP.NET and C# / Session 1 / 1 of 21 Session 1.
1 Chapter 12 Working With Access 2000 on the Internet.
15 Chapter 15 Web Database Development Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
Fast Track to ColdFusion 9. Getting Started with ColdFusion Understanding Dynamic Web Pages ColdFusion Benchmark Introducing the ColdFusion Language Introducing.
Introduction to Web Database Processing
Kashif Jalal CA-240 (072) Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 2 of…
Introduction to Web Application Architectures Web Application Architectures 18 th March 2005 Bogdan L. Vrusias
Week 2 IBS 685. Static Page Architecture The user requests the page by typing a URL in a browser The Browser requests the page from the Web Server The.
Introduction to Web Interface Technology (CSE2030)
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Web-based Software Development - An introduction.
JVM Tehnologic Company profile & core business Founded: February 1992; –Core business: design and implementation of large software applications mainly.
Client/Server Architectures
1 Web Database Processing. Web Database Applications Static Report Publishing a report is prepared from a database application and exported to HTML DB.
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Module 1: Introduction to Windows Clustering. Overview Defining Clustering Features Introducing Application Architecture Identifying Availability and.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Introduction to ASP.NET. Prehistory of ASP.NET Original Internet – text based WWW – static graphical content  HTML (client-side) Need for interactive.
Week 7 Lecture Web Database Development Samuel Conn, Asst. Professor
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
Data-Enabled Web Sites: Classibooks.com & Internet Database Technologies Colin Fukai April 4, 2000 Gonzaga University.
3/8/00asp00 1 Active Server Pages from Microsoft Nancy McCracken Northeast Parallel Architectures Center at Syracuse.
Chapter 17 - Deploying Java Applications on the Web1 Chapter 17 Deploying Java Applications on the Web.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
Fundamentals of Database Chapter 7 Database Technologies.
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
Victor Mushkatin, MCSE, MCSD CORPORATION Alexander Zakonov, MCSE, MCSD Stephen Pelletier, MCSE.
Tutorial 10 by Sam ine1020 Introduction to Internet Engineering 1 Database & Server-side Scripting Tutorial 10.
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Introduction to ADO Y.-H. Chen International College Ming-Chuan University Fall, 2004.
Active Server Pages and Application Service Providers Architecture for 2000 and beyond Krishen Kota Denali Technologies
Oracle 10g Database Administrator: Implementation and Administration Chapter 2 Tools and Architecture.
1 Welcome to CSC 301 Web Programming Charles Frank.
What is database?  Any Method for access info into Application from DataBase?  ODBC is standard for Accessing Data.  Problem with ODBC:  Information.
From DNA to.NET Design Path. Objectives Sketch up a typical Win DNA Application Sketch up the.NET version Compare Design and Implementation Advantages.
3-Tier Client/Server Internet Example. TIER 1 - User interface and navigation Labeled Tier 1 in the following graphic, this layer comprises the entire.
Building Windows ® DNA Applications Today Using Information Server (IIS), Microsoft ® Transaction Server (MTS), And Microsoft Messaging Queue (MSMQ) Joe.
Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Out Look 1.Introduction 2. Guiding Principles of Windows DNA 3. Development Technologies 4. DNA - Architecture for Distributed Applications 5. Client Environments.
7-1 Active Server and ADO Colorado Technical University IT420 Tim Peterson.
Web Page Designing With Dreamweaver MX\Session 1\1 of 9 Session 1 Introduction to PHP Hypertext Preprocessor - PHP.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Generating XML Data from a Database Eugenia Fernandez IUPUI.
A S P. Outline  The introduction of ASP  Why we choose ASP  How ASP works  Basic syntax rule of ASP  ASP’S object model  Limitations of ASP  Summary.
ASP – Web Programming Class  Ravi Anand. ASP – Active Server Pages What is ASP? - Microsoft Technology - Can Run using IIS/PWS/Others - Helps us create.
Web-based Software Development - An introduction
Recipes for Use With Thin Clients
Introduction to ASP By “FlyingBono” 2009_01 By FlyingBono 2009_01
Haritha Dasari Josue Balandrano Coronel -
Introduction to J2EE Architecture
PHP / MySQL Introduction
Web Development Using ASP .NET
ASP.NET Module Subtitle.
COM, DCOM and Software Components
Graduation Project #1 University Internet Student Registration System
Presentation transcript:

Building High Performance, Robust Server Applications with Internet Information Server 5.0 Van Van IIS - Program Manager Microsoft Corporation

Agenda  What is a Windows ® DNA Application?  Design for Success: Building Windows DNA Applications using Internet Information Server 5.0 Presentation Presentation Business Logic Business Logic Data Services Data Services  Testing for Success  Performance Tuning Applications

Windows DNA Applications What is it?  Extensible Modular Modular Integrates with existing back end Integrates with existing back end  Scalable High Performance High Performance High Availability High Availability  Reliable Handle failures gracefully Handle failures gracefully  “End-to-End” Application Solution

Windows DNA Applications 3-Tier Application  Divide your Windows DNA Application into three logical layers Presentation Presentation Business Logic Business Logic Data Services Data Services  Use Active Server Pages (ASP) as the “glue” to link presentation with business logic  Do NOT put business logic in ASP

3-Tier Web Architecture Internet Information Server and ASP DCOM Data services SQL Server Oracle Microsoft Exchange MSMQ Business logic MTS Components Presentation Internet Explorer OthersHTTPHTTP

Design For Success

Process Isolation Performance versus Robustness

Flow Control Design Applications NOT Pages 1 of 5  Normal Response Client ASP A ASP B IIS Request Response

Flow Control Design Applications NOT Pages 2 of 5  Normal Response  Response.End Response. IsClientConnected Response. IsClientConnected Client ASP A ASP B IIS Request Response

Flow Control Design Applications NOT Pages 3 of 5  Normal Response  Response.End  Response.Redirect Client ASP A ASP B IIS Request (1) Response.Redire ct Request (2) Response

Flow Control Design Applications NOT Pages 4 of 5  Normal Response  Response.End  Response.Redirect  Server.Transfer Client ASP A ASP B IIS Request Server.Transfer Response

Flow Control Design Applications NOT Pages 5 of 5  Normal Response  Response.End  Response.Redirect  Server.Transfer  Server.Execute Client ASP A ASP B IIS Request Server. Execute Response

3-Tier Validation “End-to-End” Solution  Validate in all 3-tiers Client side validation with “smart” clients Client side validation with “smart” clients Server side validation for legacy clients Server side validation for legacy clients Data validation when persisting Data validation when persisting  Scalable - distribute work as necessary  Reliable - fault tolerant architecture  Extensible - interchangeable pages

<html><body> What is your favorite sport? What is your favorite sport? <p> </form></body></html> <html><body> What is your favorite sport? What is your favorite sport? <p> </form></body></html> Caching Output <% function getSportsListBox() { SportsListBox = Application("SportsListBox") if (SportsListBox != null) return SportsListBox; crlf = String.fromCharCode(13, 10) SportsListBox = " " + crlf; SQL = "SELECT SportName FROM Sports ORDER BY SportName"; cnnSports = Server.CreateObject("ADODB.Connection"); cnnSports.Open("Sports", "WebUser", "WebPassword"); rstSports = cnnSports.Execute(SQL); fldSportName = rstSports("SportName"); while (!rstSports.EOF){ SportsListBox = SportsListBox + " " + fldSportName + " " + crlf; rstSports.MoveNext(); } SportsListBox = SportsListBox + " " Application("SportsListBox") = SportsListBox return SportsListBox; } %> <% function getSportsListBox() { SportsListBox = Application("SportsListBox") if (SportsListBox != null) return SportsListBox; crlf = String.fromCharCode(13, 10) SportsListBox = " " + crlf; SQL = "SELECT SportName FROM Sports ORDER BY SportName"; cnnSports = Server.CreateObject("ADODB.Connection"); cnnSports.Open("Sports", "WebUser", "WebPassword"); rstSports = cnnSports.Execute(SQL); fldSportName = rstSports("SportName"); while (!rstSports.EOF){ SportsListBox = SportsListBox + " " + fldSportName + " " + crlf; rstSports.MoveNext(); } SportsListBox = SportsListBox + " " Application("SportsListBox") = SportsListBox return SportsListBox; } %>

Presentation Layer

Let the client do the work Use double dynamic HTML  Use the browser capabilities component Test for script support Test for script support Test for D/HTML support Test for D/HTML support *Use application state for this component *Use application state for this component  Send HTML, DHTML, and client-side scripting based on capabilities Ubiquitous, easy, fast to download Ubiquitous, easy, fast to download DHTML dynamic page repainting DHTML dynamic page repainting Client-side scripts pushes work to client Client-side scripts pushes work to client

Business Logic Layer

Components  Implement the business logic layer using server-side COM components Visual Basic® Visual Basic® C++ C++ Java™ Java™  Server components provide Abstraction of complexity Abstraction of complexity Encapsulation of internal details Encapsulation of internal details Modularity for code reuse Modularity for code reuse

Components  Basic Principles Reuse existing components Reuse existing components Buy new components Buy new components Build your own components Build your own components  Provide a scriptable interface for your ASP use COM Interface COM Interface No need for graphical UI No need for graphical UI  Choose language accordingly

Components Threading Models  Every component has a “Threading Model” Single Single Apartment Apartment Free Free Both Both  Choice of Threading Model determines Thread that your component will be created on Thread that your component will be created on Whether calls are direct or through proxy Whether calls are direct or through proxy

Components Threading Model Impact  Performance Calls may be marshaled by proxy Calls may be marshaled by proxy  Access to context Context is an attribute of the thread Context is an attribute of the thread  Security May lose impersonated identity May lose impersonated identity

Threading Models Page Scoped Objects  Both and Apartment are equally good  Free is less good  Single is bad

Threading Models Session Scoped Objects  Mark Session objects as Both Apartment is OK Apartment is OK Locks down session Locks down session Free is mediocre Free is mediocre Single is bad Single is bad

 Mark Application objects as Both  ASP never locks down Application Scoped Objects  For Apartment model objects, you can only use the tag in global.asa  Non-Both objects will lose security and context Threading Models Application Scoped Objects

Threading Models Recommendation Write components as Both

Writing Components Language Choices  Visual Basic ® Default Thread Model is Single, can produce Apartment Default Thread Model is Single, can produce Apartment  C++ Can create Both model components Can create Both model components  Java ™ Produces Both components by default Produces Both components by default

Data Services Layer

Active Data Objects (ADO)  Business components use ADO.asp files should not use ADO.asp files should not use ADO Better performance and reuse Better performance and reuse  Mark ADO as both model threaded MakeFre15.bat in the folder Program Files\Common Files\System\ADO MakeFre15.bat in the folder Program Files\Common Files\System\ADO  Learn about the six commonly used ADO objects

Using ADO  Using ADO from ActiveX Components ADO command object for ease of use ADO command object for ease of use No “Select * From table” No “Select * From table” .asp file using RecordSets ADO field object for performance ADO field object for performance Set rsCustomers = Customers.List Set fldCustomerID = rsCustomers(“CustomerID”) Set fldCustomerName = rsCustomers(“CustomerName”) Do Until rsCustomers.EOF Response.Write fldCustomerID & “ -- “ & _ Response.Write fldCustomerID & “ -- “ & _ fldCustomerName & “ ” fldCustomerName & “ ” rsCustomers.MoveNext rsCustomers.MoveNextLoop

SQL Server™  Configure SQL Server Memory size Memory size  Protocol selection Named pipes if on the Internet Information Server machine Named pipes if on the Internet Information Server machine TCP Sockets if on a different machine TCP Sockets if on a different machine  Let SQL do the work Joins/sorting/grouping Joins/sorting/grouping  Connection pooling HKLM\SOFTWARE\ODBC\ODBCINST.INI\ SQL Server\CPTimeout HKLM\SOFTWARE\ODBC\ODBCINST.INI\ SQL Server\CPTimeout

SQL Server™  Maintain SQL Server Monitor logs Monitor logs  Use stored procedures  Use show plan  Use indexes  Update statistics

ODBC  SQL Server ODBC connection pooling On by default for SQL Server because it is now set per driver On by default for SQL Server because it is now set per driver  ODBC performance monitor counters from ODBC SDK

Testing and Tuning

Testing for Success  Functional Level Rate component throughput Rate component throughput Know the cost of external dependencies Know the cost of external dependencies  Page Level Trace.asp execution for bottlenecks Trace.asp execution for bottlenecks Determine your 5 worst.asp files Determine your 5 worst.asp files  Application Level Simulate sessions Simulate sessions Determine the number of machines needed Determine the number of machines needed

Performance Tuning  Tools Profiling (Response.End) Profiling (Response.End) WebCat WebCat WebLoad WebLoad New ASP performance counters New ASP performance counters

Call to Action  Install the Windows NT 5.0 Start building simple components in the language of your choosing Start building simple components in the language of your choosing  Begin a pilot Windows DNA Application Project Expense Reporting Application Expense Reporting Application Internal Purchasing Application Internal Purchasing Application  Write killer Windows DNA applications

Other PDC Talks  Architecting Your Application For IIS 5.0  Debugging ASP Applications and Components  Using the Microsoft XML Parser in the Middle Tier