Inside Technique : Behind the Scenes
Since we unveiled the InsideDHTML Community, the most common question is how we built the community. In this article, we explain our approach to building and managing the site's backend.
Evolution of InsideDHTML
In the past year and a half, InsideDHTML has evolved from a very basic web-site to a fully dynamic, template based system. InsideDHTML has moved from using just a simple web-server to requiring a complete set of services and technologies. On the InsideDHTML server we currently use:
When InsideDHTML first went on-line in June 1997 we only served static HTML-based pages. We wrote "intelligent" client-side scripts that handled all our browser detection. None of our pages were template based nor did they use any server intelligence.
While this approach was extremely scalable, it was also impossible to manage. After running the site for about a month, we wanted to change a small portion of the user-interface. We immediately recognized the mistake in our approach. At this point we had two choices - use a content-based management system to generate the HTML pages from templates or build the pages dynamically on the server. While the former approach scales much better, we chose the latter approach. This was necessary because we wanted complete flexibility to deliver pages optimized for various clients. To build our server infrastructure, we chose to use ASP. This was mostly due to its ease of use and our familiarity with scripting.
Until the middle of 1998, the entire site ran with just ASP pages and IIS. In the middle of 1998, we switched from an external provider for banner advertisements to serving the banners directly from our server. We chose Microsoft's Site Server Commerce Edition's advertising services due to its ease of integration with our existing ASP templates. We also added SQL Server as the store for tracking the advertisements.
Last summer we also began planning and creating the InsideDHTML Community. We envisioned the InsideDHTML Community as a place where the development community could work and learn together. We wanted to focus on providing personalized collaborative experience. Our current community is the first step to achieving this goal.
To build the community we leveraged SQL Server. We designed a very flexible schema for managing resource listings, discussion forums, and user profiles. At this point, scalability became much more important. Before the InsideDHTML Community, our pages were very simple scripts with simple conditional logic (if browser A do this else do that). With the introduction of the community, every page became more dynamic and reliant on external variables and information.
To ensure reasonable scalability (we are still determining the maximum threshold), we devised a scheme for caching the generated HTML output in memory. To handle heavy traffic, our goal is to minimize the query processing (especially analyzing the returned recordsets), and instead to store as much as possible in memory. Our assumption is locating then reading and writing a simple string from memory is many times more efficient than querying and looping over result sets.
We are currently running SQL Server 6.5 over the latest 7.0 release simply because it has been installed and running reliably on our production server for the past 8 months. We plan to upgrade to SQL Server 7.0 when we do our next hardware upgrade.
Next, we explain our simple approach to content management.
© 1997-2000 InsideDHTML.com, LLC. All rights reserved.