Chapter 13 Web Application Infrastructure Objectives • Explain the components and purpose of a web application platform • Describe several common webapp platforms • Explain the nature and purpose of a webapp framework • Describe several common webapp frameworks • Explain the nature and purpose of a content management system • Describe several common content management systems Web Application Platform • A webapp platform is the host environment for application development and operation • The platform includes – operating system, web server, language support, database support platform Web Server Web Application Language Database Support Support Operating System Hardware LAMP • Linux, Apache, MySQL, PHP/Perl/Python • The LAMP platform appeared in mid 1990's and has become very popular • LAMP is open-source free software, which is one reason for its popularity Microsoft / .NET • All Microsoft products (licensed) • .NET supports multiple languages • Runs primarily on Windows Server O/S Sun Microsystems/Java EE • Supports Java language development • Supported by multiple operating systems • Proprietary, free license Web Application Framework • A webapp framework is a set of tools that support webapp development with: – A standard design model (e.g., MVC) – User interface toolkit – Reusable components for common functions (authentication, e-commerce, etc.) – Database support – Support for distributed system integration Web Application Framework • Frameworks give application developers more powerful building blocks to work with Java EE • Java EE is based purely in the Java programming language • Includes – Java Servlets – Java Server Pages – Java DataBase Connectivity – Java Server Faces – Enterprise Java Beans – etc. .NET Framework • .NET Framework is a Microsoft (licensed) product • .NET supports many programming languages through its Common Language Runtime (CLR) system C# ASP VB C++ etc. compilation CLR Intermediate Language CLR Interpreter Ruby On Rails • Ruby: a dynamically typed object-oriented programming language • Rails: a webapp framework, featuring: – automatic code skeletons – built-in testing features – object-relation mapping – default implementation of common webapp functions Struts • A webapp framework based on Java EE • Features: – use of MVC design paradigm – Centralized XML-based application configuration that can define many functions – Action definitions link user interface events to Controller and View modules Content Management System • A CMS is a tool for creating, cataloging, and accessing documents (web pages) Content Management System • A CMS can streamline and automate the process of creating, approving, deploying, and retiring web content Workflow Management • A CMS can coordinate the steps involved in creating, editing, and approving web content within an organization Content Management Systems • Joomla! – open source, free – based on MySQL and PHP – supports web pages, RSS feeds, blogs, etc. • Vignette – proprietary product – includes extensive workflow management support – integrates with related development tools Web Application Software Stack • The webapp software stack includes platform, framework, CMS, and application Review • Webapp Platforms – LAMP, Microsoft/.NET Sun/Java • Webapp Frameworks – Java EE, .NET Framework, Ruby on Rails, Struts • Content Management Systems – Joomla!, Vignette • Webapp Software Stack