Linux Access in State and Local Government, Part VIII
eGovernment applications need to cost less, allow for rapid development, provide a user-friendly experience for constituents and offer enhanced security. Linux provides everything eGovernment initiatives need. It also provides a scalable savings opportunity for the People, which can run into billions of dollars.
In recent surveys, we have discovered government agencies spending tens of thousands of dollars to have someone build relatively sparse public web sites. "Rhode Island put itself on the cutting edge of hot-technology uptake last year when it became one of the first state governments to get beyond traditional government conservatism and implement open-source technology", writes Lisa Vaas in eWeek. "The gamble is paying off: The bill for the state's rules and regulations database came in at $40,000--only $6,000 of which was hardware costs and took one consultant four months working only two days a week to complete." But, as Neil Aggarwal of JAMM Consulting responded, "that seems awfully high".
In today's economy, state and local government agencies should think in terms of cutting that cost by well over 50% if using outside contractors. In many cases, a local agency with a Linux developer could bring in such a project for the cost of payroll in less than a month's time.
A writer recently posted a comment saying:
I've been in systems and network administration on various platforms and have more recently been promoting FLOSS and Linux in various forums. The one thing I thought would help [the] State of Calif. IT is a central site for collaboration and sharing. More than anything, government entities need to build or maintain core competencies, and this is one area they have failed to effectively address.
Smaller governmental bodies (local boards and districts, small cities and sparsely populated counties) could use systems, programs and tools developed by the larger entities. And this form of sharing could produce incredible savings.
Technology workers in government rarely consider broad public sector issues, which are better left up to politicians. Still, consider the implications of the use of standardized open-source applications in state and local government. For example, each county and parish in the US requires a register of deeds database application. With 3,142 counties (of the 87,525 local governments) in the 50 states, why should each of them have to write a separate application? Proprietary applications for this task, at the national average of $50,000, total $157.1 million. Keep in mind, that figure represents only a single database application.
As we look at different applications, we can begin to scrape together system requirements. Most government applications need databases. They manage records with similar information, such as birth certificates, drivers' licenses, criminal records, jury summons, trial dates, property tax records and so on. Let's look at a few that may not seem as obvious to a casual observer:
Accident Reporting
Building Permits
Business Licenses
Clerk Bench Warrants
Delinquent Tax
Dispatch
DMV Vehicle Tax Process
Evidence Tracking System
Jail Booking
Landfill System
Municipal Court
Pawn Tickets
Residential Exemption
Road Inventory
Utility Billing
Vehicle Maintenance
From this thumbnail, we can see that managing records is the common element of government processes. They easily fall under the domain of a thin client or three-tier architecture. Linux works well in this environment.
As state and local governments begin to automate and/or Web-enable business processes, we can begin to move decimal points to the right of the $157.1 million amount listed above. Suddenly, the costs start moving into the billions of dollars. Shouldn't taxpayers know and understand the savings available by using Linux and open-source Software?
LAMP can use the open-source MySQL relational database, which is quite popular both inside and outside the Open Source community. MySQL facilitates LAMP's acceptance in government development circles, because MySQL runs on several platforms, including Linux, OS X and the one from Redmond.
In development of government applications, the use of Perl, PHP and Python for server-side scripting usually depends on departmental resources. For example, many Web developers have used Perl with Apache for years. Human resource recruiters can find an abundance of programmers with Perl experience.
PHP works well for creating dynamic web pages, similar to Active Server Pages (ASP). Developers also find similarities between PHP and Macromedia's Cold Fusion. Win32-trained developers can make the leap to PHP easily, as it adds tags to Web pages to control how applications execute functions and how content is displayed.
Even though the US Census Bureau uses LAMP, most developers would not refer to LAMP-based systems as enterprise application servers that can deliver large-scale services over multiple locations. Still, the beauty of LAMP lies in its ability to allow developers to take advantage of well-known Web application techniques.
LAMP allows us to forget about reinventing the wheel. Its commonplace existence means open-source Web applications can install and run with minimal configuration. Such applications often require only a few steps, such as creating database tables and passwords. LAMP applications also allow configuration and management through Web browsers.
Most people think of eGovernment as moving from desktops and closed systems to thin clients and web service technology. We see eGovernment as providing information to citizens over the Web. An example of such a site can be found in the Bureau of the Census. The State and County QuickFacts Web site at the Bureau of the Census runs servers with Apache 1.3.27, Red Hat Linux, mod_ssl/2.8.12, OpenSSL 0.9.6b, PHP 4.1.2 and mod_perl/1.26. Netcraft reports the site has seven servers. Journalists further report that the system runs with MySQL.
At the state and local level, an eGovernment Web site such as the Hamilton County Register of Deeds provides an example of how to digitize and manage a database of complex property records. A register of deeds system might manage 200 to 300 fields of data, while the census bureau manages fewer fields but massive amounts of data. Both systems must provide instantaneous document retrieval for many simultaneous connections while interfacing with users in the simplest way.
By using a three-tier architecture model, all processing of the business logic remains at the server level. This allows robust PC servers to handle logic while slower desktops display the output. The heavy processing occurs on more powerful machines while client machines display the output. This may seem like a full circle return to the days of mainframes and terminals. Fortunately, desktop machines still have independent power to handle local applications and human interfaces and to connect to a variety of servers on the Internet.
Below are some live LAMP servers working in government:
Hamilton County Register of Deeds, built with Linux, Apache/1.3.12 and PHP/4.0.4pl1.
State of Rhode Island and Providence Plantations Rules and Regulations Database, running with Linux Apache 1.3.27, Red-Hat/Linux, mod_ssl/2.8.12, OpenSSL0.9.6, DAV/1.0.2, PHP4.3.1 and mod_perl 1.24_01.
Dublin County Register of Deeds, using Apache/1.3.20, Sun Cobalt, PHP/4.0.4 and mod_auth_pam_external.
State and County QuickFacts US Census Bureau, running seven servers with Apache/1.3.27, Red Hat Linux, mod_ssl/2.8.12, OpenSSL 0.9.6b, PHP 4.1.2 and mod_perl/1.26.
Because we participate in the Open Source community, finding information on the Internet becomes invaluable when we develop eGovernment applications. The Tarrant County Tax Appraisal District provides users with a plethora of information about its database that can be extremely useful for building a LAMP application.
Having a database schema and information from the county seat of Fort Worth and Arlington, Texas, provides us with a large and expertly designed database to study. You quickly can visualize a database you might build it kind. The pages give you a sense of the realness of how open-source software and the community works.
The Tarrant County Tax Appraisal District's web site provides its constituents with an area where they can load a local database with the information available over the Web. This allows the users to speed up their processing and helps lower the load on the Web services system. Tarrant Appraisal District provides files with which we can see a data model for a county's eGovernment database.
MySQL provides for a number of programming interfaces, including Perl, PHP, Python, C, C++, JSP and ODBC. Interfaces or APIs allow one to build applications that communicate with MySQL. For the purposes of our discussion on LAMP eGovernment applications, we chose PHP as our interface.
PHP developers have written a range of sophisticated functions for interfacing with MySQL. You can find and review these functions by clicking on link. The general documentation for PHP exists at the PHP documentation site, with links to additional PHP protocols.
For a fast look at how well PHP works with MySQL and Apache, grab the phpWebSite content management system from Appalachian State University. phpWebSite provides a complete Web site content management system. You will find a Web-based administration system, which allows for intuitive maintenance of interactive and community-driven Web sites.
Like most community-based development projects, phpWebSite has a growing number of modules that allow for user-friendly site customization. The project allows development of Web sites without the need for unwanted or unused features. Additionally, the development group uses valid XHTML 1.0 output and meets the W3C's Web Accessibility Initiative requirements.
The documentation team at the PHP Web site has written a high-quality tutorial. Anyone at all interested in Web services and programming should take a few minutes to write a simple PHP web page.
You can find an excellent resource for setting up a LAMP environment at the Linux Documentation Project. The Installing a LAMP System Guide by Sascha Blum takes a contemporary approach and uses a combination of RPMs and source code. Sascha speaks German and the original guide updates remain in German. We linked to a translation done in English.
Tom Adelstein works as a Linux consultant in Dallas, Texas. His current interest lies in the field of Web services, security and supporting Linux deployments. Tom is involved in the launch of Government Forge, a Web site devoted to state and local governments interested in Linux and open source.
email: tadelste@ipal.org