The difference between web publishing and web applications is rarely obvious to users, and some platforms make the distinction less clear even to some of the people who work on them. While the presentation may look the same, the optimum environments and workflows are completely different.
Web publishing is providing "static content", such as text pages, Word, Excel, and PDF files for downloading, images, etc. These files are prepared in advance and placed on a web server where they can be retrieved on demand. When they need updating, they are replaced by new copies of the files. Static content is most easily maintained with a content management system that provides access controls, version history and controls, prompt and accurate publishing, and other useful features.
Web applications include some sort of user input that is then acted on by application code, which in turn may interact with a database to store the user's input and/or provide data based on it. Web applications have more significant back-end requirements:
- Application processing and databases require significantly more hardware resources than serving static content.
- The MA security standards dictate that the web interface, the application logic, and the database be separated from each other by firewalls.
- Changes to application code (unlike changes to static content) should be done within a change control framework that ensures the application works properly when changes are made.
- Technical staff often includes application developers, middleware support, database administrators, etc.
If static content is mixed into this environment, these requirements make it much more difficult and/or risky to make changes. The technical staff may have little expertise in web content. Content updates can take significantly longer, especially if application code is actually embedded on the same page.
Client-side Web Applications
Client-side web applications fall in between these two categories and are best handled as static content. While these are applications, or scripts, that act on user inputs, the code is stored as a file that runs on the user's browser, not on a web or application server. It may also need a file containing data that the script calls, which is also handled as static content, or may make a call to another application service on the web. An example of this would be an interactive map feature, where the mapping data is retrieved from a source such as Google and the specific data is stored in a separate file.
Web servers are capable of running very simple applications with minimal processing impact. For instance, Mass.Gov provides a common script that allows customer agencies to make forms to collect information. The script packages the user-provided information and delivers it to the specified address by email.