A website heads towards greatness when the solution evolves into the business answer. The solution must be strategically designed to solve a business problem that is scalable, accessible, low maintenance and incorporates reusable data sources. An effort of magnitude is even more important if your website needs to accommodate multiple acquired corporate sites. A CMS solution meets all of these needs and guarantees that the business will be ahead of their competitors. You can modify your content whenever, wherever you want, thus beating your competitors by being one-click away to providing meaningful data to customers.Before Solution: Business Context and Business ProblemImagine a single organization that has acquired and grown rapidly over 5 years, including multiple full service facilities, business ventures, partners and affiliations. Also, envision that each business unit is represented by their own website presence maintained by individual IT services. Further imagine that each one of these websites is outdated, data is duplicated, and has very little in common except the fact they all represent the same organization. Organizations should avoid situations similar to this at any cost but it is sometimes a vicious reality. The customer’s needs were not just to address the above problem and to construct a stable and common approach of creating websites, but also to create a collaborative and integrated website environment. More importantly, the solution needed to establish a structure and foundation for all future websites. All of the current and planned websites needed to be created with the same concept and also required reusing and sharing content between each site. In other words, if a user with author privileges updated a blog or if an external user posted a message to a blog, changes on Website A would need to automatically propagate to all websites without any involvement from a developer or content reviewer. Even resource type content such as images, videos, and banners had to be consumable by all sites. A perfect example would be updating a video describing the organization and the resource became available across multiple sites but only required the editor to update the source with a one click-update function. Another fundamental part of the business problem was that the content creation, editing, and deleting had to be designed in such a way that little to no training was needed. Due to the complexity of the customers organization environment such privilege was not previously available. And, just as the website creation process had to be an easy and self intuitive path, managing website content needed to be very user friendly so that any user would find it accessible and appealing. I have always shared the opinion that creating great, functional, and scalable websites takes time, money and other resources. It was obvious early in the project that the desire to create something great existed. But, with limited resources, the customer could only afford to build a full solution in one initial development phase. As such, the solution had to be carefully thought out and designed in such a way that minimal software development effort was required after the go-live date. Solution Part 1: Moving Towards a Collaborative and Integrated EnvironmentThe CMS tool that was chosen to achieve these goals was Jahia 6.1. (To learn more about Jahia visit www.jahia.org). As the first java-based open source CMS, Jahia offers a complete solution for developing, integrating, delivering, and managing content across Intranets, Extranets, and the Internet. The first step to building a collaborative website environment was to define a structure for all websites so that reusability and sharing of content and data could be easily accomplished. A centralized structure is one in which management is exercised by a super administrator and to which sub-units are considered dependents. In the customers’ case, these sub-units are websites and act as consumers. The advantages that a centralized solution provides are better content organization and search capabilities, a clear authoring interface, better performance, and controlled branding, yet it offers the flexibility to allow the business to advance rapidly. But the most important advantage is one common structured area to store content, thus accomplishing reusability and sharing of content and other data. Figure 1 demonstrates the central management of shared data and how data can be easily accessed from all consumers. Figure 1. CentralizationIn every complex enterprise there is more than one source of information. In this case, the customer had already made a substantial investment in an infrastructure based on architecture of web services. This infrastructure needed to be integrated in order to congregate information that would not be stored in Jahia. It was also important to the customer to expose content data in a read-only format to extrinsic actors. Since the structure was built around a centralized unit it only made sense to add these integration mechanisms there. Figure 2. Centralization and IntegrationOnce the architecture was designed it was time to implement on it. Each of the three integration mechanisms as shown in figure 2 required a different approach. The internal sharing and reusing of content was created in the resource management repository and accomplished using Jahia query library. Jahia supports more than one method of accessing internal content data. Using the query library, a global query template was created and isolated from presentation logic so that it could be easily plugged into any website running on Jahia. The query template offers query dynamics that can change in response to page creator selections. The query template works in concert with a query engine and a presentation template. The query engine is responsible for accepting the request from the page creator in the form of question/answer pairs to build the dynamic queries. Once the queries complete, the presentation template is invoked to visualize the data. This approach allows both the query engine and presentation logic to act as a plug-in and either can change at any time without affecting the other. More importantly the plug-ins can easily be incorporated into any Jahia website thus accomplishing a collaborative environment. The content is thus reused and shared. A key part of any modern web application is the ability to use asynchronous communication. The use of Ajax techniques led to user friendly, interactive web pages. After studying the requirements, it was clear that certain web pages would result in heavy page loads. Since web pages would both display internal content, and make use of external web service data, the Ajax technique significantly relieved our web application by retrieving data asynchronously in the background. Thus, interaction between the web page and the server is not bound to the moment the page is requested. In spite of the power of Ajax API, its usage is limited to same origin policy. What this means is that the hostname of the URL receiving the request cannot be different from the hostname of the web server. The centralized architecture was a perfect solution to address this problem. Instead of making the HTTP requests directly, the requests were directed to a central processing proxy component, thus allowing the reuse of code and the calling actor is only responsible for presenting the data. Figure 3 illustrates an Ajax call to an external web service (organizations infrastructure) and a call to an internal content query thus allowing the application to congregate data from two different sources before displaying the web page to the requested user. A mash-up engine was put in place to congregate the data. Figure 3. Data request process The last integration point was to support extrinsic actors to the organization. These types of actors need to be offered the data through a read-only subscription model. RSS is a perfect web-based format for publishers to publish content once to be viewed by many different types of extrinsic actors. While the subscription links exist on every website, each point to one subscription address. The RSS template follows the same principle as the query templates, with the only difference being the presentation template. The RSS presentation template formats its content according to the RSS format yet all websites share one common organization place of RSS. Solution Part 2: Business Problem – No Training Once the architecture was put in place, and integration of external components was handled, work was focused on the biggest challenge the project imposed. CMS architecture is only complete if it offers a user interface that interacts with the user to meet user needs and goals, while also satisfying organizational objectives. To satisfy the organizational objectives the user interface needed to be created so intuitive that little to no training was needed. This applied both to the interface where the websites web pages are created and constructed and to the content CRUD functions interface. Each CMS solution imposes some sort of training on the end users (administrators, publishers, content authors, etc). Jahia is no exception. Jahia provides end users three useful modes. These modes are: Edit mode – responsible for editing content and creating pages Preview mode – gives the user an opportunity to see what their changes will look like Live mode – give the user an opportunity to view the live site for comparison While these modes require training, web forms do not impose training on end users. Every person who has used internet knows how to fill out a web form. Jahia provides an out of box container form tag. A container in Jahia is a logical entity that groups fields and other containers (container lists). By having the option to group fields and other containers one can define a form per container and represent container relationships. Although Jahia is not a relational system, one can certainly accomplish this with careful design of containers. Using the container form tag and careful design of containers, CRUD templates were built for all content objects. And finally, a landing page template presented permissions of the user and allowed for easy navigation. Suppressing edit mode, the templates were presented in live mode and are the central resource management part of the architecture. The reusable content has one clear authoring interface for the entire collaborative website environment. An additional feature added to the containers is tagging. User assigned tags helps describe and categorize content which allows the content to be found again by query templates. Once the central resource management virtual site was fleshed out and ready, there was one last problem to solve. How does one actually get people to start creating websites without any training? With the background knowledge that the customers’ IT departments were split across multiple facilities, and the fact that each IT entity had a full understanding of its own sitemap, this enforced the decision to develop a common site map accommodating all potential page requirements. In the previous section, it was described how the internal reusability of content was resolved, with a global query template (questionnaire) and a query engine. While the query template acts as an instrument consisting of questions for the purpose of gathering information, the query engine acts as a request builder for query content. Lastly, the sitemap organizes web pages and creates a full overview of the practice. ConclusionIt goes without saying that a centralized CMS solution is the perfect web application. Leveraging tasks such as user permissions, database access layer, metadata, and process workflow through Jahia, I could focus on the problem that needed to be solved. Through careful analysis of the problem, and an understanding of web environments, I took advantage of simple web tools to create a solution. The chosen architecture, collaborative website environment, opportunity for reusability and sharing of content, integration to other software components of the organizations infrastructure, and unifying each one of the IT entities under one umbrella, makes it a perfect solution. I used Jahia and simple web tools to deliver web forms, questionnaire forms, and sitemaps to name a few. The combined tools provide a platform for creating and updating websites that lead to the collaborative work of many. The end result shows how one can modernize an organization thus giving it a chance to compete with its competitors. A category hierarchy system was never needed, since categorization of content was achieved by tags. A collection of tags by many users in a single system allows the content to be found again and again. Software Development