Documente Academic
Documente Profesional
Documente Cultură
Stuart Crump Josephine E Justin Raul Munoz Serrano Hebba Soliman Rayomand Sui Erasmus Tapera Narla Vasudevamurthy
Preface
Lotus and IBM Redbooks have partnered together to show you how the River Bend Tea and Coffee Company used Lotus Web Content Management to build their Web site. See how they developed the architecture, deployed the system, designed the site, and went live with dynamic content. IBM Lotus Web Content Management provides a sophisticated Web content management tool and platform that is designed to accelerate the delivery and management of critical business information. It enables a collaborative approach to content creation for individuals and teams. It allows for approval of processes, management, and assets. Lotus Web Content Management is an extremely powerful and sophisticated tool that is remarkably easy to use. This wiki addresses specific technical aspects of the Lotus Web Content Management product, by discussing its underlying architecture, features, and capability. This wiki focuses specifically on Lotus Web Content Management v 6.1, but much of what is discussed here applies to earlier versions of the product as well. To support users in the initial stages of learning about the product, this wiki explains how to build a sample site from the initial concepts to asset creation and final delivery. To illustrate the steps in building the site, we build the sample site for the fictitious company, River Bend Tea and Coffee Company. The wiki then expands upon this experience and explores additional and more sophisticated areas of the product, including where there are opportunities for customization. In addition to discussing specific technical features, this wiki discusses the key concepts and best practices for creating an accurate information architecture and site framework.
-2
Hebba Soliman is a Senior Application Developer in IBM Egypt, Global Delivery Center (EGDC). She has been working as a developer and designer in many WCM- portal projects in the last couple of years. Stuart Crump is a senior accredited IT specialist working in the Lotus brand of IBM's Software group. Living in West Sussex, he travels around the UK, working primarily with finance organisations helping them adopt and gain business benefit from the entire Lotus brand portfolio. Stuart has worked with Lotus Domino, WebSphere and general web technologies for over 10 years. When not working, Stuart enjoys riding and restoring old British motorbikes and plans to take a trip across France and Spain on his motorbike. Raul Munoz Serrano is an Advisory IT Specialist in IBM Software Group. He lives in the beatiful city of Madrid, Spain. He has been working with Lotus technologies for ten years, starting with the Domino family of products and moving to Portal in the early Portal 4.0 days. He likes playing with his children and running long distances from time to time. Erasmus Tapera has worked within the IBM Software family for over 11 years. He is currently an IBM Software Architect for the IBM Portal and Collaboration Software Brand. Previous to that we was an IBM Cross Brand Software Architect, a Lotus technical specialist, and a WebSphere technical specialist. He lives 30 mins North of Philadelphia, Pennsylvania in the US and holds a BA in Computer Science from Villanova University.
-3
Narla Vasudevamurthy is a Software Engineer at WebSphere Web Content Management L2 Support, IBM Software Group. He has over 15 years of experience in the IT Industry. He has been working with Websphere Portal software since 2005. He is also a IBM Certified System Administrator - WebSphere Portal and WebSphere Application Server. Rayomand Sui is a Technical Specialist within the IBM Software Group Services team in Wellington, New Zealand. He has worked with IBM Lotus technologies for over ten years and has been involved with Workplace Web Content Management (WWCM) implementations since 2003. He has experience working with WWCM versions 1.1, 2.x, 5.1.x and 6.0.x. He joined the IBM Software Group Services team in 2006 which is part of the Australian Development Labs (ADL). He has also co-authored the IBM developerworks white paper "IBM Workplace Web Content Management V2.x to V6.x Migration Guide" and continues to assist clients in the WWCM space.
Assumptions
This information assumes you have some basic familiarity with Lotus Web Content Management software. This wiki focuses primarily on V 6.1, but much of the information applies to earlier versions of the product as well.
Become a contributor
Join us for a two- to six-week residency program! Share your knowledge with peers in the industry and learn from others. Help create content about specific products or solutions, while getting hands-on experience with leading-edge technologies. You will have the opportunity to team with IBM technical professionals, Business Partners, and Clients. Your efforts will help increase product acceptance and customer satisfaction. As -4
a bonus, you will develop a network of contacts in IBM development labs, and increase your productivity and marketability. Find out more about the residency program, browse the residency index, and apply online at: ibm.com/redbooks/residencies.html
Use the commenting feature with in the wiki. Login and add comments, located at the bottom of each page. Provide feedback in the Web form located at: http://www-12.lotus.com/ldd/doc/cct/nextgen.nsf/feedback?OpenForm
-5
Overview of Part I
Part I Introduction
Introduction Web Site Fundamentals People involved in a web site What is WCM? Overview of key new features in WCM 6.1
-6
-7
Why am I building a web site? Setting objective and measuring them Why web sites fail?
A home page - The home page is the top-most page in the web site. Local and remotely stored web pages linked to the home page. Content - Content includes text, graphic images, and sounds.
Home Pages A web site's home page is the first page that users see when they access a web site. It creates the first impression for users and sets the tone for organization and content in the site. Home pages usually contain a header at the top that gives the name of the source for the site. Some headers are very simple and contain only text, while others have designs that incorporate graphic images. Links Users access local and remotely stored web pages linked to the web page by clicking on links. Links can:
Take users to other web pages at the same site. Move users to other web pages at different sites. Jump the cursor to another place on the same page. Cause a file to be downloaded or copied from the web site to the users computer. Connect the user to other Internet resources, such as e-mail.
Content The content is the substance of a web site. It can take many forms, including:
You will need to define what your metric of success is. Is it simply the number of hits to the site? Are customers able to navigate to the information they need with minimal clicks, and are the able to place an order in an intuitive way? Your organization will need a method to measure the number of clicks required for basic navigation, the duration for which potential customers are staying on the site, and if they are finding what they need.
ago. Why do Web sites fail? They fail because organizations do not acknowledge or understand their target audience, the needs of the consumer, or the need to deliver information at the right time and right place. They also fail for the following reasons:
The need Web sites fail because the organization loses sight of their objectives and the businesses need. Neglecting to keep objectives in focus can easily lead to a Web site existing just as a digital business card when really it is meant to deliver additional traffic through their outlets or drive additional sales online. A Web site must meet the objectives of the business and ultimately align with its target audience and what they want. All design, no content With a few exceptions, the balance of design versus content must be maintained. Too much in either direction might mean that the Web site is perceived as "looking great," but with no value, or as a "great source of information," but difficult to use. Content, design (including IA) are key elements for ensuring that the initial experience and perception of the Web site is good and that repeat consumer visits can be expected. No news! Content is king. Whether for textual, applications, video, and audio reasons, for example, consumers of a Web site revisit because their initial experience was good and their expectations were met. Consumers of the site will only return if they are updated with new content. A consumer might decide to look elsewhere when the content shows signs of being out of date or no longer relevant. Maintenance of the site is key and should be planned and budgeted for as part of the Web site project. Marketing and linking Failure to market the Web site in either a traditional or digital marketing sense only leads to a failed Web site. Consumers visit Web sites through a number of mechanisms such as word of mouth, agencies, magazines, other Web sites, or search engines. Expect to use one of more of these avenues to publicize the site especially if it is within a competitive market. Audience Understanding the usage pattens and how many visitors you might expect to see on the site at any peak time can be difficult to estimate, but is important. If the site is designed to accommodate hundreds of users in a peak hour, when actual numbers are in the ten thousands, this can lead to the Web site being slow and unresponsive. If more users are staying on the Web site longer, perhaps reading or watching more, then this can mean that total visitor concurrency numbers are higher than expected. Therefore, the experience for the visitor might become unpredictable. Understanding who the audience is, what they will be doing, and how they might be doing it is key to ensuring that a Web site does not fail.
While Web sites fail for other reason too, focusing upon these five areas will help to ensure that the Web site has a healthy start. - 10
Business owners Corporate communications and marketing Graphic designers Information architects Infrastructure engineers and operations Content authors, SMEs, and approvers Consumers
Business
The members of this group typically see the business vision for the Web site and chart its progress to meet this vision. They know the line of business requirements, can define the success criteria of the project, and can help to define the underlying information architecture. In terms of business process, they can identify where the current barriers exist that are to overcome with this project Typical members of this group include members of the management board, a project sponsor or sponsors (which is sometimes shared), business owners, and process leaders.
- 11
Technology
The members of this group have representation from several areas that touch all aspects of general IT, infrastructure, and network architecture to specialized Internet service providers (ISPs, hosting providers). Members of this group are proficient with the businesses defined technical architecture and have a complete understanding of the technical requirements of the Web site. Typical members of this group include members of the IT and architecture board, IT management and experts from third parties (ISPs and CMS technical experts if skills do not already exist), infrastructure engineers, and operations.
Information
Within the functional area of "Information", it is important split this into the generation of content, and the design and layout of the content. This is an important general concept within Lotus Web content Management which we will discuss in more detail in the article addressing key underlying concepts of Web Content Management.
o
Content: This group's members represent subject matter experts (SMEs), authors, content owners, and the target group for whom the information is intended. Members of this group are extremely important because they have a deep knowledge about existing application resources and content that needs to be integrated. Typical members of this group include representatives from the various specialized content areas of the business (products and within, marketing, corporate communications, and so on).
Design and layout: Members of this group represent the delivery, styling, and management of the visual elements to the Web site. They specialize in delivering a complete user experience (UX) that is easily consumed by the visitor, while maintaining a consistent corporate style across the Web site. In this way, visitors can glean the information and knowledge required. Typical members of this group include Web layout designers, developers, UX SMEs, and associated test groups.
With the three main areas and their subsequent groups defined, the communication and collaboration between these groups must stay at a level where is always a clear understanding of where responsibilities lay, because there will be undoubtedly areas of gray where overlap occurs. In addition, these groups must clearly understand and work toward the goals of the Web site. Best practice has found that the only way to keep this groups collaborating effectively is to ensure frequent interaction as illustrated by the following figure.
- 12
Note: These groups are key to building and maintaining the process and groups that persist along with the longevity of the Web site. While omitted here is the 'consumer or visitor', this group is vital for obvious reasons and can be logically grouped with the design or layout team because they will be ultimately responsible for the experience provided by the Web site. We talk about the consumer in a another section.
Business owners
As mentioned previously, the delivery of a CMS-based Web site is one where we can typically bring together individuals under the umbrella of four distinctive groups that collaborate together on a single goal, the Web site. The Business group ultimately has the vision for the Web site. They know the line of business requirements and can define the success criteria of the project among other responsibilities. Members of the management board and executive team perform the following tasks:
o o
Set and announce the key business objectives. Set the business context. - 13
o o o
Define the project sponsors (because this can be shared). Authorize the process leaders. Set the project budgets and the time line.
The project sponsor or sponsors (part of the organization that is driving the project) perform the following tasks: Work with business owners and content owners to define the information architecture. o Define key concepts and terminology. o Steer the decision process. o Manage the project.
o
Manage the project management. Define the resources that are required. Work with business owners and content owners to define taxonomies that categorize and organize information for both the content creator and the content consumer. These tasks are closely related to the underlying information architecture.
Graphic designers
The design and layout group is ultimately responsible for delivering the complete user experience for the Web site visitor. The responsibilities include layout, styling, corporate branding, and accessibility, for example, in addition to the areas mentioned in the following list. - 14
The design, layout, and development team performs the following tasks: Helps to create and stamp the corporate design on the Web site Ensures that styling and layout provide a flexible user experience for the visitor o Liaises with SMEs where necessary to address accessibility needs o Works with the IT team to technically implement the corporate design o Helps to create the author's template environment
o o
Information architects
Aligned with the group for IT, the information architect (sometimes known as information designers ) team closely works with individuals from the group and are responsible for the delivery of the structure to the content, categorization, placement, and alignment with the visitors' expectations of information placement. Content information architects perform the following tasks: With the design team, ensure the best fit and alignment with the visitors' mental model of information o Help define the taxonomy in association with the content authors and SMEs o Define the content structure and groupings with the design team
o
Information architects can be seen as an extension of the design and user experience group. Because common elements are shared across both areas, it is important to keep communicating and working in a collaborative partnership.
- 15
Provide content quality assurance (accuracy, relevance, and so on). Provide usability feedback. Approve content
Consumers
Today information, products, and services are acquired over the Internet through Web sites that are built with the Lotus Web Content Management system. Web sites are a vehicle to unite consumers with products or information, and as such, the consumer plays the lead role. Consumers switch between competitive Web sites at the click of a mouse button if they do not find what they want within seconds of their visit. This is also the case with procurement of services and products. Sales are quickly lost if a consumer's mental model of how their interaction should take place is not aligned with how the Web site works. Therefore, clearly the consumer is important. For new Web sites, all consumer feedback is important. Getting the Web site wrong costs time, money, and consumers' trust. However, there is difficulty with getting it right the first time if you do not have user feedback to work with. The question is: how do you get that feedback before your Web site goes live? There are several answers to this question. One that stands out is to solicit the expertise of user experience, information architects, and user-centered practitioners, along with a targeted sample of willing participants from the general community. This is typically a standard practice among the methods used by these professions. For Web sites that are already in place and perhaps transitioning to a "new experience," such as a portal or new design, it is becoming common practice to offer certain groups within the Web sites' core user base to have access to a live 'beta' version of the site to gain feedback. This approach can be advantageous where there is a need to ensure business as usual (BAU). Consumers in a role that assists the organization perform the following tasks: - 16
o o o o o
Provide live and relevant Web site feedback Can validate use-case scenarios, check and balance Help eliminate overlap and misinterpretations of new design elements Provide usability feedback, crucial wit accessibility Approve content
- 17
First, we address the issue of Content Management, and discuss how web content management requires a specific strategy. Next, we analyze web content management more specifically, focusing on the key concepts such as the separation of content and presentation, and examine what makes web content management successful. Finally, we examine the question of whether or not your organization really needs a web content management system.
Understanding Web Content Management within the greater context of content management
What is content? Content can mean many different things. We start from a common understanding of what the scope of business content is. Content supports the work that the enterprise does and interacts in many ways with business operations. Enterprise Content Management is the discipline involved with the capture, storage, and management of this kind of content across the enterprise. It makes information easy to find, use, update, and discard when the time comes. Content can be categorized into the following types among others:
High-volume production content, such as document imaging and computer output, archiving, and presentation Rich media, such as audio, video, and photos Web content, such as Internet, intranet, and extranet Collaborative content, such as office documents, discussions, and e-mail
Provide an efficient and secure solution for managing content within the enterprise, including enterprise-wide content storage, access, search, distribution, and retention. This is especially true with the current focus on corporate accountability and regulatory compliance. - 18
Importance of content management Prior to discussing the specific aspects of the importance of Web content management, we begin by discussing the underlying importance of content management. The ability to effectively manage content, and more importantly information and specific knowledge, directly affects your organizations ability to succeed in the marketplace. Business information is, in most cases, the most valuable asset that you offer to your customers, employees, or business partners. Accordingly, that makes information, together with the ability to manage it, integral to the success of every business. Value is the knowledge that you add before you offer something. Business value is based on the information that you share. This concept is true both for the production and for knowledge and service industries. Looking at where this information exists, you find that it is often divided and decentralized throughout organizations. Information is stored frequently as content. For example, critical information can include product descriptions, instructions, policies, key customer issues, competitive strategies, and so forth. The effectiveness of the information you offer, and in many cases the value that you provide, depends directly upon the ability to distribute that information in a timely and efficient manner. Information within the context of Web content When your organization offers information via a Web browser, this material is considered Web content. Web content consists of two parts:
Going forward, we explain this concept in greater detail and discuss the advantages of handling the content and the design of the content separately. We begin by discussing the two approaches to creating, managing, and publishing Web content:
Static Web content Static Web content is embedded directly into the design and placed statically on a Web page. This type of content is most likely the result of programming rather than content authoring. Due to its static nature and embedded design, this type of content can be difficult to reuse and change.
- 19
Static Web content solutions often require someone within an IT department, or at least a person who possesses Web design and some Web-based IT skills, to translate content into HTML before it can be posted to a Web site or a portal. Accordingly, static Web content is more difficult to use within a dynamic Web site, which changes frequently and requires up-to-date information to deliver maximum value. Additionally, static Web content is often impossible to reuse due to its embedded design. Dynamic Web content Rather than embedding the information directly together with the design, dynamic Web content treats the content and the presentation of the content as two distinct entities. By separating the Web content from the presentation layer, you can manage and deliver content quickly and efficiently, independent of its presentation. The ability to manage both content and its presentation layer as separate entities is enabled most frequently by using Web content management systems. With Lotus Web Content Management, companies or organizations can use the flow of information. Putting information in the hands of the right people easily and efficiently is a key component in sustaining a competitive advantage. Authors do not face the technical side of Web technologies. Content that is created information can be integrated with multiple uses and processes, distributed or shared throughout and beyond an organization. For example, a single product sheet can contain complete pricing information, including internal prices that you only want to share within your organization. By taking advantage of the Multipublishing feature, you can publish a subset of the same document for your customers, without needing to maintain to separate documents. Content management within the context of applications Applications offered through a Web browser also use content that is managed by a content management system. For example a product catalogue or online store contains content that is accessed through an application that (usually) provides a powerful and helpful navigation tool. However, with ever-growing volumes of critical information distributed across Internet portals, e-business applications, intranets and extranets in various formats, deploying and maintaining effective content management methodologies can be a significant challenge. Web content management is not just about customers. It is important to employees, business partners, suppliers, and vendors because these groups represent the backbone of an organization. Making sure that they are equipped with the right information and can do business with you more easily than they can with your competitor down the street is critical. A positive Web experience motivates the user to revisit the site like nothing else can. This is a challenge that is generally underestimated by most companies. To compete in today's markets, on demand availability of information is crucial. Content management is the key. Such a powerful management tool, reaching a wide-spread audience, also exposes the risks that are associated with providing information to a broad audience. This makes it necessary to include workflow, security, and structure to reflect organization policies in a Web environment.
- 20
Going forward, we explain this concept in greater detail and discuss the advantages of handling the content and the design of the content separately. We begin by discussing the two approaches to creating, managing, and publishing Web content:
Static Web content Static Web content is embedded directly into the design and placed statically on a Web page. This type of content is most likely the result of programming rather than content authoring. Due to its static nature and embedded design, this type of content can be difficult to reuse and change. Static Web content solutions often require someone within an IT department, or at least a person who possesses Web design and some Web-based IT skills, to translate content into HTML before it can be posted to a Web site or a portal. Accordingly, static Web content is more difficult to use within a dynamic Web site, which changes frequently and requires up-to-date information to deliver maximum value. Additionally, static Web content is often impossible to reuse due to its embedded design. Dynamic Web content Rather than embedding the information directly together with the design, dynamic Web content treats the content and the presentation of the content as two distinct entities. By separating the Web content from the presentation layer, you can manage and deliver content quickly and efficiently, independent of its presentation. The ability to manage both content and its presentation layer as separate entities is enabled most frequently by using Web content management systems. With Lotus Web Content Management, companies or organizations can use the flow of information. Putting information in the hands of the right people easily and efficiently is a key component in sustaining a competitive advantage. Authors do not face the technical side of Web technologies. Content that is created information can be integrated with multiple uses and processes, distributed or shared throughout and beyond an organization. For example, a single product sheet can contain complete pricing information, including internal prices that you only want to share within your organization. By taking advantage of the Multipublishing feature, you can publish a - 21
subset of the same document for your customers, without needing to maintain to separate documents.
Responsiveness Streamlining operations and providing an integrated view of all forms of information can improve your customer relationships and enable your employees, partners, and suppliers to work together more efficiently. It can also help you reduce costs and capitalize on new opportunities. Productivity When employees spend more time looking for information they need to perform their jobs, such as documents, e-mail, reports, Web content, and more, they spend less time working and generating business. If they are not working with the latest information, they can miss opportunities and make costly mistakes. When customers cannot find what they are looking for on a Web site, they leave frustrated and dissatisfied, no matter how good the information or prices might be. That can add up to a lot of wasted hours and missed opportunities. The effort to bring visitors back again is costly. Companies that give their employees a simplified, personalized, and easily accessible user interface to access and share critical information enjoy a competitive advantage. Compliance Effectively manage your content to address the increasing demands of government and industry regulations. Keep focused on your business goals and use compliance as a lever for change to affect process improvement and business transformation. When looking at existing enterprises, we find that numerous specialized applications and databases are often already established when it comes to business-critical information. Lotus Web Content Management becomes increasingly important for companies and organizations to leverage the complete spectrum of data assets within their enterprise and share it electronically among suppliers, customers, partners, and employees. Content that is created and - 22
managed from authors for the purpose of Web publishing becomes only one component. Enterprise content management (general ECM) provides a basis for the next generation of data management, enabling customers to collect, manage, and distribute all forms of business information. An employee of a human resources department who updates a phone number in an internal application, for example, has actually executed a step within a greater content management context. Namely the changed number was simultaneously published to the Web. It is mandatory to integrate content from a broad range of existing data sources. Open standards for content exchange are the key.
On a Web page in a variety of formats, based on user preferences and personalization In a PDF file Downloaded to a PDA Streamed as an RSS feed
The content is the same, but the presentation can be adapted to best meet a users needs within the context of their specific role or preference. This approach also guarantees a consistent view and usage of a Web site. If the design changes, the content parts remain unaffected. Additionally, the content creators do not have to worry about the presentation of their content. This is important because content creators usually do not have significant knowledge of HTML. Moving forward with this idea, key concepts and functional areas that apply to Lotus Web Content Management can be grouped in terms of dynamic presentation or content management. Content creation and authoring Content creation and authoring refer to the creation of content and information that is intended to be delivered. Content creators are guided through the authoring process, by using familiar applications, without having to learn new technical skills. Workflow - 23
The accuracy, relevancy, and recency of content is assured by automating the content life cycle, from creation through approval and delivery to review and archival. Management Content becomes an asset again as control of the site is placed back in the hands of the users who understand the subject and customers best. Content publication After content is authored and approved, the content publication stage is when the content is released for delivery to the live site. The delivery can be a simple process, such as making a file available on a file system to a Web server and advertising the URL. Or it can be a more complex procedure such as moving content through a complex workflow and into a production environment. Content aggregation Content aggregation occurs when content from various sources is brought together. In a simple Web site, this occurs manually during the content creation phase. However, in a more dynamic and data-driven environment, the aggregation occurs at an application server level. Integration Aggregation, transactional integration, and performance enhancing caching enrich the user experience. Content delivery Content must be delivered to the user in the appropriate (or desired) format. Most frequently, this implies delivery via HTTP by using browsers and similar devices. Alternatively, content delivery can refer to other publish-and-subscribe methods, data feeds, or Web service protocols.
benefits from a WCM system, are there other areas that can lend weight to using a WCM system? The answer is "Yes". Ensuring that the Web site has a consistent look and feel (branding) is extremely important. It is important for a businesses' brand awareness and for ensuring that visitors to the Web site are comfortable with the layout, presentation, and navigation to content. A WCM system provides a structured approach and framework to allow the separation of content and design while ensuring consistency where required. Componentization is also an area that the WCM framework affords you, by allowing a higher degree of reuse, ultimately building more with less. Again this is another clear area where a WCM system seems like a good choice. Content and design are just two important aspects of any Web site (intranet or Internet) that benefit from a WCM system. In addition, the following aspects are important to a Web site:
Content: The creation, approval, and delivery process streamlined to take advantage of your organization's distribution of knowledge and skills. Design: Separation of design from content to allow for the design process (inhouse or agency) to deliver consistent branding of your business, its products, and services. Componentization: Reuse of assets to allow the business to deliver more with less, and saving money. Standards: A system to employ best practices where accessibility is required. Integration and delivery: Providing a framework from which a business can integrate with systems, services, and information including growth from Web sites to portals and beyond.
With these concepts in mind, you can be reassured that you are making the right decision to use a WCM system. While there might be many factors to consider, the following decision tree can guide you to some that might help or provide a starting point to expand upon.
- 25
- 26
1.4 Overview of key new features in IBM Lotus Web Content Management 6.1
IBM Lotus Web Content Management v6.0 was released and generally announced in June of 2006. With the introduction of v6.0, Lotus Web Content Management received many new and significant enhancements that added to its capability as an enterprise content management system (CMS) and introduced further levels of scalability and reliability. Today, Lotus Web Content Management v6.1 has built upon these areas further to deliver an enterprise scalable CMS capable of meeting both business and technical requirements. Version 6.1 has introduced new product enhancements in many significant areas across the platform including Administration, Authoring and management of content, Rendering, Security, Workflow, APIs and many others. The following information explores key new additions to the platform and the benefits gained through their use and implementation. Note - the following information is not a complete or comprehensive list of all the new features and capabilities within Lotus Web Content Management 6.1, but instead an abbreviated listing of some of the key new features. For more information, please visit http://www-01.ibm.com/software/lotus/products/webcontentmanagement/whatsnew.html
Administration
Library tasks: Version 6.1 enhances the management and administration of Lotus Web Content Management libraries by providing additional deletion and reporting capabilities along with a streamlined interface. Some of these enhancements are shown in the figure below.
- 27
Inline editing: Building upon the exposure to inline editing in v6.0, more sophisticated tasks can now be exposed to consumers of the Web site to allow for in context editing. With these new additions, consumers can interact with the Web site in multiple ways while streamlining the processes. The new actions include move, view versions, view content history, and the ability to populate fields during the creation process. User security selection process: The process of adding user access rights to objects within Lotus Web Content Management has been streamlined and brought inline with the model that is used within other areas of the portal. A new inheritance model has been introduced to reduce the work required to implement secure content access control.
Image selection: The image component has been enhanced to provide a simpler interface that allowing for easier location and placement of the image.
- 28
Improved table support in the Rich Text Editor: Substantial improvements have been made for table support in Lotus Web Content Management to support control of headers, styles, and colors.
Authoring template enhancements: Version 6.1 has introduced further levels of simplification options to the authoring template. The new enhancements mean that administrators have an additional degree of customization over v6.0 to allow - 29
content authors visibility of buttons, toolbars, and fields during the authoring process. Field labels can now be replaced with appropriate words of your choosing.
In addition, options include site area creation when a specific template is used.
New paging component: With the ever increasing level of information on a Web site, it is important to have options when navigating and displaying content. The new enhancements bring page control and display features to your site with ease.
- 30
The "Page size options allows a user to dynamically change the number of results shown in a page (From a set of defined page sizes). E.g.
Active filtering within the Rich Text Editor: There is now an alternative to removing the HTML script button from the content authors Rich Text Editor experience. With v6.1, you can actively filter unwanted HTML fragments from HTML elements within the Rich Text Editor. The option is configured on an individual Rich Text Editor component basis and switched on by setting the active.content.filtering.enable variable to true in the WCMConfigService.properties file in thewas_profile_root/PortalServer/wcm/shared/app/config/wcmservices/ directory
Syndication
Reporting: Syndicator and Subscriber pages now detail the status of the last syndication event. Details about the number of updates and any errors are now
- 31
Rendering
Format tags: Version 6.0 introduced a format tag that can be applied to a component when rendered. An example of this is where a component references an image (for example, Component name="img1") and you opt to have it render as a URL by applying the format tag (for example, Component name="img1" format=url"). Version 6.1 has expanded upon the available format tags to include the following tags and their options. File resource component o format=FILENAME: This tag renders the file name of the file held in the component. o format=SIZE_MB | SIZE_KB | SIZE_BYTES: This tag renders the size of the embedded file with the appropriate supplied metric. o format=SIZE: This tag renders the size of the embedded file with an appropriate metric. For example, < 1K renders in bytes 2 bytes. o format=MIMETYPE: This tag renders the mime type of the embedded resource determined by the file extension and the "extensiontype" entries supplied in the WCMConfigServices.properties file.
Dates (for tags that render dates) format=RELATIVE: This tag renders a date string that is relative to the current time (for example, Yesterday at 4:10pm o format=DATE_TIME_SHORT | DATE_TIME_MEDIUM | DATE_TIME_LONG | DATE_TIME_FULL: This tag renders the date and time for the given generic format. For example format= DATE_TIME_MEDIUM outputs April 15, 1971 12:46:47 PM. o format=DATE_SHORT | DATE_MEDIUM | DATE_LONG | DATE_FULL: This tag renders the date for the given generic format. o format=TIME_SHORT | TIME_MEDIUM | TIME_LONG | TIME_FULL: This tag renders the time for the given generic format. - 32
o
Names The format tag attribute can be used to render any attribute from the LDAP. For example, format=DN renders the distinguished name for the user. o Image resource component (all the files resource component formats) o Formats for all of the fields in the UI (BORDER, WIDTH, HEIGHT, ALT, NAME, ATTRIBUTES) format = BASEWIDTH | BASEHEIGHT: The original width and height of the image if it was automatically calculated by the system on save.
History Component Dates o field=creation: Renders the creation date for the targeted item o field=creator: Renders the user that created the targeted item o field=lastmodifier: Renders the last user to modify the targeted item o ID Component field=ID: Renders the UUID of the targeted item o User name tags awareness=true | false: Renders a VCARD for each user rendered by the tag o ID, Security, Profile and Workflow Components ifempty=(you do not have access please contact abc@ibm.com): Renders the value of the ifempty tag attribute if the selected field does not render anything o ID, Profile and Text, Short Text Component/Elements Setting htmlencode=true | false: Encodes all the text that is being rendered
Programmability (APIs)
Custom Workflow Actions : Custom Workflow Actions allow for code to be invoked as part of the Lotus Web Content Management workflow process. This enhancement opens up the workflow to allow the introduction of a step or steps where specific tasks must occur. An example of this might be appropriate where a custom notification action is needed or where manipulation of an image size item must occur before publishing. Dynamic approvers: The method "com.ibm.workplace.wcm.api.Content" has been extended to allow for the approvers to be changed, added, removed, or access checked. Library service: The library service can now be manipulated. Service APIs have been exposed to allow for libraries to be created, saved, copied, exported, or imported. Syndication: The syndication API has been exposed to allow for dynamic and finer control of the syndication process through custom code. The addition of this - 33
API allows for custom applications to be created. Specific syndication tasks, such as scheduling, reporting, or monitoring, can be achieved. The following main functions are exposed: o Enable and disable syndicators and subscribers o Start full and partial updates o Dynamically check syndication updates to see their current status o View syndicator or subscriber details (name, libraries being syndicated) o Query for the last syndication run's detail (items updated, saved, modified, removed)
- 34
Overview of Part II
Part II Architecture and Design
Overview of WCM Product architecture and Key Components of WCM Architectural Frameworks for Content Pre-rendering introduction Information Architecture (IA) o Defining the Information Architecture - What is IA, or why websites don't fall down o Key Considerations and Decision Processes - Matching Consumer Needs to your Website o Information Design o Site Acceptance o Workshop Approach o Introduction to Personalization o Search Optimization (Considerations in IA) Design and layout Usability Accesibility Navigational Wireframes more than just pretty PhotoShop screenshots Environment Types Sample physical architectures Example Infrastructure for the River Bend Tea and Coffee Company
- 35
Web Content Management architectural overview Note the following differences between Lotus Web Content Manager and Portal Document Manager:
Portal Document Manager has been removed from Portal 6.1, and therefore, such documents can no longer be rendered within Lotus Web Content Manager. Customers that have Portal Document Manager documents must provide an alternative method such as to use Lotus Quickr. Lotus Web Content Manager provides a tool to find all Portal Document Manager references for the customer to fix those references. Lotus Web Content Manager used to query for users by using WebSphere Member Manager in previous releases. In 6.1, WebSphere Member Manager has been replaced with Virtual Member Manager. Lotus Web Content Manager uses PUMA everywhere, which in turn uses Virtual Member Manager.
- 36
As this list of supported databases is subject to change, refer to the WebSphere Portal 6.1 Information Center for details on the latest supported versions and platforms, which is available at: http://www-1.ibm.com/support/docview.wss?rs=688&uid=swg27007791 In addition, refer to each product's documentation for details on the specific hardware and software requirements for these databases.
Management server itself. Unlike the Remote Rendering Portlet, there is no version of the Authoring Portlet that supports accessing IBM Lotus Web Content Management on a remote WebSphere Portal server.
IBM Lotus Web Content Management Local Rendering Portlet A local rendering portlet displays Web content on the same portal server as the instance where IBM Lotus Web Content Management is installed. This portlet can only be used when deployed to a WebSphere Portal Server that also has a live instance of IBM Lotus Web Content Management. The Local Rendering Portlet relies on the IBM Lotus Web Content Management API to interact with the IBM Lotus Web Content Management Content Server.
IBM Lotus Web Content Management Remote Rendering Portlet A remote rendering portlet displays Web content on a different portal server than the instance where IBM Lotus Web Content Management is installed. Unlike the Local Rendering Portlet, the Remote Rendering Portlet uses an HTTP connection to interact with a remote IBM Lotus Web Content Management Content Server at runtime. The configuration of this portlet contains some additional fields to facilitate this type of connection. Tip: It is important to be aware of your infrastructure when using the Remote Rendering Portlet. firewalls, Proxies, and other network issues can have a dramatic effect on the performance of the Remote Rendering Portlet.
- 38
IBM Lotus Web Content Management JavaServer Pages Tags In addition to the Java API, IBM Lotus Web Content Management provides a JavaServer Pages Tag Library that you can use when developing Portlets and other J2EE applications. The tags in this library make it very easy to access your IBM Lotus Web Content Management content from a JSP page. These tags rely on the API for their functionality so they do not provide any capabilities beyond those of the API. Restriction: Because the JSP Tags rely on the Web Content Management API for functionality they must run in the same Java Virtual Machine as the IBM Lotus Web Content Management server.
For more details on the API and JSP Tags, see the IBM Lotus Web Content Management Information Center.
- 39
Traditional
Traditionally, content is prepared in pure HTML format by using different HTML editors, and the content is hosted on a Web server for the presentation. The URLs are exchanged with the reviewers and approvers for verification and validation over e-mail. The hosting platform is lean and provides no functionality in terms of content management. The dynamic applications came into existence with CGI scripts but had lots of limitations. The evolution of the J2EE platform has brought in a new dimension to display content on Web sites. Static Web content is coupled with the dynamic content generated through servlets and JavaServer Pages (JSPs). One aspect that cannot effectively be provided through this framework is content management.
Internal facing
Internal facing sites are those meant for the employees of an organization. Apart from being simple but easily accessible (through effective navigation), there must be an important application for the employees to visit the site. Typical entities on such an intranet are news, alerts, and role-specific content. Apart from the content, in terms of production, such sites benefit immensely if the intranet users are provided access to applications that are useful for day-to-day activities, such as sales management, defect tracking, customer relationship management, or technical support. The challenge is to intersperse the content by using a content management framework, such as Lotus Web Content Management, with Portal (pages and portlets).
External facing
On external facing sites, the content must be updated because the public view decides the image of the organization. The taxonomy of the site should be well defined, and the content should be easily accessible either through browsing or search. The site needs to be fast enough and within the limits of the users' response time perceptions. Any response - 40
times more than 5 seconds are perceived to be slow by the users. The framework should support caching techniques at various levels to enhance the response times for different scenarios. The user can have a unique ID with the site, and the content can be personalized according to the profile of each of these users. The architectural and design frameworks should consider how these content management, search, caching, and personalization services can be provided to the user, with the goal of attracting and keeping the attention of the users.
- 41
- 42
- 43
Information is often voluminous and widespread over different divisions within an organization, making it difficult to maintain a consistent oversight of the structure of information and to determine a structure that is easy to understand and to use. There is rarely a single person or department with a consistent oversight of all the information that an organization wants to share. Information is used everyday, and as a result, it is often not obvious which pieces of information are most valuable or how they should be structured. By using a content management system, content providers can share more information and gain more experience, which can unfortunately result in a strain on the primary organization of the content.
The information architecture defines how the information on a Web site should be organized and linked so that users can access content. An organization should investigate, analyze, design, and implement the information architecture for a site. Then, it must face the challenge of presenting an image that enhances the way in which the user experiences the information. You might find reasons why a specific path to information supports your business needs. The experience that a user gets can be the key to success and often reflects the organizations philosophy. Frequently, an organization builds its success on a unique customer experience that cannot be ignored when architecting a Web site. In addition, the audience can vary such that it becomes necessary to separate users into categories to get a good acceptance of the way information is presented on the Web site. For example, consider the following diverse offerings:
A food company might offer both traditional, home style food and more contemporary fast food. A vehicle manufacturing company might have diverse offerings that range from passenger cars, to industrial trucks, to motorcycles, such as BMW. A technology company might offer a range of products and services, from technical consulting services to consumer electronics, such as Hewlett-Packard.
Because of this diverse range of products, brands often get their own Web sites with there own information architecture and Web address (URL). In this case, a master (parent) Web site, which includes links to detached Web sites that represent the specific branding, is the best choice. Defining the information architecture is often the most underestimated - 44
part of a content management project. Organizations frequently spend a lot of time finding the right content management system and then deciding on the best information architecture for that system. When planning the information architecture, an organization must determine the following information:
The hierarchical structure of the site The functionality that is required on the site The look of individual pages How to classify the content The flexibility of the architecture to allow the business to evolve
The information architecture determines the structure of the site, how navigation is derived, and the ease of navigating the site. You develop the following information architectures when designing a content management system:
Defining the information architecture lays much of the groundwork for how content is organized on a site. Regardless of where the content resides, you need a good understanding of the content that is to display. Tip: A good information architecture team includes representatives of all content areas that are included on the Web site. It is also beneficial to have a single person lead the team who is willing to take a leadership role and to make the required decisions.
- 45
Tea Leaves for tea interested customers Beans for occasional coffee drinkers Big Beans for coffee connoisseurs
By tracking these pieces of information, along with additional personal information such as region, age, sex, and buying and viewing trends of the site, River Bend hopes to be able to increase revenues by making recommendations and posting custom campaigns on their site. River Bend has identified the following top levels of site areas or containers for content that are directly accessible from the home page:
From these top levels, a secondary site area allows users to specify the topic that they are looking for within that area. For example, the secondary site area for products includes coffee or tea. This architecture provides an obvious separation that users can comprehend and that leads them to exactly what they expect to find. The third level site area offers more content on the chosen topic. For example, under tea, users can find black tea, green tea, and herbal tea. From both levels 2 and 3, the site offers detailed search capabilities for specific items that the user might be looking for and tailored campaign content based on the site area and user profile information. The following figure illustrates the complete hierarchical structure of the River Bend Coffee and Tea Company Web site. - 46
Top-level navigation of IBM developerWorks From the top-level navigation, users can reach all product content as illustrated in the following figure. The navigator is split into products, topics, and feedback. - 47
Depending on the browser technology, visitors have either a dynamic opening second level under each topic or menu options that they can reach by clicking. The secondary site areas are similar for all products. Each contains all related information for that product. Additionally, secondary site areas are structured by relevance to users, ranging from a new user to an expert user. That is, the IBM developerWorks Web site uses additional features of the information architecture, relevance and consistency. The third level navigation opens above the main content area in the center of the page. Menus Depending on the selected navigation level, the right area of each page shows menus as shown in the following figure. These menus give users one-click access to related content or offer additional features.
- 48
Main content area The center of each page displays the content. Links to further information enrich the content displayed in the main content area. Summary This structure makes IBM developerWorks a good example of an information architecture. This information architecture covers several needs, including intuitive navigation, consistent structure, and a user friendly site, for both the first time visitor and the frequent user, in a way that serves the wide scope of various content.
- 49
The following figure illustrates the home page or landing page, which is a quick jumping point for site visitors. This page contains the following items: 1. Offers menu to tempt visitors into navigating to new exciting content, such as a new coffee blend 2. Four images that allow quick access to the Coffee, Tea, News, and Company information 3. Footer with short links to simple contact, policy, and site map information
- 50
The following figure shows the main or general page, which provides access to everything. 4. Navigational elements expanded to show all areas of the site, one parent and one child node deep. 5. Offers menu re-used, perhaps slightly re-arranged (by date?) 6. Center of the page for the main content delivery area, with inline tools when available, and Rate button to use an API function 7. Search 8. Campaign area to deliver targeted information deepening upon season or date (for example, eggnog or cinnamon coffee at Christmas, iced teas and coffee in the summer) 9. Simple links menu with a suggestion box (remote action?) 10. Re-used footer
- 51
At times, an organization does not realize that the design of the information architecture is inadequate until the project is in progress. This can be the direct result of an ongoing analysis of an existing information architecture or the opportunity to rethink how information is structured. In such cases, projects identify significantly more information and content than originally expected. Why and how does this happen? In many cases, this is the result of content owners rethinking which information should be surfaced. Additionally, content owners can now analyze information and content outside of the context of a pre-existing information architecture or navigation structure. Ultimately, this can foster new creativity and might expose the need for a new or more expandable information architecture. If the information architecture is not expandable, an inadequate information architecture is often the result. Either of these reasons can easily cause a Web content management project to be delayed significantly. Internet or intranet Web sites are stand-alone content sources that use a structured information architecture. In this type of environment, the information architecture forms the foundation for how users consume the content. That is, users visit the Web site to read and find information. Interaction with the user is limited to forms that the user submits. In the case of portals, the information architecture in this environment needs to support both content and applications in an integrated manner. In this case, an inadequate information architecture results in a break of information flow. It is also possible that an organization can use an inadequate information architecture to force users to a certain conclusion. For example, a car manufacturer's Web site offers a good information architecture for users who are looking for the latest information about new products. However, if users want information about specific supplies, such as winter tires for the automobile, the information architecture is inadequate. The car manufacturer has fundamental business motive behind this strategy. The car manufacturer wants users to contact a local dealer instead of using the Web to gain this type of information. In this example, an inadequate information architecture forces users to follow the preferred distribution channel and, in turn, helps the car manufacturers business.
- 53
2.2.2. Key considerations and decision processes: Matching consumer needs to your Web site
Content accessibility on an intranet can directly impact an organization's overall productivity. Organizations recognize the importance of information architecture as both the primary prerequisite for designing and developing a new content management system and as the means to organize information in a way that is readily accessible to customers or employees. One example is a call center that responds to customers by using an intranet portal to maintain contracts and to give information. For this call center, the range of time that is required for an agent to find the corresponding information and to fulfill the required steps ranges from under two minutes to four and a half minutes. Thus, if 80 attempts per day are made to find information and each requires two minutes more than necessary, this call center loses 160 minutes or 2.5 hours in productivity. Even without considering the costs that result from lost productivity, the customer satisfaction will decrease. When users cannot obtain the information that they need, the organization has a dissatisfied customer or, worse, a lost customer. Then, the effort to win back these customers is significant. In addition to content accessibility, design flexibility becomes a key success factor for the information architecture of a Web site. One task is to conduct workshops with business stakeholders, including corporate communications and process area representatives. Given that the Web site will evolve as more business users provide input and, more importantly, contribute content, the site architecture can be expected to evolve as well. It is critical that the site framework be developed with flexibility for modification as a key goal. In this section, we discuss topics that you should consider when planning the information architecture.
Understanding the goals of the site Understanding your audience Consider objectives and key success factors Finding a highly effective application Defining use-case scenarios Planning the site framework and site areas Metadata, keywords, and categories Determining the components of the Web site Using workflow and syndication
Web content management projects should be driven by defined business objectives, and the primary project goal needs to accomplish those requirements. When the project starts, the business objective is often exposed to discussion as more users provide input, because content providers have a better understanding of the information that the Web site provides. However, this understanding can mislead content providers into believing that they also have a better understanding of the business needs. You need clear communication from the business constituency to monitor the motivation of the core team and the joint content provider. Unfortunately, Web content management projects often are delayed because of misconceptions between the core team, the content providers, and the users. Before starting a Web site project, everyone involved must understand the defined business goals and the user goals of the project. The challenge is to involve content owners in the defining process and to remain focused on the essentials. The user goals should be related to the users of your site (internal or external) and the experience that you want them to achieve when visiting the site. These two sets of objectives, that is the business goals and user goals, must be weighed against what is achievable in terms of budget, scope, and other limitations. When the organization understands both goals, there is a much higher chance that the content management project will be successful. In our example of the River Bend Coffee and Tea Company, the business goals and users goals are clearly defined after two studies were conducted and a conceptual review was done with the core team. The sample findings of these tasks are outlined in the following sections.
As a recommended best practice, it is important to involve users during the process of designing the information architecture. By doing so, you help to confirm the usability of the Web site and, in turn, to confirm an effective underlying information architecture. Unfortunately, in many projects, only content owners with a deep knowledge of the content are involved in the design process. While the content owners know the content very well, it is important to involve less experienced users to confirm that the navigation structure is intuitive. A good approach to understanding the target audience is to gather facts about them. The more information that you can gather about characteristics that are based on real facts, the closer you can get to finding gaps in the understanding. At times, you might need to classify the audience into groups with individual needs in order to better understand the needs. You might also need to consider cultural, geographic, age, or technical differences. Some audiences need individualism to have a positive Web site experience. What a specific user might consider appropriate and inviting can be different from other users. Often experiences from other Web sites can influence the users of your Web site. A good Web content management product offers the flexibility to set user expectations. By using traffic analysis, you can better understand the interests and proceedings of users. A Web site that is built based on the organization's good understanding of the audience offers content in which the user is interested in a way that is intuitive and convenient. In the case of River Bend, the company conducted a workshop that captured the needs of the user community through a survey of their user customer base. Several key items came out of this survey:
Information was all generic and not well organized. The existing site was hard to navigate. Specific information on the site was hard to search.
Another common mistake that occurs in projects such as these is that either the questions or the answers are left to be too vague. Obviously, this leads to assumptions being made that may or may not be correct. For example, in the previous example, the results of "the existing site was too hard to navigate" is ambiguous. It leads to other questions, such as: What specifically was "hard" about the navigation? Consider for example the following additional questions:
Were the menus too long? Was there too much scrolling? Was the resolution too poor to read?
Upon doing a follow-up survey, the previous points were then further defined so that they were useful:
Organization When navigating the site, it is easy to loose where you are The grouping of content (teas versus coffees) was not clear - 56
"I didn't feel that the site was specific to my needs" Other sites offer recommendations and receipt ideas Navigation The menus were sometimes 4 or 5 levels deep, too hard to keep track of The content was so big that there was a lot of scrolling needed Search There was no intuitive way to search for specific coffees
Avoid underestimating the role of the information architecture. Make a distinction between the business goals and the user goals. Understand the business goals and the user goals. Organize information in categories and levels. Ensure that the information architecture provides the following features: Intuitive navigation Consistent structure User friendly navigation, for both the first-time visitor and the frequent user, in a structure that serves the wide scope of various content Provide flexibility in the design as the information architecture evolves.
Ensure clear communication to those involved with the project. Involve content owners in the defining process but remain focused on the essentials. Avoid using input from content owners who have an everyday comprehension of the content. Avoid having a single person or department overlook all the content. Set one person as the decision maker. Ensure that the content is accessible. Ensure good knowledge of the audience's Web site experience. Make a distinction between different types of users. Set a realistic time frame.
In our example of the River Bend Coffee and Tea Company, a workshop was conducted with the key business stakeholders. They defined business objectives based on the - 57
feedback from their customer user community and the current state of the business. The following key items, among others, resulted from that workshop:
Increase customer satisfaction with the site. Based on individual user profile, provide at l3 new recommendations of other items that they might be interested in purchasing with each site visit. Present existing sales and promotional campaigns on the Web site in order to drive more revenue.
A Web site with a high score in terms of usability includes the following characteristics:
Information is easy to find. The site is simple to use. Pages open quickly. Creating and maintaining content is a painless process. The site is adaptable to changes. The site must be secure (where applicable), stable, and scalable for both the content and the user population.
As discussed in the section above, " Understanding your audience ", you might need to classify the audience into groups with individual needs. You can divide these groups of users at least into two subgroups:
In addition, include a second involved target group when it comes to UCD. Consider the following experts who will work with the Web content management system:
Content authors (including content creators, approvers, and so forth) Site developers and site administrators
The success of a Web content management project also depends on the usability for the every day editor's work. Their environment should be intuitive and consistently structured as well.
2.
3.
4.
5.
Description: An internal River Bend non-technical employee who needs to quickly and securely search relevant content libraries to his specific group role and create and submit for approval content based on a predefined UI template. Persona: Content Approver o Description: An internal River Bend non-technical employee who needs to quickly and securely get immediate notifications when new content is waiting for approval and be able to view, modify, delete, or approve content for immediate publishing to the Web site. Persona: Customer User: Guest o Description: An anonymous Internet user who initially spends no more than 15 seconds on the site but who needs to an immediate understanding of the company vision and what makes River Bend unique to its customers. Persona: Customer User: Coffee: Big Bean Level o Description: A self-registered River Bend Internet customer who is a frequent visitor and buyer of River Bend coffees and teas. This user expects to be made aware of new and ongoing promotions, expects to get recommendations of other products, services, and recipes, expects to quickly search for whatever the user needs to find on the site, and expects to navigate to a destination in the site within two to three clicks. o This user has a level of Big Bean, which implies that this user gets an automatic 15% discount based on buying patterns. Persona: Customer User: Tea: Tea Leaf Level o Description: A self-registered River Bend Internet customer who is a frequent visitor and buyer of River Bend coffees and teas. This user expects to be made aware of new and ongoing promotions, expects to get recommendations of other products, services and recipes, expects to quickly search for whatever the user needs to find on the site, and expects to navigate to a destination in the site within two to three clicks. o This users has a level of Tea Leaf, which implies that this user gets an automatic 5% discount based on buying pattern
o
A top-down approach investigates the content to be displayed on the site, plus the needs of the audience that is accessing the site. This approach helps to formulate - 60
the scope of the site and supports our understanding of how the overall site will be structured. A bottom-up assessment is performed, which starts from the most basic level of the Web site, the content page. This process determines which metadata, including categories and keywords, to use to profile documents.
The goal of this analysis is to determine the structure of the site and, consequently, the navigation of the site. During this process, the following core facets of the information architecture are developed:
Site framework
There are two ways to organize the content on a Web site, hierarchical and cross linking:
Hierarchical organization
Hierarchical organization of content is represented in the following figure. Each piece of content has a physical location at a level in the site. Because content is usually accessed from a single entry point (for example, the home page), hierarchical organization of content is particularly well suited to Web sites. Hierarchically structured content works best if you have well organized content that can be easily sorted into different levels on your site. Most visitors to a Web site understand the concept of hierarchies, such as chapters in a book. Therefore, this is a common navigational aid. It provides at a glance an idea of the site's structure. This type of content organization is best suited to a less technical audience.
- 61
Cross-linking
Cross-linking content is illustrated in the following figure. With cross linking, any page can be linked to any other page on the site, regardless of its location within a hierarchy. This type of content organization works well in Web sites that enclose many hierarchal levels and allows content that is located on a deeper level within the Web site to be presented at a higher level. Cross-linked content is well suited to a more experienced user and is intuitive to use only if the linking follows a content context that the audience easily understands. Frequently, only the Back button of the browser allows the user to revisit pages.
- 62
Figure - Cross-linking content In traditional Web sites, the site framework is an artificial concept based on links between pages. In Lotus Web Content Management, the site framework is defined first, and the links between the pages are generated dynamically. The different sections of a Web site are defined in site areas, and content is grouped under different site areas. Navigators are based on the site framework. By clicking a navigator, a user can access all content in a specific section. Menus display lists of content that can be located in any section. Menus usually show content that has been assigned the same category, although much search criteria exists that menus can use, including site framework and document type.
Category taxonomy
The next stage is to create a hierarchical classification system that is used when displaying content. Category taxonomy is simply the classification of content into categories. When you create this taxonomy, you can use it to apply a set of standard categories to content. The category taxonomy defines the category attributes that can be assigned to content that is located anywhere in the site. By referencing different pages of content that have been assigned the same category, content from different locations can be grouped on one page. A category refers to the subject matter of content or what your content is about, for example news or even the product type black tea . When creating a taxonomy of categories, the main goal is to make it easy for the Web site users and search engines to find specific content. An added benefit is that an organization can begin to apply standard practices around the classification of content inside the organization.
- 63
Make it easier and more effective to find the information for which you are looking. Enable more effective searching on content (either within the site or by search engines).
Two main standards groups are doing work in the area of categorization:
The Dublin Core Metadata Initiative includes specifications of the terms to be used when creating metadata. You can find information at: http://dublincore.org The World Wide Web Consortium's Resource Description Framework (RDF) provides recommendations about the way to represent resources on the Web. You can find information at: http://www.w3.org
The initiatives of these two organizations provide companies with the ability to standardize the metadata tags that they used on their site. These initiatives provide standards for terminology to be used in category taxonomy. However, they provide little assistance in the creation of the taxonomy itself.
If you base a menu on a top-level category, all content profiled with categories belonging to that top-level category and their children appears in the menu. If you base a menu on a parent-level category, all content profiled with the parentlevel category, its children, or its parents appear in the menu. If you base a menu on a child-level category, all content profiled with the child category or its parents is returned by the menu.
We recommend that, in most cases, you use only child-level categories to profile content to allow more control over what displays in menus. Taxonomies cannot be used in Web content management menu searches. If you want a menu to return results based on content that is profiled with any category in taxonomy, create a single, top-level category and base the menu on the top-level category. For our fictitious Web site for the River Bend Coffee and Tea Company, we organized the content by the five sections Products, Company, Locations, News and Contact, as shown in the following figure. Our reference implementation site structure reflects this organization. - 64
The River Bend Coffee and Tea Company navigation The secondary site areas allow the user to specify an item to search on in this area. The secondary area for Products includes coffee or tea . The separation is obvious, and users can comprehend intuitively and exactly what they can expect to find here. Based on our example at the River Bend Tea and Coffee Company, the core team next came up with following wireframe design based on the previous hierarchical design.
- 65
- 66
content propose is separated from its layout, making content and presentation flexible. Proper construction of the shell site ensures maximum reuse, flexibility, and performance. Formulating ideas about other components to be used in the Web site, such as graphics, menus, navigators, and so on, is also helpful. You can find details on designing the Web site and implementing it in the "Building the sample site" section.
This information must be created automatically for each Web page. Refer to the search methods detailed in the "Search" section of this wiki.
- 68
The River Bend Coffee and Tea Company Web site is structured by using eight components: 1. The company logo is used as the head banner. 2. The breadcrumb navigation is used to display the current page's context within the site structure. The term breadcrumb refers to leaving a trail in order to find your way back to where you started. This popular approach makes it obvious to users which path they took. By using this approach, users can move between these navigation levels and understand the information structure. 3. The personalized greeting is displayed to the customer and, in this example, also indicates their status level. 4. The navigation menu is also mirrored in the breadcrumb trail so that the user always knows where they are and can easily return to any place on the site that they had visited with only one click. 5. The content area displays the selected content. 6. Based on the wireframe design, this is where the dynamically changing campaign and recommendations are displayed. In our example for River Bend Coffee and Tea Company, in the interest of conserving real estate on the page, the core team has decided to write Java script that refreshes the area every three seconds with a combination of campaign and recommendation centric content. 7. At River Bend Coffee and Tea, search can be executed from two areas. The first is a basic text search of user-specific content from the banner area. The second, more detailed search can be run from a content area that does an advanced search of content text as well as metadata tags. 8. Copyright notice is displayed. - 69
The chosen navigation contains all levels of the River Bend Coffee and Tea Company site. Thus, the audience is not required to jump to a second navigation while researching the Web site. The navigator expands downward and can be used to support further site areas.
Creating a workflow
Workflows are required within Lotus Web Content Management to approve and authorize content that is published in the Web site. You need to create at least two stages, Draft and Published, inside a workflow. In the simplest case, the content creator is also the person who publishes the content. This configuration supports a rapid content creation process but is contrary to the motive of workflow. However, this is the most often use of workflows inside Web content management. Organizations find it favorable to accelerate the content creation process by skipping the workflow. Important: The process of content creation is always underestimated. The technology is simple, but the planning is where the real work begins. There is a significant risk in underestimating the value of the workflow process. The workflow approves the content quality and assures that content is published in an organization policy manner. Without a workflow, the consequences are that content can be published in a Web site that is identical to printed statements. This is true for internal and external published content. A recommended workflow contains the stages Draft, Approval, Published, and Archived. Every stage is logged inside a content history that makes traceability easier. Lotus Web Content Management offers various options to configure more dedicated workflows to serve further needs. An additional option to define workflows that are not supported within Lotus Web Content Management is to use its API and IBM Process Choreographer.
Using syndication
Syndication is the method used by an Lotus Web Content Management location to exchange (replicate) data from one Lotus Web Content Management location to another. Unlike workflow, syndication is not involved in the process of approving content. Syndication is only responsible for replication of IBM Lotus Web Content Management assets across multiple locations.
- 70
When creating a syndication process, Lotus Web Content Management allows you two choices for the granularity of items to be syndicated:
All Items
When configured with this setting, all elements of the Lotus Web Content Management location are replicated to the other location, including draft and expired content. Typically, authoring and development locations need access to all types of content for testing purposes. This setting is common when syndicating between distributed authoring locations or between an authoring location and a development location.
As opposed to the All Items setting, this option replicates only live content. Live content is defined as content that has been approved via workflow (live) but that is not yet past its expiration date. Typically, a production location only receives live data, so this setting is common when syndicating from authoring to staging or staging to production. Tip: Syndication always syndicates copies of your technical assets (for example, presentation templates, authoring templates, library components, and so forth). By default, there is no setting to stop this syndication. You can configure Lotus Web Content Management to workflow these items,
- 71
Site navigators Direct feature links Embedded hyperlinks Site menus Search
All means are valid, and we recommend that you leverage all site components from Lotus Web Content Management when designing and building a site to enhance user experience. To provide a relevant context for these components and to illustrate specific examples, we draw upon examples from River Bend sample site referred to throughout this wiki, and the , IBM developerWorks sites. We use these throughout this book, because we believe that they represent good information architecture and good site design. Other than River Bend, which is a fictional company, you can access these company Web sites as follows: IBM developerWorks (http://www.ibm.com/developerworks)
with different presentation templates, depending on the department, brand, location, or language. To increase the reuse and to decrease the maintenance effort, you can use components. Presentation templates can contain different kinds of components that are used depending on the site area on which the content is published. Thus, when news is separated into categories, depending on the site area, a different title logo (component) is chosen instead of creating a presentation template for every news category. Components are very helpful in customizing presentation templates but should be used reasonably.
IBM developerWorks also splits their navigation into different parts. As shown in , the first-level navigation is horizontal on the top of the page similar to a toolbar. The main navigation of the site area is the vertical-level navigation that expands downward. This navigation includes level two and three of the Web site area.
- 73
IBM developerWorks navigation - example 1 When the second level is selected, the user gets a content navigation that offers more detailed information about the navigation topics (). This kind of information design gives the audience a more detailed navigation experience but also leads to a change in the navigation design. For IBM developerWorks, a technical audience is expected, and that audience is not confused by this design break. However, other audiences might prefer to be guided through the Web site using a single navigation.
- 75
The second goal was to create an intuitive menuing system that would display relevant web content and then allow one-click access to get more information around that content.
- 76
Yet another goal was to have suggestive grouping of relevant content types so that when the end user went looking for a specific item, that item as well as other related content items were also made readily available.
Using menus
A menu is ultimately a search mechanism that groups together lists and related documents based on specific criteria, such as categories, site areas, or keywords for display and access to users. The image below displays links as images, icons with text, links with a summary, or many other combinations. These menus combine elements based on documents from more than one site area, where it is not possible to use site navigators. To users, menus and navigators provide the same functionality in that they allow a user to navigate around the site or to locate particular content.
- 77
Menu construction from various selection criteria In the example below, the site for WebSphere Portal Experts offers menus for all its content pages, as shown in the example below. Thus, menus are embedded as rich text components and are managed centrally. This solution enables WebSphere Portal Experts to re-use the same links wherever they are applicable, thus limiting the maintenance effort significantly.
- 78
Other examples:
Below is an example of "Fisheye" navigation that is now supported by the dojo capabilites of IBM WebSphere Portal and WCM. The illustration below shows how a "lazy Susan" type of selection menu can be implemented within a fairly small area on the page however expands outward, over the page, as the user mouses over the items.
- 79
page however expands outward, over the page, as the user mouses over the items. These direct feature links are embedded as rich text components and are central managed. This solution would enable any site developer to re-use the same links wherever they are applicable.
We recommend that every site include the Search, Contact, and About us direct feature links to provide the user with a good Web experience. In the example below, we look at how the company Alacrinet Consulting Services uses different aspects of Web Content Management to make a unified, cohesive, and personalized end user customer experience. The site is made up of the following areas. 1) There is MacroMedia Flash content 2) There is a content spot that has daily announcements and company news 3) There are specific content areas to make site navigation easier. 4) There is a content spot where new offerings from Alacrient are showcased. - 81
5) There are registration links where new users can create a user specific profile by which Alacrinet can create more targeted marketing campaigns.
One such offering that Alacrinet offers is a WCM implementation from within a kiosk environment.
- 82
The kiosk environment is an excellent example of how the specifications of different end user devices will have an impact on how content is displayed. In the example below, Alacrinet renders content in a touch screen environment using finger scrolling menus.
- 83
- 84
Example - embedded hyperlinks Another usage of embedded hyperlinks is in WebSphere Portals where they can be used to reference corresponding content or applications, depending or related information. This WebSphere Portal feature is called . Click-to-action capability lets you send information from one portlet to another so that you do not have to enter cross-portlet information manually. This capability leverages the way that Web content and Web applications interact and leads to more powerful dynamic workplaces. For example, if a user clicks on a specific topic in a Topic List portlet, click-to-action allows an adjacent portlet to limit the postings shown to just those in the specified topic, based on the criteria selected in the Topics portlet.
- 85
Using search
The search of a Web site is one of the most used features and is particularly useful to users who are pressed for time and who do not care to invest time in learning about the site structure. Visitors expect the search to return exactly what they are looking for, especially when they know that the information is there. Because of this high expectation, search results need to be high quality. To return effective search results, it is critical that content categories and keywords are defined and applied to each page prior to publication. See for information related to the search setup and configuration. So, how should a search work from an information design perspective? There are two options possible. First, the search function should be a simple search that is intuitive to use. The user can enter words in an input field, and the results deliver all contents that include the searched parameters, sorted by relevance. Relevance does mean it starts with the content that includes all words searched for and continues with single words found.
- 86
RiverBend General Search The second option includes a search function that offers an advanced search feature. The advanced search depends on exactly the needs of the offered content. Details could differ from a search combination linked by AND , OR , or NOT operations up to very specific needs of an application.
RiverBend Advanced search Search results can also have a different approach. Search results should generally offer a URL to the Web page that includes the cited content. To enhance the user's experience, a short abstract can also be part of the result. This abstract offers a specified number of words from the content or especially for the search result added content fields. In particular, when searching databases, results should use the advantage the structured content offers in an informative way. Details of the results can be saved for download or can be printed. There is one topic that is often forgotten when it comes to search results. If the Web site contains multilanguage content, would the visitor expect to find results in a language other then the language searched from when entering a keyword? The answer is most likely no. Language is also a search topic that should be taken into account.
- 87
Business stakeholders
Identify a set of business stakeholders, including the target group (not necessarily the designated intranet liaisons) to not only contribute to information architecture sessions but to provide feedback on general layout, design direction, and so forth. Ask these stakeholders to communicate within their groups, identify potential power users, and commit contributions of new content to the site. Consider leveraging the power users as beta testers of the site, both as users and content authors.
Wireframe demonstration
The communication should contain a wireframe demonstration that illustrates the site navigation. In that demonstration, very simple action settings should be enabled for demonstrating the multiple ways of providing information. Not all information access methods need to be demonstrated. Open and agreed areas should be identified and marked. In meetings with business users, demonstrations such as this require little preparation time but are effective in communicating accessibility and usability concepts. - 88
Here are some examples of the wireframes that were drawn up for the RiverBend site.
The following figure illustrates the home page or landing page, which is a quick jumping point for site visitors. This page contains the following items: 1. Offers menu to tempt visitors into navigating to new exciting content, such as a new coffee blend 2. Four images that allow quick access to the Coffee, Tea, News, and Company information 3. Footer with short links to simple contact, policy, and site map information
- 89
The following figure shows the main or general page, which provides access to everything. 4. Navigational elements expanded to show all areas of the site, one parent and one child node deep. 5. Offers menu re-used, perhaps slightly re-arranged (by date?) 6. Center of the page for the main content delivery area, with inline tools when available, and Rate button to use an API function 7. Search 8. Campaign area to deliver targeted information deepening upon season or date (for example, eggnog or cinnamon coffee at Christmas, iced teas and coffee in the summer) 9. Simple links menu with a suggestion box (remote action?) 10. Re-used footer
- 90
- 91
Workshop preparation
Information architecture workshops require preparation in order to be effective. Prior to conducting any workshops, we recommend that organizations develop a test site with IBM Lotus Web Content Management to gain hands-on experience with the product and to develop an understanding of the capabilities of the tool. This training helps the team to connect user requirements or wishes with the capability of the tool to support them. With that understanding, stakeholder requests that are not technically feasible can be identified immediately, so that expectations can be set correctly. Alternatives can be discussed on the spot. After a workshop is scheduled with the stakeholders of a process area, the organizations team should thoroughly review that area of the site. Site areas and a sampling of specific pieces of content should be identified and documented. Separate documented notes by content type or site area but make no additional marking on them prior to the workshop. To reach a high acceptance, we recommend a professional preparation. Because the workshop topics can get quite challenging, you do not want to spend any time discussing topics that are related to future topics. We recommend setting up the conference room for the workshop prior to its start (for example, draw a couple of page layout grids on a whiteboard and include some of the page elements that are persistent throughout the site. In addition to the information provided here, please see the article Guide to running a WCM Requirements Workshop (http://www-10.lotus.com/ldd/portalwiki.nsf/dx/guide-to-runninga-wcm-requirements-workshop) for specific recommendations and an approach to assist a consultant in defining a WCM workshop agenda.
The workshop
Unlike a workshop with the technical team, workshops with business stakeholders should avoid technical terminology or a discussion about how the IBM Lotus Web Content Management tool functions. A suggested approach includes:
Introduce the goals and objectives of the workshop, and the overall IBM Lotus Web Content Management project. Identify basic terms (grid, banner, header, navigator, and menu) that will be used to produce a work product for this process area. Have the business stakeholders validate the site areas and content that was identified in the preparation. Use notes to group like content types, and place the notes on the whiteboard within the grid. - 92
Use a system of dots to identify site levels (one dot for the top, two for the next, and so forth). Capture the raw output of the workshop on digital camera.
Work products
The workshop outputs should include:
A map of the process site area hierarchy, usually developed in Visio. Wireframes of the page layouts, usually drilling down two to three levels and normally developed in PowerPoint. (See Analysis of wireframe diagrams. )
Based on the wireframes from RiverBend, here is how our site turned out. Homepage -
- 93
Page - One of the pages illustrating content and a specialized campaign on the right side
- 94
For more detailed information about this topic, refer to this document which explains the details of the personalization rules used for this sample site.
- 95
River Bend general search The second option is to include a search function that offers an advanced search feature. The advanced search depends on exactly the needs of the offered content. Details can differ from a search combination linked by AND , OR , or NOT operations up to specific needs of an application.
River Bend advanced search Search results can also have a different approach. Search results should generally offer a URL to the Web page that includes the cited content. To enhance the user's experience, a short abstract can also be part of the result. This abstract offers a specified number of - 96
words from the content or especially for the search result added content fields. In particular, when searching databases, results should use the advantage the structured content offers in an informative way. Details of the results can be saved for download or can be printed. The topic of language is often forgotten when it comes to search results. If the Web site contains multilanguage content, is the visitor expected to find results in a language other than the language searched from when entering a keyword? The answer is most likely no. Language is also a search topic that should be taken into account.
- 97
The hierarchical structure of the site The functionality that is required on the site The look of individual pages How to classify the content The flexibility of the architecture to allow the business to evolve
The information architecture determines the structure of the site, how navigation is derived, and the ease of navigating the site. You develop the following information architectures when designing a content management system:
Defining the information architecture lays much of the groundwork for how content is organized on a site. Regardless of where the content resides, you need a good understanding of the content that is to display. For detailed information on how to determine a proper underlying information architecture - and to begin modelling the initial structure and design of your site - please refer to the following three articles in this wiki:
Defining the Information Architecture Understanding the elements of information design and effectively utilizing the tools for navigation, menus and links. Creating initial models of the site using wireframe diagrams and gaining acceptance and feedback on these.
- 98
Site navigators Direct feature links Embedded hyperlinks Site menus Search
All means are valid, and we recommend that you leverage all site components from Lotus Web Content Management when designing and building a site to enhance user experience. To provide a relevant context for these components and to illustrate specific examples, we draw upon examples from River Bend sample site referred to throughout this wiki, and other relevant sites. We use these throughout this book, because we believe that they represent good information architecture and good site design. For more information on Information Design as discussed in the wiki, please see page 2.2.3 Information Design Tips for making the website usable include:
Make a clear and intuitive navigation model for the site. Make it obvious so that the users can know - 1) Where they are now, 2) Where they have been and 3) Where can they still go. Keep the navigation model consistent throughout all pages and components of the site, Use direct embedded text hyperlinks effectively and include sub-text (mouseover text) which makes it obvious where the link will take the user
- 99
The Web Accessibility Initiative (WAI) of the World Wide Web Consortium (W3C) is focused upon addressing the needs for web accessibility. WAI provides a repository of the latest web accessibility guidelines and tools. The WCAG guidelines are primarily intended for 4 main focus groups, * Content developers (content contributors, presentation designers and developers.) * Web authoring tool developers * Web accessibility evaluation tool developers * Others who want or need a technical standard for Web accessibility The WCAG documentation provides guidelines as to how to make web content accessible to people with disabilities, that's the text, images, forms, sounds, etc.. that are part of any web page or web application. WCAG is part of a series of accessibility guidelines, including the Authoring Tool Accessibility Guidelines (ATAG) and the User Agent Accessibility Guidelines (UAAG). Note: WCAG 1.0, was completed in 1999, is it's scope is HTML & CSS. As of September 2008 the WCAG 2.0 guidelines are in draft and close to being published. Unlike WCAG 1.0, which was limited to HTML & CSS, WCAG 2.0 will be principle based in order to be applicable to all Web technologies. Here is a mapping of the two guidelines Section 508 Section 508 of the Rehabilitation Act Amendments of 1998 requires all US federal agencies to make their information technology accessible to their employees and customers with disabilities. Important to web content management is that Section 508 also applies to Web sites that are produced for government agencies.
Testing tools
Both the WAI and Section 508 websites make reference to several tools to assist the content contributor or web designer with their efforts to ensure that standards and guidelines are implemented successfully. In addition to tools provides by the standards bodies noted previously, IBM has also developed it's own tools to assist with the testing of accessible websites and social information. aDesigner - A disability simulator that helps Web designers ensure that their pages are accessible and usable by the visually impaired. What is aDesigner? aDesigner is a disability simulator that helps designers ensure that their content and applications are accessible and usable by the visually impaired. - 101
Voice browsers and screen readers read aloud the text on Web pages and are used by visually impaired people. However, these devices are less effective with certain kinds of content, such as highly graphical material. Web developers can use aDesigner to test the accessibility and usability of Web pages for low-vision and blind people.
aDesigner also helps users to check accessibility of ODF documents and Flash content. It also has accessibility information (MSAA/IA2) inspection functions. Rational Policy Tester - Accessibility Edition The Accessibility Edition helps ensure Web Site user accessibility by monitoring for over 170 accessibility checks. It helps determine the site's level of compliance with government standards and displays results in user-friendly dashboards and report.
- 102
The following figure illustrates the home page or landing page, which is a quick jumping point for site visitors. This page contains the following items: 1. Offers menu to tempt visitors into navigating to new exciting content, such as a new coffee blend - 103
2. Four images that allow quick access to the Coffee, Tea, News, and Company information 3. Footer with short links to simple contact, policy, and site map information
The following figure shows the main or general page, which provides access to everything. 4. Navigational elements expanded to show all areas of the site, one parent and one child node deep. 5. Offers menu re-used, perhaps slightly re-arranged (by date?) 6. Center of the page for the main content delivery area, with inline tools when available, and Rate button to use an API function 7. Search 8. Campaign area to deliver targeted information deepening upon season or date (for example, eggnog or cinnamon coffee at Christmas, iced teas and coffee in the summer) 9. Simple links menu with a suggestion box (remote action?) 10. Re-used footer - 104
- 105
Authoring
Authoring is where you develop and unit test the Web Content Management technical assets such as presentation templates, HTML components, menus, and navigators. In addition, this server can be the first place you install patches and fix packs to ensure that they do not negatively impact your Lotus Web Content Management servers. Typically, you syndicate changes to the staging environment to roll out changes. These changes are, in turn, syndicated or replicated to the production or live environments after appropriate testing. Restriction: Lotus Web Content Management does not currently support the notion of selective replication. That is, you cannot have Lotus Web Content Management only syndicate design changes from the authoring server to other servers in your environment. Therefore, you must be careful when syndicating content to or from an authoring server. One approach is to set the syndicator to syndicate only live content and delete all content (via the API) prior to syndication. Another similar approach is to configure syndication the same way but have no live content in the authoring server. Regardless of your preferred approach, be careful when syndicating from the authoring server to other servers.
The content authors and approvers create, edit, preview, approve, and expire content. This environment can be distributed if required. For example, if you have offices across the globe, it might make sense to have authors work on a server closer to their physical location as opposed to a centralized authoring system. If you choose to have a distributed authoring environment, it is important to ensure that people on separate servers do not attempt to work on the same content simultaneously. In situations where distributed authoring environments make sense, secure your Lotus Web Content Management environment such that people on each authoring server can only modify a unique set of data.
- 106
Staging
Staging is sometime perceived as merely "nice to have", but a staging environment is highly recommended as a safety net. A staging environment provides a chance to review changes in the context of your whole site before they are syndicated into the live environment. This can include previewing the Web content and integrating it to or from other applications. A staging environment is particularly useful if you are pushing out a large number changes simultaneously. A staging environment can also tie into your test environment, depending on the relevant testing that is part of your content management and WebSphere Portal Development life cycles. From a best practices perspective, the staging environment should use all functional elements found in the production (live) environment. For example, if your production environment contains a cluster for Lotus Web Content Management servers,your staging environment should too. Designing your staging environment in this manner provides two potential benefits:
Testing
If you need to test a new configuration, install a patch or fix, and so on, you need a place to test such changes prior to implementation on the production servers. If the staging environment mirrors your production environment, you can confirm such changes in staging.
Performance testing
In an ideal environment, staging is an exact duplicate of the production environment. If this is the case, you can easily do performance testing in the staging environment. If the staging environment contains all elements of production but on a smaller scale, you can still use this environment to run performance testing. However,you have to extrapolate the results, which can lead to incorrect performance expectations.
Production (live)
The production (live) environment provides the live site to site visitors and is tuned for fast rendering of Web pages and portlets. This environment is often clustered for both failover and performance. Live environments often include other performance-enhancing software and hardware to help with caching, load balancing, and failover.
Content Management servers. In addition, it is a typical requirement to have content pass through a formal approval process before it can be viewed on the Web site. Lotus Web Content Management provides solutions for both of these issues with workflow and syndication. New users of Lotus Web Content Management frequently interchange these two terms as though they are one and the same. However, these two capabilities are complementary, and you must make sure that you understand the role of each within Lotus Web Content Management.
Workflow
Workflow controls the creation, approval, and run-time (live) access to an item. A workflow consists one or more stages. All content in Lotus Web Content Management must go through a workflow process, even if that workflow is a simple one-step, express approval. Tip: Content cannot be seen by site visitors at run time (live) until the content is approved.
Syndication
Syndication is the method used by a Lotus Web Content Management server to replicate data from one Lotus Web Content Management server to another. Unlike workflow, syndication is not involved in the process of approving content. Syndication is only responsible for replication of Lotus Web Content Management assets across multiple servers. Its intended use is as an ongoing process to keep a receiving server or subscriber up to date with the latest content and design changes from the transmitting machine, which is also known as the syndicator. In versions of Web Content Management prior to V6, a syndicator spans the entire data store. In version 6, it is possible to partition a data store into multiple (virtual) libraries. You can configure a syndicator to syndicate single or multiple libraries. When creating a syndicator, with Lotus Web Content Management, you have two choices for the granularity of items to be syndicated:
All items: When configured with this setting, all elements of the Lotus Web Content Management server are replicated to the other server, including draft and expired content. Typically authoring and development servers need access to all types of content for testing purposes. This setting is common when syndicating between distributed authoring servers or between an authoring server and a development server. All live Items: As opposed to the All items setting, this option only replicates live content. Live content is defined as content that has been approved via workflow (live), but is not yet past its expiration date. Typically a production server only receives live data, so this setting is common when syndicating from authoring to staging or staging to production. - 108
Tip: Syndication always syndicates copies of your technical assets, for example, presentation templates, authoring templates, library components, and so forth. By default, there is no setting to stop this. You can configure Lotus Web Content Management to workflow these items at which point they follow the same rules as content.
- 109
In real-world installations of Lotus Web Content Management, a variety of common infrastructure designs are in place. The primary differences in these designs are due to variations in several basic assumptions:
Site size and complexity: For a relatively small Web site, it might not be necessary to have individual servers dedicated to all four types of Lotus Web Content Management environments. Funding: In many cases, there is a limitation in regard to the funding provided to build out the Lotus Web Content Management infrastructure. In these cases, you must construct your environment as soundly as possible within the budget. However, the budget is likely to force you to reduce the infrastructure. Corporate standards: Your company standard might not allow for the creation of certain types of servers. For example, it is quite common for smaller companies to omit the staging environment because it requires time and resources to perform the content review in this stage. Important: As you look at these various architectures, remember that these are only representative architectures based on practical experience in deploying Lotus Web Content Management. Many other architectural combinations can be built based on your organizations needs. Use these architectures as a baseline from which to build your environment.
Basic architecture
The basic architecture (illustrated in the following figure) is the smallest acceptable design for an IBM Lotus Web Content Management infrastructure.
- 110
Sample architecture Basic In the basic architecture, a single Lotus Web Content Management server is responsible for all Lotus Web Content Management activities. Site visitors access this single server for content when they visit the Web site. An HTTP server is placed in the DMZ to receive all requests for site content. This HTTP server acts primarily as a proxy to shield the Lotus Web Content Management server from direct access. If you use IBM HTTP Server (or Apache), the WebSphere Portal and Lotus Web Content Management server can generate an HTTP plug-in to ease configuration of the HTTP server. While this architecture is technically feasible, there are a variety of issues that make it suboptimal.
Design advantages
Design advantages include simplicity. This design is simple to implement due to the limited number of components that are involved.
Design disadvantages
This architecture has the following design disadvantages:
Failover or redundancy: This environment has no failover or redundancy in any layer. If any one part of the system fails, then the entire site appears to be down. Load balancing: This environment has no load balancing capabilities. There is only one Lotus Web Content Management server, and it must handle the entire workload at all times. Maintenance: To perform site maintenance, the site must be unavailable. - 111
Intermediate architecture
The intermediate architecture (illustrated in the following figure) attempts to correct the primary run-time deficiencies of the basic architecture.
Sample architecture - Intermediate In the intermediate architecture, multiple Lotus Web Content Management servers share the responsibility for Lotus Web Content Management activities. Site visitors can access any of these servers for content when they visit the Web site. Multiple HTTP servers are placed in the DMZ to receive requests for site content. These HTTP Servers perform two primary functions:
Proxy: The HTTP servers act as a proxy to shield the Lotus Web Content Management servers from direct access. If you use IBM HTTP Server (or Apache), the WebSphere Portal and IBM Lotus Web Content Management server can generate an HTTP plug-in to ease configuration of the HTTP Server. Load balancing: The HTTP plug-in can be configured to provide load balancing based on a variety of algorithms. If your Lotus Web Content Management servers are not similar in processing capabilities, you can set up the plug-in to load balance traffic according to server capacity.
While this architecture improves upon the basic architecture, still several issues make it suboptimal for larger environments.
Design advantages
The intermediate architecture has the following design advantages: - 112
Simplicity: This design is simple to implement due to the limited number of components that are involved. Load balancing and redundancy: If you are using IBM HTTP Server (or Apache), this environment has basic load balancing capabilities. Because there are duplicates of all components, a basic level of redundancy exists in this design. Maintenance: With multiple servers available to deliver content, site maintenance can be performed without the entire site becoming unavailable.
Design disadvantages
The intermediate architecture has the following design disadvantages:
Administration: As more Lotus Web Content Management servers are added to the infrastructure, the maintenance effort to make changes increases in a linear fashion. Changes must be manually made to each server because the servers are not clustered in this design. Failover: While we have redundancy with this design, there is no automated failover in the event that a specific component fails. If any one part of the system fails, there is a likelihood that the site is down to some subset of the users.
- 113
WebSphere Portal and Lotus Web Content Management integrated When you cluster WebSphere Portal servers, they share an identical configuration. This configuration is managed from a WebSphere Deployment Manager server (not pictured). The Deployment Manager is responsible for synchronizing the WebSphere Portal configuration across all servers in the cluster. Thus, when you deploy a Lotus Web Content Management portlet or create a new portal page, the Deployment Manager synchronizes all servers in the cluster, which is a reduction in administrative time and effort. In addition, when you cluster the WebSphere Portal servers, the Deployment Manager can create a plug-in for IBM HTTP Server and Apache that allows the HTTP servers to gracefully failover in the event that one of the portal servers stops functioning. While setup and maintenance of a cluster take time and effort, this effort is typically small compared to the ongoing benefits provided to the infrastructure.
Design advantages
The WebSphere Portal and Lotus Web Content Management integrated architecture has the following design advantages:
Load balancing and redundancy: If you are using IBM HTTP Server or Apache, this environment has basic load balancing capabilities. Because there are duplicates of all components, a basic level of redundancy exists in this design. Failover: With the addition of a cluster, the HTTP Server can provide failover for the WebSphere Portal servers. If any one part of the system fails, the entire site does not appear to be down. Maintenance: With multiple servers available to deliver content, site maintenance can be performed without the entire site becoming unavailable. Local rendering portlet: If IBM Lotus Web Content Management is running on all portal servers, you can use the Local Rendering Portlet. By not having to communicate with an external Lotus Web Content Management server (as - 114
required with the Remote Rendering Portlet), you eliminate a potential performance bottleneck. Administration: As more IBM Lotus Web Content Management servers are added to the infrastructure, the maintenance effort to maintain the infrastructure does not increase significantly. Changes to server configurations are performed from the central Deployment Manager console.
Design disadvantages
The WebSphere Portal and Lotus Web Content Management integrated architecture has the following design disadvantages:
Complexity: This design is fairly complex. The learning curve for installing and administering a clustered environment servers should not be underestimated. Cost: Enabling Lotus Web Content Management on every WebSphere Portal server quickly increases your infrastructure cost.
Lotus Web Content Management and WebSphere Portal on separate servers - 115
As with the other advanced architecture, this configuration clusters the portal servers. However, in this configuration, we create a separate cluster for the Lotus Web Content Management servers. When you cluster the WebSphere Portal or Lotus Web Content Management servers, they share identical configurations within their respective cluster. This configuration is managed from a WebSphere Deployment Manager server (not pictured). The Deployment Manager is responsible for synchronizing the configuration across all servers in each cluster. This means that, when you deploy an updated Lotus Web Content Management portlet or create a new portal page, the Deployment Manager synchronizes all servers in the appropriate cluster, resulting in a reduction in administrative time and effort. In addition, when you cluster the WebSphere Portal or IBM Lotus Web Content Management servers, the Deployment Manager can create a plug-in for IBM HTTP Server or Apache that allows the HTTP Servers to gracefully failover in the event that one of the portal servers stops functioning. This is how both sets of HTTP Servers can provide failover for WebSphere Portal and Lotus Web Content Management requests. Note: It is technically possible to have a single set of HTTP Servers act as the front end for all IBM Lotus Web Content Management and WebSphere Portal servers. This requires a manual modification to the plug-in that combines elements from the plug-ins created by each cluster. Because there are duplicates of all components, a basic level of redundancy exists in this design.
Design advantages
The WebSphere Portal and IBM Lotus Web Content Management separated architecture has the following design advantages:
Failover: The addition of a cluster allows the HTTP Server to provide failover for each cluster. If any one part of the system fails, the entire site does not appear to be down. Maintenance: With multiple servers available to deliver content, site maintenance can be performed without the entire site becoming unavailable. Administration: As more WebSphere Portal or IBM Lotus Web Content Management servers are added to the infrastructure the maintenance effort to maintain the infrastructure does not increase significantly. Changes to server configurations are performed from the central Deployment Manager console.
Design disadvantages
The WebSphere Portal and IBM Lotus Web Content Management separated architecture has the following design disadvantages:
Complexity: This design is fairly complex. The learning curve for installing and administering a clustered environment servers should not be underestimated. Remote Rendering Portlet: If IBM Lotus Web Content Management is running on a separate set of servers all portal servers, you must use the Remote Rendering - 116
Portlet. Because this portlet communicates with an external IBM Lotus Web Content Management server, there is a potential performance bottleneck if the network connection is poor. Note: There is a cost-benefit analysis with regard to clustering stand-alone Lotus Web Content Management servers. The Deployment Manager automatically creates the plugin for the HTTP Server. This plug-in makes for easy setup of failover within the Lotus Web Content Management tier. If the clustering issues have you leaning toward not clustering the Lotus Web Content Management servers, other techniques can provide failover for the Lotus Web Content Management server tier. For example, several vendors make hardware that can perform this task. Of course this hardware has additional costs and configuration issues. No single answer will work in all scenarios.
- 117
2.8 Example Infrastructure for the River Bend Tea and Coffee Company
In this section, we combine the concepts that are described throughout this section and build an example infrastructure for the River Bend Coffee and Tea Company. Note: Because River Bend is a fictitious company, all of the assumptions and requirements were created solely for the purpose of this discussion. In a real world situation, there are far more issues to take into consideration when designing an infrastructure.
We keep the example infrastructure moderately simple in an effort to ensure that we explain clearly the key issues around Lotus Web Content Management. Certainly far more complex infrastructures are in place today for working with Lotus Web Content Management. You can extrapolate the concepts that we describe in this section into larger designs as needed.
Environments
Due to River Bends small size and single office location, we implement the following environments:
Authoring: River Bend has a single office location and a small number of content creators (~10). All content creation and management is handled by employees at this location. With these parameters in mind, a single authoring server is sufficient for the needs of River Bend. Due to the small number of developers (two) at River Bend, this same server also serves as the development environment. Staging: The staging environment is used by River Bend for review of content and performance testing of the overall infrastructure. With this in mind, the staging environment must mirror all functional elements of the staging environment, including the cluster and failover implementations. Production: River Bend wants to build a production infrastructure with redundancy across each element in an effort to avoid downtime. With this in mind, River Bend builds a clustered environment. Because the majority of all content on the site comes from Lotus Web Content Management, River Bend implements Lotus Web Content Management and WebSphere Portal in an integrated fashion.
- 118
Production
River Bend wants to provide for a reasonable amount of failover and redundancy within their infrastructure. Furthermore, River Bend wants to implement typical security best practices to secure their infrastructure. - 119
Private (trusted) network The trusted network is not directly accessible to people from outside the River Bend offices. A firewall is used to secure the trusted network from such access. To provide redundancy, load balancing, and failover of Lotus Web Content Management content, we implement two WebSphere Portal and Lotus Web Content Management servers in a clustered configuration. Clustering the servers allows for the automated generation of an HTTP plug-in file that automatically handles load balancing and failover across all WebSphere Portal and Lotus Web Content Management servers in the cluster. This plugin file is generated from the Deployment Manager server (not pictured). Demilitarized zone (DMZ) In order for consumers to access the River Bend Web site, they type a URL into their Web browser. From a security perspective, we do not want such traffic to directly access our trusted network. Instead, we create a DMZ for our two HTTP servers. The first set of firewalls allows for direct access to the HTTP servers from the Internet, but only on applicable ports, such as 80 (HTTP) and 443 (HTTPS). When the HTTP servers receive a request for Lotus Web Content Management content, they pass the request through the second firewall to the Lotus Web Content Management servers. The second firewall is configured to allow traffic to the Lotus Web Content Management servers only from the HTTP servers. This stops site visitors from directly accessing servers in the trusted network. The HTTP servers have a plug-in file provided to them by the WebSphere Portal and Lotus Web Content Management cluster Deployment Manager. This plug-in automatically configures the HTTP servers to handle requests for the WebSphere Portal and Lotus Web Content Management servers. In addition, the plug-in provides basic failover capabilities in the event that one of the IBM Workplace Web Content Management servers crashes. Internet The Internet is where site visitors initiate requests for the River Bend site. Our DMZ must be properly configured to allow access to the HTTP servers from the Internet and any other valid source location such as the company intranet.
Syndication
Syndication is used to move our Lotus Web Content Management content between the various environments in the infrastructure. The syndication flow for our infrastructure is fairly straightforward. Authoring to staging Because we have a single authoring server, we must set up syndication from this server to each staging server. Because staging is not an appropriate location for content modification, we only syndicate live content to the staging servers. As content is approved and new technical assets are created, the staging environment collects syndicated changes from the authoring environment. During normal operation, the syndication from authoring to staging is enabled. Staging to production - 120
When content is reviewed in the staging area, we need to syndicate to our production servers. To facilitate this, we configure one of the staging servers to syndicate its content out to all production servers. Because the staging environment collects syndicated changes from authoring in real time, we do not want to set up a similar syndication pattern from staging to production. If we do, approved content on the Authoring server syndicates to staging and then to production automatically, which defeats the purpose of having the staging environment. The only way to stop this from happening is to set up the syndication from staging to production but then disable the syndicator. When the webmaster is ready to confirm a set of changes, they perform the following process: 1. Disable syndication from authoring to staging. When the webmaster starts to review the content and design changes, you do not want additional data showing up in the middle of the testing process. 2. Review content in staging as needed. 3. Enable syndication from staging to production. By doing this, the reviewed and approved changes can syndicate to the production servers where they are viable to site visitors. 4. Disable syndication from staging to production. When the content is pushed out to the production servers, you want to disable this syndication to ensure that no additional content syndicates to production accidentally. 5. Enable syndication from authoring to staging. When the production servers are updated, we want to start aggregating the next set of changes on the staging server. Important: Syndication is an important process. You should plan out your Syndication strategy carefully prior to implementation.
- 121
Overview of the sample site to be created Overview of key concepts and terminology for WCM Components o Separating content and presentation o Componentization and the page design concept o Key Lotus Web Content Management definitions - Overview of functions, components and items o Key Lotus Web Content Management definitions - Authoring Templates, Category Management and the Site Framework o Key Lotus Web Content Management definitions - Design and Development Components o Key Lotus Web Content Management definitions - Menu Component o Key Lotus Web Content Management definitions - Other Components Steps to building the site o Creating an IA in WCM o Working with libraries o The site framework o Taxonomies and categories o Introduction to Workflow for the River Bend site o Authoring templates o Creating Components Image Components Authoring Tool Component Navigator Component Menu Component Personalization Component Page Navigation Component o Using StyleSheets o Presentation templates o Creating the content for the River Bend Site - Assigning Content Items to Site Areas o Viewing the Content within the Site - Default and Viewing within a Portlet Managing the publishing process o Understanding Security and Security Levels in WCM o Workflow - creating a basic and custom workflow for River Bend Site o Using collaborative editing tools - versioning, link management and locks o Previewing content Personalizing your site Using campaigns Internationalization Search Functionality in Portal and WCM - Making RiverBend Content Searchable
- 122
3.0 Overview of the Sample Site - River Bend Tea and Coffee Company
For the purpose of providing a realistic business context to this section, we use the River Bend Tea and Coffee Company as the basis for the development scenario. River Bend Coffee and Tea Company, a subsidiary of WWCorp, is a fictitious company that uses Lotus Web Content Management software. It operates a chain of 20 retail stores in 12 cities worldwide. In addition, the company runs an Internet-based retail operation, offers small-scale catering services, and has launched a certification program for employees and customers who wish to become skilled roast masters. The figures below illustrate highlights of the site and provide a brief overview of the components we build in this section. Additionally, refer to the document 3.1 Overview of key concepts and terminology for WCM Components. Figure 1 shown below illustrates the home page that a user sees when first entering the site. From this page, the user can click on one of four images at the bottom of the page to navigate to a areas of the site dedicated to Beverages, Company Information, Food, or to learn about New Offerings.
- 123
Figure 1 - Homepage Figure 2 shown below illustrates the "Beverages" area of the site. From within the Navigator on the left, the user can also navigate to pages dedicated to Coffee or Tea.
- 124
Figure 2 - Beverages Figure 3 below illustrates the "Careers" page within the Company Information portion of the site.
- 125
Figure 3 - Careers with River Bend Figure 4 below illustrates the "Food" page within the site, describing current offerings.
- 126
Figure 4 - Food Figure 5 below illustrates current promotions. This page is presented either via the Promotions element within the left Navigator, or can be reached via the Promotions Menu Component on the home page of the site.
- 127
Figure 5 - Promotions Figure 6 below illustrates the Tea page within the beverages portion of the site.
- 128
See Separating content and presentation See Componentization and the page design concept See Key Lotus Web Content Management functions, items, and definitions
- 129
Figure 1- The example River Bend Coffee and Tea Company Web site
- 130
The area of the Web site through which the user is navigating The user's personalization settings (for example, preferred color) Predefined presentation settings (for example, print layout) The online device which accesses the content
This approach also guarantees that a Web site has a consistent look and feel. If the design changes, the content parts are unaffected. Additionally, content creators do not need to worry about the presentation of content, which can be beneficial when the content creators do not have specific HTML knowledge. Content can be displayed using different presentations. For example, the River Bend Web site contains a Promotions list section and a Promotion section. All content documents in this section are displayed as a list showing only the titles and a link (see Figure 2).
Figure 2 Promotions list The link opens the document so that the user can read the entire text. In this case, the title, summary, and body are displayed (see Figure 3). These are two different - 131
presentations of the same content document and illustrate the separation of content and design.
A page displays the title and summary. When an author edits these fields with an in-place or WSIWYG editor, only these fields are available for editing. With the body field, no change is made unless the editor moves to a page where the contents of body field are also displayed. At this point, the editor has access to the body field. This approach requires editing the same content twice from two different access points.
- 132
You can imagine how this approach leads to inconsistency in content. Therefore, when content has to be changed, the ability to open the whole content document in an editor allows you to change fields consistently. In this way, you can achieve the separation of content and presentation.
Figure 4 Edit link for one of the promotions in the Promotion page Clicking Edit opens the document in the Authoring Porlet, as shown in Figure 5
- 133
Figure 5 Document opened in the Authoring Portlet Future releases of Lotus Web Content Management are expected to provide enhanced editing functionality for this feature.
- 134
Figure 6 Components on the River Bend page Figure 7 below illustrates the relationship between components and shows how a Web page is a composite of design and content components. In essence, a typical Web page can be constructed from the following elements: Presentational layer : The look and feel that controls how the page should be presented. Determining factors include:
What device or type of browser is intended for displaying the information Font, color and other graphical components to be displayed
Content layer : The information about the page. Determining factors include:
Tools for accessing content, such as authentication (sign in), search, and so forth
Information architecture layer : How the content fits into the overall site information structure. Determining factors include navigational aids, such as a navigator, menus, and breadcrumbs.
Figure 7 Web page component layers The concept of componentization remains consistent throughout the different roles that are associated with creating, maintaining, and administering a Web site, namely authoring, site design, and maintenance processes. This componentization allows for the traditional, encompassing role of a Web master to be separated into a more specific role.
- 136
Use a naming convention for the objects that is descriptive to make it easier for other developers to identify objects for reuse. The River Bend Web site uses prefixes such as NAV for navigators and Menu for menus. Identify the different types of pages in the site and look for common elements between the pages. Remember that you can use additional information components to allow content creators to customize a Web page to their needs. A site can often be broken down into a set of page styles, such as the Home page, content pages, menu pages, and so forth. You can then deploy these pages across the site to maximize reuse.
Attention: While it is true that components can be reused many times, take care to ensure that these components are not too dissected and nested such that they became cumbersome to maintain. In addition, remember that nesting components can impact page rendering and site performance.
Tips:
Preferably, all objects should be modular so that they do not rely on any other object to close a < table > tag or to put < script > tags around it. You should be able to change a component slightly without having to change any other elements that rely on that component. All functionality should remain within the component that needs it (either coded directly in the component or in the form of another complete component).
- 137
3.1.3 Key Lotus Web Content Management functions, items, and definitions
Key Lotus Web Content Management Definitions - Overview of functions, components and items
This section discusses the Lotus Web Content Management items that are used to build a Web site as well as the functions that secure and maintain a Web site from a Lotus Web Content Management perspective. This section summarizes functions and items and then, in subsequent sections, includes an in depth discussion on their functions.All examples are based on the River Bend Tea and Coffee Company Web site.
Lotus Web Content Management fields Item and component security Lotus Web Content Management Items Content Centric Items Architectural items and components
Lotus Web Content Management defines components and items in its own technical sense. All elements in the Authoring Portlet Item Navigator which are defined within the Component Library are referred to as components . All other elements -- from within Content Library, Presentation Templates, Authoring Templates, Site Management, and Workflow Management -- are referred to as items .
Identification-Fields: o Name: Required field to enter the item's name that is used in the authoring environment. o Display Name: Appearing in the Authoring Portlet Navigator as well as in references between items and components.
Attention: Content items in the River Bend example Web site use a Display Title field. This field is shown on the Web site while the Name field is not. It is not required to have identical values for Name and Display Title. However, doing so eases administrative tasks. Description: A comprehensive description. This is an optional field. Authors: Additional authors for item. This field is not a security feature. If you need security features, you should use security options. This field is used to reference items with ID component tags. o Owners: Additional owners for item. This field is the same as the Authors field.
o o
- 138
Content-centric items
Creating, managing, and using content-centric items is related to the content constituency which is performed by subject matter authors and content owners. Content-centric items include the following:
Authoring template
The authoring template is used by a content creator to create content by entering text, predefined resources (such as images, files, and so forth), and components in fields.
Categories are predefined terms that are grouped into taxonomies that are similar to keywords, while keywords -- which are used in an authoring template field -- are not predefined but are text-free.
Workflow
Because every content item has to pass a workflow in order to be published, workflows are essential elements. However, their purpose is related strictly to life cycle. By default Workflow is enabled for content items but can be configured for all items and components by inserting the appropriate values in the aptrixjpe.properties file.
Content
Content items are any kind of information intended to be published to a Web site and are created using authoring templates.
Library
- 139
Libraries act as a container for the components and contents. They are used in order to separate items, whether to separate between the contents and components, or separate based on projects or for any other design purposes.
The Site Framework defines the hierarchical site structure which is the case for the main Web site navigation.
Design components
A number of design components are available for a customized design of a Web site, such as the Navigator, Menu, and HTML components, Image and File resources, and so forth. These design components are stored under the Components section in the authoring portlet.
Presentation template
In the presentation templates , everything comes together and the Web site can be viewed as a whole. Design components are referenced within the presentation template form the look of a Web page (such as the header or stylesheets), and content item fields are referenced to display text on the Web page.
- 140
3.1.4 Key Lotus Web Content Management definitions - Authoring Templates, Category Management and the Site Framework
In this article, we start the in-depth discussion on the Lotus Web Content Management functions and items. All examples are based on the River Bend Tea and Coffee Company Web site. If you want to build the Web site, see Section 3.2.
Authoring template
Authoring templates are used for content creation. They provide the editing and authoring forms for content authors. Similar to document types in document management solutions, fields for text and metadata are defined in the authoring template. In addition to the common fields that are described in Lotus Web Content Management fields , the following sections are provided:
These sections contain fields for immediate content input or references to other components.
Profile
The Profile section contains a Categories and a Keywords field. Both fields can be regarded as metadata to characterize a content item, as shown in Categories and Keywords fields in Profile section of Authoring Template . Categories are selected from the elements that are defined in the Category Management (see Category Management ), meaning that they are predefined . The advantages of Categories is that they provide quick selection with no misspellings or duplicates but slightly different elements. The disadvantage of Categories is that only predefined Categories are available. The Keywords field allows users to enter any text without restriction. Keyword fields are not selected from a predefined list. The advantage is that the user can enter any word or phrase. The disadvantage is that you cannot check for misspellings or duplicate entries with only slightly different meanings. Categories and Keywords are used as content metadata for search and Menu definitions. See Menu component for more details about how to use Categories and Keywords in menus.
- 141
- 142
Content
The Content section lets the authoring template reflect the companies' content types. All fields are added to the authoring template using the element manager, as shown in Figure 10 Element Manager
Figure 10 Element Manager The fields are defined by a field name and the field type (as shown in Figure 10 ). The field type is selected from a list that is either a component field, such as a text, a Rich Text field, or a reference of a component that as defined in the component library. Refer to figure Figure 12 for a complete list of available fields. Thus, the field type reuses a predefined or predeveloped component.
- 143
For example, the River Bend development authoring template uses the following (as shown in Figure 13 ):
The Text field for the display title and summary. The Rich Text field for the body. An Image Component for an image. The Postbody and Prebody fields for Component References where the reference to a Menu is entered.
The Option selection field is a new option added in WCM 6. The admin specifies whether it is a single or multiple selection of a drop down list. The admin also enters the different options of selections as well as the type of the selection, for example drop down, radio buttons, etc.
Category Management
The Category Management section of the item navigator defines taxonomies and categories. These items are an important, and often underestimated, elements for content that is metadata. Note: Categories are metadata for content that is used in menus and search.
- 145
Taxonomy
A taxonomy defines the collection of terms that form the categories. For distinct termsets, you can create independent taxonomies, although it might not be necessary because the number and depth of categories is nearly unlimited. As authors select categories, they assign them to a content item by clicking a tree of categories. A reasonable depth of the taxonomy tree helps the user in selecting categories. A maximum of five to six levels has proven to be a good depth with which to work. You can adjust taxonomies where necessary.
Category
A category is an informational component that is used to describe what a piece of content is about. Categories used in content transcend hierarchies of architectural elements as site or site areas. Changing the navigational hierarchy is difficult, while categories should reflect business needs and are adjusted as the organization's needs change. Do not confuse categories with a site area , which is created to provide a path to that piece of content. Menu design components can use a category, via search criteria, to create menus or to create lists of related documents. For example, if the coffee business faces a boost for Ginger flavored Coffee, the River Bend Company can add the category ginger to the taxonomy. The overall hierarchy based on site and site areas stays unchanged. Immediately after adding the category ginger to content documents, searches for ginger on the River Bend Web site show results without any development work. In addition, the category ginger can be removed easily without any influence on the overall navigational hierarchy of the site. Another example is that the River Bend Web site uses categories in a personalization component to identify content based on the season. The home page displays an image of the seasonal drink, whether a summer or a winter drink. The drink content itself is categorized either Summer Drink or Winter Drink categories that are under the Season Drink Category. In our example "Coffee freddochino" was added in the Summer Drink category. Changing the content belonging to that category will change the image on the home page that is displaying the summer drink.
Content
Now, we have discussed all the elements that you need to create content: Authoring template, taxonomy and category, and workflow. Creating content for users who rarely use the authoring interface might be confusing. Apply security to all items to make sure that the authoring portlet shows only items that users need to see. Optionally, the Customizable Template Portlet is a good choice because it allows you to hide fields that users do not need. The Customizable Template Portlet is very easy to use. Fields are preselected, such as the authoring template and site area.
site. After the content is saved, you can link it to other site areas to create a broader usage of the content item. This will enable the content to appear for example in two different pages due to the site areas they belong to. If authors tend to be creative with their content, you might want to give them the opportunity to express the creativity in Rich Text and image fields. On the other hand, limiting creativity by providing simple text fields might be the appropriate choice because all design elements are used in the presentation layer to apply corporate design, including fonts and font sizes, colors, and alignment. The same principle applies to using HTML text or PHP. Many users prefer to use pictures in their Web content. Predefined image resources provide images that fit the design in size and color, which can be used through component resource fields. However, this use can limit the creativity of content authors to a reasonable level. You should define the appropriate set of options that are available to content creators and apply those options to the authoring templates to fit corporate needs and objectives for using Lotus Web Content Management.
Site framework
A site framework reflects part of the information architecture of a Web site. A lack of investment in the information architecture can result in an accepted Web site that has a poorly architected site framework. Unfortunately, this situation is often identified after Lotus Web Content Management projects have already progressed into late stages . A site framework provides a hierarchical structure for the Web site and is the base for the final Web site's navigation. The content is linked to the site framework and is identified for display on the Web site using the content's site framework information as search criteria for navigators and menus. The navigator and menu design components use the site framework to create a site map (also a navigator), navigation, breadcrumbs, and menus. Because these elements are created dynamically at run time, there are no broken links when a site area is changed or moved. Figure 14 shows River Bend's site framework and the resulting site map navigator.
- 147
Site
A site is the root for Web site's hierarchical structure. Although it is possible to manage several sites in the Lotus Web Content Management site management interface (for example, several Web sites are hosted), one Web site is based on one site only. The site can define relationships between authoring templates and presentation templates for the whole site. These settings are overruled by definitions set in site areas.
Site area
A site area is a unit within a site framework where content items are grouped together. You have to define the default content for a site area. The default content displays when the page is opened. Without default content assigned, the page cannot be viewed in the browser.
- 148
Default content, of course, can contain component references that allow individual designs for different site areas and content pages. In the River Bend Web site, some content items reference a menu component. The menu displays content that is found using the menu's search criteria. (See Menu component for details about menus.) Before the content can be viewed on a Web site, each authoring template has to be paired with a presentation template. Doing so on the site level underlying site areas can inherit the pairing. Pairings on site area level can define new pairs for the specific site area and below. Site areas allow the use of the Element manager to add component fields or component reference fields to the site area document. (Identical functionality is available in content items.) Using this feature in site areas allows you to define design or content items to be displayed on selected site areas. Creating and maintaining site areas is performed by site administrators rather than by users or content creators. Site administrators are expected to be more literate and advanced using components. Therefore, it might be easier for them to manipulate the design of site areas than placing the task into content creators' hands that need extra guidance to understand the component library philosophy. Referencing a menu in a site area rather than in a content item has the advantage that the menu item is predefined in the site, and a content author does not have to know how to perform the task or which component to reference. Site and site areas in a site framework can be classified into parents, siblings, and children ( See Figure 15 ), where the site is the parent for preceding site areas but has no parent or sibling itself because it is the only root for a site framework. Site areas always have a parent and often siblings and children.
- 149
Figure 15 Parent, sibling, and children hierarchy A site area has the option of making it searchable. This identifies if it should be searchable through Portal Search or not.
- 150
3.1.5 Key Lotus Web Content Management definitions - Design and Development Components
In this section, we now we look at the Design and development components. All examples are are based on the River Bend Tea and Coffee Company Web site. If you want to build the Web site, see Section 3.2.
Presentation templates
In the presentation template, everything that we have discussed thus far and all the components come together to form the Web pages that are viewed by site visitors. The presentation template combines all layout and design elements needed for the Web site appearance, as shown in Figure 16
- 151
Figure 16 Site area for River Bend Coffee and its referenced components and items The River Bend General presentation template displays a stylesheet and several images to create the overall layout which is consistent for all pages. Lotus Web Content Management references components in the component library by its name, as shown in the following example:
<Component name="riverbend/html-logo"/> <Component name="riverbend/search_form"/> <Component name="riverbend/nav-left"/>
As shown, the image component, the search form html component as well as the navigator are referenced the same way. The component library components state clearly that content does not play a role in the layout of a page. The content is referenced in the presentation template. In the center area, content items fields are referenced. Content items are stored in the content library that is sorted by several different criteria. The General presentation template references the Display Title, Body, Content Image, Menu Component Reference fields using the field names as identifiers or keys. - 152
All fields are referenced in a current context. The current content is the content item to which the user has navigate using the navigator on the left side of the page. The type content states that a content item is referenced, as shown in the following example:
<Element <Element <Element <Element <Element context="current" context="current" context="current" context="current" context="current" type="content" type="content" type="content" type="content" type="content" key="Summary"/> key="Image"/> key="Body"/> key="Link"/> key="Menu"/>
The menu field - last part in the presentation - does not display a simple text value such as the Display Title field but displays a component. For the coffee content page, the component reference MENU-Site Area is entered in the Menu field, as shown in Figure 17
Figure 17 Coffee Menu Component The menu displays all content items that are found in the site area for the current content (Coffee) and also the authoring template (Products). As shown in Figure 16 , there are two content items displayed in the current page for that menu. Alternatively, a component from a site or site area could be referenced. For the River Bend Web site, the effect on the page is identical to the use of a menu in the Menu field. However, the reference in the site area is created by a site administrator who is familiar with the existing components and their usage, where content authors are not trained using components but are familiar with how to create content. Thus, referencing components from within a site or site area can reduce training needs for users and can increase design flexibility. Note: If a referenced component does not have a value to display, nothing is shown on the Web site. For example, the Link field is empty and therefore it does not appear on the page. Same with the components. Note: When a new presentation template is created, remember to pair it with the appropriate authoring template in the site framework. While creating the presentation template, the user may want to add a certain image that is not in the image components and also not in the content. There is an Insert Image button that could be used to add the image instantly in the html. A link could be added using the Insert Link button, in order to create links to
Component library
The component library is the home of all components. Each of them can be referenced with the component library tag throughout the other items and also in the components themselves.
Navigator component
The navigator provides a mechanism that allows users to move around the site. A navigator uses the site framework to create links to different site areas or documents in the site automatically. Because it is based on the site framework, the navigator displays the hierarchy of the information architecture. Thus, when a site framework or a site area changes, the navigator is updated dynamically, eliminating the need for re-coding and preventing the possibility of broken URL links. For example, the River Bend Web site displays a navigator on the left side, called NAV Left, which offers the main navigation through the entire site framework, making all site areas available for browsing. This navigator displays site areas beyond the root, which is the site named River Bend. Browsing through the navigator and clicking a navigator section or site area displays one (or more) children site area levels (if children are available). The sections that a user selects or activates for browsing are highlighted in bold, could be indented, and separated by a small brown line. For each level (that is, each site area), the default content for the site area is shown in the middle of the page, as shown in Figure 18 . You will find the Beverages site area in bold, which is then expanded to Tea and Coffee.
Figure 18 NAV-Left on page When building the navigation, you have to define the navigator start site area. For the NAV-Left, the start area is selected and the River Bend site is chosen. Thus, navigation - 154
starts from the root of the site framework. The navigator does not include the node start, because the root node for the River Bend site is not displayed in the navigator. Because the River Bend Web site does not have ancestors, the ancestor level is none. The navigator displays one descendant level when a site area in the navigator is activated. Also, note that the preceding sibling's level and next sibling's level are not relevant because the navigator starts already at the root level without including a start node, which is a requirement for the sibling values. If we start the navigator at a lower level, we would have a reason to include siblings for navigation. In the case of the River Bend site, however, sibling values do not exist. See Figure 19 explain the ancestor, sibling, and descendant level concept. In Figure 19 , Beverages is the selected site area. A preceding siblings are Home, Company, News and Food , and the next sibling is Search . No ancestor is shown. The first level descendants for Beveragess are Tea and Coffee .
Figure 19 Descendants and siblings in the River Bend navigator By clicking on Coffee, it will be turned to bold, like in Figure 16 , where Beverages would be the Ancestor. No descendants are shown on the Navigator anymore. The definitions and values for NAV -Left are as follows (illustrated in Figure 20 )
Show Site displays the River Bend site in the navigator, which is not intended. Remember, Include Start is not selected for the selected start area, so Show Site reverses that choice. Show Content is not selected, so no content names are seen in the navigator. Selecting Expand Current expands the site area and shows one descendant level. Selecting Expand Navigator expands the current site area when clicked
- 155
Figure 20 Definitions and values for NAV-Left The remaining design details for that navigator are explained in section 3.2.7. explaining the detailed steps for how to create the River Bend web site and its navigator component. This is one example of how a navigator can display site navigation. You can create other navigators for other purposes. For example you can create a breadcrumb navigator, or a site map navigator.
- 156
- 157
Figure 21 Menu construction from various selection criteria The River Bend Web site displays content that is created for the News Corporate Information site area through the menu Menu-Corporate Information (See Figure 22 ). The menu displays the display title, and body.
- 158
Figure 22 Menu-Corporate Information News page The following options define a menu: Menu Element Query Site Area:
The available selection criteria can create very granular menus. In the River Bend Web site, the Menu-Careers definitions are kept very general. Matching content associated site areas define a menu for content that is linked to the selected site areas using the Select Site Areas button. This action makes the menu specific for a certain site area but not generally usable as the MENU-Site Area is intended. It has to be usable for every site area in the River Bend Web site. Similar to navigators, ancestors and descendants can be included in the menu selection by select the Include ancestors and Include descendants options. By expanding Further Options the user can: o Select User-specified rendering portlet, which searches for site areas defined in the settings of the Rendering portlet. o Select current content which searches for content that is in the same site areas as the one being currently rendered o Enter a query string. The selection would be based on the parameters sent - 159
Choose to merge selected authoring templates with included authoring templates. This option merges the contents that are found by the menu based on the settings made in this section with those contents that are found with the selected authoring template o Choose to replace selected authoring templates with included authoring template. This option overrides the contents found by the menu based on the settings made in this section over the ones from the selected authoring template
o
Menu Element Query Authoring Template: The Matching Authoring Templates option like the one used in the Menu-HomePage , identifies content that is created using the authoring template that is selected for this option. This option is not related to the hierarchical site framework structure but finds content beyond and independently.
By expanding Further Options the user can o Choose the current template to be selected o Enter a query string. The selection would be based on the parameters sent o Choose to merge selected authoring templates with included authoring templates. This option merges the contents that are found by the menu based on the settings made in this section with those contents that are found with the selected authoring template o Choose to replace selected authoring templates with included authoring template. This option overrides the contents found by the menu based on the settings made in this section over the ones from the selected authoring template
Matching content that is associated with categories takes advantage of content categorization. Again, independent from the hierarchical site framework, all content is found that contains the categories as specified in this field. Selected the results must match all categories option creates a AND link between all categories. Similar to navigators and site areas, ancestors and descendants can be included in the menu selection by select the Include ancestors and Include descendants options. By expanding Further Options , the options are similar to the ones used in the Site Area search criteria. For the current content and current user option, the user can narrow down the search by restricting certain categories. o The option for selecting current content, searches for contents profiled with the same categories used to profile the current rendered content. o The option for selecting current user, searches for content profiled with the same categories as those selected by the current user
- 160
Identical functionality as matching content that is associated with categories provides the Matching Content Keywords field. However, the keywords have to be typed rather than selecting them from a list. The related field in the authoring template -- whose values are compared in this option -- is also a text field where users enter the keywords. Finding content with this option can be difficult as no guidance on keyword spelling nor a list of existing keywords exists. By expanding Further Options , the options are similar to the ones used in the Site Area search criteria. o The option for selecting current content, searches for contents profiled with the same keywords used to profile the current rendered content. o The option for selecting current user, searches for content profiled with the same keywords as those selected by the current user
Note: The user can also select to exclude current content from the results returned when applicable. The following options define the presentation of content using the menu MENU-Site Area:
The current document can be excluded in the displayed menu by selecting the exclude current document from . That is only valid if the case is applicable , which reminds you that a menu can be displayed in a content context and also can be based on a site or site area. The ascending order for results option is selected. Alternatively, deselecting the field creates a descending order based on the sort key of Results Primary, Results Secondary, and Results Tertiary sort key fields. Available sort keys are: name, description, published date, last modified date, title, expiry date, general date One, and general date two. The results per page is set to zero (0) to allow all items to display on one page regardless of how many are found. Increasing the number changes the number of documents that display. For example, changing the results per page to 3 displays documents 1 through 3 on page 1, documents 4 through 6 on page 2, and so on.
For a better overview, limit the number of displayed documents to no more than 10. Also, sort in reverse order so that the newest document is at the top of the list.
The Start Page field defines on which page results display. The maximum pages to include option limits the total number of pages that will be displayed and returned for the menu. The pages to read ahead option controls the number of result pages to read ahead when using a page navigation element.
The following fields define the design for the menu to appear on the pages through text, tags, and components:
Header Design can specify a header text or component to appear before the menu list. The appearance for the Menu elements are defined in the Component Design for each matching Content field. - 161
The footer defines the design below the menu and separator between the menu element. The layout if no results are returned defines the layout if there were no matching content items. No header nor footer will be displayed in that case.
- 162
Text Component Rich Text Component File Resource Component HTML Component Image Resource Component JSP Component Taxonomy Component User Name Component Authoring Tools Component Link Component Page Navigation Component Stylesheet Component
Text component
You can use text components to store text or HTML as reusable text modules. For the River Bend Web site, you can create text components to describe standardized processes for coffee and tea production, such as roasting or picking. (Tea picking is different from coffee picking.) You can use the text components as standard text blocks in the Coffee and Tea product description pages.
Another example of a file resource component is graphics that are used to polish the River Bend Web site. The navigators do not use any symbols (such as arrows) to indicate activated sections. You could store a graphic as a file resource to serve as indicator for an activated selection.
- 163
HTML component
You can use an HTML component for almost any purpose. An HTML component contains HTML code and often references items, content fields, and components. The River Bend Web site uses the following HTML components: The navigator on the left side, NAV-Left, displays its elements in alternating designs. Activated elements appear in bold layout, while other elements use the default layout. The bold layout uses the HTML-Layout-Main Nav Bold component:
<a href='<Placeholder tag="href"/>' > <b><IDCmpnt context="autoFill" type="sitearea" field="title"/></b> </a><br>
Figure 23 Navigator element defined in different HTML components This HTML component can be used across the web site.
Image component
You can insert images that are used throughout the Web site directly into image components fields in the authoring templates. In this case, the author has the option to define the size of the image, which might or might not fit the overall design. Defining images as image resources provides identical images for re-usage. The River Bend Web site uses eleven image components as consistent design elements in the presentation templates. These are the home page logo, the inside logo, news home page image, food home page image, beverages home page image, company home page image, the brown line separator, and background image The images are re-used in the different components and presentation templates.
- 164
JSP component
JSP components store the path to a JSP and the content of a field for an error message in case the JSP is not available. An extended discussion on JSP in combination with the API is found in section 4.3.1
Taxonomy component
Taxonomy components relate often to personalization where lists of categories are presented to the user to select categories of interest. Alternatively, you can use the taxonomy component to display categories for navigation instead of site areas. However, be aware that this option works only for authenticated users. If your site requires this option for anonymous users as well, the implementation is more complex. In this case, you need to create a JSP for an imaginary user for which the component is displayed. The taxonomy component displays a list of categories, starting with the selected start area (in this case, a category), and displaying the depth according to the Depth field. You can define further selection criteria by using a Profile Search Rule. You can use the remaining fields to format the displayed categories with a header and footer. The Unselected Components and Selected Component fields contain special layout for selecting categories, which could be checkboxes.
Create new content items Perform inline editing of the content item displayed in a Web page. Delete the content item displayed in a Web page. Approve or reject the current content being previewed. These are only visible to approvers who open a draft content item from a URL sent by an email workflow action used in a workflow stage.
- 165
The River Bend Web site uses the authoring tool component for the "Edit" and "New" functionality, see Figure 24
Figure 24 Authoring tool in the coffee site area For more details on Authoring tool refer to section 4.1.1 In-line editing
Link component
A link component stores a link to a web content management item or to an external web site. In the River Bend web site, a link to the home page is created. See Figure 25
- 166
Figure 25 Link component in the General Presentation template The link component links to an already existing item which is the site area Home. By clicking on that link, it gets the user back to the home page.
Shuttle control related to current page. For example, next page, previous page, go last, and go first Paging control. Showing an index for all the available pages or a continuation link for the pages Jump to page, displaying a text box, where the user can enter the page number if known beforehand
Refer to Figure 26 for the available options for the page navigation component and the result in Figure 27
- 167
Figure 26 Page Navigation Options The following html could be added to the footer to display the current page number and the total number of the pages. Ex: Page 2 of 10
Page <PageInfo value="currentPage"/> of <PageInfo value="unknownPages" knowntext="" unknowntext=""/> <PageInfo value="totalPages"/>
- 168
- 169
2.2. Information Architecture (IA) 2.2.1. Defining the Information Architecture - What is IA, or why websites dont fall down 2.2.2. Key Considerations and Decision Processes - Matching Consumer Needs to your Website 2.2.3. Information Design 2.5.3. Navigational Wireframes more than just pretty PhotoShop screenshots
- 170
Figure 1 Web Content Libraries 2. Click Create new library and add RiverBend in the name field 3. Add River Bend Tea and Coffee Company content library for LWCM in the description as shown in Figure 2 4. Choose English as its language 5. Click ok
- 171
- 172
1. 2. 3.
For the specific item, click on the Set Permissions button Edit the item type access rights.
Figure 3 Web Content Management Authoring screen 2. Click on Configure 3. Choose Library Selection 4. Add RiverBend to be available in the authoring portlet as shown in Figure 4
- 173
Figure 4 Library Selection 5. Remove any other library from that list. This will ensure that any item created, will be added to the RiverBend library. 6. Click ok The current library used now is RiverBend. Note Deleting a library means deleting all the items within that library.
- 174
3.2.3 Creating the Site Framework for the River Bend Site
The site framework
This section describes how to build the site framework. The following steps comprise the tasks that are required to complete this exercise.
Creating the site Creating the site areas Rearranging the site area order
Figure 5 New Site Creation 2. In the name field, type RiverBend 3. In the Display name field, type River Bend 4. In the description field, type Overall site for the River Bend Tea and Coffee company 5. Click Save, and then click Save and Close. 6. Navigate to Site Areas By Site, you will see River Bend in the index list. Refer to Figure 6
- 175
- 176
Figure 7 Home and company site areas Now, we will move on with creating one of the site areas under Company 10. Click New and select Site Area 11. Expand Riverbend to show its dependant site areas 12. Select Company as the parent site. 13. Select Last Child for the link order of the new site area 14. Click OK. 15. In the Name field, enter the appropriate name of the site area. For example, for the first site area under Company, enter History 16. For the display name enter About Us. See Figure 8 17. Click Save, and then click Save and Close.
- 177
Figure 8 About Us site area under Company At this point, you can repeat this process to create the site areas that are shown in Figure 9. Repeat step 1 through 6 again to create the rest of the site areas for this example. Note Selecting either Start or End for the link order determines the sequential placement of a site area within the list of multiple site areas. If the order of the site areas listed does not match the exact example that we provide, do not worry. Refer to section Rearranging the site area order for details about how to re-order site areas. Tip Use Save As to create copies of an open object (that is, site area).
- 178
Figure 9 Site framework Hint The names you see in Figure 9 are the display name for the site area objects
- 179
Figure 10 Site areas after rearrangement Note Within this section, we describe specific steps for rearranging the order of two sibling and children site area nodes within the site framework. Keep in mind that you can use the Move button to move a specific site area to a different level or location within the hierarchy.
To return the Careers with us site area to its original position, select the Careers with us site area. 5. Click More Actions Move. 6. Expand the River Bend site framework. 7. Expand the Company site area. 8. Select Last Child 9. Click Ok Now, the Careers with us is moved back to its original position as the last child. - 180
- 181
Figure 10
- 182
Creating the workflow actions (For specific steps on how to create these, please refer to the document 3.4.2-workflow-for-the-river-bend-sample-site) Creating the workflow stages Creating the Express Workflow Creating the Approval Workflow
Approval: this should be default working mode. Items may have four different states (draft, approval, published and expired) Express: to cover exceptions items may be directly published from draft to published
Stages are represented by rectangular shapes State is represented by the shape color: orange for daft items, green for published items and blue for expired items Actions appear before and after each shape to represent what will be executed when the item enters or exits that stage.
- 183
Figure 10 For specific steps on how to create these, please refer to the document 3.4.2.-workflow for-the-river-bend-sample-site
Note The custom action will not be explained here. It is described in detail in section in document 3.4.2.-workflow
For the Move content on expiry date select Expiry Date from the Date Type list and choose an appropriate date to see this action, for example tomorrow's date. For the Email for rejected Content, select E-mail authors. E-mail Stage Approvers is selected by default. Add an apology message in Additional e-mail text.
10. Click Save, and then click Save and Close 11. Repeat steps 5 through 10 to create Expired stage. Where you set Execute on Entering Stage action to Expired. 12. Repeat steps 5 through 10 to create Reject stage. Where you set Execute on Entering Stage action to Email for rejected content.
5. Select Draft and Published from the list of workflow stages. 6. Click Ok.
- 186
If the fields in Locations, News and Products are the similar, you could create only one for them and re-use templates between the site areas.
Figure 11 Manage Elements 5. Choose Element Type to be Text 6. In the name field, type Summary 7. Repeat steps 5 and 6 for the rest of the fields Element Type Rich Text Image Link Name Body Image Link
- 187
Figure 12 Element Manager Screen 8. Click Ok 9. Now, you will see the added elements in the Default Content Settings tab screen.
- 188
Refer to Figure 13
Figure 13 Default Content Settings Tab 10. Expand the Workflow section and click Select Workflow 11. Select Express workflow from the list Note This action defines the default workflow for content that uses the River Bend Development authoring template, which is an express workflow without approval.
- 189
Figure 16 Identification Name Section 17. Click on Manage Elements to fill out the Content section
- 191
18. Follow Figure 17 for the types and names of the fields to be added
Figure 17 Element Manager 19. Click Ok 20. For the Content Properties part, follow Figure 18 for changing the field properties of the Summary
- 192
Figure 18 Summary Field Properties 21. For the Image fields, set the Image border to be hidden
- 193
Figure 19 Image Field Properties 22. Choose the Express workflow for this authoring template 23. Click Save..., and then click Save and Close Create the other two authoring templates: Locations and Products in the same way as News with the following fields.
Products
Products Element Type Text Rich Text Image Image
- 194
Locations
Locations Element Type Name Text Rich Text Image Short Text Summary Body Image TheStoreTeam
- 195
Creating the Image Components Creating the Authoring Tool Component Creating the Navigator Component Creating the Menu Component Creating the Personalization Component Creating the Page Navigation Component
The following images illustrate some of the components you will learn how to create:
- 196
- 197
- 198
Figure 28 Part of the Coffee page, showing the Menu and Page Navigators
- 199
Create several image library components Reference these image components, as needed, in a presentation template and a content item.
For this exercise, we used an image logo for the River Bend Web site. For your implementation, you can use a stylesheet that reflects your company's corporate design
rbLogoBig (uses rbLogoBig.png) rbLogo (uses rbLogo1.png) News (uses WhatsNew.png) Food (uses Food.png) Company (uses Company.png) Beverages (uses Beverages.png) FILE_bg_main946white.png (uses FILE_bg_main946white.png) NavHiLoImage (uses menu1.gif) Overlay-foliage.png (uses overlay-foliage.png) BrownSeperator (uses seperator_490.gif)
The image components: News, Food, Company and Beverages are used in the home page as the menu for the main sections of the website. Figure 20 shown below illustrates how they are viewed in the home page.
- 200
Figure 20 Main menu on home page using image components Note: Some of these images are used by the stylesheet. You will see how to reference image components in menu and navigator components and from within presentation templates in the following sections.
- 201
4. Under Site Area in New action properties, select Use current, as shown in Figure 21
Figure 21 Authoring tool creation 5. In the Edit action properties section 6. Select Edit live content 7. Add the following html in Edit action design :
- 202
- 203
Create the left navigator component. Reference the left navigator component in the presentation template. Format the left navigator component by creating bold and normal HTML components. Reference the HTML formatting components in the left navigator component.
Following are the steps for creating the left navigator component: 1. Click New and choose Component Navigator 2. In the name field, enter nav-left Tip: It is good style and helpful to use a naming schema for components. It makes references easier to understand. For navigators, use a nav- prefix. A reference then reads:
3. In the display title, enter Left Navigator 4. In the Description field enter Left navigator for accessing site area sections. 5. In the Navigator Component section in the Start Type list, choose Selected. This action indicates that you define the site area from which the search begins. 6. In the Selected Start Area section, click Select Start Area. 7. In the index, click River Bend. 8. Click OK. 9. Deselect Include Start so that River Bend does not appear in the navigator 10. From the Descendant Level list, select 1 Level. - 204
This action defines that the first level of children site areas of River Bend are collected. 11. Deselect Show Content. Note: If this option is selected, links to content in the current site area display in the navigator.
12. Select Expand current navigator branch one level Note: If this option is selected, the navigator expands to display the children site areas of the current site area.
13. Select Expand navigator to display current site area 14. In the Header field, enter the following code:
15. In the footer field, enter the following code: 16. Indent each site area level and create a placeholder for the code you will add to format the site area links. In the Component Design 1 field, enter the following code:
Create HTML components to specify bold and plain formatting. Reference the bold and plain HTML formatting components in the left navigator component.
- 205
Attention: Be sure to use single () and double () quotation marks correctly. 5. Click Save and then click Save and Close. 6. Repeat steps 1 through 5 to create a new HTML component with the following changes: - In the Name field, enter HTML-Layout-Main Nav Plain. - In the Description field, enter the following: This is the plain text formatting component. - In the HTML Component section, enter the following line of code:
- 206
Creating Menu Component using authoring template Creating Menu Component using authoring template and site area
Hint This is referencing the component stored in the Image field of the content items.
The page will first display the default content of the site area followed by the menu. Refer to Figure 22 showing a part of the "where we are" page
Figure 22 "Where we are" page with Locations menu 1. Click New and choose Component Menu. 2. In the name field, enter Menu-Locations 3. In the Menu Element Query, choose Authoring Templates 4. Click on Select Authoring Template 5. Click Add 6. Choose Locations 7. Click Ok 8. Click on Select Site Area 9. Click Add 10. Choose Where we are Site Area 11. Click Ok 12. Expand Further Options 13. Select Current content 14. Add the following html to the header : 15. Insert the following html in the design for each menu result - 208
16. Close the table using the following html in the footer In the Separator, you can either reference an image which represents a line to separate the result or add a dotted line which could be changed later. To add an image not already created as an image component, do the following steps 17. Above the Seperator area, click on Insert an Image 18. Click on Browse and navigate to the image seperator_490.gif 19. Select the option Add image to library and grant all users access 20. Click Ok 21. Click Save and 22. Click on Component Image 23. You will find a new image component added with the file name seperator_490.gif 24. Repeat steps 1 through 21 to create the following Menu Components: Menu Name Menu-Products Menu-Careers Menu-Offers News Menu-Corporate Information News Authoring Template Site Area Products Set Current Content to true Company/Careers with us News/Promotions News/Corporate Information
Note: For the menus Menu-Products and Menu-Offers, the design for each menu result would be as follows:
- 209
Figure 22b Summer Drink showing personalization on homepage Using personalization rules, the content of the beverage of the current season will be selected and the image will be displayed. In order for us to create the Personalization component, we need to do the following:
Figure 23 Personalization tab 2. Select New and choose Rule. 3. Enter SummerDrinkRule in the Rule name 4. Choose Select Action if it wasn't already selected 5. Click on content* and change it to be Web Content 6. Click on Attribute and change it to be Category 7. Choose is exactly instead of is associated with 8. Click on value*, choose Select category 9. Navigate to the category Summer under SeasonDrink under Beverages under Products 10. Click Ok The rule should look like the rule in Figure 24
- 211
Figure 24 Summer Selection Action Rule 11. Click Save 12. Repeat steps 2 through 11 to create the Winter Selection Rule. Its name would be WinterDrinkRule and Category is Winter
3. Choose Binding 4. Click on Profiler* 5. Click on Select Profiler and choose SeasonsProfilerRule 6. Click Ok 7. Click on Profile and choose Winter 8. Click on DoAction and choose SummerDrinkRule 9. Click on Profile and choose Summer 10. Click on DoAction and choose WinterDrinkRule 11. Click Save Refer to Figure 25 for the Binding Rule
Figure 25 Binding Rule If we had already created the content with the matching categories, we can view the content as shown in Figure 26 by clicking on Preview
- 213
Figure 26 Binding Rule Viewer A no content screen will be shown until we create content with those categories.
6. Click Ok Note: You can create a new rule by clicking on the New* button if it is just one simple rule. 7. Add the following html in the design for each search result: 8. Click Save and then click Save and Close. We will be adding a reference to the personalization component from inside the presentation template of the home page.
- 215
Shuttle controls provide navigation relative to the current page. This includes sequential linking to the previous or next page of results and quick linking to the first and last pages in the set. Paging controls provide navigation according to the page number of the result set. A list of page number links is displayed, along with a continuation link for access to the previous or next set of page numbers, if all page numbers are not displayed.
A page navigation element can combine both shuttle and paging controls. For our River Bend Company web site, we will create a page navigation component that we will be adding in the footer of the menu component menu-products.
- 216
Figure 27 Html values for the shuffle paging controls 8. Click Save, and then click Save and Close.
6. In the footer field, enter the following html before the closing of the table
7. Click Save, and then click Save and Close. Refer to Figure 28 for the outcome of rendering the products menu component in the Coffee page
- 217
Figure 28 Part of the Coffee page, showing the Menu and Page Navigators
- 218
This is the simplest approach and used widely in most public website or internal business intranet. However, this approach limits the flexibility the presentation templates and componentization WCM provides.
This is an approach that utilizes the componentization of WCM, allowing existing CSS files to be uploaded as a separate component and then referenced in presentation template. Whilst a standard pattern, this approach requires an upload of the CSS file when any changes are made and can be laborious when making extensive changes early on in the development of your website.
This is the pattern weve used in this example site as it allows use to use a simple text area within these components to locate the CSS information. It does require the CSS to be pasted into the text area and saved upon each change, but requires fewer steps that the pattern above and the component can be left open in a tab and modified quickly when changes are required.
A CSS, HTML or File component referenced in a HTML component referenced in a presentation template.
This is similar to the pattern above but involves further separation through an HTML component. The HTML component is referenced in the presentation template(s). This pattern has been used in the pt-General presentation template.
How to create a style sheet component and reference it as part of the pt-HomePage presentation Template
The following steps show how to add / create a style sheet component, and in the following sections reference it as part of the pt-HomePage presentation template. 1. 2. 3. Click on New, select Component and Style-Sheet In the name field, type css-rbStyles In the display name, type River Bend Style Sheet - 219
4. In the Style-sheet Element section upload a file called rbStyles.css containing the code in listing 1, created using a text editor of your choice. 5. Click Save and Close. Listing 1 Sample CSS code
- 220
- 221
How to create a style sheet component using an HTML component, then referencing further HTML with style information and reference it as part of the pt-HomePage presentation Template
The following steps show how to create a style sheet using a HTML component, referencing a further HTML component with the stye information and reference it in a later section as part of the pt-General presentation template 6. Click on New, select Component and HTML 7. In the name field, type MainCSS 8. In the display name, type River Bend Main Style Sheet 9. In the HTML Element section paste the text from the code in Listing 2. 10. Click Save and Close. Listing 2 Sample CSS code for the General Presentation template
- 222
Click on New, select Component and HTML In the name field, type HTML-Header In the display name, type Main River Bend Header In the HTML Element section paste the text from the code in listing 3. Click Save and Close.
Listing 3 Sample code for HTML Header referencing the MainCSS and <Head> tag
- 223
- 224
Home page presentation template General presentation template displaying the content of each site area along with a menu where applicable Presentation templates for the detailed page for the News and Products Finally, we also illustrate how to pair the authoring template and the presentation template .
7. Click Save and then click Save and Close Listing 1 Home page presentation template code _________________________________________________________ - 225
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > <!-- Reference the style sheet --> < Component name = "riverbend/css-rbstyles" /> < div align = "center" > < div id = "outer" > <!-- Click on Insert Image to add the image here --> < img src = "/wps/wcm/myconnect/7aad6c004aa8fb3ba1ecab756e4fc596/rbLogoBig.png ?MOD=AJPERES" BORDER = "0" title = "" style = "margin-left: auto; margin-right: auto;display:block;text-align:center;" /> < table width = "100%" border = "0" cellpadding = "0" cellspacing = "0" > < tbody > < tr > < td width = "21%" ></ td > < td > <!-- Reference the personalization component --> < Component name = "pers-seasons" /></ br > </ td > < td align = "right" > <!-- Reference the offers menu component stored in the home default content --> < Element context = "current" type = "content" key </ td > < td width = "21%" ></ br > </ br > </ td > </ tr > < tr > < td colspan = "4" >< br > </ td > < tr > < tr > < td colspan = "4" align = "center" > <!-- Reference the images menu component stored in the home default content --> < Element context = "current" type = "content" key td > </ tr > < tr > < td width = "21%" ></ td > < td colspan = "2" >
<!-- Reference the Summary field stored in the home default content --> < Element context = "current" type = "content" key = "Summary" />< br /> < br /> <!-- Reference the Body field stored in the home default content --> < Element context = "current" type = "content" key = "Body" />< br > </ td > < td width = "21%" ></ td > </ tr > < tr > < td width = "21%" ></ td > < td colspan = "2" > <!-- Reference the Html component html-footer --> < Component name = "html-footer" /></ td > < td width = "21%" ></ td >
- 226
Refer to Figure 29 below for the preview of the Home page presentation template with the default content of the home.
- 227
4. In the Presentation Template section, replace the existing code with the code shown in Listing 2. Listing 2 General presentation template code _________________________________________________________
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > < html > <!-- Refernce the Html-header component --> < Component name = "riverbend/html-header" htmlencode = "true" /> < body > <!-- set bg colour, x-y overlay image and fonts --> < div id = "mainBg" > <!-- main transparent background 946px --> < div id = "fullWidth" > < div id = "banner" > <!-- Reference the html-logo component --> < Component name = "html-logo" /> <!-- Reference the search component --> < Component name = "search_form" /></ div > < div id = "fullWidth" > < div id = "middle_left" > <!-- left column content begin --> < div id = "navigation" > <!-- Reference the nav-left navigator components --> < Component name = "nav-left" /></ div > </ div > <!-- left column content end --> < div id = "middle_center" > <!-- middle column and actual content begin --> < div id = "wide_top" ></ div > < div id = "wide_middle" > <!-- Add an image using Insert Image button to add the beans image coffeeSmall.jpg --> < img src = "/wps/wcm/myconnect/1f4cd9004a9f203d9418be756e4fc596/1/coffeeSmall.JPG? MOD=AJPERES" BORDER = "0" title = "" /> <!-- Reference the content fields --> < Element context = "current" type = "content" key = "Summary" /></ br > < Element context = "current" type = "content" key = "Image" /></ br > < Element context = "current" type = "content" key = "Body" /></ br > < Element context = "current" type = "content" key = "Link" />< br > <!-- Reference the menu field in the content if available --> < Element context = "current" type = "content" key = "Menu" /> <!-- Reference the auth-editandcreate authoring tool component --> < Component name = "auth-editandcreate" /> <!-- Reference the html-footel html component --> < Component name = "html-footer" /></ div > </ div > </ body > </ html >
5. Refer to Figure 30 for a preview of the page when the Thirsty image of the home page or the Beverages link on the navigator is clicked. - 229
Note : There is a reference to the field menu of the content. Some contents, for example career, corporate information and beverages have a menu for these contents, this is the menu that would be displayed in that place in case it is available.
6.
- 230
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > < html > < Component name = "html-header" htmlencode = "true" /> < body > <!-- set bg colour, x-y overlay image and fonts --> < div id = "mainBg" > <!-- main transparent background 946px --> < div id = "fullWidth" > < div id = "banner" >< Component name = "html-logo" /> < Component name = "search_form" /></ div > < div id = "fullWidth" > < div id = "middle_left" > <!-- left column content begin --> < div id = "navigation" >< Component name = "nav-left" /></ div > </ div > <!-- left column content end --> < div id = "middle_center" > <!-- middle column and actual content begin --> < div id = "wide_top" ></ div > < div id = "wide_middle" > < img src = "/wps/wcm/myconnect/f93c73804aa52e2b9c95be756e4fc596/1/coffeeSmall.JPG? MOD=AJPERES" BORDER = "0" title = "" /> < tr > < td background = "images/gradient_490.gif" height = "1" > < img src = "images/1pix.gif" width = "5" height = "5" ></ td > </ tr > < tr > < td > < table width = "100%" border = "0" cellpadding = "0" cellspacing = "10" > < tbody > < tr > < td >< b > <!-- Reference the title of the content --> < IDCmpnt context = "current" type = "content" field = "title" /></ b ></ td > </ tr > <!-- Reference the elements of the content in the following section --> < tr > < td > < Element context = "current" type = "content" key = "Summary" /></ td > </ tr > < tr > < td >< span class = "tx_grey_3" > < Element context = "current" type = "content" key = "Body" /></ span ></ td > < td >< Element context = "current" type = "content" key = "Image" /></ td > </ tr > < tr > < td > < Element context = "current" type = "content" key = "Complimentary" /></ td > </ tr > < tr >< td > < Element context = "current" type = "content" key = "Related" /> </ td ></ tr > </ tbody > </ table >
- 231
</ td > </ tr > < tr > < td > <!-- Reference the menu component of the products menu-products --> < Component name = "menu-products" /></ td > </ tr > < tr > < td > <!-- Reference the authoring tool component --> < Component name = "auth-editandcreate" /></ td > </ tr > < tr > < td > <!-- Reference the JSP Component for adding comments here --> </ td > </ tr > </ div > </ div >
Note: The last part in the code is a placeholder for the form and the JSP component that enables users to add comments to the content.
- 232
Figure 31 Beverage item displayed using Products presentation template 5. Follow steps 1 through 4 to add the presentation template for the news pt-News 6. In the section for referencing the elements of the content, change the values to the values of the News authoring template 7. In the menu referencing part, reference menu-offers 8. Click Save and then click Save and Close
- 233
Figure 32 List of presentation template and authoring templates 7. In the authoring template section choose General 8. In the presentation template section, choose General Presentation Template 9. Click Ok The two templates are displayed as mapped. 10. Click Ok 11. Click Save and then click Save and Close Note: All children site areas will inherit this mapping unless another mapping is done in the site area using the same authoring template that will override this one. We will see that in the home page mapping.
12. Repeat steps 3 through 11 to create the remainder of the template mappings for the site areas according to the following table. Be sure to select the appropriate site area for each template mapping. In Site Area authoring template with presentation template Home General Home Page Presentation Template - 234
Food Beverages
Products Products
Promotions News
- 235
Create a content item, add it to a site area, and assign it as the default content page for the site area. Create additional content items for the remaining site areas in the River Bend Web site. Create content items associated to categories to test that these items work correctly, and that these items will be the ones used by the personalization component.
Creating a content item and assigning it as the default content page for a site area
To create a content item, follow these steps: 1. Click New and then choose content 2. From the authoring template list, choose General 3. Click Ok 4. In the name field, enter Welcome 5. In the Description field , enter the following text: "Default content page for River Bend in the Home site area." 6. In the Summary field, enter the following text: "Welcome to the River bend Tea and Coffee Company " 7. In the Body field, enter the following text: "Our company River Bend has been established since 1971, for 30+ years we've been in the business of making our own special blends of tea and coffee. Today River Bend is a thriving business and community and we welcome you to our site, and hope you enjoy your experience when you next visit one of our stores. Take a look at our specials menu - we've cooked up some tasty deals and lunch time specials. " This content is special since it will be used in the homepage. We will add a new element to this content, but will not add it in the authoring template of this content but rather add it from the Element Manager. 8. Click on "Manage Elements" 9. Choose element type Component Reference 10. Set name and display name to be Menu - 236
11. Click Add and Ok 12. In the ImagesMenu Component field , click on Add Component 13. Expand Menu in the components list 14. Choose Menu-HomePage from the list 15. In the Menu Component field , click on Add Component 16. Expand Menu in the components list 17. Choose Menu-Offers from the list 18. Click Save 19. Click Preview to view the content. 20. Click Save, and then click Save and Close. To assign this content item as the default content page for the River Bend in the Home site area, follow these steps: 1. Expand Site Area in the items view navigator. 2. Expand the River Bend site 3. Select Home site area. 4. Click Edit. 5. In the Properties section , under Default Content , click Select Default Content . 6. Select the Welcome content page. 7. Click OK . 8. Click Save . 9. Click Preview to view the content. 10. Click Save , and then click Save and Close . Attention : At this point in the process, it is possible to view the Web site in the browser without a portal and portlets as a stand-alone Web site. You must add the default content to a site area before you can view the site area. Open your browser, and use the following URL http:// < yourservername > : < port > /wps/wcm/myconnect/RiverBend/RiverBend/Home For example, we used the following URL for this book: http://wcm01.itso.ibm.com:10040/wps/wcm/myconnect/RiverBend/RiverBend/Home
Creating content items for the remaining site areas in the River Bend Web site
The following tables contain information about the content for the River Bend Web site. You create content by using the information for the fields and by adding the content as default content to the site areas as indicated. For every content item, use the indicated authoring template. Important : You can only view a page or site area after assigning a default content. Note: Refer to table 27 and 28 for adding a category to the content item
- 237
Table 2 Default content for site area Food Field Default Content Name Food Display Title Food Description Food at River Bend Summary Image Menu Food at River Bend Food (Image Component) Products (Menu Component)
Table 3 Default content for site area News Field Default Content Name News Display Title News Description News at River Bend Summary Image What is new at River Bend. News (Image Component)
Table 4 Default content for site area Company Field Default Content Name Display Title Summary Body Company Company
Description Information about the River Bend Tea and Coffee company. Facts about the River Bend business River Bend considers itself a responsible member of the business - 238
community. As such, we donate 10% of our pre-tax profits to charitable causes. In addition, all of our employees are co-owners of River Bend Tea and Coffee company. Image Company (Image Component)
Table 5 Default content for site area Locations Field Default Content Name Display Title Our stores Our stores
Description Where we are Summary Menu With over 100 stores world wide there will always be great tea and coffee around the cornet. Menu-Locations (Menu Component)
Table 6 Default content for site area About Us Field Default Content Name Display Title About Us About Us
Description About River Bend. Summary The history of the River Bend company has been long and steeped in tradition, 37 years of making and selling Teas and Coffee The River Bend Tea & Coffee company has not always been as big as it is today, when John Bergland set up the business back in 1971 it was running from his home with 1 employee, himself. Back then John used his families experience roasting coffee to give a unique flavour & texture to the beans his coffee was made from. John just sold coffee then, today things are different. Today the River Bend products are in demand by our customers, we still use the same family style of roasting but we've also gone back through the family archives to adopt the same values across our entire product range. River Bend strives to ensure the best experience in store with the best true Italian style and quality coffee & teas. Unlike many other coffee companies and stores we make many of our products, tea and coffee included on site in our stores. This means you get the best and we save costs and the planet at the same time.
Body
- 239
Table 7 Default content for site area Careers with Us Field Default Content Name Careers with Us Display Title Careers with Us Description Food at River Bend. Summary Searching for a job?
Table 8 Default content for site area Our Vision Field Default Content Name Our Vision Display Title Our Vision Description Vision of the River Bend Company Summary Menu The vision of the River Bend Company is to... Menu-Careers (Menu Component)
Table 9 Default content for site area Promotions Field Default Content Name Display Title Summary Body Menu Promotions Promotions
Description Default Content for Promotions River Bend offers.... As well as the wide range of beverages and food that River Bend is offering, it also .............................................................. .............................................................. Menu-Offers (Menu Component)
Table 10 Default content for site area Corporate Info Field Default Content Name Display Title Corporate Info Corporate Info - 240
Description Default Content for Corporate Infromation Summary River Bend offers.... As well as the wide range of beverages and food that River Bend is offering, it also .............................................................. .............................................................. ................................................. Menu-Corporate Information (Menu Component)
Body
Menu
Table 11 Default content for site area Coffee Field Default Content Name Display Title Summary Coffee Coffee
Description Default Content for Coffee River Bend offers.... Coffee or cafe in most places In 1971 we started roasting our own blends of coffee beans, in the 9th century it was discovered in the highlands of Ethiopia, so coffee has been around for a long long time and loved even more today. Our process for roasting coffee bean ( or seeds as they should be called ) are a well kept family secret but we can tell you that we take a full 22 minutes to roast them so we can boast the best and flavoursome beans to make our world famous coffees from. Coffee is the thing that gets us up in the morning and keeps us awake into the night. We take the best base product from the world's largest producer, Brazil and work our magic to keep you going. Coffee.jpg Menu-Products (Menu Component)
Body
Image Menu
Table 12 Default content for site area Tea Field Default Content Name Display Title Summary Body Tea Tea
Description Default Content for Tea River Bend offers.... Tea or teh, the, chai, theyila,... Tea is loved the world over and whilst it might be called something different (cha in China and theyila in Malayalam) its based on 4 pure types, black, - 241
while, green and oolong. We take these dried base teas and add our own special additive, all natural to offer you a wide range of over 12 type of tea in store. Our tea making process is a secret but we can tell you it take a long time to perfect but worth every minute we hope. We know we sell allot of tea but did you know that production of tea is over 3 million tonnes a year with both China and India being the largest producers! Image Menu Tea.jpg Menu-Products (Menu Component)
The following content items are not default content site areas, but you would want to create some of them, to see the menu components working Table 13 Content for site area Careers with Us Field Default Content Name Display Title Summary New Openings New Openings
Description New stores, new openings for staff. We're hiring for our new store opening over the next 12 months. During the next 12 months River Bend will be opening 24 new stores across the UK, USA, Europe and India. If you feel that you have what it takes to work at River Bend and want to join a growing, fun and exciting team then we urge you to get in touch. All our stores will have openings for, Delivery Agents, Store Staff and Management including Cleaners and Security. River Bend is working in partnership with local recruitment offices close to the new store planned below: UK o West Chiltington, West Sussex o Cheam, Surrey o Staines, Middlesex o Fulham, London o London, City (3 stores) Europe o Berlin, Germany (3 stores) o Barcelona, Spain (2 stores) o St. Omer, France o kjkjkjkc USA o Westford, MA o Cambridge, MA o Rochester, NY (2 stores) o Samford, CT (3 stores) - 242
Body
o o o
Table 14 Content for site area Careers with Us Field Default Content Name Display Title Store Manager UK area store manager
Description Store manager position Summary Everyone at River Bend has opportunities to build their career with us and here is just one example of an individual that made this happen for her. We'd like you to congratulate Hebba X who has been promoted to UK area store manager. Hebba has been working at River bend for 3 years now and has worked her way up through from staffing a local store, to store manager and now UK area store manager. Hebba receives a 'well done' bonus for her hard work along with her new role. Hebba is the kind of individual we like to have at River Bend, fun, enthusiastic and customer focused. If you like Hebba have these qualities then why not take a look at our store vacancies and one day you might be management material too. We look forward to working with you.
Body
Description Dubai store Dubai is River Bend new location As for the United Arab Emirates (UAE), River Bend opened two stores in Dubai last June. One store is in Sheikh Zayed road opposite the Emirates towers, where as the second one is in Madinat Jumairah in Jumeirah
Description Bangalore store This River Bend store nestles in amongst its rural setting. This River Bend store nestles in amongst its rural setting. River Bend opens its doors in Bangalore with a large selection of food and coffee for all its loyal customers
Table 17 Content for site area Where we are Field Default Content Name Display Title Summary West Chiltington West Chiltington
Description West Chiltington UK store This River Bend store finally opens in West Chiltington in the UK The West Chiltington store is River Bends smallest store nestling in amongst the rural background of the West Sussex downs. Not your normal tea house the store is a vibrant meeting point for those working in the area and those passing through. Opening hours are a sleepy 10am door opening and a mid evening shutdown at 8pm
Body
Description River bend opens its first store in India. The first River Bend store in India opened its doors today. India known for its tea today welcomed the first landing of a River Bend Tea and Coffee store. At 8am the doors opened to a packed street of 100's waiting to experience the River Bend style.
- 244
Table 19 Content for site area Corporate Information Field Default Content Name Display Title Recycle Recycle Reuse River Bend
Description Recycling with River Bend Summary Using recycled materials is a responsibility Rover Bend takes seriously and today embraces a world culture in saving the planet. In line with the corporate responsibility and ethical nature of the River Bend Tea & Coffee company all future takeaway tea and coffee cups will be made from 100% recycled materials. The Chief Executive of River Bend 'John Bergland' said that this was a small step on the road to building an ethical and responsible culture and would be followed by later in the year the introduction of minimized packaging and where possible further recycled materials.
Body
Table 20 Content for site area Promotions Field Default Content Name Display Title Summary Half Price Half Price Offer
Description Reduced price drinks with location attraction ticket stubs. Get more for you money by saving your entry tickets to local attractions. The River Bend Tea & Coffee company has teamed up with local Park's, Zoo's and Theme parks to provide anyone who provides a valid and 'used' entry ticket 25% off all iced teas and coffees. Entry ticket will be retained when drinks are purchased. This promotion is only valid in the USA and Europe.
Body
Table 21 Content for site area Promotions Field Default Content Name Display Title Lunchtime offer Lunchtime sandwich deal
Description Cheaper drinks at River Bend for hungry workers. Summary Body Hungry? Save on your drinks at River Bend using our lunchtime savings 50% off promotion. For a limited period River Bend Tea and Coffee company will give you 50% - 245
off your hot or cold beverages purchased along with a full price sandwich and crisps (chips). The promotion is open to all stores and limited between the weekday lunch hours of the local country. For further details of the promotion visit your local store. Locating your store is easy by using the store locator on the River Bend website.
Table 22 Content for site area Promotions Field Default Content Name Display Title Lunchtime offer Lunchtime sandwich deal
Description Cheaper drinks at River Bend for hungry workers. Summary Hungry? Save on your drinks at River Bend using our lunchtime savings 50% off promotion. For a limited period River Bend Tea and Coffee company will give you 50% off your hot or cold beverages purchased along with a full price sandwich and crisps (chips). The promotion is open to all stores and limited between the weekday lunch hours of the local country. For further details of the promotion visit your local store. Locating your store is easy by using the store locator on the River Bend website.
Body
Table 23 Content for site area Promotions Field Default Content Name Display Title Lunchtime offer Lunchtime sandwich deal
Description Cheaper drinks at River Bend for hungry workers. Summary Hungry? Save on your drinks at River Bend using our lunchtime savings 50% off promotion. For a limited period River Bend Tea and Coffee company will give you 50% off your hot or cold beverages purchased along with a full price sandwich and crisps (chips). The promotion is open to all stores and limited between the weekday lunch hours of the local country. For further details of the promotion visit your local store. Locating your store is easy by using the store locator on the River Bend website.
Body
Description Hot and cold sandwiches and paninis Hot or cold you can't bear a River Bend sandwich or panini. Baked by our master bakers in country the bread for our sandwiches doesn't travel far to be married up to ingredients sourced locally. Local eggs, meat and salad farmed locally goes intro our sandwiches making them not only very tasty but also environmentally ethical. Take a look at what we have to offer below, and remember we always have in store specials: The Traditionals Egg and Cress on wholemeal Ploughmans special, cheddar cheese with apple and chutney Something Special Brie and Grape Avacado and Free Range Chicken Nice and Spicy Just Salami Beef and Horseradish Cajun chicken and salad Remember to check out those specials!
Body
Table 24 Content for site area Food Field Default Content Name Display Title Cakes and biscuits Cakes and biscuits
Description Naughty but nice cakes and biscuits Summary Can't help yourself with our River Bend, no sugar naughty but nice cakes and biscuits.
Table 25 Content for site area Tea Field Default Content Name Display Title Summary Flower teas Flower teas
Body
Need cheering up? Our flower tea is scented with rose and sunflower petals to give a refreshing clean tasting tea. Steam brewed quickly to infuse the tea at 80 degrees you gets all the flavor of nature.
Table 26 Content for site area Tea Field Default Content Name Display Title Spiced tea Spiced tea
Description Cinnamon spiced tea.. Summary Pleasing to the taste buds and the senses, cinnamon tea really spices up your day. Nature knows best and with our spiced Cinnamon tea it's a case of the Laurel tree. Our little spicy teas has it's origins in deep Sri Lanka, a blast to the senses our cinnamon tea is steeped briefly before pouring to make the perfect cup. Nature, spice and tea what more could you want.
Body
Table 27 Content for site area Coffee Field Default Content Name Display Title Coffee freddochino Coffee freddochino
Description Iced coffee with whipped cream Summary Image Phew, it's hot out there. Iced coffee is the way to cool you down and look cool too. iced_cappuccino5.jpg
Create content items associated to categories to test that these items work correctly, and these items would be the ones used by the personalization component.
In this final section, you will create additional categories, so that you can ultimately associate specific content items with specific categories. To do this, follow the steps shown below: Add Summer category by: 1. Expand Profile section 2. Click on Select Categories 3. Click Add 4. Expand River Bend, expand Products, expand Beverages, expand Season Drink - 248
5. Choose Summer 6. Click Ok You will see the following in the list of categories RiverBend/River Bend/Products/Beverages/Season Drink/Summer 7. Click Ok 8. Continue working on the content item Table 28 Content for site area Coffee Field Default Content Name Display Title Summary Latte Macchiato Latte Macchiato
Description Latte Macchiato If you like a coffee with something extra then this is the one for you. If it's a cold or hot day and you need to get yourself kick started for the day then a Latte Machiato is what you need. We take very hot and pure steamed milk (semi, 2%,) and infuse it with a shot of double roasted River Bends coffee. If you need something different then why not add a Caramel or Chocolate twist... macchiato-149.jpg
Body
Image
Add Winter category by: 9. Expand Profile section 10. Click on Select Categories 11. Click Add 12. Expand River Bend, expand Products, expand Beverages, expand Season Drink 13. Choose Winter 14. Click Ok You will see the following in the list of categories RiverBend/River Bend/Products/Beverages/Season Drink/Winter 15. Click Ok 16. Continue working on the content item Table 29 Content for site area Coffee Field Default Content Name Display Title Summary Body Coffee cioccolato Coffee cioccolato
Description Coffee cioccolato Indulgent we know, but coffee and chocolate Indulge in both your vices at the same time; a 'Cafe Cioccolato' is just what the Dr. ordered. 80% pure dark chocolate flakes and coffee ground together with a touch of whipped cream. A perfect date. - 249
Note: Create the content pages and assign them to the site areas as default content
- 250
Viewing the sample site after you have defined the default content areas, Viewing the content in a portlet Creating a Portal Page and adding the the content Viewer Portlets Configuring the Portlets
4. In the Search window, type Web and then click Search. 5. Find the Web Content Viewer portlet and click the Copy Portlet icon. 6. In both the portlet application and the portlet fields, enter the new name: WCM River Bend 7. Click OK.
11. In the left column of the window, click Add Portlets. 12. In the Search window, type WCM and click Search. 13. In the returned portlet list, select WCM River Bend Navigator. 14. In the right column, click Add Portlets. 15. In the Search window, type WCM and click Search. 16. Select WCM River Bend. 17. Click OK. 18. Click Done. 19. In the Search window, type River and then click Search. 20. Find the River Bend Coffee and Tea page and click the Mark icon.
21. Click on Select Page, click on Content Root, click on Administration, click on WebSphere Portal 22. Click on the Move button Now, the page has been moved under Administration and could be accessed from the left navigator as shown in figure 33
- 252
Figure 33 Part of the Administration left navigator showing the newly created page
Figure 34 Edit Shared Setting Icon 4. In the content type, select Component 5. Click the Edit icon in the content item navigator 6. Select Navigator. 7. Select Left Navigator. 8. Click OK. 9. Click the Edit icon in the Content section. 10. In the content item navigator, expand River Bend. 11. Select Home. 12. Click OK. 13. In the Links section, select This page under Broadcast Links To. 14. Under Receive Links From, select Other portlets and this portlet. 15. Click OK.
- 253
Controlling access to resources for read, write, or delete Managing different versions of libraries, design, and content Allowing users to contribute and review content in an organized way Locking shared resources while they are edited Providing tools to ensure consistency between different content items
In the following articles in this section, we discuss WCM Security, Workflow Using Collaborative Editing Tools, and managing components.
- 254
Control who can create content and design elements of a given type Suit the views and actions available in the authoring portlet for each user Determine which items are visible for a user when accessing them though the authoring portlet or rendering them in a site
The security model for the River Bend sample site Security levels in Web content management
WCM security is based on portal security, which provides a module called VMM, which is capable of managing multiple LDAPs and databases for a single portal instance. Portal security provide utilities to create, update, and delete user and groups through the administration area. Permissions are organized by using a tree-like structure. You can start by defining a general permission set for all libraries at the JCR repository and refining them for every item in the library, then for each item type, and finally item by item. By default, access levels are inherited by using the hierarchy shown in the following figure.
Propagation and inheritance of permissions can be stopped at any level of this tree. The security level are based on portal roles. For library security, there are five levels: - 255
user, contributor, editor, manager, and administrator. Item security has four security levels: user, contributor, editor, and approver. We explain these levels in the sections that follow.
There are three groups of users that can author content: General authors who will create content for the home page Authors from the marketing department who will create content for company and news sections o Authors from the operations department who will create content for Food and Beverages
o o
Approval for publish content must be provided by three different departments: HQ, HR, and Legal. Content must expire automatically or manually by either the author or any of the group of approvers from HQ, HR, and Legal. Any user must be able to view published content.
- 256
With this requirement we have prepared the following permission matrix. For every site section, three rows are shown: readers, editors, and approvers. Draft Approval Publish Expired Reject
Author content Approve rsHQ content All users Approve rsHR content Approve rsLegal Author contentAppr oversHQ contentAppr Author oversHR contentAppr oversLegal
Home
Author
contentAuthorsSto reMgr Joint approval: content Approve rsHQ content Approve rsHR content Approve rsLegal Author contentAppr oversHQ contentAppr oversHR contentAppr oversLegal contentAppr oversHQ contentAppr oversHR contentAppr oversLegal
Author
Author content Approve rsHQ content All users Approve rsHR content Approve rsLegal Author contentAppr oversHQ contentAppr Author oversHR contentAppr oversLegal
Company Author
contentAuthorsMa rketing Joint approval: Author content Approve rsHQ content Approve rsHR content contentAppr oversHQ contentAppr oversHR contentAppr oversLegal
- 257
Approve rsLegal Author Author content Approve rsHQ content All users Approve rsHR content Approve rsLegal contentAppr oversHQ contentAppr Author oversHR contentAppr oversLegal
News
Author
contentAuthorsMa rketing Joint approval: content Approve rsHQ content Approve rsHR content Approve rsLegal contentAppr oversHQ contentAppr oversHR contentAppr oversLegal
Author
Author content Approve rsHQ content All users Approve rsHR content Approve rsLegal Author contentAppr oversHQ contentAppr Author oversHR contentAppr oversLegal
Food
Author
contentAuthorsOp s Joint approval: Author content Approve rsHQ content Approve rsHR content Approve contentAppr oversHQ contentAppr oversHR contentAppr oversLegall
- 258
rsLegal Author content Approve rsHQ content All users Approve rsHR content Approve rsLegal Author contentAppr oversHQ contentAppr oversHR contentAppr oversLegal
Beverage Author s
Author
contentAuthorsOp s Joint approval: content Approve rsHQ content Approve rsHR content Approve rsLegal contentAppr oversHQ contentAppr oversHR contentAppr oversLegal
Author
Library
With WCM library level security, you can establish a common set of permissions that will be refined later. Library security is based on portal roles as defined in the following table. Roles Rendering and authoring portlet access rights User Users and groups assigned to this role can perform the following activities: - 259
View items in a Web site or rendering portlet to which they have been assigned user access.
Users and groups assigned to this role can perform the following activities:
Contributor
View items in a rendering portlet or servlet-rendered Web site to which they have been assigned user access. View libraries to which they have been assigned contributor access in an authoring portlet. Access the "My Items" and "All Items" views in an authoring portlet for libraries to which they have been assigned contributor access. Access the item type view within the authoring portlet for item types to which they been assigned user access.
Users and groups assigned to this role can perform the following activities:
Editor
View items in a rendering portlet or servlet-rendered Web site to which they have been assigned user access. View libraries to which they have been assigned contributor access in an authoring portlet. Access the "My Items" and "All Items" views in an authoring portlet for libraries to which they have been assigned contributor access. Access the item type view within the authoring portlet for item types to which they been assigned user access. Create a new item in an authoring portlet for libraries to which they have been assigned editor access.
Users and groups assigned to these roles can perform the following activities:
Manager
View items in a rendering portlet or servlet-rendered Web site to which they have been assigned user access. View libraries to which they have been assigned contributor access in an authoring portlet. Access the "My Items" and "All Items" views in an authoring portlet for libraries to which they have been assigned contributor access. Access the item type view within the authoring portlet for item types to which they been assigned user access. Create a new item in an authoring portlet for libraries to which they have been assigned editor access. Purge items in an authoring portlet for library item types to - 260
which they have been assigned manager access. Users and groups assigned to these roles can perform the following activities:
Administrator
View items in a rendering portlet or servlet-rendered Web site to which they have been assigned user access. View libraries to which they have been assigned contributor access in an authoring portlet. Access the "My Items" and "All Items" views in an authoring portlet for libraries to which they have been assigned contributor access. Access the item type view within the authoring portlet for item types to which they been assigned user access. Create a new item in an authoring portlet for libraries to which they have been assigned editor access. Purge items in an authoring portlet for library item types to which they have been assigned manager access. View, edit, delete, or approve any item in an authoring portlet for library item types to which they have been assigned administrator access.
Security Administrator These roles have no access to Web content management items. Delegator Privileged User
To render WCM objects, a user must be granted at least the User role on the library itself. For details and updated information, refer to the following Web address: http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1m0/topic/com.ibm.wp.ent.doc/wcm/ wcm_security_levels.html
Authors and Approvers will have contributor access as shown in the following figure.
- 261
User permission is inherited. Contributor permission is established at the next level, which is library resources.
Library resources
When a user accesses the authoring portlet, several views are available to access all the types of items that WCM manages such as authoring templates, components, or content. In a production system, not all user groups need to access every WCM feature. Therefore, the next level in the permissions hierarchy is the management of access.
- 262
Authors are provided editor level to content as shown in the following figure.
Item
As me mentioned earlier, library security is propagated by default to the library items. However, it is possible to override those permissions at the item level. Four different access levels can be granted to specific WCM items:
Item level security management depends on whether the item has a workflow:
Administrator security settings are provided for every item. If the item has a workflow, effective security settings are the combination of inheritance, administrator, and current workflow stage security settings. If the item does not have a workflow, effective security settings are the combination of inheritance, administrator, and user security.
Security settings can be batch processed through the WCM Authoring UI. Every WCM item includes a security section to read and edit those permissions as shown in the following figure.
- 263
The columns displayed in this table depend on whether the item is under a workflow:
Workflow items display the administrator defined, workflow, and inheritance. Workflow settings depend on the current workflow stage and cannot be edited. Non-workflow items display the administrator defined, user defined, and inheritance. Remember : Administrator defined permissions do not depend on the current workflow stage.
Company
News
- 264
Food
Beverages
Content element
In WCM, it is possible to filter who see a content element. To set permissions, go to the default content settings, expand the content element, and click Select editors or Select viewers
Local rendering portlet Remote rendering portlet Authoring UI Library admin portlets
The remote rendering portlet is used to communicate with another WCM server to render its content. The remote rendering portlet can use either LTPA or Credential Vault Slot to transfer user identity:
LTPA Token: Exported from one server and imported to the other; current user credentials used Credential Vault Slot: Stored specific value to use for all users accessing the portlet
Authoring portlet
- 266
3.4.2. Workflow
A workflow is a process that is used to control item state and security. In Web content management, workflows are designed by combining three kinds of elements:
Status: Controls whether the item is displayed in the rendered site Stages: Represent a step in a workflow Actions: Can be triggered when the user enters or exists a workflow stage
Workflows are assigned by site designers to one or more authoring templates. Workflows have access permissions with which content authors can choose among any of the visible workflows assigned to the current authoring template. In this article, we illustrate how to create both a basic workflow and a custom workflow using the River Bend sample site as the example.
Approval: This method should be the default working mode. Items may have four different states (draft, approval, published, and expired). Express: This method covers exceptions items that may be directly published from draft to published.
Stages are represented by rectangular shapes. State is represented by the shape color: orange for daft items, green for published items, and blue for expired items. Actions are displayed before and after each shape to represent what is executed when the item enters or exits that stage.
- 267
Note: As we mentioned previously, workflows have their own security setting with which you can define alternative ways to publish the same content. River Bend site designers use this feature to restrict the use of express publishing to a group of users who were created for this task called contentWFExpressUsers. These users can short cut the content publishing processing when dealing with exceptions.
Item status
Item status controls whether a WCM item is visible in the rendered site. A WCM "workflowed" item has three states:
Draft: The item has not yet been published and will not be rendered on the live site. The draft status is represented by an orange icon close to the content. Publish: The item is rendered on the live site. The publish status is represented by a green icon close to the content. Expired: The item is no longer published. The status is represented by a blue icon close to the content.
A WCM "non-workflowed" item has only one state, which is published . A nonworkflowed item is represented by a gray icon close to the item. Note: When progressing through a workflow, item status can only change in a linear fashion: - 268
Stages
Stages represent a step in the overall workflow process. With the use of stages, site designers can define the actions that will happen with a content and the necessary conditions (approvals) from the time it is created to the time it expires:
Workflows can have one or more stages. Content states happens when a content item reaches a new stage.
Workflow stages determine the content security for a particular stage. (Do not confuse this with the security of the stage itself.) Setting approve access is only available through the workflow stage. Such options as "Joint approval" and "Enter comment on approval" are set in the workflow stage. (Enter comment on approval can be across the workflow.)
Approval
Approver (*): contentApproversLegal, contentApproversHQ, contentApproversHR * Joint approval User: [anonymous portal user], [all Generate authenticated portal users] thumbnail Contributor: Publish Editor: Move content Manager: on expiry Approver: contentApproversLegal, date contentApproversHQ, contentApproversHR User: Contributor: Editor: Expired Expired The Scheduled Move action moves the content into this Manager: stage, where the Expire action stops the document from being Approver: contentApproversLegal, visible on the Web site contentAuthorsMarketing, contentAuthorsOps, contentApproversHQ, contentApproversHR, contentAuthorsStoreMgr User: Contributor: Reject E-mail for rejected content Editor: [authors] Manager: Approver: Rejected content reaches this stage. Authors are able to create a new draft from the rejected content. This is the stage where content from the workflow is published. A workflow custom action generates a thumbnail from an existing image for Products and News. The Publish action is triggered and the content is visible on the Web site. The Scheduled Move action is also triggered when the Expire Date is reached
Publish
- 270
Actions
Workflow actions can be triggered when an item enters or leaves a workflow stage. The Lotus Web Content Management application ships several types of actions that you can extend by writing your own action and packaging them as EAR or JAR files:
Scheduled move action : Used to move workflow items to the next stage based on date E-mail action : Used to e-mail users when an item reaches the stage State change actions : Change the item state to publish or expire Version actions : Create a new version of the item when this action is executed Scheduled move action : Moves an item to the next workflow stage at a specified date and time Custom actions : Allows the ability to create new actions by using Java code and packaging them as EAR or JAR files
Move content This scheduled move action detects when a document has passed its on expiry date expire date and moves the document into the expired stage Expired E-mail for rejected content Generate thumbnail Stops a document from being visible on the Web site Schedules the move of any content that meets the items expiration date Creates a thumbnail for use in menus by using a Java-based custom action
For the Move content on expiry date , select Expiry Date from the Date Type list and choose an appropriate date, for example tomorrow's date, to see this action. For the E-mail for rejected content, select E-mail authors . E-mail Stage Approvers is selected by default. Add an apology message in Additional e-mail text.
3. In the Properties section, click Select Workflow Stages . 4. Click Add . 5. Select the following options: o Approval o Draft o Expired o Published 6. Select the Draft stage. 7. Use the Move arrows, located to the right of the Workflow Stages list, to move the Draft stage to the top of the list. 8. Repeat steps 6 and 7 to rearrange the workflow stages as follows: o Draft o Approval o Published o Expired 9. Click OK . 10. Click Select Reject Stage . 11. Select the Reject stage. 12. Click OK . 13. Click Save ..., and then click Save and Close .
Creating a custom workflow action for the River Bend sample site
In this section, we explain how to create a custom workflow action for the River Bend sample site.
Development
Develop Java code for the action, two classes will be necessary, the actual code that will be executed everytime the action runs (based on the CustomWorkflowAction interface) and a factory that will be manage the creation of instances for this actions (based on CustomWorkflowActionFactory) Create a plugin descriptor file (plugin.xml) to register the workflow action within a WCM extension point Package and deploy your code either as an EAR or JAR file. An EAR file will allow you to hot deploy your code whereas JAR files require a server restart. Create custom workflow actions in WCM in same way as any other actions
Deployment Configuration
Development steps
Developers create a new Dynamic Web project.
- 274
com.ibm.itso.redwiki.wcm.wf.Thumbnail: This is a utility class for scaling images. com.ibm.itso.redwiki.wcm.wf.CWFAction: This class holds the actual action. It should implement the CustomWorkflowAction interface. com.ibm.itso.redwiki.wcm.wf.CWFActionFactory: This class manages the creation of action instances. It should implement CustomWorkflowActionFactory interface.
Thumbnail.class:
package com.ibm.itso.redwiki.wcm.wf; import java.awt.*; import java.awt.geom.*; import java.awt.image.*; import java.io.*; import javax.imageio.*; public class Thumbnail {
- 275
public static byte [] scale( byte [] data, int width, int height) { // Get system temp String tmp = System. getProperty ( "java.io.tmpdir" ); String src = tmp + "/" + new java.util.Date().getTime() + "_in.jpg" ; String dest = tmp + "/" + new java.util.Date().getTime() + "_out.jpg" ; // Temporay file names File srcFile = new File(src); File destFile = new File(dest); // Generate temporary file for input FileOutputStream fs; try { fs = new FileOutputStream(src); fs.write(data); // Convert byte array to buffered image BufferedImage imgSrc = ImageIO. read (srcFile); BufferedImage imgDest = new BufferedImage(width, height, BufferedImage. TYPE_INT_RGB ); Graphics2D g = imgDest.createGraphics(); AffineTransform at = AffineTransform. getScaleInstance ( ( double ) width / imgSrc.getWidth(), ( double ) height / imgSrc.getHeight()); g.drawRenderedImage(imgSrc, at); // Generate result image ImageIO. write (imgDest, "JPG" , destFile); InputStream is = new FileInputStream(destFile); // Convert result image to byte array long length = destFile.length(); // Will hold resulting byte array byte [] result = new byte [( int ) length]; if (length < Integer. MAX_VALUE ) { // Read in the bytes int offset = 0; int numRead = 0; while (offset < result. length && (numRead = is.read(result, offset, result. length - offset)) >= 0) { offset += numRead; } // Close the input stream and return bytes is.close(); } // Delete temporary files srcFile.delete(); destFile.delete(); return result;
- 276
CWFAction.class:
package com.ibm.itso.redwiki.wcm.wf; import java.util.Date; import import import import import import import import import import import import import import import javax.naming.InitialContext; javax.naming.NamingException; com.ibm.workplace.wcm.api.Content; com.ibm.workplace.wcm.api.Document; com.ibm.workplace.wcm.api.ImageComponent; com.ibm.workplace.wcm.api.WebContentCustomWorkflowService; com.ibm.workplace.wcm.api.custom.CustomWorkflowAction; com.ibm.workplace.wcm.api.custom.CustomWorkflowActionResult; com.ibm.workplace.wcm.api.custom.Directive; com.ibm.workplace.wcm.api. custom .Directives; com.ibm.workplace.wcm.api.exceptions.AuthorizationException; com.ibm.workplace.wcm.api.exceptions.ComponentNotFoundException; com.ibm.workplace.wcm.api.exceptions.IllegalTypeChangeException; com.ibm.workplace.wcm.api.exceptions.OperationFailedException; com.ibm.workplace.wcm.api.exceptions.PropertyRetrievalException;
public class CWFAction implements CustomWorkflowAction { public CustomWorkflowActionResult execute(Document arg0) { Directive directive = Directives. CONTINUE ; String message = "Action succesfully executed" ; if (arg0 instanceof Content) { // Get current image try { Content wcmItem = (Content) arg0; // Get image element ImageComponent bigImage = (ImageComponent) wcmItem .getComponent( "Image" ); // Check if there is an attached image if (bigImage.getImageFileName()!= null ) { // Get image bytes byte [] arrImg = bigImage.getImage(); // Scale it byte [] arrImgTmb = Thumbnail. scale (arrImg, 100, 50); // Load new image ImageComponent thumbnail = (ImageComponent) wcmItem .getComponent( "Thumbnail" ); thumbnail.setImage( "tmb_" + bigImage.getImageFileName(), arrImgTmb);
- 277
// Put new width and height thumbnail.setWidth( "100" ); thumbnail.setHeight( "50" ); wcmItem.setComponent( "Thumbnail" , thumbnail); } } catch (ComponentNotFoundException e) { // Dont rollback if a component is not found directive = Directives. CONTINUE ; message = "Image or thumbnail element not found" ; } catch (AuthorizationException e) { directive = Directives. ROLLBACK_DOCUMENT ; e.printStackTrace(); message = e.getMessage(); } catch (PropertyRetrievalException e) { directive = Directives. ROLLBACK_DOCUMENT ; e.printStackTrace(); message = e.getMessage(); } catch (OperationFailedException e) { directive = Directives. ROLLBACK_DOCUMENT ; e.printStackTrace(); message = e.getMessage(); } catch (IllegalTypeChangeException e) { directive = Directives. ROLLBACK_DOCUMENT ; e.printStackTrace(); message = e.getMessage(); } } WebContentCustomWorkflowService webContentCustomWorkflowService = null ; try { // Construct and inital Context InitialContext ctx = new InitialContext(); // Retrieve Custom Workflow Service webContentCustomWorkflowService = (WebContentCustomWorkflowService) ctx .lookup( "portal:service/wcm/WebContentCustomWorkflowService" ); } catch (NamingException ne) { // Exception retrieving Service ne.printStackTrace(); return null ; } // Create a result object CustomWorkflowActionResult result = webContentCustomWorkflowService .createResult(directive, message); return result; } public Date getExecuteDate(Document arg0) { return DATE_EXECUTE_NOW ; } }
- 278
Note: It is not necessary to save the current content item in the action. Directive.CONTINUE will do that for you.
CWFActionFactory.class:
package com.ibm.itso.redwiki.wcm.wf; import java.util.Locale; com.ibm.workplace.wcm.api.Document; com.ibm.workplace.wcm.api.custom.CustomWorkflowAction; com.ibm.workplace.wcm.api.custom.CustomWorkflowActionFactory; class CWFActionFactory implements CustomWorkflowActionFactory { public CustomWorkflowAction getAction(String arg0, Document arg1) { if (arg0.equalsIgnoreCase( "generate_thumbnail" )) { return new CWFAction(); } return null ; } public String getActionDescription(Locale arg0, String arg1) { return "Generates a thumbnail from existing content" ; } public String[] getActionNames() { String names[]={ "generate_thumbnail" }; return names; } public String getActionTitle(Locale arg0, String arg1) { if (arg1.equalsIgnoreCase( "generate_thumbnail" )) { return "generate_thumbnail" ; } return null ; } public String getName() { return "CWFActionFactory" ; } public String getTitle(Locale arg0) { return "ITSO WCM 6.1 Redwiki Custom Workflow Action Factory" ; } } Finally, River Bend developers created the configuration file that registered the action in WCM by creating a new empty file under WEBINF, called plugin.xml with this content: <?xml version="1.0" encoding="UTF-8"?> <plugin id= "com.ibm.workplace.wcm.api.custom" name= "Sample Custom Workflow Action Factory" version= "1.0.0" provider-name= "IBM" > <extension-point id= "CustomWorkflowActionFactory" name= "CustomWorkflowActionFactory" /> <extension import import import public
- 279
point= "com.ibm.workplace.wcm.api.custom.CustomWorkflowActionFactory" id= "SimpleCustomWorkflowActionFactory" > <provider class= "com.ibm.itso.redwiki.wcm.wf.CWFActionFactory" /> </extension> </plugin>
Configuration
To make the action available for content creators, River Bend developers created a custom workflow action in the same way than any other action (New Workflow Actions Custom Action) with the following configuration:
- 280
- 281
3.4.3. Using collaborative editing tools: Versioning, link management, and locks
This article discusses the following features within the collaborative editing tools:
Item versioning Library versioning Link management Working with locked items
Using versions
Lotus Web Content Manager ships a versioning systems with which authors, designers, and administrators can track the changes that have been made to specific items or to an entire library, identify versions of libraries by date or tag, and restore them in the future.
Item versioning
In Lotus Web Content Manager 6.1, several options, as listed in the following table, are available to define when an item should be versioned. Manual A version action can be added to a workflow stage to create a new version when entering or exiting the workflow stage. A version action in a draft stage will not trigger versioning, since a draft cannot have versions. Always Never It is possible to create only one version of the item in a stage. A version of an item is created each time you save an item, or, if the item is participating in a workflow, each time the item's state changes to published. Versioning is not used
You can restore a version by viewing an item's version history and selecting a version to restore. Note - The versioning feature of IBM Lotus Web Content Management only saves - 282
versions of individual items. Any hierarchical relationships to other items are not saved. If the item you are restoring is participating in workflow, Restore will restore the item as a draft. Administrators and Managers can restore the item as a published item by clicking Restore as Published .
To save a new version of all items every time they are published, WCM designers add a version action to the publish stage of their workflow. .
- 283
Note: When you define your workflow stage, you should put version actions after publishing actions
Library versioning
With library versioning, administrators can group the items within a library by label or date and time. River Bend administrators use this functionality to create a baseline of the first version of the Web site as shown in the following figure.
The library version is created in the background. You can follow the task status by using the library management portlet as shown in the following figure.
- 284
If something goes wrong, River Bend administrators can go back to a previous version, selected by date or label, and specify default options for nonexisting items as shown in the following figure.
Note: A library cannot be restored while any items are currently locked or checked out by users. Before restoring a library, you must view all published items in a library and unlock any items marked as checked out or locked.
- 285
Links management
The View References tool (selected in the following figure) helps River Bend authors to keep track of and manage all the links between items.
River Bend authors can be the references from other items to an item and vice versa as illustrated in the following figure.
- 286
Locks
As River Bend authors contribute content, they might find items that are locked by other users, because either they are being edited by another user or a draft item has been created.
- 287
For site designers, Lotus Web Content Management provides the ability to preview other items such as templates, site areas, and components. Previewing options are controlled by the River Bend administrator by using the authoring portlet settings. Select Allow Authors to preview content in a Web page to allow users to preview pages by using the Web Content Management servlet:
To allow users to preview content in portal pages, select specific portal pages from the list, under Allow Authors, to preview content in the local portal pages selected as shown in the following figures. The selected portal pages must contain a Web Content Management local rendering portlet. To allow users to preview content in a portlet that is on a different WebSphere Portal server, enter the URL to the remote portal page, under Allow Authors, to preview content by using the URL field shown in the following figure. The portal pages entered here must contain a Web Content Management remote rendering portlet.
Note: When using a rendering portlet to preview Web content, the rendering portlet should be configured to receive links from "Other Portlets and This Portlet ". Otherwise the preview will not work. River Bend has decided to allow authors to preview content in the same way it is
- 288
Select the content element from any of the views that are available in the authoring environment and click the Preview button.
- 289
If there is more than one previewing option, the browser shows a dialog window to allow the author to choose where content should be previewed. See the following figure.
If the authors choose Preview as a Web page, a new browser window that shows a preview of how the selected content will be displayed after it is published.
- 290
The selected page is displayed in the preview portal page as shown in the following figure.
- 291
Note: Portal administrators can define several pages for previewing content. Those pages can have different navigation themes to allow authors to preview how content will display in different sites such as River Bend's public Web site and River Bend's intranet.
- 292
Overview of the personalization feature Creating a personalization rule Configuring the Personalized List portal Creating the Personalization Component
In the case of River Bend, a simple personalization rule and example is implemented to better illustrate the concept. The personalization rule that is implemented is based on dates. If the dates for accessing the site are within a range of defined "summer dates", then the home page illustrates a summer-based image of a refreshing iced coffee drink as shown in the following figure. If the dates for accessing the site are within a range of defined "winter dates", then the home page illustrates a winter-based image of a hot coffee drink.
- 293
A select rule chooses content based on the attributes of the content. For example, the GoldOffers rule selects products whose retail price is greater than a certain amount. With IBM Workplace Web Content Management content, you can also select content with a specific category. For example, a NonManager rule gets content that is created with the HRNews template that has a category of nonmanager. A profiler rule profiles based on user attributes, date, and any other information. This rule is used to decide which actions to take and which policies to use. It gives a name to a set of conditions. For example, a user is profiled as a premium user if the amount of the user's mortgage is over a certain amount. Another example is if a user's order amount is over a certain amount, then that user is profiled as a gold user . In addition, an employee can be profiled as nonmanagement if the employee's isManager attribute is set to false. A binding rule ties the profile and select rules together. Premium users see PremiumOffers, gold customers see GoldOffers, and non-manager employees see NonManagement news. You do not have to coordinate the naming of the profile with the select rule name. However, this convention helps when creating the binding rule.
Any of these rules can be tied to a content spot. To enable your environment to construct these rules, you must install and configure personalization in Lotus Web Content Management. Prior to Lotus Web Content Management version 6.0, content that existed on a separate database had to be shadowed in the JCR database in order to work with the personalization feature in WebSphere Portal. However, starting with Lotus Web Content Management version 6.0 and later, the content resides on a JCR database. Therefore, there is no need for shadowing. Moreover, the WCM resource collection is available in - 294
the Personalization UI, after Lotus Web Content Management is configured, starting from WebSphere Portal 6.0.
Figure Select Rule to get WCM content based on Authoring template 8. Select 'Save' 9. To see that content is returned from this rule, select the Preview tab, as shown in Figure below.
Figure Results of the Select Rule This Personalization Rule can now be displayed in a Personalization List Portlet, - 295
referenced in an IBM Lotus Web Content Management component, or included within a Content Spot on a Portal page.
One that configures the Spot information One that configures the Display Options
In order for these options to be displayed, on the Personalized List Portlet Menu, select 'Configure' and the following screen is displayed.
Click the drop down that says 'Nothing Selected' and you are provided with the following option, as shown in the figure below
- 296
Pick the Select content rule that you had created earlier and the following screen is displayed, as shown in the figure below.
Figure Select Rule is chosen as the resource To configure the display settings for Personalized List Portlet, do the following: 1. Click Display Options . 2. Choose the Fixed Title attribute for the Title Attribute and choose the Fixed Description attribute for the Detail Attribute. 3. Select 'Locations' for the Categorization Attribute. This groups the content under the site area structure. 4. Click OK .
- 297
When you select a title, you get the detail attribute displayed for that title. Note that this list does not use the site area and presentation template to render the content. Instead, it uses just the attribute that you defined in the Portlet configuration. Only Select rule, Binding rule, content spots and custom JSP that has a content spot can be verified using Personalized List portlet. Profiler rules cannot be tested using this portlet.
Create select action rules Create profiler rule Create binding rule Create Personalization Component
2. 3. 4. 5. 6. 7. 8. 9.
Select New and choose Rule. Enter SummerDrinkRule in the Rule name Choose Select Action if it wasn't already selected Click on content* and change it to be Web Content Click on Attribute and change it to be Category Choose is exactly instead of is associated with Click on value*, choose Select category Navigate to the category Summer under SeasonDrink under Beverages under Products 10. Click Ok The rule should look like the rule in the figure below:
Figure - Summer Selection Action Rule 11. Click Save 12. Repeat steps 2 through 11 to create the Winter Selection Rule. Its name would be WinterDrinkRule and Category is Winter
9. Click on add Condition and repeat steps 6-8 with the values October and December 10. Click on add Profile and type Summer 11. Repeat steps 6-8 with values April and September 12. Click Save
- 301
Figure - Binding Rule If we had already created the content with the matching categories, we can view the content as shown in the Figure below by clicking on Preview
- 302
Figure - Binding Rule Viewer A no content screen will be shown until we create content with those categories.
Note: You can create a new rule by clicking on the New* button if it is just one simple rule. 7. Add the following html in the design for each search result : <a href="<Placeholder tag="href"/>"> <Element context="autoFill" type="content" key="Image"/></a> 8. Click Save and then click Save and Close . We will be adding a reference to the personalization component from inside the presentation template of the home page.
- 304
Consumer preferences are not random. People who express the same taste in products can recommend products to others. The Recommendation Engine uses collaborative filtering/market basket analysis technology to learn from observed behavior, and based on that behavior, select the right content to present an appropriate product to recommend. At the core of the product is a set of engines that apply the collaborative filtering technology to analyze data . Preference Engine: The Preference Engine leverages explicitly stated preferences to make highly accurate recommendations for products and content.
The information that is gathered by this process can then be leveraged as rules that can be used to tell Lotus Web Content Management which content, to who, and when. For our River Bend Web site, we show three examples of this: 1. Campaign Example 1 - In this first example, the user, Dana, is given recommendations of another type of drink based on her buying patterns as shown in the following figure.
- 305
2. Campaign Example 2 - In the second example, the user, Erasmus, is offered a promotion to get a higher level of discount if he buys a little bit more to raise his level, as shown in the following figure.
3. Campaign Example 3 - In the third example, the user Max's profile does not match any of the recommendation criteria. In this case, he gets no recommendations, making this portal experience different from the others as illustrated in the following figure.
- 306
Important : As the profiles of the user change, different portlets are displayed at various times and the portal framework automatically resizes and arranges the portlets so that no space is wasted.
- 307
3.6 Internationalization
Internationalization in Lotus Web Content Management 6.1
Multi languages are not directly supported by Lotus Web Content Management, but this can be implemented using other means to maintain different localities for the web site. There are many different methods which can be applied in order to achieve a multi language site. The following section discusses several approached on how to implement it, while also listing resources which provide more in-depth information on this topic. 1. Create a separate library/site/site area for each language o A different content will be created for every language. o A JSP component will be created to switch between the libraries/site/ site area o According to the requirements, the user could be switched to the same content in the different language, or switched back to the home page. 2. Add a language category for every content item specifying the language. Use personalization component, menu components or a JSP component to filter the content out. 3. Duplicate the fields in the authoring template. For every field, have it in both languages. Every component has to be repeated for each language. The presentation template is repeated as well, and a JSP component switches between the presentation templates. These are just a few suggested design options. Please refer to the following links for more information:.
Portal 6.1 InfoCenter (http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1m0/index.jsp) Implementing multilingual sites using IBM Workplace Web Content Management in IBM WebSphere Portal Managing multi-lingual Workplace Web Content Management content in WebSphere Portal Implementing a globalization solution with IBM Lotus Workplace Web Content Management
- 308
3.7 Search functionality in WebSphere Portal and Lotus Web Content Management
WebSphere Portal and Lotus Web Content Management provide search capabilities as described in this section. We discuss this within the specific context of the River Bend corporate Web site. Specifically, within this article, we discuss:
WebSphere Portal search and Lotus Web Content Management Making River Bend content searchable Adding search components to the River Bend site
Full text search (shown in the following figure) is one of the most powerful tools of a corporate Web site. WebSphere Portal provides a complete search service with a full text crawler, an indexer, and several components to build the customized search interfaces.
Text analysis functions, including taxonomy, categorizer, language tools, and summarizer Web-style search of the following items:
o o o o
Portal pages and portlets Lotus Web Content Management sources External Web search sources High precision relevance ranking
More than 250 different document formats are supported for index and search via WebSphere Portal Web crawler. A search service can be deployed on a external server, which is always required to use searches within a Portal Cluster. Portal search has a published API, the IBM Search and Index API, to develop custom search application interfaces. From a user perspective, WebSphere Portal search provides the following functionalities:
Administrator: Create and maintain search collections; administration portlets to configure and schedule content indexing User search interface: Search box in the themes and search portlets (Search and Browse and Search Center)
Portal Search provides specific functions for Web Content Management (WCM):
Web content indexer to add WCM content to a search index with some advantages over Web crawling such as the ability to filter the results by using WCM permissions before they are shown to the user - 310
User interface components, which are used to build custom search interfaces
Automatically: You can create one by running the ConfigEngine. {sh | bat} action-http-wcm-shared-collection task from the wp_profile_root /ConfigEngine directory. Manually: You can do this by using Portal Administration, browsing to Search Manage Search and clicking Collections from All Services as shown in the following figure.
To create a collection that hosts search indexes, River Bend administrators click New Collection . They enter the values as shown in the following figure and click OK .
- 311
The system shows a confirmation message, and the new collection is displayed as shown in the following figure.
A search collection can search through several Lotus Web Content Management sites. The next step is to configure the River Bend site to be searched in the new search. Go to the Authoring Portlet, edit the River Bend site, and select the Searchable check box as shown in the following figure.
- 312
After saving the changes for the site, the site is added to the existing Web content collection as shown in the following figure. River Bend administrators can go back to the search collection to check it and start the indexing process.
- 313
A quick search form: This form is displayed on every page of the Web site. Users can search for it by writing it in a text field and clicking a button. Results page: This page formats and displays the results of the search by relevance. Advanced search forms: With these forms, users can compose more complex search conditions.
To build these elements, Lotus Web Content Management provides two types of components:
HTML components: These components are used to build search forms that are created just like any other regular HTML form but including an action that points to an existing content element. This content element must include a search component in its presentation template. Search component: These components are used to format and display search results. Search components are included as part of a presentation template. A search component always includes a reference to a search collection and an HTML design for the results. When a new search is posted after the search component, the query is processed by the search collection. Then the results are - 314
displayed by using the format defined by the designers. A search component may optionally include a page navigation component to navigate the search results by using several pages. River Bend designers decided to create a set of new items as illustrated in the following figures:
Basic search forms that are included on every page of the Web site Search component and page navigation component to process searches and display results A generic authoring template to build items that display search results by combining informational text, a search component, and an advanced search form A presentation template to format the search results items A content item that receives any request for a search and a site area that hosts it
- 315
following figure.
Search by type: Allow the user to search all content that is created with a specific authoring template Search by title: Allows the user to search all content that includes a text pattern in its title
- 316
Search results
The search results component is included as part of the search presentation template in order that it receives the request of the search forms, processes them by using the Web Content Collection, and formats the results to display the content title, a summary, and its relevance.
- 317
- 318
- 319
The results are shown to the user by displaying several pages through a page navigation element.
- 320
- 321
- 322
Search area
This site area hosts the Results content item and is used to add a Search entry to River Bend main menu. It includes a mapping between the search authoring template and the
- 323
- 324
- 325
- 326
- 327
Expand your WCM environment Personalize your authoring tools o In-line editing o Remote actions o Launch JSP o Custom content elements o Rich-text editors Integrating with other systems WCM and beyond o Overview of the WCM API o New features in the WCM 6.1 API o Library Management API o Syndication API o API samples - Sample 1 - Adding Comments to News o API samples - Sample 2 - Sample WCM Report
- 328
Personalizing your authoring tools o In-line editing o Remote actions o Launch JSP o Custom content elements o Rich-text editors Integrating with other systems Web content management and beyond o Overview of the WCM API o New features in the WCM 6.1 API o Library Management API o Syndication API o API samples - Sample 1 - Adding Comments to News o API samples - Sample 2 - Sample WCM Report
- 329
In-line editing Remote actions Launch JSP Custom content elements Rich-text editors
Inline editing
Lotus Web Content Manager enables site designers to add direct access to some authoring functions inside the rendered Web pages to perform the following tasks:
Create new content items Perform inline editing of the content item displayed in a Web page Delete the content item displayed in a Web page Approve or reject the current content being previewed These options are visible only to approvers who open a draft content item from a URL sent by an e-mail workflow action used in a workflow stage.
Inline editing is enabled by using authoring tools components, which are regular components that can be part of presentation templates, menu element designs, and navigator element designs. To increase productivity, River Bend designers added an authoring tool component to every presentation template. Thus, when an author accesses an existing content item, a quick menu is displayed (as shown in the following figure) for the author to edit and create new content.
- 330
The author only needs to click Edit to access to the current content item in edit mode as shown in the following figure.
The Authoring tool component creation is a simple process. Therefore, the River Bend designers only need to specify the design they want for the action buttons as shown in the following figure.
- 331
Several options, such as the authoring template or the site area for new content, are available for the different authoring tools.
Remote actions
Lotus Web Content Management provides a simple method to access directly a lot of the authoring environment actions by using a URL pattern. Consider the following examples of remote action uses: - 332
Creating content by using a basic form Displaying a list of content searched by using an API and providing direct links for open, edit, approve, decline, or delete actions Giving the users direct access to the most useful views in the authoring portlet based on their role
You can find a list of all available remote actions in the WebSphere Portal information center at the following address: http://publib.boulder.ibm.com/infocenter/wpexpdoc/v6r1m0/topic/com.ibm.wp.exp.doc/ wcm/wcm_dev_remoteactions.html
Launch JSP
The Lotus Web Content Management authoring portlet enables you to configure an alternative launch page to the default user interface. A custom launch page can either be a JSP or HTML file that must be stored in was_profile_root/installedApps/cellname/PA_WCM_Authoring_UI.ear/ilwwcmauthoring.war/jsp/html. By combining API calls and remote actions in launch JSPs, you can create shortcuts for views and functions with the authoring portlet user interface.
Creating a shortcut to create a content element using any of the authoring templates available for the user Listing all the drafts created by the current user with contextual links for opening, editing, or submitting for approval Listing all the content pending for approval with contextual links for opening, approving, or declining it Listing all the published content with contextual links for opening it Opening the Lotus Web Content Management main view
- 333
To develop this custom page, River Bend designers followed these steps: 1. They created a empty file, called customLaunchPage.jsp , and placed it under the authoring portlet deployment folder/jsp/html. 2. They edited the new JSP and added the following sections:
Note: Actual code samples are available for download. They are posted as attachments at the bottom of this document.
Section 1: Page imports, common Java objects initialization and one JavaScript function with which users can collapse and expand the page sections.
<%@page import="com.ibm.workplace.wcm.api.*, com.ibm.workplace.wcm.api.exceptions.*" %> <% Repository repository = WCM_API.getRepository(); Workspace workspace = repository.getWorkspace(request.getUserPrincipal()); // Set current document Library workspace.setCurrentDocumentLibrary(workspace.getDocumentLibrary("River Bend")); %> <script> function display(id) { status=document.getElementById(id).style.display; if (status=="none") { status=document.getElementById(id).style.display = "block"; } else {
- 334
Section 2: Quick content creation form First a JavaScript function is created to help compose direct action URLs for content creation. Then an API call retrieve is available for authoring templates for the current user to compose a select list with them.
<h4><a href="javascript:display('create')">Create Content</a></h4> <div id="create" style="display:block"> <script> function createContent(){ atid=document.getElementById('atid').value; contentName=document.getElementById('contentName').value; document.location.href='?wcmAuthoringAction=new&type=com.ibm.wor kplace.wcm.api.WCM_Content&atid=' + atid + '&wcmfield.content.name=' + contentName; } </script> Authoring template: <select name="atid" id="atid"> <% // Get all the authoring templates DocumentIdIterator authoringTemplates = workspace.findByType(DocumentTypes.AuthoringTemplate); while (authoringTemplates.hasNext()){ DocumentId authId = (DocumentId) authoringTemplates.next(); out.println("<option value='" + authId.getId() + "'>"+authId.getName()+"</option>"); } %> </select> New item name: <input type="text" name="contentName" id="contentName"/> <input type="button" onClick="createContent()" value="Create"/> </div>
Section 3: My Drafts An API call retrieves the workflow stage called Draft from the River Bend library. This stage is used together with the current user name to perform a search on all the library content where the user has the author role. Direct actions are composed for open, edit, and approve.
<h4><a href="javascript:display('drafts')">My Drafts</a></h4> <div id="drafts" style="display:block"> <table > <% // Get draft workflow stage
- 335
DocumentIdIterator draftIt = workspace.findByName(DocumentTypes.WorkflowStage,"Draft"); DocumentId draftSt = null; if (draftIt.hasNext()){ draftSt = (DocumentId) draftIt.next(); } if (draftIt!=null) { // Get all the content in this stage DocumentId[] arraySt=new DocumentId[1]; arraySt[0]=draftSt; String[] arrayUsers=new String[1]; arrayUsers[0]=request.getUserPrincipal().getName(); DocumentIdIterator drafts = workspace.findContentByWorkflowStage(arraySt,arrayUsers,Workspace.ROLE_ AUTHOR); boolean found=false; while (drafts.hasNext()) { found=true; DocumentId draft = (DocumentId) drafts.next(); out.println("<tr>"); out.println("<td>" + draft.getName() + "</td><td><a href='?wcmAuthoringAction=read&docid=com.ibm.workplace.wcm.api.WCM_Cont ent/" + draft.getId() + "'>Open</a></td>"); out.println("<td><a href='?wcmAuthoringAction=edit&docid=com.ibm.workplace.wcm.api.WCM_Cont ent/" + draft.getId() + "'>Edit</a></td>"); out.println("<td><a href='?wcmAuthoringAction=approve&docid=com.ibm.workplace.wcm.api.WCM_C ontent/" + draft.getId() + "'>Approve</a></td>"); out.println("</tr>"); } if (!found) { out.println("There are no drafts currently available"); } } %> </table> </div>
Section 4: Content pending for approval The Content pending for approval section is built in the same way as Section 3. An additional workflow stage (approval) is added to the search query, and the content is filtered by using ROLE_APPROVER.
<h4><a href="javascript:display('approval')">View Content Requiring My Approval</a></h4> <div id="approval" style="display:block"> <table > <% // Get approval workflow stage DocumentIdIterator approvalIt = workspace.findByName(DocumentTypes.WorkflowStage,"Approval"); DocumentId approvalSt=null; if (approvalIt.hasNext()){ approvalSt = (DocumentId) approvalIt.next(); } if (draftSt!=null && approvalSt!=null){ // Get all the content in this stage
- 336
DocumentId[] arraySt=new DocumentId[2]; arraySt[0]=draftSt; arraySt[1]=approvalSt; String[] arrayUsers=new String[1]; arrayUsers[0]=request.getUserPrincipal().getName(); DocumentIdIterator approvedDocs = workspace.findContentByWorkflowStage(arraySt,arrayUsers,Workspace.ROLE_ APPROVER); boolean found=false; while (approvedDocs.hasNext()) { found=true; DocumentId approved = (DocumentId) approvedDocs.next(); out.println("<tr>"); out.println("<td>" + approved.getName() + "</td>"); out.println("<td><a href='?wcmAuthoringAction=read&docid=com.ibm.workplace.wcm.api.WCM_Cont ent/" + approved.getId() + "'>Open</a></td>"); out.println("<td><a href='?wcmAuthoringAction=approve&docid=com.ibm.workplace.wcm.api.WCM_C ontent/" + approved.getId() + "'>Approve</a></td>"); out.println("<td><a href='?wcmAuthoringAction=decline&docid=com.ibm.workplace.wcm.api.WCM_C ontent/" + approved.getId() + "'>Decline</a></td>"); out.println("</tr>"); } if (!found) { out.println("There are no documents pending for approval"); } } else { out.println("Draft or Approval stages couldn't be found"); } %> </table> </div>
Section 5: My Published content The My published content section is built by using the same steps as in the two previous examples.
<h4><a href="javascript:display('published')">My Published Content</a></h4> <div id="published" style="display:block"> <table > <% // Get published workflow stage DocumentIdIterator publishedIt = workspace.findByName(DocumentTypes.WorkflowStage,"Published"); if (publishedIt.hasNext()){ DocumentId publishedSt = (DocumentId) publishedIt.next(); // Get all the content in this stage DocumentId[] arraySt=new DocumentId[1]; arraySt[0]=publishedSt; String[] arrayUsers=new String[1];
- 337
arrayUsers[0]=request.getUserPrincipal().getName(); DocumentIdIterator publishedDocs = workspace.findContentByWorkflowStage(arraySt,arrayUsers,Workspace.ROLE_ AUTHOR); boolean found=false; while (publishedDocs.hasNext()) { found=true; DocumentId published = (DocumentId) publishedDocs.next(); out.println("<tr><td>" + published.getName() + "</td><td><a href='?wcmAuthoringAction=read&docid=com.ibm.workplace.wcm.api.WCM_Cont ent/" + published.getId() + "'>Open</a></td></tr>"); } if (!found) { out.println("There are no published documents"); } } %> </table> </div>
Section 6: Open main view The Open main view section provides access to the default authoring user portlet interface.
<h4><a href="?wcmAuthoringAction=openmainview">Open main view</a></h4>
- 338
Rich-text editors
Web Content Management supports replacement of the out-of-the-box rich text editor with many third-party editors. At a minimum, for an editor to work within the Web content authoring portlet, it must support the setting and getting of its current HTML value via JavaScript. Refer to the "Examples of replacing the out of the box rich text editor in Web Content Management" wiki article at the following address for specific examples: http://www10.lotus.com/ldd/portalwiki.nsf/dx/replacing-the-out-of-the-box-rich-text-editor-in-webcontent-management
- 339
ECM Integration
In this section we describe an overview of how third party Enterprise Content Management (ECM) systems can be integrated with WCM. Organizations around the world use different types of ECM solutions and rely on WebSphere Portal to aggregate content and applications from different sources. It is common for third party ECM software to provide a standard JSR 168 portlet that can be used with the WebSphere Portal environment. However, this solution does not make use of the key WebSphere Portal capabilities such as search, security and personalized content delivery. To overcome this limitation, the IBM Software Services of Lotus (ISSL) team has developed an asset called the IBM Web Content Integrator (WCI). WCI allows content created in third party ECM systems to be published in WCM and thus making it available to the WebSphere Portal environment. WCM is part of WebSphere Portal and can very easily make use of the security features, search capability and deliver personalized content.
- 340
WCI uses the WCM API to consume content from the ECM system. It requires a RSS/ATOM feed that stores the META data and data and adheres to the IBM WCI specification. The working of the IBM WCI can be best explained by describing the various entities involved.
Feed Producer
This is a custom application that is built at the third party ECM level that uses the IBM WCI specification to produce the RSS/ATOM feed.
RSS/ATOM Feed
This is the RSS/ATOM Feed that is generated by the third party ECM custom application and contains the META data and data required by WCM.
WCI
IBM WCI is deployed on the WebSphere Portal environment and consumes the RSS/ATOM feed and uses the META data information from the feed to create new, update existing or delete WCM content.
- 341
Overview of the WCM API New features in the WCM 6.1 API Library Management API Syndication API
Create a taxonomy from a comma delimited file Bulk resource import Content search Perform search and retrieval operations, such as finding a given object by name, or finding content based on a workflow stage Integrate WCM with third-party applications.
WCM API
The Lotus Web Content Management API provides a way to programmatically access the core Web content management (WCM) classes. The Lotus Web Content Management API but provides a means to access the core classes, which, in turn, access the repository of content, components, categories, and so on. The following figure illustrates the way in which the WCM repository is accessed.
- 342
Following are the limited set of functions available when using the IBM Lotus Web Content Management API.
Moving or copying items within a library. Moving or copying items between libraries.
Find item of given type by name. Find items of given type. Find library components by name. Find content by authoring template. Find content by category. Find content by path. Find content by workflow stage. Find content modified since date. Find content modified between dates.
Content search (similar to the Menu Component search criteria but using item parameters as ids). Retrieve via item IDs. The ability to create, delete and save the following items:
o o o o o o o o o
Content Sites Site Areas File Resource components HTML components Image components Date and Time components Link components Number components - 343
o o o o o
Rich text components Style Sheet components Short text components Text components User Selection components
The ability to retrieve the following items from searches, (but NOT as an item):
o o o
Authoring Template ID (Authoring Template) Presentation Template ID (Presentation Template) Workflow Stage ID
The ability to approve or reject content items in a workflow stage. Other itemtypes do not support this function.
The creation, update or deleting of workflows, workflow stages, workflow actions, taxonomies, categories, syndicators, subscribers, presentation templates, authoring templates, and components not specified above.
Create custom workflow actions - More details are covered in the section on creating a custom workflow. o Set of API to allow custom code to be invoked as part of the WCM Workflow process e.g. To create workflow actions such as Achieve, more email notifications, etc., Dynamic workflow approvers o New methods are added to com.ibm.workplace.wcm.api.Content to change approvers o Approvers can be added or removed o Approver access can be checked Library Services o The library service exposes APIs to create, save, copy, export and import WCM libraries Library Document list - 344
Enables to export a list of information about all web content artifacts in a library Manage syndication o Set of API to allow dynamic control of syndication
o
New set of findBy methods to simplify retrieval of content by workflow state (published, draft, expired, and any combination of these) are added. New methods to build better performing solutions are also added. Optimized retrieval of items for rendering and read operations when asReference is set to true o getById(DocumentId id, boolean asReference) o getByIds(DocumentIdIterator documentIterator, boolean asReference) Choice to use common name (default) or distinguished name to use with workspace. This is also configurable in WCMConfigService.properties file by the property api.use.dn = false. Each workspace can override this by setting calling useDistinguishedNames (boolean distinguishedNames).
New methods are added to com.ibm.workplace.wcm.api.Content to change approvers Allows approvers can be added or removed. o addApprovers(String[] approvers) o removeApprovers(String[] approvers) Allows to check for approver access o hasApproverAccess()
- 345
Custom writer can also be written by implementing the com.ibm.workplace.wcm.api.DocumentListWriter. One application of this API is to write a tool to compare exported lists from a syndicator and a subscriber to check if all expected items are syndicated to the subscriber system.
Syndication API
The main purpose of this API is to dynamically control syndication. Main functionalities of this API would include
Enable, disable syndicators and subscribers Start full or partial updates Dynamically check syndication updates to see if its running View syndicator or subscriber details Name, libraries being syndicated Last Syndication details Items updated, saved, modified, removed
com.ibm.workplace.wcm.api.SyndicationService enables access to control syndication between syndicator and subscriber . SyndicationService is available as a service and can be retrieved as below SyndicationService syndicationService = (SyndicationService) ctx.lookup("portal:service/wcm/SyndicationService");
- 346
Add the below code into comments.jsp and store it into <wp_profile>\installedApps\<nodename>\ PA_WCMLocalRendering.ear\ilwwcmlocalrende.war\jsp\html. Create a JSP Component named commentsJSP pointing to jsp/html/comments.jsp
<%@ page import="com.ibm.workplace.wcm.api.*"%> <%@ page import="com.ibm.wps.services.ServiceManager"%> <%@ page import="java.util.*,java.security.Principal"%> <%@ page import="java.text.SimpleDateFormat"%> <%//Use WebSphere Portal Service Manager to obtain the WCM Service try { // Construct and inital Context javax.naming.InitialContext ctx = new javax.naming.InitialContext(); // Retrieve WebContentService using JNDI name WebContentService webContentService = (WebContentService) ctx.lookup("portal:service/wcm/WebContentService"); //Get the WCM Repository Repository rep = webContentService.getRepository(); //Get an authenticated WCM Workspace Workspace wsa = rep.getWorkspace();
- 347
//Set the current library wsa.setCurrentDocumentLibrary(wsa.getDocumentLibrary("riverbend" )); //Get the rendering context RenderingContext renderingContext = (RenderingContext) request.getAttribute(Workspace.WCM_RENDERINGCONTEXT_KEY); //Constants String COMMENTFIELDNAME = "comment"; String SEPERATOR = "~"; String INTSEPERATOR = ";"; //Get the current content object Content current = renderingContext.getContent(); //The comments component TextComponent commentscomponent = null; //Get the comment component commentscomponent = (TextComponent) current.getComponent(COMMENTFIELDNAME); //Display items from the post String comment = null; String user = null; String date = null; String rating = null; //Get the current date String format = "dd/MM/yy"; Date today = new Date(); SimpleDateFormat formatter = new SimpleDateFormat(format); String datenewformat = formatter.format(today); //Get posted details if(request.getMethod().equalsIgnoreCase("POST")){ comment = request.getParameter("comment"); user = request.getParameter("user"); rating = request.getParameter("Rating"); String currentComments = ""; //Get the current comments currentComments = commentscomponent.getText(); if(user == null) user = "Anonymous"; if (comment != null && (!comment.equals(""))) { //Add this comment if (commentscomponent!=null) { //Remove the seperator if this exists in the comments comment.replace('~', ' '); //Add the comments currentComments = currentComments + user + INTSEPERATOR + datenewformat + INTSEPERATOR + comment; } } if(rating != null)
- 348
{ if(comment == null || comment.equals("")) currentComments = currentComments + user + INTSEPERATOR + datenewformat + INTSEPERATOR + " " + INTSEPERATOR + rating ; else currentComments = currentComments + INTSEPERATOR + rating ; } if(rating != null || comment != null) currentComments = currentComments + SEPERATOR; commentscomponent.setText(currentComments); current.setComponent(COMMENTFIELDNAME, commentscomponent); //Save the content wsa.save(current); } //Display the comments if(commentscomponent != null){ //Get the current comments String currentComments = commentscomponent.getText(); //The HTML output String html = ""; if(currentComments != null || (!currentComments.equals(""))) html = html + "<b> Comments Posted </b> <br>"; StringTokenizer st = new StringTokenizer(currentComments, SEPERATOR); while (st.hasMoreTokens()) { //Get the token String thiscomment = st.nextToken(); //Split this comment StringTokenizer st2 = new StringTokenizer(thiscomment, INTSEPERATOR); String[] results = {" ","","","-"}; int n = 0; while (st2.hasMoreTokens()) { results[n] = st2.nextToken(); n = n + 1; } //Add light formatting and add to the html if(results[2].equals(" ")) html = html + "<hr/><i>" + "Created by: "+ results[0] + " on " + results[1] + "</i><br/><i>Content rating: "+results[3]+" <hr/><br/>"; else html = html + "<hr/>" + results[2] + "<br/><i>" + "Created by: "+ results[0] + " on " + results[1] + "</i><br/><i>Content rating: "+results[3]+" <hr/><br/>"; } //Write out the html out.print(html); } webContentService.getRepository().endWorkspace();
- 349
Add an HTML component to create a comment form and add the below html code into the HTML Element
<form name="addacomment" action="" method="POST"> <input type="hidden" name="user" value="<Component name="riverbend/username"/>" /> <table border="1" cellspacing="0" cellpadding="1" ><tr> <td> <b>Rate this page:</b><br/> <table border="0" cellspacing="0" cellpadding="1" > <tr> <td> <table cellspacing="0" cellpadding="0" border="0" width="100%"> <tr> <td width="15%"> Comment </td> <td> <TEXTAREA NAME="comment" COLS=40 ROWS=6></TEXTAREA><br/> </td> </tr> </table> </td> </tr> <tr> <td> <table cellspacing="0" cellpadding="0" border="0" width="100%"> <tbody> <tr> <td width="15%"> Rating </td> <td align="left" width="58" valign="top"> <input type="radio" name="Rating" id="Rating1" value="1"/> <label for="Rating1">1 (Low)</label> </td> <td align="left" width="58" valign="top"> <input type="radio" name="Rating" id="Rating2" value="2"/> <label for="Rating2">2</label> </td> <td align="left" width="58" valign="top"> <input type="radio" name="Rating" id="Rating3" value="3"/> <label for="Rating3">3</label> </td> <td align="left" width="58" valign="top"> <input type="radio" name="Rating" id="Rating4" value="4"/> <label for="Rating4">4</label> </td> <td align="left" width="61" valign="top"> <input type="radio" name="Rating" id="Rating5" value="5"/> <label for="Rating5">5 (High)</label> </td> </tr> </tbody>
- 350
</table> </td> </tr> <tr> <td> <input type="SUBMIT" name="submit" value="Submit"/> </td> </tr> </table> </td> </tr> </table> </form>
This form includes a user name component which is used to store the comment creator's name and name it as UserName
Add the reference of these comment jsp and the comments html into the appropriate presentation template. In the case of riverbend, add to the News Presentation Template.
- 351
- 352
The following is the content of the jsp, which generates these reports.
<%@ page import="com.ibm.workplace.wcm.api.*"%> <%@ page import="com.ibm.wps.services.ServiceManager"%> <%@ page import="java.util.*,java.security.Principal"%> <%@ page import="java.text.SimpleDateFormat"%> <script> function submitForm(funct) { document.findreplace.reportType.value = funct; document.findreplace.submit(); } </script> <form name="findreplace" action="" method="POST"> <input type="hidden" name="reportType" value=""/> <table> <tr> <td> <ul> <li><a href="javascript:submitForm('library');">Library Details</a><br><br></li> <li><a href="javascript:submitForm('libraryResource');">Library Resource Access Details</a><br><br> </li> <li><a href="javascript:submitForm('lock');">Locked Content List</a> <br><br></li>
- 353
<li><a href="javascript:submitForm('draft');">Draft Content List</a><br><br></li> <li><a href="javascript:submitForm('expired');">Expired Content List </a><br><br></li> <li><a href="javascript:submitForm('history');">Content History</a><br><br></li> </ul> </td> </tr> </table> </form> <br> <table border="1" cellpadding="0" cellspacing="0" bordercolor="gray" BORDERCOLORDARK="gray" BORDERCOLORLIGHT="gray" valign="center"> <% try { String reportType = ""; if(request.getMethod().equalsIgnoreCase("POST")) { reportType = request.getParameter("reportType"); if(reportType != null) { // Construct and inital Context javax.naming.InitialContext ctx = new javax.naming.InitialContext(); // Retrieve WebContentService using JNDI name WebContentService webContentService = (WebContentService) ctx.lookup("portal:service/wcm/WebContentService"); //Get the WCM Repository Repository rep = webContentService.getRepository(); //Get an authenticated WCM Workspace Workspace wsa = rep.getWorkspace(); //Set the current library wsa.setCurrentDocumentLibrary(wsa.getDocumentLibrary("Comment2Lib")); if(reportType.equals("lock")) { %> <tr> <td colspan="2" align="center" height="25"> <b>Locked Content List</b> </td> </tr> <% DocumentIdIterator contentIterator = wsa.findByType(DocumentTypes.Content); int displayHeader = 0; while(contentIterator.hasNext()) { DocumentId contentId = contentIterator.nextId(); if(wsa.isLocked(contentId)) { displayHeader++; Content content = (Content)wsa.getById(contentId);
- 354
<td><b> Name </b></td> <td><b> Parent </b></td> </tr> <% } %> <tr> <td> <%= contentId.getName() %> </td> <td> <%=content.getDirectParent().getName()%> & nbsp; </td> </tr> <% } } if(displayHeader == 0) { %> <tr> <td colspan="2"> There is no Locked Content </td> </tr> <% } } else if(reportType.equals("history")) { %> <tr> <td colspan="3" align="center" height="25"> <b> Content History </b> </td> </tr> <% DocumentIdIterator contentIterator = wsa.findByType(DocumentTypes.Content); int displayHeader = 0; while(contentIterator.hasNext()) { DocumentId contentId = contentIterator.nextId(); displayHeader++; Content content = (Content)wsa.getById(contentId); HistoryLogIterator logIterator = content.getHistoryLog(); if(displayHeader == 1) { %> <tr align="center"> <td><b> Name </b></td> <td><b> Parent </b></td> <td><b> History </b></td> </tr> <% } %> <tr>
- 355
<td> <%= contentId.getName() %> </td> <td> <%=content.getDirectParent().getName()%> & nbsp; </td> <td> <% while(logIterator.hasNext()) { HistoryLogEntry history = logIterator.nextLogEntry(); %> <%=history.getDate().toString() %> <%=history.getName()%> - <%=history.getMessage()%> <br> <% } %> </td> </tr> <% } if(displayHeader == 0) { %> <tr> <td colspan="2"> There is no content in Draft stage </td> </tr> <% } } else if(reportType.equals("draft")) { %> <tr> <td colspan="2" align="center" height="25"> <b>Draft Content List</b> </td> </tr> <% DocumentIdIterator contentIterator = wsa.findByType(DocumentTypes.Content); int displayHeader = 0; while(contentIterator.hasNext()) { DocumentId contentId = contentIterator.nextId(); if(contentId.isDraft()) { displayHeader++; Content content = (Content)wsa.getById(contentId); if(displayHeader == 1) { %> <tr align="center"> <td><b> Name </b></td> <td><b> Parent </b></td>
- 356
</tr> <% } %> <tr> <td> <%= contentId.getName() %> </td> <td> <%=content.getDirectParent().getName()%> & nbsp; </td> </tr> <% } } if(displayHeader == 0) { %> <tr> <td colspan="2"> There is no content in Draft stage </td> </tr> <% } } else if(reportType.equals("expired")) { %> <tr> <td colspan="2" align="center" height="25"> <b>Expired Content List</b> </td> </tr> <% DocumentIdIterator contentIterator = wsa.findByType(DocumentTypes.Content); int displayHeader = 0; while(contentIterator.hasNext()) { DocumentId contentId = contentIterator.nextId(); if(contentId.isExpired()) { displayHeader++; Content content = (Content)wsa.getById(contentId); if(displayHeader == 1) { %> <tr align="center"> <td><b> Name </b></td> <td><b> Parent </b></td> </tr> <% } %> <tr> <td> <%= contentId.getName() %>
- 357
</td> <td> <%=content.getDirectParent().getName()%> & nbsp; </td> </tr> <% } } if(displayHeader == 0) { %> <tr> <td colspan="2"> There is no content in Expire stage </td> </tr> <% } } else if(reportType.equals("library")) { %> <tr> <td colspan="4" align="center" height="25"> <b>Library Details </b> </td> </tr> <% try { %> <tr align="center"> <td><b> Name </b></td> <td><b> Description </b></td> <td><b> Enabled </b></td> <td><b> Language </b></td> </tr> <% WebContentLibraryService webContentLibraryService = (WebContentLibraryService) ctx.lookup("portal:service/wcm/WebContentLibraryService"); java.util.Iterator it = wsa.getDocumentLibraries(); while(it.hasNext()) { DocumentLibrary docLibrary = (DocumentLibrary)it.next(); //docLibrary.getLibraryResourceAccess(LibraryResourceType.AuthoringTemp late) %> <tr> <td> <%= docLibrary.getName() %> </td> <td> <%=docLibrary.getDescription()%> </td> <td> <%=docLibrary.isEnabled()%>
- 358
</td> <td> <%=docLibrary.getLocale().getLanguage() %> </td> </tr> <% } } catch (Exception ne) { System.out.print("Exception: " + ne); } } else if(reportType.equals("libraryResource")) { %> <tr> <td colspan="8" align="center" height="25"> <b>Library Resource Access Details* </b> <br> </td> </tr> <% try { %> <tr align="center"> <td><b> Library </b></td> <td><b> Authoring Template </b></td> <td><b> Components </b></td> <td><b> Content </b></td> <td><b> Presentation Template </b></td> <td><b> Site Framework </b></td> <td><b> Taxomomy </b></td> <td><b> Workflow </b></td> </tr> <% WebContentLibraryService webContentLibraryService = (WebContentLibraryService) ctx.lookup("portal:service/wcm/WebContentLibraryService"); LibraryResourceType resourceTypes[] = {LibraryResourceTypes.AuthoringTemplate, LibraryResourceTypes.Component,LibraryResourceTypes.Content, LibraryResourceTypes.PresentationTemplate, LibraryResourceTypes.SiteFramework,LibraryResourceTypes.Taxonomy, LibraryResourceTypes.Workflow }; LibraryMemberRole roleTypes[] = {LibraryMemberRoles.Administrator,LibraryMemberRoles.Security_Admin,Lib raryMemberRoles.Contributor, LibraryMemberRoles.Delegator, LibraryMemberRoles.Editor,LibraryMemberRoles.Manager, LibraryMemberRoles.Privileged_User,LibraryMemberRoles.User} for(int i=0;i<roleTypes.length;i++) { %> <tr> <td> <b><%=roleTypes[i]%> </b> </td> <%
- 359
for(int j=0;j<resourceTypes.length;j++) { boolean noDisp = false; %> <td> <% java.util.Iterator it = wsa.getDocumentLibraries(); while(it.hasNext()) { DocumentLibrary docLibrary = (DocumentLibrary)it.next(); String[] resourceMembers = docLibrary.getLibraryResourceAccess(resourceTypes[j]).getMembers(roleTy pes[i]); if(resourceMembers.length > 0 ) { noDisp = true; %> <%= docLibrary.getName() %> <% System.out.println("resourceMembers.length "+resourceMembers.length); for(int k=0;k<resourceMembers.length;k++) { if(k == 0) { %<%=resourceMembers[k]%> <% } else { %> , <%=resourceMembers[k]%> <% } } %> <br> <% } } if(!noDisp) { %> - <% } %> </td> <% } %> </tr> <% } } catch (Exception ne) { System.out.print("Exception: " + ne); } %> <tr>
- 360
<td colspan="8"> <br> <i> * Details are displayed in the format "Libary Name - Member Details" </i> </td> </tr> <% } webContentService.getRepository().endWorkspace(); } } } catch(Exception ex) { out.println("error in the code: " + ex .toString()); } %> </table>
The following figure depicts the Library Resource Access report generated.
- 361
Site Administration Library management o Access control o Version management o Exporting and importing libraries o Deleting libraries Syndication - what it is and how it works o Configuring syndication o Syndication Example o Monitoring Syndication Progress o Syndication Limitations Deployment o Rendering Environments - Local Rendering Portlet and the Remote Rendering Portlet o Authoring Environments - Sample configurations Prerendering - Advantages and Configuring Multiple LDAP Environments Go live Preparation Tuning considerations Approach and tools used for tuning RiverBend
- 362
We explore the process of creating libraries, managing libraries, deleting libraries and exporting and importing sites between libraries. This is discussed in the article on Library Management We discuss how access control can be applied at the library level and individually at the resource level to control the security of the WCM components and content. This is discussed in the article on Access Control We discuss version management for WCM items We discuss how to export and import libraries, We will describe the syndication process and go through the process of configuring syndication between two WCM v6.1 environments. Finally we will cover how the syndication process can be monitored and look at examples of the reports generated by the syndication process.
- 363
Figure: Example Showing Use of WCM v6.1 Libraries The illustration above describes an example of a WCM v6.1 deployment containing the following environments a) WCM Authoring b) WCM Intranet delivery c) WCM Internet delivery Note: Please note that this is only an example deployment topology which is used for the purpose of describing how WCM libraries can be used. The example Authoring environment contains an Intranet library containing Site A and Site B and an Internet library containing Site C. The Intranet Sites are delivered separately from the Internet Site. This is possible because WCM v6.x allows you to store sites within libraries and only syndicate libraries you want to selected environments. In WCM versions before v6.0, it was not possible to syndicate selectively Sites. It is also possible to create separate WCM libraries for WCM content and WCM design. - 364
An example of this scenario is well documented in the Best Practices for using IBM Workplace Web Content Management V6.0 (Section 4.4.2.1 Separating Content and Design Editing with optional design review) available at http://www.ibm.com/developerworks/websphere/library/techarticles/0701_devos/0701_d evos.html WCM libraries are created and maintained by using the WebSphere Portal administration portlet. This requires the user to have administrative rights. Access the Web Content Libraries portlet As an administrator, follow these steps to access the Web Content libraries portlet 1) You will need administrator rights to work with Web Content libraries. Log in as an administrator. 2) Access the WebSphere Portal administration portlet. 3) Click on the left hand navigation link Web Content Libraries available under Portal Content. 4) The screen shot below shows the Web Content Libraries portlet. By default every WCM v6.1 environment comes populated with the default Web Content library. Note: Please create a new WCM library and avoid using the default Web Content library because you cannot syndicate this default Web Content library to other WCM environments.
Figure: Web Content Libraries portlet As an administrator, the following actions are available in the Web Content Libraries portlet to the manage WCM libraries -
Search
If the WCM environment you are working on has many WCM libraries, you can use the search option to search the WCM library you want to manage. The Search by drop down field provides the following options 1) Name contains (selected by default) 2) Name starts with 3) All available - 365
System Reports
This action displays a list of WCM library deletion reports. The screen shot below illustrates the view displaying the system reports. You can choose to view the respective library report or choose to delete the report.
Figure: System Reports View The screen shot below illustrates the system report for the SampleWCMLib WCM library that was deleted. Please note that this library was created for the purpose of demonstrating the system report that is generated when the WCM library is deleted and did not contain any items and that reflects in the Execution Summary of the system report. Items that were previously deleted using the WCM Authoring portlet but not purged from the library are not included in the "total items deleted successfully" count.
- 366
Only users with administrator rights have access to work with Web Content libraries. The Set Access on Root action can be used to assign other users access to the JCR content root node and thus allow them to work with Web Content libraries. This action can be used to a) assign users a specific level of access to all libraries available through the Web content authoring portlet b) assign virtual portal administrators "contributor" or "administrator" access to the JCR content root node so that they can administer libraries through the Web Content Library view of the Administration page. Although it is possible to assign non-administrator users "contributor" or "administrator" access to the JCR content root node, they will not be able to work with Web content libraries because only administrators have access to the administration page.
Refresh
Use this action to refresh the Web Content libraries portlet. For instance, when a WCM library is deleted, the deleted library will still continue to appear in the Web Content libraries portlet with the library status Deleting. Using the Refresh action clears the deleted WCM library from the Web Content libraries portlet view.
- 367
Figure: Web Content Libraries portlet view showing the Deleting status of a WCM library
Edit Library
Use this action to edit the selected WCM library.
Set permissions
Use this action to set access permissions on the selected WCM library.
Library resources
Use this action to set access permissions to the library resources on the selected WCM library. This controls the access to the views and actions available from within the WCM authoring portlet.
Delete Library
Use this action to delete the selected WCM library.
Additional tasks
Use this action to perform version management related tasks on the WCM library.
- 368
Figure: Creating a new WCM library 2) The screen shot above shows the various fields required to create the new WCM library. Enter the name and description fields. Select a language from the drop down list. Note: If a language does not exist in the list of languages available when creating a library, you can add that language to the list of supported WebSphere Portal languages. See Language Support in the WebSphere Portal information center for further information.
3) If the checkbox Prohibit library from being deleted is enabled, the Delete Libraries action available in the Web Content libraries portlet will be disabled for the respective library. 4) Enable the Enabled checkbox to use the WCM library in the Authoring portlet. If the checkbox Enabled is disabled, this WCM library will not be available in the library selection list in the WCM Authoring portlet. If you want to prevent any changes being made to items stored in a library, but would like those items to still appear on a rendered site, you should disable the library instead. 5) Click OK to create the new WCM library.
- 369
WCM v6.1 identifies a set of roles and each role is has certain capabilities. The table below describes these roles along with their capabilities from within the WCM authoring portlet. Roles Rendering and authoring portlet access rights Users and groups assigned to this role can: User
view items in a Web site or rendering portlet that they have been assigned user access to.
Contributor
view items in a rendering portlet or servlet-rendered web site that they have been assigned user access to. view libraries that they have been assigned contributor access to in an authoring portlet. access the "My Items" and "All Items" views in an authoring portlet for libraries that they have been assigned contributor access to. access the item type view within the authoring portlet for item types that they been assigned user access to.
Editor
view items in a rendering portlet or servlet-rendered web site that they have been assigned user access to. view libraries that they have been assigned contributor access to in an authoring portlet. access the "My Items" and "All Items" views in an authoring portlet for libraries that they have been assigned contributor access to. for library item types that user and groups have been assigned editor access to, editors can access the following actions in the - 370
authoring portlet: - access the item type view - create a new item - add/remove links - apply authoring template - copy - delete - edit - link to - move Users and groups assigned to these roles can:
Manager
view items in a rendering portlet or servlet-rendered web site that they have been assigned user access to. view libraries that they have been assigned contributor access to in an authoring portlet. access the "My Items" and "All Items" views in an authoring portlet for libraries that they have been assigned contributor access to. for library item types that they have been assigned manager access to, managers can access the all of the actions available to editors and also the following actions in the authoring portlet:
- edit access settings - next stage - purge - unlock - edit user profile Users and groups assigned to these roles can:
Administrator
view items in a rendering portlet or servlet-rendered web site that they have been assigned user access to. view libraries that they have been assigned contributor access to in an authoring portlet. access the "My Items" and "All Items" views in an authoring portlet for libraries that they have been assigned contributor access to. all actions in the authoring portlet for library item types that they have been assigned administrator access to.
o Security Administrator These roles have no access to Web Content Management items. o Delegator
- 371
o Privileged User Table: WCM Roles and Responsibilities Note: The ability to create new items is set at the library level, not item level. You must have at least Contributor access to a library and Editor access to an item-type to create a new item.
The following two methods are available to grant users and groups access to the WCM library and to the WCM items within the library - the Additive Method and the Subtractive Method
Additive method
With this method you begin with assigning a user or a group with the lowest possible privileges at the WCM library level and then increase their access rights by assigning them with the higher privileges for specific WCM items. Example (Please note that this is a partial example used to explain the Additive method of applying access rights to the WCM library and WCM objects within the library.) Let's say our objective is to provide the members of the WCM Content Authors group access to the WCM library with the ability to work with content items from the WCM authoring portlet. To meet this objective using the additive method, follow these steps 1. Begin by assigning the WCM Content Authors group with the Contributor role at the WCM library level using the Set permissions action. This will allow the members of this group to see this library in the WCM authoring portlet. For this example we will also disable the Allow Propagation check box for the Contributor entry. As a result, the members of the WCM Content Authors group will only see the content authoring related views and tasks. action to assign the WCM Content Authors 2. Then use the Library resources group the Editor role at the Content level. This will allow the WCM Content Authors group members to use the WCM authoring portlet to create and edit WCM content. The screenshot below illustrates what the members of WCM Content Authors group would see in the WCM authoring portlet following the steps in the example above. They can see the views to access the WCM content and also have access to the action to create new content.
- 372
Subtractive method
With this method you begin with assigning a user or a group with higher privileges at the WCM library level and then reducing their access rights at specific WCM object level and deselecting the inheritance option. Example (Please note that this is a partial example used to explain the Subtractive method of applying access rights to the WCM library and WCM objects within the library.) In this example, we would like to provide the members of the WCM Site Designers group access to the WCM library with the ability to work with Components and Presentation Templates. To meet this objective using the subtractive method, follow these steps 1. We begin by assigning the WCM Site Designers group with the Manager role at action. This will allow them the WCM library level using the Set permissions to create all the WCM item types but for this example we would like to restrict this to so that they only have access to the Components and Presentation Templates. 2. Then use the Library resources action to disable the Allow Inheritance option for the Manager entry for all the item types. 3. Then use the Library resources action and add the WCM Site Designers group as an Editor for the Components and Presentation Templates item types. This will allow the WCM Site Designers group members to use the WCM authoring portlet to work with Components and Presentation Templates. The screenshot below illustrates what the members of WCM Site Designers group would see in the WCM authoring portlet following the steps in the example above. They can see the views to access the WCM Components and Presentation Templates and also have access to the actions to create them.
- 373
Figure: Resource Permissions > Resources The Resource Permissions page displays the list of Roles, Allow Propagation option, Allow Inheritance option and the action to Edit Roles. Please note that making any changes to the Allow Propagation option and the Allow Inheritance option requires you to use Apply action to ensure your change is applied. Note: The Display/Modify Owner link is not applicable in the WCM context. - 374
To assign a user or a group with the appropriate Roles use the respective Edit Roles action. The screen shot below illustrates an example of the page that loads up when the Edit Roles action is used to add new User's to the WCM library. In this example the All Authenticated Portal Users group (see table Pre-Defined Groups below) has already been allocated the User role. You can add additional users/groups by using the Add action. You can also delete the users/groups by using the Delete action. The Inherited column displays if the user/group has inherited the current role.
Figure: Resource Permissions > Add Users/Groups The following table describes the pre-defined groups that can be assigned roles in a library. Pre-Defined Group Anonymous portal user All Authenticated Portal Users Users and User Groups All Portal User Groups Table: Pre-Defined Groups Description Select this user to assign a role to anonymous users. Select this group to assign a role to users that have logged on to your server. Select this group to assign a role to all users and groups. Select this group to assign a role to all groups.
Setting Access Permissions on the WCM authoring portlet tasks and views
Setting access permissions on the WCM authoring portlet tasks and views will allow you to control who has access to the various tasks and views from within the WCM authoring portlet. Please note that the permissions set for item types in this manner do not automatically give you access to individual items. To apply access permissions to a WCM item type, as an administrator use the Library resources action available for the WCM library in the Web Content Libraries view. The screen shot below illustrates the Library Resources window that loads up when the Library resources action is used.
- 375
Figure: Library Resources You can control access to the following WCM item types 1. Authoring Template 2. Components 3. Content 4. Presentation Template 5. Site and Site Areas 6. Taxonomy 7. Workflow and workflow elements To apply access permissions to a WCM item type, as an administrator use the Set Permissions action available for the WCM library in the Library Resource view. The screen shot below illustrates the Resource Permissions window that loads up when the Set Permissions action is used.
Figure: Resource Permissions > Resources As you can see this is the same portlet that has been described in the section Setting Access Permissions on the WCM Library above. Follow the same instructions to add access permissions to the individual WCM item types.
- 376
Library -> Taxonomy -> Category Library -> Component Library -> Authoring Template Library -> Presentation Template Library -> Workflow Library -> Workflow Stage Library -> Workflow Action
You can stop inheritance at any point in an inheritance hierarchy. For example, you could allow inheritance down to a site area, but assign access roles manually for each content item under that site area. Inheritance from a library is based on the role assigned to the overall library, not on the role assigned to specific item types. For example, you may not have access to the presentation template view on a library, but if you inherit the role of editor to a presentation template, you will be able to view and edit that presentation template from the All Items view. Note: Inheritance does not apply to draft items.
- 377
You have the option to disable the versioning feature completely or to configure it to be a manual option. Each setting applies to an individual item type thus allowing you to control the versioning behavior at the item type level. It is a best practice to disable automatic versioning if it is not required to improve the WCM authoring performance. The two main areas of discussion are 1. Restoring an Item 2. Library Version Management - 378
Restoring an Item
In this section we will discuss how to view, restore, delete, preview and label versions at an item level. Once an item is saved, the Versions action in read mode. is visible on the item only when
Figure: Versions Action Only Visible In Read Mode You can access the versions of an item in the following ways 1. Open the item in Read mode as described above 2. If the item is deleted, navigate to either My items - Deleted view or the All items Deleted view, select an item and click Versions as shown in the figure below.
- 379
Figure: Versions Action Visible from the All Items - Deleted View Notice the Read Latest Version action available from the All Items - Deleted view. This action will open the latest version of the item. The figure below illustrates how the list of versions will be displayed. You can select the version you like to restore from the Current versions view.
Figure: List of Versions to Restore We will now take a look at the various actions available from the Current versions view.
Read
The Read action allows you to open the selected version of an item in Read mode.
Edit Label
The Edit action allows you to add one or more labels separated by semi-colons. Labels allow users to distinguish between versions of items. - 380
Restore
The Restore action allows you to restore the selected version of an item. Workflowenabled items are restored to the draft stage, whereas the non-workflow-enabled items are restored to the published stage. When restoring items that contain references to other items you can replace references to items that no longer exist or accept the existing values. The figure below illustrates the options available when restoring an item version.
Restore as Published
If the item you are restoring is participating in workflow, Administrators and Managers can restore the item as a published item by clicking Restore as Published.
Delete
The Delete action allows to you to delete the selected version of an item.
Preview
The Preview action allows to you to preview the selected version of an item.
- 381
You can restore a set of items within a library that either have the same label or were versioned at, or before, a specified date and time. Only one set of items can be restored or labeled at a time. It is not possible to execute a second restore or label request until the first request has been completed. Restoring or labeling a large number of items may take some time. When restoring items that contain links or references to other items you will be prompted to select a new item to link or reference if the original item no longer exists. Before restoring items at the library level ensure that the items are not currently locked or checked out by users. If there are locked items, please unlock them before using versioning actions at the library level. At the library level, the versioning actions are available from the WebSphere Portal Administration portlet in the Web Content Libraries portlet as shown in the figure below.
Additional Tasks
The Additional Tasks action allows you to perform versioning related tasks at the library level. The figure below illustrates the Additional tasks portlet that is opened when the additional tasks action is used.
- 382
Label library
The Label library action allows you to apply a label to the most recent versions of all items in a library. The figure below illustrates how to set a label to the library using this action.
Figure: Label library The figure below illustrates the portlet when the library labeling process is active. Notice the Status column in the view displaying the labeling process is active and none of the other actions available (except for the View Report action) are enabled. Use the Refresh action to update the status in the view.
- 383
View Report
The View Report action displays a report of the respective actions in the view. The figure below illustrates an example of the Label library action report.
- 384
Figure: Restore library by date Use the View Report action label action. to view the report generated by the Restore library by
- 385
Figure: Restore library by label Use the View Report action label action. to view the report generated by the Restore library by
- 386
Note: Please use the / (forward slash) character for separating directories on all platforms. The table below describes the various property values used in the configuration file. The server that the data is being exported from is called the source server, and the server that the data is being imported into is called the target server.
Description The directory path on the source server where the exported library will be saved once the export library process is successfully completed. This property is used by the export process. - 387
ImportDir
Example <property name="ExportDir" value="C:/JCR_Export" /> The directory path from where the import library process will read the files to be imported to the target server. If you copy the exported directory from the source server to the target server, this value will be the directory path available on the target server. If exporting and importing across a network, this can be the same directory as the one specified in "ExportDir". This property is used by the import process. Example <property name="ImportDir" value="C:/JCR_Import" /> The host name and port for the source server. The default value set for this property is = http://${WpsHostName}:${WpsHostPort} During our export test we used the default value. This property is used by the export process. Example <property name="SourceServerPort" value="http://${WpsHostName}:${WpsHostPort}"/> The host name and port for the target server. The default value set for this property is = http://${WpsHostName}:${WpsHostPort} During our import test we used the default value. This property is used by the import process. Example <property name="TargetServerPort" value="http://${WpsHostName}:${WpsHostPort}"/> This value is only required if the source server does not use the default Portal administrator ID wpsadmin. Enter the short name of the administrator user. The default value set for this property is = ${PortalAdminId} During our export test we used the default value as our target environment was configured to use wpsadmin as the Portal - 388
SourceServerPort
TargetServerPort
ExportUserId
administrator. This property is used by the export process. Example <property name="ExportUserId" value="${PortalAdminId}"/> The administrator user password on the source server. The default value set for this property is = ${PortalAdminId} During our export test we used the default value as we had specified the Portal administrator password in the <wp_profile_root> / ConfigEngine/properties/wkplc.properties file. This property is used by the export process. Example <property name="ImportUserId" value="${PortalAdminId}"/> This value is only required if the target server does not use the default Portal administrator ID wpsadmin. Enter the short name of the administrator user. The default value set for this property is = ${PortalAdminId} During our import test we used the default value as our target environment was configured to use wpsadmin as the Portal administrator. This property is used by the import process. Example <property name="ExportPassword" value="${PortalAdminPwd}"/> The administrator user password on the target server. The default value set for this property is = ${PortalAdminId} During our import test we used the default value as we had specified the Portal administrator password in the <wp_profile_root> / ConfigEngine/properties/wkplc.properties file. This property is used by the import process. Example - 389
ExportPassword
ImportUserId
ImportPassword
WebLib
<property name="ImportPassword" value="${PortalAdminPwd}"/> The name of the WCM library to be transferred. The default option is to select the Web Content libraries by name. In order to select the libraries by UUID, make sure to also change the WebLibProperty below. The default value set for this property is = Web Content. During our export test we used the value = RiverBend. This property is used by the export process. Example <property name="WebLib" value="RiverBend"/> In order to select the libraries by name (set by default), use the value = icm:title To select the libraries by UUID, use the value = jcr:uuid The default value set for this property is = icm:title During our export test we used the default value. This property is used by the export process. Example <property name="WebLibProperty" value="icm:title"/>
WebLibProperty
Exporting a library
Follow these steps to export a library on the source server 1. Enter the property values in the <wp_profile_root>/PortalServer/wcm/config/wcm60_conf.xml file 2. Navigate to the directory <wp_profile_root>/ConfigEngine in the console 3. Run the following command o Windows platform: ConfigEngine.bat export-wcm-data o Unix platform: ConfigEngine.sh export-wcm-data 4. Verify the export process completed successfully by carefully reviewing the messages available in the console and also check the Portal logs.
The screen shot of the sample exported directory and its contents is provided below.
- 390
Importing a library
Follow these steps to import a library on the targer server 1. You may want to copy the exported directory from the source server to the target server OR choose to perform the import process over the network. 2. Enter the property values in the <wp_profile_root>/PortalServer/wcm/config/wcm60_conf.xml file 3. Navigate to the directory <wp_profile_root>/ConfigEngine in the console 4. Run the following command o Windows platform: ConfigEngine.bat export-wcm-data o Unix platform: ConfigEngine.sh export-wcm-data 5. Verify the import process completed successfully by carefully reviewing the messages available in the console and also check the Portal logs. Note: If the source and target environments don't use the same LDAP server, you will notice warning messages. You will need to use the Member Fixer tool to resolve this issue.
6. 7. 8. 9.
Stop the Portal server. Reset the Web content event log. Start the Portal server. Check the target Portal administration portlet and verify if the new library is visible in the Web Content Libraries portlet.
- 391
- 392
- 393
5.1.2 Syndication
Syndication in Lotus Web Content Management - what it is and how it works
IBM Lotus Web Content Management facilitates an environment to design, author and maintain web content. A WCM deployment usually comprises more than one WCM instance. (Example: One WCM Authoring instance, one WCM staging instance and one WCM delivery instance). Content can be replicated between all the WCM instances using WCM Syndication. Syndication is an integral part of IBM WCM responsible for replicating WCM libraries between WCM instances and keeping them in synch. The source WCM instance from where content is replicated is known as at the Syndicator and the target WCM instance to where content is replicated is known as the Subscriber. Syndication is based on the Information and Content Exchange (ICE) protocol, an XMLbased protocol using HTTP as its transport mechanism. Reference: An additional detail about the workings of the ICE protocol is available in the IBM developerworks article Understanding syndication in IBM Workplace Web Content Management. URL: http://www.ibm.com/developerworks/lotus/library/wwcm-syndication/
All the items you work with as part of your WCM authoring environment (templates, components, content items, and so forth) are stored in WCM libraries. Syndication takes place at the WCM library level and replicates either All Items or All Live Items from the selected WCM library or libraries from the syndicator to the subscriber. All Items All Live Items Syndicates all items available in the selected library Syndicates only published items available in the selected library
WCM libraries should be planned depending on how you plan to syndicate libraries between WCM instances. Planning WCM libraries should be done during the information architecture planning stage.
- 395
Multiple relationships
In a multiple syndication relationship, you can have a WCM instance subscribe WCM libraries from multiple WCM instances as illustrated in the figure below. An example where this setup could be used - if you have the WCM authoring instance available in multiple locations and a single WCM delivery instance, you can use multiple syndication relationships to syndicate content to a single WCM delivery instance.
Syndication Pre-requisites
Please remember the following important syndication pre-requisites 1. The WCM syndicator instance and the subscriber instance should be configured to use the same LDAP environment to ensure that the WCM resource access permissions work properly. 2. The WCM syndicator and subscriber instances participating in the syndication process should be at the same WCM fixpack and ifix level for syndication to work as expected and to be in a supported state. WebSphere Portal ifixes do not have to be the same across servers.
- 396
- 397
You will need to restart WebSphere Portal to enable any configuration changes made to this file. When making changes to clustered servers, you will need to edit the WCMConfigService.properties file in each node of the cluster.
Syndication Interval
Property name = deployment.itemChangedTaskDelay Default value = 30 (seconds) Possible values = 0 (seconds) to 65536 (seconds)
Description = Use this property to change the syndication interval to better suit the needs of your environment. For example, you might shorten the interval in an active authoring environment where users must collaborate heavily and rely on timely replication. Similarly you might lengthen the interval to avoid excessive replication of data that does not change often. A value of 0 will prevent syndication from occurring. If you set the value to so short an interval that syndication cannot complete before the interval expires, syndication begins again when the previous syndication completes.
Property name = connect.moduleconfig.syndication.inittasks Default value = true Possible values = true or false
Description = Syndication process is configured to run automatically by default. You can disable automatic syndication and rely only on manual syndication to have complete control over when syndication occurs. To disable automatic syndication, change the value of this property to false.
- 398
Subscriber-only Server
Property name = deployment.subscriberOnly Default value = false Possible values = true or false
Description = A syndicator server uses several processes to gather and queue content for syndication. These processes can sometimes impact server performance when run. However, a subscriber-only server does not require these processes, so you can improve performance on the subscriber-only server by disabling the processes. To configure a subscriber only server, change the value of this property to true.
Subscriber Reporting
Property name = deployment.enableReport Default value = false Possible values = true or false
Description = This enables high level reporting of syndication to the SystemOut.log file on the Subscriber server. It provides a summary of items that were processed, and which items failed syndication to help you troubleshoot syndication issues. To enable subscriber reporting set this property value to true.
- 399
wcm03.itso.ibm.com (Subscriber) ----------------------------------------------------------- IBM WebSphere Portal 6.1 Build Level: wp610_493_01 (2008-06-18 17:24 ) Server Name: WebSphere_Portal Started at: 8/29/2008 14:41:51:296 EDT Installed FixPacks: o None Installed Interim Fixes: o PK69424 (Cumulative iFix 2 for WCM 6100)
Next we check network connectivity between the two servers to ensure both the servers are available on the network. The screenshots provided below illustrates the results of the ping command between the two servers.
- 400
Log in to the Portal administration portlet as the administrator and access the Web Content Libraries portlet to ensure the list of WCM libraries available in the two WCM instances. We did this on both the environments using two browser instances. The screenshots below illustrates this.
- 401
On the Subscriber administration portlet click on the Subscriber link available in the left hand navigator. The screenshot below illustrates the Subscriber view which at this stage does not contain any subscriber entries.
Refresh
Use this action to refresh the information available in the view.
Refresh
Use this action to refresh the information available in the view. Tip: It is easier to create a new Syndicator and Subscriber entry at the same time in two separate browser instances next to each other.
- 403
Figure: Create New Syndicator Enter suitable values in the following fields
Name: Enter a suitable name for this syndicator configuration entry. Description: Enter a suitable description. Subscriber Name: Enter the value from the Name field in the subscriber configuration entry. Subscriber ID: Enter the value from the Subscriber ID field in the subscriber configuration entry. Subscriber URL: Enter the value from the Subscriber URL field in the subscriber configuration entry. Enabled checkbox: Ensure that this checkbox is ticked to enable this syndicator configuration entry. To disable this syndicator configuration entry, deselect this checkbox.
- 404
The following two actions available on the Syndicator configuration are explained in detail -
Add libraries
Use this action to add WCM libraries that should be syndicated as part of this syndicator configuration entry. This action loads the portlet illustrated in the screenshot below which allows you to add the WCM libraries to be included as part of this syndicator configuration. In this case we selected the RiverBend library with All Items as the scope. Scope All Items will syndicate all items. Scope Live Items will only syndicate all items that are in the published state.
Remove libraries
Use the action to remove WCM libraries that were included as part of this syndicator configuration entry. This action loads a similar portlet illustrated in the Add libraries section above and allows you to remove the libraries that were selected when the syndicator configuration was first created.
action to create a new Use the Create New Subscriber Subscriber configuration. The screenshot below illustrates the page that loads up and in this case it's already populated with values. - 405
Figure: Create New Subscriber Enter suitable values in the following fields
Name: Enter a suitable name for this subscriber configuration entry. Description: Enter a suitable description. Syndicator Name: Enter the value from the Name field in the syndicator configuration entry. Syndicator ID: Enter the value from the Subscriber ID field in the syndicator configuration entry. Syndicator URL: Enter the value from the Subscriber URL field in the syndicator configuration entry. Enabled checkbox: Ensure that this checkbox is ticked to enable this subscriber configuration entry. To disable this subscriber configuration entry, deselect this checkbox.
Once the syndicator configuration and subscriber configuration field values have been correctly entered, we saved the syndicator entry first by using the OK action available. The screenshot below illustrates the syndicator view which now reflects the new syndication entry. Notice the Status and Last Update column values.
- 406
Figure: Web Content Syndicators View - Status Idle After the syndicator entry was saved, click the OK action on the subscriber configuration entry to save the subscriber configuration entry. The screenshot below illustrates the subscriber view which now reflects the new syndication entry. Notice the Status and Last Update column values.
Figure: Web Content Subscribers View - Status Idle Notice the actions that are now visible with the subscriber and syndicator views. These are the same actions that are also visible in both the views and hence have only been explained once below
Update (Syndicator/Subscriber)
Manual action to overrides the syndication interval and initiate syndication directly. This action is useful when automatic syndication is disabled.
Rebuild (Syndicator/Subscriber)
Manual action to overrides the syndication interval and trigger the syndicator to send all updates to the subscriber. Generally, the rebuild action is used when the datastore on the subscriber is lost or corrupted. This action is useful when automatic syndication is disabled. - 407
Copy (Syndicator/Subscriber)
Use this action to create a copy of the syndicator/subscriber entry. The screenshot below illustrates the portlet that is loaded when this action is used. In this example we tested creating a copy of the subscriber configuration entry.
Edit (Syndicator/Subscriber)
Use this action to edit the syndicator/subscriber configuration entry.
Delete (Syndicator/Subscriber)
Use this action to delete the syndicator/subscriber configuration entry.
- 408
Figure: Web Content Syndicators View Status Active The table below provides details about the various different status that are possible and provides a brief description Status Idle Pending Queued Description The syndication process is idle. The syndicator has received a request, but it has yet to initiate it. The syndicator has sent a request to the syndication application, but syndication is not yet active. This state will not occur if the subscriber has initiated syndication. The status remains as Idle until syndication begins and the status then changes to Active. - 409
Active Disabled
The syndication process is active. The syndication process is disabled. If syndication was already in process prior to being disabled, the status can be a combination of Disabled and Pending, Queued, or Active.
Once the syndication process has completed, the Syndicator and Subscriber views displayed the idle status as illustrated in the screenshots below.
- 410
- 411
Figure: Subscriber Status Report The following table describes the information available in the Syndicator and Subscriber status reports. Field Name Description Syndicator and This information provides identifying details about the syndicator subscriber ID, name, and subscriber that are engaged in syndication. and URL Enabled This field indicates whether syndication is enabled for the - 412
syndicator or subscriber. Type This field indicates whether partial or full syndication occurred. With partial syndication, only those items that have been updated since the last syndication are replicated. Full syndication replicates all items, regardless of whether they have been updated since the last syndication. Started and finished These fields provide the date and time when syndication started and time stamps finished. Result This field indicates whether syndication was successful. Detail This field provides detailed information about the syndication result, including any errors that occurred during syndication. Updates sent This field indicates the number of items that have been updated. This includes new items that have been added and existing items that have been updated. Removes sent This field indicates the number of items that have been removed. Old state and new This field displays state information for a syndicator or subscriber state for subscriber before and after syndication occurred. This information is provided or syndicator for the opposite member of the syndication relationship, so for example if you are viewing syndication results for a syndicator, the old and new states for the subscriber are displayed. If successful, this field indicates the actual change of status. If syndication has failed, this indicates what should have been the change of status. Note: The syndication state only displays a list of item gatherer ids and the current state. It is designed to be used as a diagnostic tool when troubleshooting syndication. This lists:
Update summary
the number of updates sent the number of successful updates the number of failed updated
Update details
Note: The number of updates listed here does not directly relate to the number of items updated. For example, if you create a library and then create a taxonomy item in the library, you have updated a single item. However in the Update summary this will be displayed as three updates; one for the library, one for the new taxonomy and one for its version. This section provides additional information to the Update summary section. It lists:
the number of items that didn't require an update because they have already been updated the number of new items created the number of items updated the number of failed updates - 413
the number of items that didn't require removal because they have already been removed the number of items removed the number of failed removals
- 414
Files can remain in the subscriber directory for any of the following reasons:
A failed attempt to save to the database due to a software error Syndication is interrupted or killed before it completes writing to the database WCM is not handling the syndication changes properly
Syndicator logs
[ 9/1/08 1:42:55:078 EDT] 00000055 SyndicatorTas I IWKSY1028X: Subscription: IWKSY1096X: [IceId: <8efd48804b09fd3ab22efe116174738a> Current State : <d525eb804a9086648cfdae756e4fc596:1219699739265>] updated successfully.
Subscriber logs
[ 9/1/08 1:43:45:500 EDT] 00000041 SubscriberTas I IWKSY1034X: Finished processing update for subscription: IWKSY1096X: [IceId: <8efd48804b09fd3ab22efe116174738a> Current State : <ICE-INITIAL>]
- 415
Syndication requires that both the Syndicator WCM instance and the Subscriber WCM instance are at the same WebSphere Portal and WCM build level with the same level of fixes. Syndication interval can only be set globally at the server level and not with each syndicator-subscriber relationship. Similarly automatic syndication can only be disabled globally at the server level. You cannot syndicate to a pre-existing library (on the Subscriber) with the same name as the Syndicator library. Even though the two libraries might have the same name, they have different unique ID's. The default Web Content library which is created with every WCM instance is an example of this scenario and hence it is recommended not to use the default Web Content library. Search Collections are not syndicated which means they have to be created on both servers. JSP files used by WCM JSP components aren't syndicated, so you need to ensure that they manually copied to any Subscriber servers. It is expected that the Syndicator and the Subscriber should share the same user repository if they use automatic syndication. If this is not the case, disable automatic syndication and perform manual syndication. The latter should be followed by executing the MemberFixer module. Library access control settings are not part of syndication, and hence you must manually set access permissions on the subscriber's library when syndicating for the first time.
- 416
Rendering Environments - Local Rendering Portlet and the Remote Rendering Portlet Authoring Environments - Sample configurations Prerendering - Advantages and Configuring Multiple LDAP Environments Go live Preparation Tuning considerations Approach and tools used for tuning RiverBend
- 417
Remote Yes (if redirection is setup and fully qualify URLs is disabled) Low Yes
Secondary Considerations Lotus Web Content No Management can be placed behind a firewall Lotus Web Content High Management CPU activity on Delivery Portal Nodes Lotus Web Content No Management independent of - 418
Local
More complex Longer Network Path Less due to CPU requirement Required
WebSphere Portal Complexity/Admininstration Less complex Network Traffic Less Network activity HW Requirement per box More horsepower needed Tuning Required
Figure - Sample architecture which would include a local rendering portlet on Cluster Member A Terminology changes in Lotus Web Content Management 6.x As you work with Lotus Web Content Management, note the following terminology changes
Library Components => Components WCM Content Components => Elements Portlet Profile section (new in 6.x) - this is used to select categories and site areas that can be used as menu search options
- 419
Edit Shared Settings This mode enables you to specify settings for all users of this instance of the rendering portlet. Changes you make in the Edit Shared Settings mode are not reflected in other instances of the rendering portlet. Configure This mode enables you to specify settings for all users of all instances of the rendering portlet, regardless of the page on which the portlet instance appears.
Note : Once the shared settings of a portlet has been edited, the default "Configure" mode settings will not be displayed on a page even if you edit the "Configure" mode settings. To restore a portlet to its "configure" mode, you will need to delete the portlet from the page and add it back. Note : The local rendering portlet installed on the preview page is installed in "edit" mode. To restore this portlet to its "configure" mode, you will need to delete the portlet from the page and add it back. Note: - Only published content can be displayed with a rendering portlet. Draft content cannot be displayed and cannot be selected when configuring a rendering portlet.
To exit Edit Shared Settings or Configure mode , click the drop-down menu located in the portlet title bar and select Back.
- 420
The Content section of the Local Rendering Portlet is used to determine the default content that appears in the portlet.
To display the content of a content item, select Content Item . o Click Edit under the Content section to select the content item to display. o Click Edit under the Alternate Presentation Template section to select an alternate presentation template to use when the content item is displayed. If no alternate presentation is selected, the content item will be displayed using its default presentation template. To display the content of a component, select Component . o Click Edit under the Component section to select the component to display. o Click Edit under the Content section to select the content item to use to give the selected component a context. For example, if a content item called "news" is selected as the context for a navigator, when the portal page is first opened, the navigator will behave as if "news" is the current content item. You are required to select a content item even for components that do not require context, such as HTML components. To display the content of an element stored in a content item, select Element . o Click Edit under the Content section to select the content item. o Click Edit under the Element section to select the element to display from the selected content item. - 421
Use the Portlet Profile section to select categories and site areas that can be used as menu search options. You can profile a rendering portlet by selecting categories and site areas. A menu can use this profile to display a list of content items that are profiled with the same categories or site areas. o Click Select Category to select categories to profile rendering portlet content with. o Click Select Site Areas to select site areas to profile rendering portlet content with. o Click Select Authoring Template to select authoring templates to profile rendering portlet content with. Use the Links section to enter the details of how you want to receive and broadcast links with other portlets. This determines whether rendering portlets will be aware of the state or context of other portlets. o Select a broadcast link option: Select None if you do not want to broadcast the context of the current portlet to other portlets. Select This page to broadcast the context of the current portlet to other portlets on the same portal page. Select Another page to broadcast the context of the current portlet to portlets on a different portal page. You must then select target portal page. o Select a receive link option: Select None if you do not want to receive the context of any other portlets. Select This portlet to use the context of the content item, component or element displayed in the rendering portlet. Select Other portlets and this portlet to receive the context from any rendering portlets broadcasting their context. Finally - enter a title for the rendering portlet. If left blank, the title entered in the portlet's configuration mode is used.
- 422
Figure - Sample architecture which would utilize a remote rendering portlet Note:
You can use the API with remote rendering, but the JSP just needs to be on the WCM servers in Cluster B If you are using PZN Integration, ensure that the PZN rules exist on the WCM in Cluster B.
Support notes for Remote rendering portlet with specific Portal versions:
The v6.1 Remote Rendering Portlet is additionally supported on a Portal 6.0 and 5.1.0.x instance The v6.0 Remote Rendering Portlet is additionally supported on a Portal 5.1.0.x instance This may be important if the delivery servers are running Portal applications which have to be rewritten and tested for a new Portal release
Note : Portal versions earlier than 5.1.0.x are not supported, and moreover will not work due to the difference in requirements for JRE levels
- 423
- 424
- 425
In most cases, you only need to override a Portal user's logon if the Portal Server used different logons from IBM Lotus Web Content Management or if you wanted all users to have the same credentials for a particular Remote Rendering Portlet. You can use the following values to override a Portal user's logon:
Use LTPA : IBM Lotus Web Content Management use the Portal user's logon to determine access rights to a Remote Rendering Portlet. It is important to note that for LTPA to work, your WebSphere Portal and remote
IBM Lotus Web Content Management servers must share the same LTPA token. This seems like an obvious requirement, but we have seen many cases where the IBM Lotus Web Content Management servers are not configured to share an LTPA token with the portal servers. See the WebSphere Portal Information Center for further information aboutLTPA.
Use Credential Vault Slot : You can use a valid Credential Vault Slot name instead of the user's logon. You need to enter a valid Credential Vault Slot in the field. The vault slot must already exist before you configure this portlet.
Settings section
In order to make a remote connection to the IBM Lotus Web Content Management server, the Remote Rendering Portlet needs some basic information regarding the IBM Lotus Web Content Management server and its configuration. The settings used for the sample River Bend sample sites's infrastructure are shown in the figure above. Tip: You should fill out the Settings and Credential sections first when configuring the - 426
Remote Rendering Portlet. After entering the appropriate values, click Apply . When this is completed, you should be able to fill in the other sections.
- 427
Configuration of a Typical Authoring environment Authoring Environments - Separating Content and Design Editing Advanced Previewing of draft content in the context of WebSphere portal Geographically distributed authoring
- 428
The use of a cluster in an authoring environment is optional, however its use can provide failover, when the Backup Node is configured for failover only, and/or performance benefits, when the Backup Node is configured for load balancing and failover. The figure below illustrates the following design for an authoring environment that the RiverBend Company decided to use.
- 429
Content Creation
Content authors work on the Content Editing Server. They add, modify, and delete content, such as sites and site areas in the Content Library on the Content Editing Server. They can optionally work with images and file resources too. Test content can be created either in the real Content Library thats syndicated from the Content Editing server OR in a separate Test Content library
Design Creation
Designers add, edit, and delete design components, such as page designs, categories, workflow definitions, templates, and additional images or file resources. These resources are located in the Design Library on the Design Editing Server. When creating Menus and Navigators (that use Site Areas and Categories), they are configured to point to the local copy of the Content library To conduct design reviews: 1. All design components should be placed within a three-stage workflow. 2. Design reviewers then preview design components in the approve stage using content from the Test Content Library. 3. Reviewers promote design components to the final stage after the review is complete. 4. All live design components are syndicated to the Content Editing Server. 5. The designers then update the presentation and authoring templates mappings on the Content Editing Server as needed. 6. All live design components and content are then syndicated to the Staging or Delivery environment.
- 430
Note:
If you dont want to enable workflow on design elements, then change the syndication from the Design Editing server to the Content Editing server to be manual instead of automatic. The syndication from the Content Editing server to the Design Editing server can be manual if you want the content on the design server to be stable during design changes The Authoring UI on the Design Editing server should be locked down so that the Content Authors cant access it A common LDAP server is implied
Because the RiverBend team will be handling both the development of the authoring system and the entry of the content itself, they decide to use a single server for both the development and authoring phases. This reduces the number of servers the team will need to maintain, which is good. But it will also require their team to communicate well to ensure that changes from one developer do not affect the work of another. Since the RiverBend WCM team is relatively small, they are comfortable that the single-server approach will work well.
Delivery
Web Content Management is ready for you to use as is to preview draft content in a WebSphere Portal site. However, it does not let you preview the draft content in any menus, navigators, or JSP pages or validate the security settings for the published content. To preview drafts with menus, navigators, JSP pages, and valid security, use the architecture illustrated in the following figure. - 431
Sample configuration with Preview Server This preview server configuration (shown in the figure above) uses a three-stage workflow (Draft, Approve, and Publish).
Both the Authoring Server and Review Server contain copies of the static portal site. o The Authoring Server has its preview portlets configured to show draft content around the static portal site. o The Review Server has local rendering portlets deployed to show published content around the static portal site. When Authors are ready to have their content/objects approved, they must first move the document to the Approve stage on the Authoring Server. If only a simple review is required (textual content only): o Reviewers on the Authoring Server locate items in the Approve stage and preview them in the available preview portlets on that server. o If reviewers are happy with the changes, they approve the items on the Authoring Server. o If reviewers are unhappy with the changes, they click Decline on each item in the Authoring Server. If the content or object has a two-stage workflow, then reviewers restart the workflow instead of clicking Decline. If an advanced review is required to preview the draft content in any menus, navigators, or JSP pages, or to validate the security settings of the published content: o Reviewers on the Review Server locate any items in the Approve stage and click the Approve button to make the items live. o After the items are live on the Approve Server, they can be reviewed in the context of the portal site. If reviewers accept the changes, they approve the items again on the Authoring Server. If reviewers do not accept the changes, they click Decline on each item in the Authoring Server. Note: - If the content or object has a two-stage workflow, then reviewers restart the workflow instead of clicking Decline. - 432
The RiverBend Web site is powered by WebSphere Portal Version 6.1. The new content that is created by the RiverBend Corporate Communication team is working on will ultimately be made available to the internet customers as part of an existing set of information currently displayed through several portlets. The new information needs to fit seamlessly into the existing page structure,so RiverBend decides to deliver the Web Content Management content with a remote rendering portlet on the delivery server (which is already in place as the current internet portal). The content displayed within the rendering portlet is sourced from the staging server.
A common LDAP server is used for all authoring servers. The taxonomy tree and common components are created on the Common-Design Authoring Server. Each set of Department Authors and Designers work on their own server and the respective authoring portlet on each department server is locked to prevent access by other departments. - 433
Department Authors should only be able to view the content management section of the authoring portlet. o Department Designers should not be able to view the category management section of the authoring portlet The data on the Enterprise Authoring Server can be backed up to avoid having to re-syndicate the data from each Department Server. Several options exist exist for developing the site framework in a geographically distributed authoring environment. These scenarios include: o A separate site per department in which: o Designers on each department server create and maintain their own site framework. o A separate Web Content Management library exists for each department and a separate Web Content Management library exists for the common design elements. o A shared site across all departments o Designers on the common design-authoring server create the top level site object and two levels of site areas per department. This concept is illustrated in the figure below:
o
For example: The security is configured so that only the designers on the common design-authoring server have edit access to the top level site and the root site areas for each department. The department designers are the only users who can edit the second level (such as, Department 1 Main or Department n Main) site areas. For example, the common designers create the second level site areas for each department, then remove themselves from the list of people able to edit each site area. Web Content Management content authored on the department servers are placed under the second and subsequent site area levels, rather than under the root site area for each department. Page designs and templates created by the designers on the common design-authoring server are associated at either the top level site or the root site area of every department
- 434
Pre-rendering Introduction
WCM websites can be delivered in the following ways
Through the Web Content Management servlet. Through a local rendering portlet using the local portal server. Through a remote rendering portlet located on a separate portal server. Through a pre-rendered site using the local Web server.
The first three methods of delivering a WCM website is commonly known as dynamic rendering or dynamic delivery as these methods serve content directly from the WebSphere Portal server. It is possible to take a snapshot of the entire website as static HTML files. This process is referred to as WCM pre-rendering and the static website generated is known as the pre-rendered website. Delivering a WCM site using the pre-rendered method improves the website delivery performance as the pages are not dynamically rendered on the fly.
Pre-rendering
The pre-rendering process takes a snap shot of the entire WCM website and saves the site as static HTML files. These static pre-rendered files can be delivered by the WCM server or by the HTTP web server. This improves the website delivery performance as the pages are not dynamically rendered on the fly. Consider pre-rendering a website in the following circumstances
When the WCM website content does not change very frequently When the WCM website content is public When the WCM website does not use WebSphere Portal personalization The Page navigation component and Search component are not being used in the WCM website
- 435
Before we discuss the configuration options, for reference purpose, we have included the sections of the <was_profile_root>/PortalServer/wcm/shared/app/config/wcmservices/WCMConfigServ ices.properties file that are related to the pre-rendering. Please note that these property values displayed here are taken from a default WCM v6.1 installation environment when no pre-rendering options were configured.
####################################################################### ######## # 3a. Default Module Configuration - START ####################################################################### ######## connect.businesslogic.module.default.class=com.aptrix.pluto.renderer.Re ndererModule connect.businesslogic.module.default.remoteaccess=true connect.businesslogic.module.default.autoload=false ####################################################################### ######## # 3a. Default Module Configuration - END ####################################################################### ######## ####################################################################### ######## # 3c. Prerendering - BEGIN ####################################################################### ######## # Cacher Module (as default) #ensure that RendererModule is commented out #connect.businesslogic.module.default.class=com.aptrix.cacher.CacherMod ule #connect.businesslogic.module.default.remoteaccess=true #connect.businesslogic.module.default.autoload=false connect.businesslogic.module.cacher.class=com.aptrix.cacher.CacherModul e connect.businesslogic.module.cacher.remoteaccess=true connect.businesslogic.module.cacher.autoload=false connect.moduleconfig.cacher.destdir=${WCM_ILWWCM_HOME}/ilwwcm/cacher connect.moduleconfig.cacher.tempdir=${WCM_ILWWCM_HOME}/ilwwcm/cacher/te mp connect.moduleconfig.cacher.delay=1 connect.moduleconfig.cacher.busydelay=5 connect.moduleconfig.cacher.busystart= 9:00 am connect.moduleconfig.cacher.busyend= 5:00 pm connect.moduleconfig.cacher.overwritecache=true connect.moduleconfig.cacher.defaultcontentname=index.html connect.moduleconfig.cacher.rendereruser=Anonymous connect.moduleconfig.cacher.task.cacherurl=http://${WCM_HOST}:${WCM_POR T}/${WCM_CONTEXT_ROOT}/connect/ connect.moduleconfig.cacher.task.servletpath=/connect connect.moduleconfig.cacher.task.sites=[SiteA],[SiteB] connect.moduleconfig.cacher.task.interval.recurrence=10 connect.moduleconfig.cacher.task.interval.startdelay=1 connect.moduleconfig.cacher.task.scheduled.times= 3:00 am ####################################################################### ########
- 436
Note: The CacherModule is the module responsible for pre-rendering WCM websites.
Configuring pre-rendering
The pre-rendering process can be configured to deliver the WCM website as static HTML pages in the following two methods
Pre-rendered website delivered from the WCM server Pre-rendered website delivered from the HTTP web server
Users can access the WCM website using the following URL http://[host_name]:[port_number]/wps/wcm/connect/[library_name]/[site_name ]
Configure Pre-rendering for website delivery from the HTTP web server
With this option, WCM saves a snap shot of the entire WCM website as static HTML files. The pre-render website requires a HTTP web server to deliver the website content. To configure this option modify the following values in the WCMConfigServices.properties file -
- 437
Access to the pre-rendered website is available from the HTTP web server and the URL depends on web server configuration. Please take care when using connect tags and JSP components when using this option as they will not be rendered. The following property values are also required and are described in the table below. Property = Value connect.moduleconfig.cacher.destdir= Description The base directory under which each site files will be created. There will be one ${WCM_ILWWCM_HOME}/ilwwcm/cacher subdirectory created for each site. Important: If the prerenderer is run with the connect.moduleconfig.cacher.overwritec ache property set to true, any files in the connect.moduleconfig.cacher.destdir path that were not written in the last run of the prerenderer will be deleted. For this reason, ensure that the connect.moduleconfig.cacher.destdir path is only used for storing rendered content and that it does not contain any other data that cannot be recreated. The temporary directory that is required connect.moduleconfig.cacher.tempdir= to build the site files prior to moving the ${WCM_ILWWCM_HOME}/ilwwcm/cacher/t data over to the base directory specified by the emp connect.moduleconfig.cacher.destdir property. connect.moduleconfig.cacher.delay=1 This property is used to set the time, in seconds, between requesting a page while the pre-rendering process is running. connect.moduleconfig.cacher.busydelay=5 This property is used to set the time, in seconds, of the busy delay setting. This is used if executing within the busy start to busy end period. Otherwise the delay setting (described above) is used. connect.moduleconfig.cacher.busystart= 9:00 These settings determine the times between which the busy delay setting am will be used. Enter an absolute time. connect.moduleconfig.cacher.busyend= 5:00 pm - 438
connect.moduleconfig.cacher.overwritecache=t If set to true, the prerenderer will rue overwrite files in the destdir directory (then delete files that are not needed). This results in a progressive change in site content as seen by the user. If set to false, the first time a site is prerendered, the pre-rendered site files will be added to the destination directory. As changes are made to the site through the authoring portlet, the new version of the site will gradually be saved in the temp directory and the old site will remain in the destination directory. After the prerenderer has finished saving the site completely, the contents of the temporary directory are moved to the destination directory which will then contain both old and new versions of the pre-rendered site. Note: A value of false should not be used if a Web server is used to display the pre-rendered data because some Web servers lock the data directories. connect.moduleconfig.cacher.defaultcontentna This sets the name of the default or home file of the site used when accessing the me= pre-rendered site. This normally would be index.html. index.html
connect.moduleconfig.cacher.rendereruser= Anonymous
This determines the user to be used to render the Web Content Management content. Either type Anonymous or Administrator or a specific user or group name. The site is pre-rendered based on this user's security rights. If the user specified here does not have access to a particular component it will not be prerendered. The full URL to be used as the replacement for the connect servlet in pre-rendered pages. The URL should end with the string specified in connect.moduleconfig.cacher.task.servl
connect.moduleconfig.cacher.task.servletpath= /connect
connect.moduleconfig.cacher.task.sites= [LibraryA/SiteA],[LibraryB/SiteB],[SiteC]
etpath if it is not blank. The context of cacherurl is used when generating a URLvia pre-rendering. This property is not used when a page belongs to a site that has not already been pre-rendered at a site level by the scheduled task or via a SRV=cacheSite request. The path of the substituted connect servlet defined in connect.moduleconfig.cacher.task.cach erurl. This property can be left blank if the cacherurl context should be used unchanged. The sites within a Web Content Management environment to prerender are entered here, separated by commas.
This property provides the option of specifying the library in addition to the site. If the library is specified, the prerenderer looks for the site in that library. If no library is specified, the default library is used, as specified by the defaultLibrary property in the WCMConfigService.properties file. connect.moduleconfig.cacher.task.interval.recurr The CacherModule can be set to run after a recurring number of minutes. ence=10 Recurrence: The recurring period in connect.moduleconfig.cacher.task.interval.startde minutes for a recurring task. lay=1 StartDelay: The delay in minutes prior to starting the first recurring task. connect.moduleconfig.cacher.task.scheduled.time Alternately, the CacherModule can be set to run at certain times. Enter a s= series of absolute times, separated by commas. 3:00 am
connect.businesslogic.module.cacher.autoload=true The CacherModule will then run as per the settings configured in the WCMConfigService.properties file. Use this option to pre-render the WCM websites on schedule.
Note: If you have enabled the cacher module as the default module (i.e. set connect.businesslogic.module.default.class=com.aptrix.cacher.CacherModule) you do not need to edit this property as the CacherModule will be started automatically.
Pre-render the entire WCM website http://[host_name]:[port_number]/wps/wcm/connect?MOD=Cacher&SRV=[SRV _Service]&Site=[site_name]&library=[library_name ] The URL parameters specified between square brackets should be replaced with the respective values from your environment. The table below provides details of the service parameters that can be used.
Service
Required Optional Parameters Parameters SRV=cacheSite SITE=<sitename> DELAY=<delay> Initializes prerendering for LIBRARY=<library> the given site with a delay as given (in seconds). Note: If no library is specified, the default library is used, as specified by the defaultLibrary property in the WCMConfigService.properties file SRV=flushSiteCache SITE=<sitename> LIBRARY=<library> Clears (flushes) the given site cache. Deletes all preNote: If no library is specified, the rendered data. default library is used, as specified by the defaultLibrary property in the WCMConfigService.properties file SRV=flushPageCache SRV=flushPageCache Flushes the page from the site cache. The site and page are determined from the request URL. - 441
No SRV specified The CacherModule attempts to retrieve the given page from the cache.
Pre-render individual WCM pages http://[host_name]:[port_number]/wps/wcm/connect/[library_name]/[site_name]/[ site_area_name]/[content]?MOD=Cacher Note: To pre-render individual content items the site specified in the URL must either be a site set in the WCMConfigService.properties file, or you must have previously manually prerendered the site using "SRV=cacheSite". In the URLs above for pre-rendering sites and individual pages, the library_name parameter is optional. If the library is specified, the pre-renderer looks for the site in that library. If no library is specified, the default library is used, as specified by the defaultLibrary property in the WCMConfigService.properties file.
Pre-rendering Limitations
This section identifies some of the limitations of using pre-rendering and will help you identify the right scenario to use this as an option to deliver WCM websites.
Pre-rendering takes a snapshot of the WCM website and all users see the same content. Hence a site that is personalized can't be pre-rendered. The path to the content item (including the directory path you are pre-rendering to - Site/SiteArea/Content) can not exceed the operating system's maximum path length: 255 characters in Microsoft Windows. 1024 characters in Linux. Invalid Characters in Site, Site Area or Content Names: Sites, Site Areas, and Content obejcts can not contain characters that are considered invalid in filenames by the operating system you are prerendering to. E.g. - In a Microsoft Windows environment, these characters are invalid: / \ : * ? " < > | The pre-rendering process is configured to run as a user (connect.moduleconfig.cacher.rendereruser ) and hence the website snapshot is taken as per the access privileges available to the selected user. It can take a long time to pre-render a large site and while the site is being prerendered and WCM authoring portlet users may experience being locked out of the system until the pre-rendering process is completed. The entire site must be pre-rendered before it can be used, otherwise users will experience broken links. - 442
- 443
overlap which allows users to belong to more than one realms aggregate one or more nodes in a user registry combine multiple suffixes of one user repository
The following picture depicts the relationship between LDAP, realms and virtual portals.
Figure - Relationship between LDAP, realms and virtual portals As shown in the figure above, part of the LDAP1 is used to create Realm1, which is configured to a set of Virtual Portal. Realm2 actually overlays and covers the same group as Realm1 and the same group of people in LDAP1. The virtual portals are configured the each align with a realm. In this case realm1 and virtual portal 1 align and then Realm2 and VP2 align and happen to be the same group of people from LDAP1. With Realm3 we show the ability of a realm to cross over multiple LDAPs. It is really this ability that is used to support multiple LDAP within the Portal. - 444
2. Configuring content of the Realm This will help modify the list of base entries and modify the default base entry where Users and Groups are created o wp-add-realm-baseentry o wp-delete-realm-baseentry o wp-query-realm-baseentry o wp-modify-realm-defaultparents
Following are the steps to create the necessary realms: 1. Add LDAP A by using wp-create-realm realmname=LDAP_A addBaseEntry=o=foo.bar After this task succeeds, LDAP A is added. 2. Add LDAP B by using wp-create-realm realmname=LDAP_B addBaseEntry=o=mycorp After this task succeeds, LDAP B realm is added. 3. Add LDAP B -> o=mycorp by using wp-create-realm realmname=LDAP_B_mycorp addBaseEntry=o=mycorp After this task succeeds, LDAP - prefix mycorp realm is added. 4. Add LDAP B -> o=externals prefix by using wp-create-realm realmname=LDAP_B_external addBaseEntry=o=externals After this task succeeds, LDAP B prefix externals realm is added. Now you have 4 Realms with each one containing a single BaseEntry. Finally, add the second BaseEntry for LDAP B by using wp-add-realm-baseentry realmname=LDAP_B addBaseEntry=o=externals
- 446
How are you going to manage the distribution the content between environments? How often should you do syndication? What is better in your case manual or scheduled syndication? Are you going to version every content in the system? What about historical items? What would happen to your website if the number of users grows exponentially? Are you ready to measure the success of the different parts of your site? (Do you have Metrics in place and have you defined what qualifies "success" for usage of the site?)
As you can sense from these questions, 'go live preparation' is more than moving content from one environment to another. It must be considered a key task in your project plan with enough resources and time to be executed correctly. Fortunately, there are lot of resources that will help you during this process, in the past sections of this site you have found a lot of useful documentation about these topics but many other resources are available on the web: Title 1 Performance checklist Description URL Useful http://www.ibm.com/developerworks/websphere/l checklist with ibrary/techarticles/0807_lang/0807_lang.html questions to be addressed before your site goes into production. Every point is presented together with links to - 447
documentatio n 2 WCM Best Practices Collection of http://wwwdocuments 10.lotus.com/ldd/portalwiki.nsf/archive?openview that cover best &title=WCM%20Best%20Practices&type=cat&c practices at=WCM%20Best%20Practices about site design, authoring, API development, syndication, migration and performance tuning. 3 Caching and This wiki http://wwwprerendering entry shows 10.lotus.com/ldd/portalwiki.nsf/dx/web-contentthe different management-caching-and-pre-rendering caching options in WCM balancing them with pros and cons. Includes sample code and configuration files 4 IBM WebSphere Article that http://www.ibm.com/developerworks/db2/library/ Portal Web Content explain how techarticle/dm-0802tessarek/index.html?ca=drsManager and DB2 to improve performance Tuning Guide in WCM / DB2 systems by following a couple simple steps. 5 IBM WebSphere This article http://www.ibm.com/developerworks/websphere/l Portal: Performance provides ibrary/techarticles/0807_lang/0807_lang.html testing and analysis advice and methods for finding and resolving common performance problems - 448
6 IBM Web Content Management (WCM) Tech Exchange webcast on performance and scalability - 31 January 2008
Webcast with http://wwwdo's and don'ts 1.ibm.com/support/docview.wss?rs=1041&contex about t=SS6JVW&q1=lste_webcast&uid=swg2129382 performance 4&loc=en_US&cs=utf-8&lang=en and scalability with WCM.
Includes an audio file and a presentation 7 IBM Web Content This webcast http://wwwManagement (WCM) about WCM 1.ibm.com/support/docview.wss?rs=1041&contex Tech Exchange architectural t=SS3JLV&context=SS6JVW&q1=lste_webcast Webcast on design &uid=swg21295350&loc=en_US&cs=utfDeployment - 14 describes real 8&lang=en world WCM February 2008 environments and provides guidance to choose among different alternatives while configuring logical and physical architectures. Includes an audio file and a presentation 8 IBM Web Content Webcast http://wwwManagement (WCM) about 1.ibm.com/support/docview.wss?rs=1041&contex Tech Exchange performance t=SS3JLV&context=SS6JVW&q1=lste_webcast webcast on and caching in &uid=swg21295820&loc=en_US&cs=utfmaximizing cache WCM. It 8&lang=en performance presents a practical February 21, 2008 approach to site optimization together with a collection of tools to be used in this activity. Includes an audio file and - 449
a presentation
- 450
5.2.7.1 WCM 6.1 Tuning considerations using the River Bend site example
The following article discusses an approach, together with specific tools for measuring and improving the performance of your Lotus Web Content Management site. We discuss specific recommendations and results within the context of our sample site RiverBend Tea and Coffee Company.
Establish metrics: performance testing and optimization can potentially never end. To avoid that, ensure that all the people involved agree about what should be considered a good result before to start. This usually is achieved by defining three values: o Maximum response time o Minimum responses per second at that time o Maximum CPU usage at that time
Perform a basic optimization of your systems: o This includes web servers, application servers, Portal Server and WCM instances and databases o Basic optimizations like the ones described in (4) shouldn't require lots of time and skills and will ensure more real results for your tests.
Optimize page load time: o Performance testing is an expensive process. Before you start, recheck all the pages that you will test for elements that may impact negatively in the results. o Broken links, resources loaded from external URLs or JSP components can be considered usual suspects o If page load time still doesn't match your expectations check again with your development team what performance improvements can be done
Run performance tests: o Create a test script that simulates a real use case o Run tests increasing amount of users and monitor response time and numbers of request per second. This will give them what is the maximum amount of users that the system will support while keeping the response time under the maximum response time. o Check the CPU usage during every time both in the load generator and in the WCM server.
- 451
Caching in WCM can be performed at three different levels: o Web server: using a caching proxy module part of Websphere Edge components o Application Server: using WebSphere Servlet Caching to storage the responses generated by the WCM servlet or portlets for future users o WCM: elements can be cached on WCM reducing the number of database calls Activate WCM cache and re-run the tests Activate Servlet cache and re-run the tests
Analyze your results o Build tables and graphs with the results and analyze them. If any result doesn't sound right repeat that test to ensure your data doesn't contain exceptions.
Repeat this optimization / test process until the results match your expectations.
Move your system to production and ensure that those results will be maintained in the production environment in situations like: o Database growths with historical data and versions o Other server tasks like full text indexing or syndication are running o New functionality is added to the site
Use a web analytics tool to monitor the real use of your production server. Check that parameters follow the service indicators you defined at the start of the process.
Page analyzer: graphical tool that enables Web system administrators to measure client side performance of Web pages. Load generator: define or record a navigation path and simulate the load of a certain number of users accessing a server by repeating that pattern for a certain number of times concurrently. Cache monitor: for displaying and deleting cache contents during the test process. Page analytics: saves historical navigation data to match real system behavior with the expected results.
Page analyzer
Page analyzers are tools that allow developers and administrators to investigate how a certain page will be loaded in the user's browser in order to detect performance or design defects. Most of these tools uses a time-line paradigm, they show an horizontal line that represents the overall page load and decomposes it to show how individual items are loaded. Firebug (http://getfirebug.com/) is one of the most popular Firefox plug-ins among web site developers. Firebug provides a powerful set of tools that include a Javascript console and debugger, a DOM inspector, a CSS editor and a page load analyzer. Firebug page analyzer shows the page load process in a graphical way. Each request is displayed as an independent horizontal bar that represents its load time. Firebug displays even AJAX requests that are thrown after the page have been loaded. For complex pages, Firebug allow developers to filter the request that are displayed by their type: HTML, CSS, JS, AJAX, Images and Flash.
- 453
Firebug can display detailed information about a request including request parameters, headers and response data.
- 454
OpenSTA ( http://www.opensta.org ): simple, efficient and free load testing tool. IBM Rational Performance Tester: powerful product ready for enterprise use. Jakarta JMeter (jakarta.apache.org/jmeter): 100% pure Java desktop application designed to load test functional behavior and measure performance. One of the most popular Apache Jakarta's tools.
- 455
The load used for River Bend tests was created using a Apache JMeter script:
It simulates a user that browses through three different pages (Home Food Beverages) taking one second to decide where to go between pages The script gets all the page contents including external resources like images The simulation will be run for 1, 10, 50 ,100, 200 and 500 hundred concurrent users that will be incorporated to the load test during five seconds.
JMeter can display test results in several ways including graphs and tables:
- 456
Deploy your cache monitor ear under the installableApps folder of your application server: Select Websphere_Portal as the targeted server Give wpsadmin administrator role Patch the default cache monitor with the advanced cache monitor following the instructions in www.ibm.com/developerworks/websphere/downloads/cache_monitor.html
- 457
Page analytics
The term "page analytics" describes a process that can help to understand how your site is used. WebSphere Portal writes usage records to a dedicated log file. The format of the log follows industry standards ("NCSA Combined"), you can integrate portal usage data with your preferred reporting and analytics tools.
- 458
This article: (http://www.ibm.com/developerworks/websphere/techjournal/0609_liesche/0609_liesche .html) describes how to derive reports and analytics information based on the data provided by Portal instrumentation and how to use the logs for portal analytics using open source reporting tools.
5.4
These values were obtained on a development laptop and doesn't represent a WCM performance statement but allowed River Bend administrator to come up with some interesting conclusions:
Caching improves significantly WCM performance. The River Bend system can attend more than 70 requests per second while keeping the page response time under one second.
- 459