My organization has developed a need for some basic collaboration tools. Some of the activities that will be supported by these tools include the maintenance of job logs and manuals. The job logs require time stamps. The manuals require revision tracking. The site must be reasonably secure and accessible not only by users on the LAN but also by select users in the field.
Basically this means that we have a couple of business activities that require some level of tracking and organization.
First, our procedure manuals are maintained in MS-Word. The formatting of these documents in terms of style (fonts, etc.) is pretty basic. However, the documents are pretty long and we seem to have trouble recalling who changed what and when changes were made. Storing these documents in word and distributing them via e-mail and web sometimes leads to a situation where our field personnel are using outdated material.
Secondly, we have some field personnel who perform activities on customer sites. These folks do fill out time sheets but the detail on their specific activities that can be gleaned from a time sheet is generally pretty vague. Sometimes, its useful to be able retrace the order of events, when an activity took place and who performed that activity, and provide some basic reporting to customers.
Like many organizations we tend to be frugal with regard to our IT spending. So the question becomes how can we bring some technology to bear on these business processes in a cost effective fashion. Combining open source software (OSS) with commercial off the shelf (COTS) systems that are already in place can be an effective approach.
We can benefit from utilizing OSS in two primary ways: 1) If our solution isn't useful or is rejected by the users we can remove or tear down our solution and remove the software of which it is comprised with out suffering the sunk costs associated with a large investment. 2) If the users like the solution and get a taste for the technology deployed we want to make sure that the pieces are robust enough to handle growth and ideally retain the ability to get commercial support. Often there are companies who will provide paid support for the OSS software packages utilized, though this is not always the case.
Wikis,which are web sites that allows users to add new content and modify existing content, have grown popular because they are useful in addressing the needs described above. Wikipedia is the best known example of utilizing Wiki technology. The same methods and technologies used by Wikipedia can be used by much smaller organizations in order to address their collaboration needs.
This and subsequent entries will outline my recipe for establishing a Wiki web site that can be used by an organization to service some of the basic collaboration needs of its internal and external users. With regard to our specific business needs a password protected Wiki that can display some revision information should do the trick.
The Wiki that I've chosen to use for this recipe is JSPWiki. JSPWiki runs inside a Java EE “Container” which for the purposes of this article will be the Glassfish product sponsored heavily by Sun Microsystems. A Java EE container, and Java in general, can be beneficial to a cost conscience organization because it has many application programming interfaces (APIs) which can be used to interact with existing IT infrastructures. Also, Java enjoys a large open source community which supports many related projects that are able to co-exist and interact with Java and Java EE technologies.
In contrast to Wikipedia I will want to limit access to the content of my “corporate Wiki.” Access will be limited to a list of users and group that are already maintained in a database table inside a database stored on a MS-SQL server. This is indicative of how Java EE can “plug” into existing corporate or organizational IT resources.
What will follow in future posts is my "recipe" for setting up a Wiki to address the needs detailed above. I will break this "recipe" into parts which I hope will make it easy for a someone who is a Glassfish/Java novice but relatively comfortable navigating MS-Windows to follow along.
My "recipe" will cover what items you will need and where to find them, prepping windows, installing the Java JDK, installing Glassfish, configuring Glassfish for JDBC, configuring JSPWiki, configuring Glassfish for JSPWiki, getting Glassfish and Apache to work together, and making sure that your Glassfish server can survive a reboot.
As we proceed I do encourage feed back, clarifications or alternative approaches. So, please do comment.