Advanced Windows HostingA Dedicated Server Deployment Solution
Bernhard Frank | Mario BrianaWeb Platform Architect Evangelists
Developer Platform and Strategy Group (Germany | CEE)
Dedicated Server Survey Results
Designed for dedicated server customer Web-VAPs (Value Added Provider)
Key Findings:
1.Most Customers using the Server for App Hosting
2.Most Customers call themselves Developer
3.Most Customer have 1 up to 3 sites on one machine
Model behind Advanced Windows Hosting
Special Software package + How-to‘s for hosters / WebVAPs and customers that extends the Windows Server capabilities to a „Value Add Offering“.
Advanced Windows Hosting
- package
Price/Hoster
LAMP base Price
LAMP base value
Hoster Invest
Value/User Price/Hoster
Windows base Price
Windows base value
Hoster Invest
Value/User
Hoster Invest
LAMP Land
Hoster Invest
WISA LandTiger Duck:
To increase value!!
Advanced Windows Hosting Stack(1st: build a LAMP – aquivalent)
LINUX (is) WINDOWS
Base OS
Apache, PHP, MySQL
Control Panel(Plesk, Confixx, Ensim,…)
Base OS
Web Applications
value
IIS ASP.NET
PHP
fastCGISQLExpressASP.net AJAX
.net 3.0SQL Mgr.
PHP
fastCGISQLExpressASP.net AJAX
.net 3.0SQL Mgr.
Advanced Windows Hosting Stack (Package-Manager)
LINUX (Ist) WINDOWS
Base OS
Apache, PHP, MySQL
Control Panel(Plesk, Confixx, Ensim,…)
Base OS
Package-manager
Web Applicationen
value
IIS ASP.NET
Advanced Windows Hosting Stack 2nd: get more value to the user
LINUX (is) WINDOWS
Base OS
Apache, PHP, MySQL
Control Panel(Plesk, Confixx, Ensim,…)
Base OS
Control Panel(Plesk, Helm)
Web Applications
value
PHP
fastCGISQLExpressASP.net AJAX
.net 3.0SQL Mgr.
Package-managerIIS ASP.NET
Web Applications
The Packagemanagervalue props
@Hoster: Open-Source (extenable and customizable) Packages (extenable and customizable) (OS, Language, V- or Dedicated
Server) Context specific information about the packages (html) Consistent installations. (easier Troubleshooting, more secure)
@customer: Reducing installation times, searching for useful components Customer decides what to install. Requirements / Dependencies are checked and shown before installing. Benefit of expert Installation - Know-How Get more value what the platform provides.
LINUX (is) WINDOWS
Base OS
Apache, PHP, MySQL
Control Panel(Plesk, Confixx, Ensim,…)
Base OS
Control Panel(Plesk, Helm)
Web Applicationen
value
PHP
fastCGISQLExpressASP.net AJAX
.net 3.0SQL Mgr.
Package-managerIIS ASP.NET
Web Application Installer
Advanced Windows Hosting Stack (Web Application Installer)
Web Applications
Open-Source:0€! vs. InstallShield Express ca. 500€ extensible
@DeveloperCreate an MSI for your web app in 30 min(asp.net/php/perl/(my)sql)
@UserEasy installation in a well known consistent manner
Web Application Installer:
WiXML MSI Paket
High level architecture overview
Windows Server OS
IIS
.net 2.0 (ASP.NET)
Advanced Windows Hosting Base (configurable, e.g. ASP.NET AJAX, WSS, SQL Express…)
Web-Application
(WIX Package)
Web-Application
(WIX Package)Provided by
Hoster
Web-Application
(WIX Package) Provided byCommunity
HosterVanillaInstall
AWH
Package ….
Usage Scenarios
ISV generatespackage
Hoster generatespackage
Community generatespackage
WAI
MS Package Server
Community Package Server
Hoster Package Server
Install ClientGet package
List
Decide what to install
Download / Install
Raktajino
MS
I Pac
kets
MS
I Pac
kets
XM
L D
ef fi
les
Try it out - Links
Packagemanager:http://www.codeplex.com/raktajino
Web Application Installer Template:http://www.codeplex.com/wai
Advanced Windows Hosting Site (German)http://www.advanced-windows-hosting.net
Project Structure App.config Business Logic
BL.cs Windows Forms
Raktajino.cs (main UI)
UserEulaDialog
UserInputDialog Resources
Resources folder
HostingOptions.xml
InstallationRequirements.xml
Localization (not planned for 1st release but already on Codeplex)WinformStrings.resxWinformStrings.de-DE.resx
App.configHostingOptionsURL
http://localhost/tigerduck/hostingoptions.xml?lang=%language%&OS=%OS%
InstallationRequirementsURLhttp://localhost/tigerduck/InstallationRequirements.xml"
Bannerresources\banner.htm
ProductDescriptionURLresources\raktajino.htm
BackgroundInstallCheckTrue/False
SortProductTreeViewTrue/False
DownloadSubDirectoryWhen downloading this is the place where stuff gets stored
TempSubDirectoryUsed to unzip downloaded packages
DisableTabControlDuringInstallTrue/False
in case a hoster want the customer to be able to click on Packages while we are installing
Culturede-DE
HostingOptions.xml
Package DefinitionTitle, DescriptionCategory Install URL and Eula URLInstallRequirements
○ Referenced in Installrequirements.xmlUserInputAction
InstallationRequirements.xml
External Check (expensive regarding resource consumption!) Property="IIS6 configured with FastCGI for PHP"
SpecialFolder="%SystemRoot%" SearchPath="system32\" CheckFile="cscript.exe" Arguments="inetsrv/fcgiconfig.js -get -section:"PHP" -ExePath„
Compare Method="ValueContains“ php-cgi Registry Check
Property="IIS Version greater 4" Key="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters" Value="MajorVersion“
Compare ValueType="Int32“ Method="ValueGreaterThan“ 4 File Check
Property="ASP.NET version 2.0" SpecialFolder="c:\" SearchPath="Windows\Microsoft.NET\Framework\v2.0.50727" FileName="aspnet_isapi.dll„
Compare Method="ValueExists" MSI Product Check
Property="ASP.NET AJAX 1.0 installed" GUID="082BDF7B-4810-4599-BF0D-E3AC44EC8524"
• In the 1st release we are not supporting WMI check because• WMI Product Check is not installed by default on a WS 2003 box• actually MSI Product check is doing almost the same• there was a bug in Vista (fixed with SP1)
InstallationRequirements.xml
External Check (expensive regarding resource consumption!) Property="IIS6 configured with FastCGI for PHP"
SpecialFolder="%SystemRoot%" SearchPath="system32\" CheckFile="cscript.exe" Arguments="inetsrv/fcgiconfig.js -get -section:"PHP" -ExePath„
Compare Method="ValueContains“ php-cgi Registry Check
Property="IIS Version greater 4" Key="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters" Value="MajorVersion“
Compare ValueType="Int32“ Method="ValueGreaterThan“ 4 File Check
Property="ASP.NET version 2.0" SpecialFolder="c:\" SearchPath="Windows\Microsoft.NET\Framework\v2.0.50727" FileName="aspnet_isapi.dll„
Compare Method="ValueExists" MSI Product Check
Property="ASP.NET AJAX 1.0 installed" GUID="082BDF7B-4810-4599-BF0D-E3AC44EC8524"
• In the 1st release we are not supporting WMI check because• WMI Product Check is not installed by default on a WS 2003 box• actually MSI Product check is doing almost the same• there was a bug in Vista (fixed with SP1)
BL.cs – Business Logic
Called from UI Classes for
PackagesInstallationRequirementsInstallationActionUserInput
DOES NOT INSTALL anything DOES NOT DOWNLOAD anything
About to change in next version
Raktajino.cs - UI On Load
Create Package structures○ Add Package Information to the Installation tabs
Add Installation Requirements Check Installation Requirements in a background worker thread
○ Update the information in the Installation tabs Installable, Dependent on other Install, Already installed
Install Button According to Requirements
○ User will be referred to another Package○ Package gets installed in background in a separate process○ If specified
User accepts EULA Enters requested input