The Windows Web Platform Michael Epprecht Microsoft Switzerland michael.epprecht@microsoft.com twitter: fastflame Star Map • April 1994 to August 1995 • Page Views per Day: 124'655 • Number of Servers: 3 3 The Microsoft Web Platform is the software of choice when building web solutions or applications for your business, large or small. Whether you’re looking to create your company’s global web presence, building applications for your small business, or just getting started on the web, Microsoft has the solutions for you. Trusted by Fortune 500’s, used by millions of individuals. Built to work with YOU in mind Elements of a Successful Web Platform Community Applications Marketplace Choices www.microsoft.com/web Windows 2003: IIS6, FTP 6 Windows Server 2008: IIS7, FTP 7 Windows Server 2008 R2: IIS7.5, FTP 7.5 IIS Configuration Editor Configuration Tracking Application Warm Up Server core Support PowerShell Snap-in Delegation of Custom Errors Bit Rate Throttling Smooth Streaming IIS 7/7.5 Architecture Service Host (SVCHost.EXE) Configuration (applicationhost .config) Worker Process (W3WP.EXE) Windows Process Activation Service (WAS) World Wide Web Service (W3SVC) HTTP.SYS Kernel-Mode Listener Request Flow Service Host (SVCHost.EXE) Bindings: http://*:80:site1 Applicationhost .config Worker Process (W3WP.EXE) Windows Process Activation Service (WAS) World Wide Web Service (W3SVC) HTTP Protocol Host HTTP Listener Channel HTTP.SYS Kernel-Mode Listener Request Queue Response Cache HTTP.SYS Accepting HTTP (and HTTPS) connections Parsing and validating HTTP requests Queuing of HTTP requests in application-specific queues Caching of HTTP responses New SSL Kernel-Mode Windows authentication WAS Windows Process Activation Service (WAS) W3svc Configuration Manager Reads configuration from applicationhost.config and reacts to changes in configuration Passes configuration to the World Wide Web Service Process Manager Starts worker processes when a listener (e.g. HTTP.SYS) receives the first request Monitors state and health of worker processes Recycles worker processes based on certain parameters, e.g. lifetime, number of requests, schedule etc. Prevents resource exhaustion, e.g. by limiting number of worker processes that can be active at the same time. W3SVC HTTP specific listener adapter site binding information (IP address, port, host header) Application Pool and Application settings configuration changes W3WP.EXE Worker Process Infrastructure Worker Process == Application Pool (99% case) Establishes a connection with WAS at startup Responds to WAS requests, e.g. when asked to shutdown. Picks up requests from the HTTP.SYS request queue Manages request pipeline Process requests and send responses Runs all third-party code Modules, handlers, isapi filters and extensions, assemblies, COM objects etc. IISAdmin Metabase / ABOMapper Host: INETINFO.EXE FTP MSFTPSVC Host: INETINFO.EXE SMTP Host: INETINFO.EXE Application Host Helper Service (ApphostSvc) Configuration History ApplicationPool SID Mapping Host: svchost.exe Take me to the movies! Intelligent media streaming support out of the box with the IIS Media Pack. Support for all media types including WMV, FLV and MP4. Deliver HD Video with Silverlight and Smooth Streaming http://www.iis.net/media/experiencesmoothstreaming http://www.nbcolympics.com/video/ Microsoft 1 Confiden 6 There is a solution for virtually everything http://learn.iis.net/page.aspx/36/managing-andmaintaining-iis-70/ http://www.iis.net/expand Microsoft 1 Confiden 7 Supports FTP over Secure Sockets Layer (FTPS) protocol for encrypted data transfer Allows FTP host headers for configuring multiple FTP sites on a single host server Enables FTP and Web content on the same Web site, making it easier to manage content Optionally integrates with existing Active Directory authentication policies Microsoft 1 Confiden 8 FastCGI module allows IIS7.0 to host PHP applications High-performance version of CGI interface used by many Web client applications Build applications that deliver a visually compelling user experience Communicate across technology boundaries Support a wide range of business processes IIS 7.0/7.5 can run HTML, Classic ASP, ASP.NET, and PHP applications, all on a single easy-to-manage platform Before Now No Core developer working on or for Windows Windows Internals Team Windows was a 2nd class platform Windows is now a primary platform •2 core developers •7 regular helpers, contributors or testers (growing) Synchronized releases •5.2.6, 5.2.7, 5.2.8, 5.3.0 Binaries releases days or weeks after the sources releases Absence QA on Windows Lack of documentation and communication QA on Windows •95% of the core tests pass on Windows Dedicated communication channels •Mailing list, Windows internal list, iis.net/php(http://www.php.net/mailinglists.php) •IRC channel on freenode #php-dev-win • FastCGI: The best of both CGI and ISAPI – – – – – – Enhancement to CGI protocol Web server creates FastCGI process pool for very first request Web server re-uses existing FastCGI processes for subsequent requests Configurable Resources Download for IIS 6 Ships in IIS 7/7.5, installed with the CGI feature • Benefits of FastCGI for Windows – Much faster than CGI because there is no process creation cost – Much more stable than ISAPI because of single threaded execution environment Non-thread safe PHP builds are recommended for FastCGI FastCGI process pool for PHP5 IIS Worker Process FastCGI protocol over named pipes or TCP php-cgi.exe FastCGI process pool for PHP4 Request queue php.exe FastCGI Process Pool App Pool #1 (user1) Web site #1 FastCGI Process Pool App Pool #2 (user2) Web site #2 … … FastCGI Process pool App Pool #N (userN) Web site #N PHP Integration. Interoperability. The SQL Server Driver for PHP is designed to enable reliable, scalable integration with SQL Server for PHP applications deployed on the Windows platform. • Native PHP 5 extension • Reading and writing of SQL Server data from within PHP scripts. • Compatible with all editions of SQL Server 2005 and SQL Server 2008, SQL Server 2008 R2 (including Express Editions) Logical architecture Overview Enables PHP developers to take advantage of the Microsoft Cloud Services Platform – Windows Azure. Open source project being contributed to Zend Framework (http://framework.zend.com) Your PHP application PHP SDK for Windows Azure Manageability, Instrumentation, logging Blobs, Tables, Queues Helper for Http, Auth, REST, Error REST Features PHP classes for Windows Azure Blobs, Tables & Queues (for CRUD operations) Helper Classes for HTTP transport, AuhN/AuthZ, REST & Error Management Manageability, Instrumentation & Logging support Project site: Deployment scenarios http://phpazure.codeplex.com/ PHP Runtime REST REST PHP Runtime WebPI Aspiration It’s a mess. The “plumbing” associated with web solutions should not get in your way building great applications. Reality The Microsoft Web Platform Installer is our way of making that mess a little easier to deal with. It won’t take away all the pain of setting up an environment, but it takes away a lot of it. Today I’ll show Version 2 of the WPI and how you can use it to set up your web environments. Makes it simple for anyone using Windows Server or Client to design, develop, discover, deploy and run web applications. Install the latest versions of FREE Microsoft Web Platform tools, web server and extensions, database and frameworks including Stay up-to-date and explore what’s new. PHP Runs on Windows XP, Windows Vista, Windows 7, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2 Windows Web App Gallery Explore, discover, install and deploy popular Web applications on the Windows Platform through a streamlined process. Popular Apps App Gallery: Customers, Partners, and developers have downloaded over 450,000 applications from the Windows Web Application Gallery since March 2009 Partners & communities that have included their application in the Windows Web Application Gallery are seeing on average a 2-3x increase in their downloads above their current average rate How 3 Users around the world discover and install your web app on dedicated and shared hosting servers. 1 You build, package and submit your web app to the app gallery. 2 We publish your approved app and make it available through the Windows Web App Gallery channels. Steps? Web Server Internet Information Services 7.5 in Windows Server® 2008 R2 provides a secure, easy-tomanage Web platform for reliably hosting rich Web applications, Media and Web services. Easily deploy ASP.NET and PHP applications on the same server. One server to manage, one server to configure. http://www.microsoft.com/web For more Information please contact Michael Epprecht IT Pro Evangelist michael.epprecht@microsoft.com Tel +41 43 456 66 68 Mobile +41 78 844 66 68 Microsoft Schweiz GmbH Richtistrasse 3 CH-8304 Wallisellen