Building a Website Using Lotus Web Content Management 6.1
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–
Meet the authors John Bergland is a is a project leader at the ITSO, Cambridge Center. He manages projects that produce IBM Redbooks®, focusing on IBM Lotus and WebSphere technology. Before joining the ITSO in 2003, John worked as an IT Specialist with IBM Software Services for Lotus® (ISSL), specializing in Notes and Domino® messaging and collaborative solutions. Mrs. Josephine E Justin (Joyce) is an IT Specialist with IBM software Group Lab Services team in India. She has 8 years of development and consulting experience in J2EE and portal applications. She has been involved with Lotus Web Content Management implementations since 2005.
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.
Supporting contributors and reviewers Jennifer Heins - IBM Software Group, WPLC WPLC Technical Content Strategist and Architect DeAnna Steiner - IBM Software Group, WPLC Information Architect - WCM Mark Hampton - WCM Team - IBM Software Group, WPLC, Senior Software Engineer Theresa Smit - IBM Sales & Distribution, Software Sales, Lotus Web Content Management, Americas TechWorks WPLC Team Thomas Barber - IBM Software Group, WPLC, WCM L2 Manager
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
Comments are welcome Your comments are important to us! We want the content in this wiki and all our wikis to be as helpful as possible. Provide us your comments in one fo the following ways: • •
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–
1.0 Introduction to IBM Lotus Web Content Management In today's global business world, businesses depend upon their visibility in their respective marketplaces. With the pervasiveness of the Internet, the Web has become a prime delivery mechanism of this visibility. Worldwide, organizations use the Internet to deliver their presence, from basic organization and company information to e-commerce. The Web is a sophisticated and key tool. 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.
-7–
1.1 Web site Fundamentals In this article, we begin with the basic terminology and concepts, while also examining questions such as • • •
Why am I building a web site? Setting objective and measuring them Why web sites fail?
Basic concepts within a web site A web site is a collection of all of the text, graphic images, links, sounds, and other content elements that make up a presence on the web. Ultimately, the goal is to present content and information in the most dynamic, up-to-date method possible. Each individual document is called a web page. Web sites have three basic components: • • •
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: • • • •
Text documents Graphic images Sounds Downloadable movie clips -8–
•
Links to other related sites
Why am I building a web site The goal of a web site is to provide up-to-date, accurate information and content for customers, partners and employees of your organization. When managed effectively, a web site provides an excellent platform for providing information to a broad audience, with the ability to rapidly update and modify this information as needed. Business moves quickly: Promotions come and go, prices change, product features are added, and new opportunities arise. A successful web site can ensure that the best and most relevant information is shared with key stakeholders. A valuable Web site provides information—not just data. There is a continued explosion in both content volume (numbers of items) and content types (documents, images, streaming media, instant messages, e-mail and so on). Lotus Web Content Management software helps you structure your ever-growing data.
Setting Objectives and Measuring Them Once you have defined the goals of the web site, it is important to have metrics and mechanisms in place to determine if your site is providing benefit and serving to achieve the goals you have defined. • •
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.
Why Web sites fail Delivering a Web site (Internet or intranet) that makes a mark with its target audience is becoming more challenging than ever before. Why is this? This change can be partially attributed to a growing number of users called "digital natives", who are people who have grown up with technology such as the Internet, digital cameras, and computers. This group expects more from a Web site than just static information that is poorly laid out and difficult to find. This group speaks digital as though it were a second language. But digital natives are not the only reason for this. There are many others. Today the Web is used as a natural medium to allow individuals and business to conduct transactions, especially the buying and selling of goods and services. Businesses use Web sites and portals to deliver efficiencies, with faster access to information and people and easier consumption of knowledge and education. In essence, there is much more reliance upon the Web and Web sites than could have ever been realized five to ten years -9–
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 –
1.2.2 People involved in a Web site The following article discusses the roles and functions which are typically brought together in a collaborative environment when building a site. Building and maintaining a Web site by using a Content Management System such as Lotus Web Content Management is a that task requires skills, experience, and knowledge. The required skills and knowledge ideally come from many individuals working in a collaborative environment. Typically we bring together individuals under the umbrella of three areas (business, technology, and information) and four distinctive groups (business, technical, content, and design (or layout). Depending upon the size of the business and situation, it is possible for the same person's time to be split across positions in these groups. The funtional groups represented include: • • •
Business, Technology, Information
The specific roles discussed include: • • • • • • •
Business owners Corporate communications and marketing Graphic designers Information architects Infrastructure engineers and operations Content authors, SMEs, and approvers Consumers
Functional Groups Represented Expanding upon these functional groups further, we can see the areas where skills, experience, and knowledge are needed: • •
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).
o
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
Process leaders perform the following tasks: o o 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.
Corporate communications and marketing A superset of the content group is corporate communications and marketing. This group is responsible for ensuring that the messages, products, and general information that are delivered to the consumer are consistent, well defined, easily digestible, and clear overall. Corporate communications and marketing individuals might make up some of the people who are already defined as part of the content group or, in some cases, provide direction from a higher level. The corporate communications and marketing team performs the following tasks: Ensures information consistency Verifies that the general delivery of the product, service, or corporate information is clear o Approves information style and language, as well as access o o
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.
Infrastructure engineers and operations The infrastructure engineers and operations team is part of the wider IT group and is ultimately responsible for ensuring that the systems are put in place and maintained against corporate standards. These standard typically fall into two areas: systems (the underlying software stack, for example, the application server) and network (the architectural guidelines of how system communicate or do not communicate). The infrastructure engineers and operations team performs the following tasks: Designs the CMS to fit with previously defined network and system architectural standards o Establishes processes to monitor and maintain the system o Works with the business to align budget with standards (resilience, scalability, and so on) o
- 15 –
Content authors, SMEs, and approvers Content is gold. Without it, the Web site ceases to be beneficial to the visitor. As such, the content team is responsible for ensuring that content is created, categorized, quality assured, and approved to be visible on the Web site. Content authors, SMEs, and approvers perform the following tasks: Provide content expertise and writing. Help define the taxonomy with the information architect or architects. Help define the content structure with the information architect or architects. o Provide first-level template support. o o o
Content owners perform the following tasks: o o o
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 –
1.3 What do we mean by Web Content Management What is Web Content Management The following section addresses the specific question of "What is Web Content Management", and how this fits into the greater goal of Content Management. • •
•
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
Enterprise content management has the following objectives: •
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 –
•
Build knowledge-based environments to leverage corporate know-how and expertise.
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 organization’s 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: • •
The content The design or presentation of that content
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 Dynamic 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 –
Emphasis on Web Content Management 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: • •
The content The design or presentation of that content
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 Dynamic 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.
Overview of Web content management In the past, different forms of information, such as Web content, e-mail, product information, or customer data, were kept in separate, disconnected content management repositories. Today, this is not a viable solution. To thrive in an on-demand environment, you need flexible, cost-effective content management solutions to manage any type of information, including structured data and unstructured content. You need content management solutions that enable data and content to be integrated with multiple applications and processes, distributed or shared throughout and beyond your organization. Furthermore, you need it structured and organized in the way that is best suited for your business. The focus for today's businesses To manage the exponential growth of business-critical information, respond faster to the marketplace, and increase employee productivity, your content management capabilities must address three key areas: •
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.
General concepts in Web content management In this section, we define concepts that are fundamental to understanding Web content management and, more importantly, understanding the benefits that can be gained. Separation of content and presentation As a foundation for understanding the benefits of Lotus Web Content Management, we must first distinguish between content and the presentation of the content. When a clear separation is made between content and how it is presented, you can appreciate how a single piece of content can potentially be rendered in multiple ways. For example, a single item of content, such as a news article, can be presented in any of the following ways: • • • •
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 user’s 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.
Do you need a Web Content Management system Do you need a Web Content Management (WCM) system? This is a good question to ask. The answer is: "It depends." It is quite a standard practice for most organizations to use a Web content management system to assist with the process of delivering content to their intranet or Internet site. Consider, for example, a product page that details the features and advantages of a new coffee maker. The generation of the words and images can involve several people, including SMEs, image designers, proof readers, legal, and IT. If we achieve this all through existing desktop office tools, it can be quite arduous and time consuming. However, by using a modern WCM system, the process can be streamlined to allow distributed authoring, workflow, preview and ultimately delivery of the finished article to the Internet Web site, notifying the appropriate people. For both intranet and Internet sites, content is king. Without it being current, timely, and appropriately placed, the site can be perceived in a lesser light. From the content delivery process alone, a WCM system seems like a good choice. With the content creation, approval and delivery process being the top capability that - 24 –
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 –
User experience: Authoring and content management •
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.
Authoring templates can control versioning on a template-by-template basis.
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 –
reported inline with the syndicator/subscriber configuration.
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 â&#x20AC;&#x201C;
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 –
2.0 Overview of WCM Product architecture and Key Components of WCM The Lotus Web Content Management 6.1 application is fully integrated with WebSphere Portal 6.1. As such, all required components of the Lotus Web Content Management application are installed with WebSphere Portal 6.1. The following figure provides a high level overview of where Lotus Web Content Management fits into the WebSphere Portal infrastructure.
Web Content Management architectural overview Note the following differences between Lotus Web Content Manager and Portal Document Manager: â&#x20AC;˘
â&#x20AC;˘
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 â&#x20AC;&#x201C;
Key components of WCM This section defines the key components of IBM Lotus Web Content Management™
IBM Lotus Web Content Management™ Server The IBM Lotus Web Content Management™ Content Server is the core of the IBM Lotus Web Content Management™ application. All requests for content are ultimately processed by the Content Server. The IBM Lotus Web Content Management™ Content Server leverages Virtual Member Manager as its user repository. This repository is used for both authentication as well as determining group membership for authenticated users.
IBM Lotus Web Content Management™ Content Repository When you first enable IBM Lotus Web Content Management™ , it uses WebSphere Portal’s embedded Apache® Derby database as its content repository. If desired, you can switch your IBM Lotus Web Content Management™ repository to any of the supported databases listed at http://www1.ibm.com/support/docview.wssrs=688&uid=swg27007791 Note: if you choose to store your content in IBM Content Manager you can still reference items stored in IBM Content Manager from within IBM Lotus Web Content Management™ using the Federated Components.
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.
IBM Lotus Web Content Management™ Authoring Portlet The user interface for working with IBM Lotus Web Content Management™ is provided via a Portlet running within WebSphere Portal. The Authoring Portlet is (more accurately) your sole graphical user interface for interacting with IBM Lotus Web Content Management™. Content creators use the portlet to author content. Content approvers use this same portlet for managing content. Developers use this portlet to create technical assets (for example, Presentation Templates, Workflows, Syndication components, and so forth). The Authoring Portlet allows for very granular user interface security controls. Restriction: The Authoring Portlet must be running on the IBM Lotus Web Content - 37 –
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™ Connect Servlet The Connect Servlet is used to deliver Web content outside of a WebSphere Portal environment. You would use this servlet when you need to deliver a traditional standalone Web site. Site visitors can access content by requesting the HTML directly from the Connect Servlet. It is important to note that even if you only use Connect Servlet to deliver stand-alone (non-portal) Web sites, the core IBM Lotus Web Content Management™ application always runs on WebSphere Portal.
IBM Lotus Web Content Management™ Rendering Portlets IBM Lotus Web Content Management™ provides two Portlets that can display your content in WebSphere Portal. These portlets require no Java coding - only simple configuration by the portal administrator.
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™ Public API While IBM Lotus Web Content Management™ provides a solid set of Web content management capabilities out-of-the-box, there are times when the standard capabilities of IBM Lotus Web Content Management™ do not meet your exact needs. For situations such as this IBM Workplace Web Content Management provides a Java API. It is important to note that the IBM Lotus Web Content Management™ API does not expose all the capabilities of the IBM Lotus Web Content Management™ application. The JavaDocs should be reviewed for a complete set of the features available using the API. The Javadoc HTML files are located under the was_profile_root folder. In this path name, was_profile_root is the profile root for WebSphere Portal Server. For example, these files were found on our wcm01.cam.itso.ibm.com server at: C:\IBM\WebSphere\wp_profile\installedApps\wc01\wcm.ear\ilwwcm.war\webinterface\ api-javadoc Restriction: The Web Content Management API only supports Java code running in the same Java Virtual Machine as Web Content Management itself. If you wish to access the IBM Lotus Web Content Management™ API remotely you will need to build some type of service layer on the Web Content Management server to broker your requests. The most common solution to this issue is to develop a Web Service to perform this function.
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 –
2.1 Architectural frameworks for content in WCM Portal Portal provides the basic framework services for content aggregation, role-based access, personalization and security. The underlying J2EE platform provides low-level middleware services such as enabling security with a user registry and session management. These underlying services coupled with the basic services supported by the portal framework can be effectively used to provide content life cycle management in terms of content authoring and content delivery. Different roles, such as author, reviewer, and approver, can participate in their capacity to move the content from authoring to delivery. The content management and delivery framework embedded into Portal can be used in tandem with the other features, such as personalization and content aggregation, which provides an effective layer for presentation services in the architecture. The information architecture can be a combination of the content management and delivery interspersed with other portal navigable pages to render content from different back-end systems.
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
2.1.1 Pre-rendering Introduction Pre-rendering Introduction Lotus Web Content Management (WCM) websites can be delivered in the following ways â&#x20AC;&#x201C; 1. Through the Web Content Management servlet. 2. Through a local rendering portlet using the local portal server. 3. Through a remote rendering portlet located on a separate portal server. 4. 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 prerendered website. 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. For more information on pre-rendering, please see document - 5.2.3.1 Dynamic vs. Prerendering environment.
- 42 â&#x20AC;&#x201C;
2.2. Information architecture and site design When designing a Web site, organize information in a way that is readily accessible to users. The structure in which information is organized is called the information architecture. In this section, we provide an approach for determining the information architecture for the top levels of your Web content manager (WCM) Web site. You structure the information that is published on a Web site within a site framework that is accessed through Web site navigation. In this section, we lead you through the decisionmaking process by discussing and defining the information architecture, key considerations, decision processes, and information design. Additionally, we explain how to define criteria for site acceptance. It is important to acknowledge the relationship between the information architecture and the site framework. The site framework structures the information about a published site and is closely integrated with the Web site navigation. To begin, you define an initial site framework with primary and secondary site areas. The site framework is a prerequisite for the design and development of the content management system. In addition, you must develop an initial layout of the home page based on the primary and secondary site areas. Both the framework and the home page layout require review and validation with business stakeholders, from both an authoring and Web usability viewpoint.
- 43 â&#x20AC;&#x201C;
2.2.1. Defining the information architecture Content accessibility on an intranet can have a direct impact on an organization's overall productivity. If users can find the information they are looking for before they even are aware that they are searching, then you have accomplished the goal of organizing the information correctly. The primary reason for sharing information on a Web site is to make it available for users. However, it is often the central reason why Web sites fail, which include for the following reasons: •
• • •
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 organization’s 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: • • •
Site framework Category hierarchy Document type hierarchy
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.
Basic examples of a good information architecture When considering the information to share on a Web site, we recommend that you have direct access to the top levels of content. The top levels are the logical entrance to information and build the foundation of the information architecture. There are no strict rules governing what these top levels should be. In this section, we present examples of a good information architecture and discuss the features that make these examples special. The examples discussed in this section include the sample River Bend Tea and Coffee site and the IBM developerWorks site. We address the specifics of the River Bend Tea and Coffee site in the next section.
- 45 –
River Bend Coffee and Tea Company The River Bend Coffee and Tea Company is a virtual company that we use for this wiki to give a simple example of a basic information architecture. This fictitious company sells coffee and tea in different locations around the world. They have a public Internet site to share information with their customers. These customers are individuals and businesses. River Bend wants to provide to each individual user of the site a personalized experience of content based on their user profile. After each user to the site registers, they will have a profile that includes demographic and personal information that will allow the company to generate and display targeted campaigns specific to the user. For example, three levels of customers have been defined: • • •
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: • • • • •
Products Company Locations News Contact
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 –
The IBM developerWorks Web site IBM developerWorks is a Web site for technical-oriented users of IBM products and is found at the following address: http://www.ibm.com/developerworks/lotus The developerWorks Web site is a resource for developers. It offers highly technical information and additional software that is related to all IBM products. The site encompasses a broad scope of content. Visitors to the developerWorks Web site typically have a specific need to find help or the latest news for a particular product. Most of the time, theses visitors also expect quick answers. Providing this level of support on the IBM developerWorks Web site is a challenge for the information architecture, because the site contains multiple thousands of content pages. To provide an example, let us look at the structure for the information architecture of the IBM developerWorks Web site. IBM developerWorks is segmented into the following areas. Top toolbar The top toolbar for the developerWorks Web site contains a regional selection, terms of use, a search function that is separated by area, and the main IBM navigation menus as shown in the following figur. The top toolbar is available on all IBM Web pages.
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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.
Analysis of wireframe diagrams To determine the structure and layout of the site, it is important to create basic diagrams to help users of the site better understand how content will be structured. Likewise, it's important to agree on a navigational model. The method used in building the River Bend Coffee and Tea Company site was to create basic wireframe diagrams, which illustrate the basic layout of content. Note: You can use simple tools on wireframe page layouts. For example, these examples were all created by using Microsoft PowerPoint, a tool that allows for quick and simple drawings.
- 49 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Results of an inadequate information architecture Now that we have discussed some examples of good information architecture, in this section, we discuss the consequences of using an inadequate information architecture. Any Web content management project should point out the results of poor information architecture. For example, an inadequate information architecture shows up as inconsistent Web site structures and a poor user experience. Web sites that spread information over several areas do not follow a consequent architecture. In these cases, users might quickly lose the overview information, and then they cannot reproduce the path from which they came. Another common issue with an inadequate architecture is the misapprehension of the userâ&#x20AC;&#x2122;s experience. First-time users have a different perception than the everyday content owners, where power users expect to access their information needs directly. Yet another common issue that is often overlooked by even the most experienced user design expert is keeping in mind all of the interface criteria of the view. For example, screen resolution, Web browser type, pervasive access needs from PDAs and cell phones, language and font type, any mandated needs that address the visually impaired user, and so on. We refer to the importance of adequate use case scenarios later. - 52 â&#x20AC;&#x201C;
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 manufacturerâ&#x20AC;&#x2122;s business.
- 53 â&#x20AC;&#x201C;
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
Understanding the goals When designing an information architecture, you first need to understand the business and user goals as well as the audience to whom the information is directed. Before you can look at structures, individual applications, or design aspects, you must define the business goals and the user goals. - 54 –
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.
Understanding your audience The project effort will only show a return on investment (ROI) if the audience can be reached with the business prospective. Any failure made at this point is significant for the project. First, you need to understand the demographics of the audience and why they are interested in visiting the site. What is the business prospective and does this equal the audience view of the business? Users do not have the same tolerance with Web information that they have for printed or broadcasted information. If you cannot meet your audience's needs, you rarely get a second chance to try it again, especially when facing an external audience. In many cases, even employees will revoke an information source that is ineffective. As stated in the beginning of this section, the only reason to share information about a Web site is to make it available for users. The Web site experience is the one experience that is most appreciated by the audience. The usability of a Web site is an essential subject. Usability is required to make sure that the audience can complete the tasks. Usability can only be achieved by meeting the needs and expectations of the target audience. - 55 â&#x20AC;&#x201C;
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
Consider objectives and key success factors For your Web content management product to be a success, consider and define the key success factors that will determine whether the Web site is meeting the objectives. Additionally, you also must understand how you can measure the key success factors. Keep in mind that higher Web site traffic is not necessarily an indication of a good Web site. For example, repeat visits can only be counted as a success indicator if the visits lead to a positive user experience or, in the case of a commercial Web site, to increase business. Numerous mechanisms are available to measure the success of a Web site. Such mechanisms include a simple feedback form, an analysis of complex statistics, and custom-made measuring criteria. Objectives and key success indicators might include the following examples: • • • • • • • • •
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.
The site framework should also be flexible and easy to modify: • • • • • • • •
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.
Finding a highly effective application One way to ensure use of the Web site is to identify at least one highly effective application or feature that everyone is likely to use frequently and make it available only on the Web site. Most often an application or a particular type of information can be identified easily. Then, you can make this application easily accessible within the information architecture. In our example of the River Bend Tea and Coffee Company, after the survey of the customer end user community was completed and the output from the line of business stakeholders was reviewed, the core project team conducted a review session to come to agreement on the overall project plan. First they decided on the highly effective application. In the case of our example, there were two. The first application was defined as being the recommendation component. It constantly makes new recommendations of teas and coffees that the user has not yet tried but might have a high probability of liking based on their buying and viewing trends. The second application was defined as the campaign portion of the site where targeted promotions were presented based on user profile information. After you determine the business goals and define the audience for your Web site, start thinking about how visitors will use your site and how the design can ensure high usability. User Centered Design (UCD) ensures that the objectives of users are taken into account when designing the site. A characteristic of a UCD approach places the user at the center of all design decisions when building a Web site. UCD also includes design in the manner of structure and information architecture. One common complaint from users is that they cannot find what they need on the intranet. This does not mean necessarily that the site is designed poorly, but that the spectrum of users is comprised of linear and non-linear thinkers. A linear approach, a non-linear approach, and a combination of these two approaches are equally valid. To accommodate the broadest community of users, IBM recommends that you develop three discrete design directions, focusing on page layout and navigation. Then present the design directions to a focus group that is comprised of a cross-section of users. The users will provide feedback regarding specific direction about how you should design the site and the content that you should highlight. A facilitator, which can be a qualified person within the content owner, should be engaged to conduct the session, and the session should be scripted with specific questions to ask the group. - 58 –
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: • •
First-time users Professional users
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.
Defining use-case scenarios We have discussed the process of defining the audience's expectations at a Web site. The next step is to define how users achieve the information. A first approach is to define a number of key use-case scenarios that represent the way that you expect users to interact with the Web site. Define these use-case scenarios from a user prospective in order to deliver an authentic scenario. They must include information about the involved context. The chosen use cases should include exceptional use cases to avoid the user reaching a standstill. The amount of detail that each user needs depends on the specific objectives of the Web site and the additional requirements that you identify during the project. The goal is to identify and build a picture of common tasks that users are willing to complete and how you anticipate the user completing these tasks. This iterative process starts with research about the audience, continues into the high-level design of the site, and is followed by a more detailed level of design that includes the structure. In our example of the River Bend Tea and Coffee Company, there were five use-case scenarios: 1. Persona: Content Author - 59 –
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
2.
3.
4.
5.
Planning the site framework and site areas As described earlier in this wiki, the site framework is the site map of a Web site. The site navigator (that is, a navigator component) can be generated from the site framework. The site framework is accessed through the Web site navigation. As an example of how to plan the site framework and site areas, we use the sample case of the virtual River Bend Coffee and Tea Company Web site. The information architecture analysis consists of two parts: â&#x20AC;˘
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 â&#x20AC;&#x201C;
•
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 Category hierarchy Document type hierarchy
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 –
Figure - Hierarchical organization of content â&#x20AC;˘
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
The number of levels to create If you find that you have so many documents covering various topics that when searching for a document based on a category, an exhaustive list is returned, it is time to think about creating new categories. You might want to assign a category to do the following tasks: • •
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.
Creating a category taxonomy Categories are grouped within taxonomies. Categories are also grouped into parents and children within a taxonomy. When building a hierarchy of taxonomies and categories, it is important to consider how a menu will use your categories in a search, because menus search both upwards and downwards within groups of categories, as follows: • •
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 â&#x20AC;&#x201C;
Wireframe for authenticated customers
- 66 â&#x20AC;&#x201C;
Example of the Main Page, or Anonymous users
Document type hierarchy With Lotus Web Content Management, content is created by using authoring templates. These templates are forms that contain content and can be grouped into different document types. When it comes to defining the required document types, it is common to hear content owners requesting a document type for every propose. For example, the sales team wants a document type for products, human resources wants document types for career information, and marketing sees a need for a document type for news and company information. From a technical perspective, these requirements fit in fewer authoring templates because they are quite similar essentially. Instead of creating a new template for every document type on the Web site, templates can differ by page design, such as page layout, page style, and components. Then, you can apply these templates to the many content document types that you create so that the - 67 â&#x20AC;&#x201C;
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.
Metadata, keywords, and categories When content is created, it is crucial that you define descriptive information for that content so that it can be categorized and searched. Descriptive information is called metadata , as defined by the W3C (http://www.w3.org/Metadata/) . Metadata is machine understandable information for the Web. Metadata is required as a part of the Web that contains information about information . Metadata includes labeling, cataloging, and describing information that is structured in such a way that allows Web pages to be properly searched and processed in particular by computers . Metadata is most likely keywords about the content of digital material in the form of labels that are only visible in the HTML code that builds the Web page. The metadata should match with keywords that a user associates with in the content. In our example, we plan to generate metadata for Lotus Web Content Management pages by specifying standard metadata fields. The search supports the metadata fields that are described in the following table.
This information must be created automatically for each Web page. Refer to the search methods detailed in the "Search" section of this wiki.
Determining the components of the Web site To give an overview of components of the Web site, we look at the River Bend Coffee and Tea Company that we use as the example site throughout this wiki. The following figure shows an overview of the site, with key components annotated. In the bottom portion of the document, each of the annotation circles is defined.
- 68 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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.
Using workflow and syndication One of the advantages of using a Lotus Web Content Management system is to dispense the content creation process over different locations or within different security levels. With multiple locations (servers) in a typical Lotus Web Content Management environment, it is necessary to have a mechanism that can synchronize content between the multiple locations. In addition, a typical requirement has the content pass through a formal approval process before it can be viewed on the Web site. Lotus Web Content Management provides two complementary capabilities for these issues: workflow and syndication.
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 â&#x20AC;&#x201C;
When creating a syndication process, Lotus Web Content Management allows you two choices for the granularity of items to be syndicated: â&#x20AC;˘
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. â&#x20AC;˘
All Live Items
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 â&#x20AC;&#x201C;
2.2.3 Information Design A critical component of information architecture is its design, which addresses content accessibility as it pertains to the site interface. Page layout, links, menus, navigators, taxonomy, site breadcrumbs, search, identity standards, graphics, and site metaphor are all components of Web information design. Different users have different preferred means for accessing information. Thus, an effective information design provides users with multiple means for accessing information. The most common means are: • • • • •
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)
Using presentation templates One of the features of Lotus Web Content Management is that you can separate the creation of content from the presentation of content using presentation templates. When using presentation templates, the content creator is not responsible for the page design that will ultimately display their content document. The presentation template is determined by a relationship in the site between a page design and content authoring template. It is recommended that you avoid a large number of slightly different presentation templates and instead, use one that covers all authoring template features. It is possible to pair different page designs (presentation templates) with one authoring template in different site areas. This design means that one piece of content can be displayed in multiple ways depending on the site area that is currently displaying -- called multipublishing. Different uses of multipublishing can be helpful. You should create one content that includes a full set of information, for example, product information. This content can contain confidential material that is published in an intranet or extranet. If the same content is taken and published in the Internet, different presentation templates allow you not only to have a different design but also to share a subset of the original content securely. You can create content with the same type of authoring template but publish it - 72 –
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.
Using site navigators The information design of navigators is a profound part of the user's Web experience. Some users prefer to drill down through navigation levels with the site structure being as big a part of the user experience as the content itself. When it becomes necessary to include a high rank of navigation levels, it is crucial to choose an information design that stays straightforward and intuitive. A very powerful feature is highlighting the selected navigation path. Users easily get confused when the navigation does not follow a logical structure or changes its design. Related to the usability considerations, you should also consider the performance of navigation. To save space or because it might seem more high tech, navigators are used that enfold all available navigation levels by clicking or mouse over. This kind of navigation is accomplish often through complex handling and cannot be easily overlooked when Web accessibility is a big issue ( ). Public Web sites should support Web accessibility, which is at times required by law. Because Lotus Web Content Management is a dynamic process that lives over years, navigation should allow the site to expand dynamically as well. NOTE: Navigators are not menus. Menus are a list of hyperlinks that take you to specific pages can also be hyperlinks that can take you to specific pages, but navigators are organized differently. Navigators present the logical arrangement of a Web site, while menus are a list of related Web pages that might appear anywhere in your site and follow search criteria.
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 â&#x20AC;&#x201C;
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.
IBM developerWorks fourth-level navigation - 74 â&#x20AC;&#x201C;
Example - Swift Trucking In the example below, Swift Trucking hired Alacrinet Consulting Services to create a unique site navigation experience for their intranet employee portal.. The images below demonstrate how flexible the Web Content Management framework can be tuned in order to address the end user navigation experience. The initial goal of the site was to make the navigation as intuitive as possible for the truck drivers who would be accessing the site for benefits, payroll and driving schedules.
- 75 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Using direct feature links Of all the methods to access content, direct feature links is the most direct and provides the most premium. This method enables one-click access from a top-level site location, which is almost always the home page, to any content that is embedded a few layers down in the site structure. These types of links are reserved for the most timely and relevant news or information. However, they can also be used to provide additional information that is related to the current content. Through the use of menus, and leveraging categories, parameters can be set to bring the timeliest content to the home page. In addition, individual pieces of content can be categorized, or a category can be associated with a specific content template so that all content created with that template has the specified category. Content can have one or more categories. These categories then can be presented dynamically by direct feature links such as News, Products, Events, or Promotions. 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 - 80 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Using embedded hyperlinks Embedded text hyperlinks provide users with one-click access to content that i s related to the article that they are reading but that is location perhaps in a different area of the Web site. The only way for users to return from embedded hyperlinks is to use the browser Back button. Navigators and breadcrumbs cannot do not work here. When pages include links to pages outside of the Web site, you should replace the current Web site when contacting the new link or open the new site in a separate window. Often, embedded hyperlinks are used to define a word or phrase that is mentioned (much like a cross reference in a book).
- 84 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
2.2.4. Site Acceptance Recommendations for Site Acceptance A Lotus Web Content Management project can only be successful if the persons involved in the project are motivated to give their part. Often, these kinds of projects involve for the first time a wide range of job roles within an organization. Other then many other IT or knowledge projects, a Web site â&#x20AC;&#x201D; whether internal or external â&#x20AC;&#x201D; most likely involves all parts of the organization. Organizations can underestimate the political, local, and cultural problems associated with a project of this type, and this underestimation can become the biggest challenge of the project. Therefore, it is crucial to communicate the reason and business value of the project and to get a wide acceptance of the project for it to be successful. One challenge constantly voiced by technical teams is the lack of site use by many of organization's staff and the lack of content contribution by the business stakeholders. We recommend a few basic actions to help build support for the Web site. These recommendations are as follows:
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.
Design and layout approach To accommodate the broadest community of users, we recommend developing three discrete design directions, focusing on page layout and navigation. Those design directions should then be presented to a focus group comprised of a cross-section of customer users. Feedback from those users provides specific direction into how the site should be designed and what content should be highlighted. A facilitator should be engaged to conduct the session (it could be a qualified person within the organization), and the session must be scripted with specific questions asked of the group.
Communications and enablement As with any deployment of a new system, the organization should develop a communications plan to introduce the new Web site. If power users are identified within the process areas, they can help provide a level of enablement and support within their groups when the new site is launched.
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
- 91 –
2.2.5 Workshop approach Organizations planning an IBM Lotus Web Content Management project should conduct information architecture workshops with business representatives of each of the process areas over the first period. This section outlines some recommendations for preparing and conducting workshops.
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 â&#x20AC;&#x201C;
2.3 Introduction to personalization WebSphere Portal implements rule-based content delivery through a feature known as Personalization. By using personalization, Web sites can customize content automatically for each user. Personalization can recognize a specific user based on a profile. It can also determine characteristics of a user based on previous purchases, products, or pages viewed and then select content that is appropriate for that profile. In the case of the River Bend Coffee and Tea Company site, a simple personalization rule and example was implemented to better illustrate the concept. The personalization rule implemented was 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.
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 â&#x20AC;&#x201C;
2.4 Search optimization considerations (information architecture perspective) The search of a Web site is one of the most used features. It is particularly useful to users who are pressed for time and 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 must be high quality. To return effective search results, content categories and keywords must be defined and applied to each page prior to publication. How should a search work from an information design perspective? There are two possible options. The first option is to make the search function simple and 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 means that it starts with the content that includes all words searched for and continues with single words found.
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
2.5 Design and Layout When designing a Web site, it is critical to organize information in a way that is readily accessible to users. The structure in which information is organized is called the information architecture. You structure the information that is published on a Web site within a site framework in WCM, and this ultimately accessed through Web site navigation. 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: • • •
Site framework Category hierarchy Document type hierarchy
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 –
2.5.1 Usability within WCM 6.1 A critical component of information architecture is its design, which addresses content usability and accessibility as it pertains to the site interface. Page layout, links, menus, navigators, taxonomy, site breadcrumbs, search, identity standards, graphics, and site metaphor are all components of Web information design. Different users have different preferred means for accessing information. Thus, an effective information design provides users with multiple means for accessing information. The most common means are: • • • • •
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 –
2.5.2 Accessibility in WCM 6.1 The following article discusses issues around web site accessibility and the underlying standards The Web is an increasingly important resource in many aspects of life: education, employment, government, commerce, health care, recreation, and more. It is essential that the Web be accessible in order to provide equal access and equal opportunity to people with disabilities. An accessible Web can also help people with disabilities more actively participate in society. As a starting point, what exactly do we mean by the term "Accessibility". Definition from the Web Accessibility Initiative (WAI) "Web accessibility means that people with disabilities can use the Web. More specifically, Web accessibility means that people with disabilities can perceive, understand, navigate, and interact with the Web, and that they can contribute to the Web. Web accessibility also benefits others, including older people with changing abilities due to aging."
Why accessibility is important for everyone Websites are primarily about communicating information with the widest possible audience, whether is a news site like the BBC, a commerce site like Amazon or an technology organisation like IBM; it's about information dissemination and communication. Making a site like those listed above accessible is about removing the barriers that limit the groups of people that can receive the information they provide; removing these barriers is what make a web site Accessible. It's important to realise that the Internet and website are growing and involving more and more area of our society. When you think about accessibility it's easy to think about how your website is presented to those with disabilities, people who are partially sighted, blind, those who require assisting hardware to access IT. However, easily overlooked are those that are perhaps new to IT, maybe mature users of the Internet or someone who's a non-native language speaker. It's important when thinking about the accessible web that your thoughts are broad enough to encompass the widest possible audience. The Lotus Web Content Management system provides you with a platform and components to build your assessable website. Using your existing skills, and tooling the IBM WCM platform provides you with a foundation and management system to facilitate accessible web design and development.
Standards: W3C WAI, Section 508, etc Making websites accessible is only really possibly by adhering to the standards such as the WAI (Web Accessibility Initiative) and it's guideline document, & Section 508. In addition, in country regulations need to be understood and applied appropriately. WAI - 100 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
2.5.3 Analysis of wireframe diagrams To determine the structure and layout of the site, it is important to create basic diagrams to help users of the site better understand how content will be structured. Likewise, it's important to agree on a navigational model. The method used in building the River Bend Coffee and Tea Company site was to create basic wireframe diagrams, which illustrate the basic layout of content. Note: You can use simple tools on wireframe page layouts. For example, these examples were all created by using Microsoft PowerPoint, a tool that allows for quick and simple drawings.
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
- 105 –
2.6 Environment types In a typical Lotus Web Content Management installation, there are multiple physical Lotus Web Content Management servers. Each server or cluster in your Web content system requires a separate data repository, but they usually share the same Lightweight Directory Access Protocol (LDAP). A Web content system can be deployed in isolation or in parallel with a WebSphere Portal production server. In our experience, these servers end up performing one of the following roles within the Lotus Web Content Management infrastructure: • • •
Authoring Staging or preview server Production (live) or delivery
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.
Moving content between environments Workflow versus syndication With multiple servers in a typical Lotus Web Content Management environment, it is necessary to have a mechanism that can synchronize data between multiple Lotus Web - 107 â&#x20AC;&#x201C;
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: â&#x20AC;˘
â&#x20AC;˘
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 â&#x20AC;&#x201C;
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.
Refer to Section 5.1.2 for further information about syndication.
- 109 â&#x20AC;&#x201C;
2.7 Sample physical architectures In this section, we look at physical architectures that you can use to build the Lotus Web Content Management infrastructure. Attention: You can use the architectural designs described in this section to build out any of the environments described in the previous section. In practice, you combine a number of these architectures across the various environments.
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 organization’s 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: â&#x20AC;˘
â&#x20AC;˘
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 â&#x20AC;&#x201C;
• •
•
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.
Advanced architecture planning The intermediate architecture still contains one major deficiency. That is, there is no failover within the environment. To resolve this issue, we look at building a slightly more complex infrastructure that includes clustering some of the servers.
WebSphere Portal and Lotus Web Content Management integrated In the WebSphere Portal and Lotus Web Content Management integrated architecture, we continue to enable Lotus Web Content Management on all of the WebSphere Portal servers. However, unlike the intermediate architecture, in this environment, we cluster the portal servers as illustrated in the following figure.
- 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.
WebSphere Portal and IBM Lotus Web Content Management separated In the WebSphere Portal and IBM Lotus Web Content Management separated architecture, we no longer enable Lotus Web Content Management on all of the WebSphere Portal servers. Instead, we create a separate tier of servers with the sole task of serving Lotus Web Content Management content as illustrated in the following figure.
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 â&#x20AC;&#x201C;
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 Bend’s 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.
The River Bend infrastructure In this section, we review a sample physical infrastructure (illustrated in the following figure) to meet the needs of the River Bend Coffee and Tea Company.
- 118 –
Sample River Bend Infrastructure
Authoring and development Due to the small size of content contributors, content approvers, and developers, a single server is used for authoring (and development). An HTTP server is placed in front of this single server. While the HTTP Server functions can be handled by the WebSphere Portal or Lotus Web Content Management serverâ&#x20AC;&#x2122;s embedded WebSphere Application Server, we recommend running a separate HTTP server. Note: This design forces all employees through the HTTP server as opposed to going directly to the Lotus Web Content Management server. If you have to perform maintenance on the Lotus Web Content Management server, you must ensure that people do not attempt to access the Lotus Web Content Management server during such maintenance. By using the HTTP server, you have this control. During site maintenance, you can either shut down the HTTP server (effectively making the site appear to be down) or place a message page on the HTTP Server. In either event, you will not accidentally have people accessing the Lotus Web Content Management server at inappropriate times.
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Part III – Building a sample site • •
•
•
• • • •
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Figure 2 - Beverages Figure 3 below illustrates the "Careers" page within the Company Information portion of the site.
- 125 â&#x20AC;&#x201C;
Figure 3 - Careers with River Bend Figure 4 below illustrates the "Food" page within the site, describing current offerings.
- 126 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Figure 5 - Promotions Figure 6 below illustrates the Tea page within the beverages portion of the site.
Figure 6 - Tea Beverages
- 128 â&#x20AC;&#x201C;
3.1 Overview of key concepts and terminology for WCM Components Key concepts and terminology This section addresses the core concepts of Lotus Web Content Management. We review the separation of presentation and content and emphasize the importance of componentization within page design. We also describe the key items and components and recommend important considerations for reuse and extensibility. As an example Web site, this chapter uses the River Bend Coffee and Tea Company Web site, which we refer to as the River Bend Web. We show all concepts and terminology that use elements of this Web site. This section includes the following sections: • • •
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 â&#x20AC;&#x201C;
3.1.1 Separating content and presentation Separating content and presentation In Lotus Web Content Management, the creation of content is separated from the presentation of content. This concept is a very important concept and is implemented consistently. Thus, you can create content once and then display that content with different presentations. For example, the presentation can depend on: • • • •
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.
Figure 3 Promotions document open for reading
Content editing considerations Content authors frequently demand a one-click option to edit a published content page. Additionally, they request an in-place-editing and WYSIWYG editing solution. Each of these requirements are based on the same desire -- the ability to edit text and content for a Web page while retaining the display format of the page as the edits are being made.
Challenge of editing separate content and presentation Keep in mind that only some fields of a content document might be displayed on a Web site while others are not displayed. How does this impact the request for in-place WYSIWYG editing solution? Only the fields displayed on that particular Web page are available for in-place or WSIWYG editing. The other fields stay unchanged. For example, if we apply this approach to the River Bend site, the following are true: â&#x20AC;˘ â&#x20AC;˘
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 â&#x20AC;&#x201C;
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.
In-place editing with the Customizable Template Portlet Lotus Web Content Management follows strictly the concept of separation between content and presentation and provides functions to add an edit-link in a Web page to open the displayed document in the Authoring Portlet or the Customizable Template Portlet . See Figure 4 illustrates the edit link.
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
3.1.2 Componentization and the page design concept One of the many strengths of Lotus Web Content Management is the use of componentization . The elements of a Web page are created as distinct units and then are put together in a variety of ways. This function allows you to create flexible Web pages that authors can create simply and that administrators can maintain easily. Each of the elements that are created can be reused in many other pages and in other elements. So, each element should be designed from the beginning to be reusable and modular. See Figure 6 illustrating an example Web page in which some typical component types are highlighted. The menu component is reused in the homepage.
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: •
Content input using a content template - 135 –
â&#x20AC;˘
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.
Considerations for reusability The concept of componentization is derived from the concept that a user can create a component once and reuse it many times in various different contexts and design areas. This reusability can be achieved by adhering to the following guidelines:
- 136 â&#x20AC;&#x201C;
•
• • •
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 .
Lotus Web Content Management fields Each item is created and managed using a form with common and item specific fields. Common fields in all forms are: •
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 –
Item and component security Every item and component is access protected. A five-level security model (Live, Read, Edit, Workflow, and Delete) applies.
Lotus Web Content Management items For a conceptual look towards items, a separation between content-centric and architectural items makes sense. The content-centric items are used for content creation and management. The architectural items define the hierarchical structure of the Web site and its design.
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 and taxonomies
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.
Architectural items and components Creating, managing, and using architectural items is related to the technical and layout constituency and is performed by Lotus Web Content Management administrators and developers Architectural items include the following: •
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. •
Site Framework: site and site areas
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: • • •
Profile Content Form Properties Content
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 –
Figure 8 Categories and Keywords fields in Profile section of Authoring Template
Content Form Properties The content form properties section enables the user with the option of changing the form of the content in order to simplify the presentation of it. In addition to organizing a content form with a layout option for the fields, you can further simplify the form presented to the content author through the use of hidden fields. With the exception of those fields that are required for a content form, you can designate any other field in the authoring template to be hidden. Refer to Figure 9 for field options
- 142 â&#x20AC;&#x201C;
Figure 9 Content Form Properties
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 â&#x20AC;&#x201C;
Figure 11 Fields in Element Manager
Figure 12 Available fields in Element Manager - 144 â&#x20AC;&#x201C;
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.
Figure 13 Riverbend Authoring Template
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.
Creating content using the authoring portlet After selecting the appropriate authoring template for the intended content, you have to select the site area to which the content is linked. The site area is the hierarchal location for the content. Navigators use this hierarchy to display the content that is linked to the different site areas. Web site visitors find the content when navigating through the Web - 146 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Figure 14 River Bend site framework and site map
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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.
Design and development components Having discussed all content related and main architectural elements, we now discuss the design and development components. Design and development components define the Web site's appearance and assure corporate identity.
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;˘
Content items, files or images - 153 â&#x20AC;&#x201C;
â&#x20AC;˘ â&#x20AC;˘
Existing link components External url links
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
3.1.6 Key Lotus Web Content Management definitions - Menu Component The following article describes a Menu component within Lotus Web Content Management. All examples are based on the River Bend Tea and Coffee Company Web site. A menu is ultimately a search mechanism that groups together related documents based on specific criteria such as categories, keywords, authoring templates, site areas, and so forth. To users, menus and navigators provide similar functionality, which allows a user to navigate around the site or to locate specific content. A menu differs from a navigator in the way that it is constructed and in the way that it displays the resulting links. A menu displays content, while a navigator displays site areas for navigation. Think of a menu as a list of documents grouped by a number of different criteria (categories, site areas, keywords, and so forth). When a document is created, changed, or deleted, menus are updated dynamically, and the link lists displays the recent changes, eliminating the need for re-coding and preventing the possibility of broken. Important: Menu-landslides are updated automatically to reflect changes in the content library. Their consistency is maintained by the system. Menus display links as images, icons with text, links with a summary, or many other combinations (see Figure 21 ).
- 157 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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
Menu Element Query – Categories: •
•
•
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
Menu Element Query – Keywords:
- 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 –
â&#x20AC;˘ â&#x20AC;˘
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 â&#x20AC;&#x201C;
3.1.7 Key Lotus Web Content Management definitions - Other Components This article describes the following components within Lotus Web Content Management. All examples are based on the River Bend Tea and Coffee Company Web site. • • • • • • • • • • • •
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.
Rich Text component The Rich Text component is very similar to the text component. However, Rich Text components can reference one or more components using tags and also provide a Rich Text editor for formatting text and HTML. You can use a Rich Text component on the River Bend Web site on the Coffee and Tea product pages to provide a standardized form for rating the products. The Rich Text component references the form and its components (design, buttons, and so forth).
File resource component File resources are components that provide a central repository for files, images, stylesheets, and so forth. Authors and site designers can reference the file resources. The River Bend Three Column Table presentation template references the Riverbend.css stylesheet as a file resource component as shown in the following example: <link rel="stylesheet" href='<Component name="Riverbend.css"/>'>
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>
The default layout uses the HTML-Layout-Main Nav Plain component: <a class="norm" href="<Placeholder tag="href"/>"><IDCmpnt context="autoFill" type="sitearea" field="title"/></a>
Figure 23 shows the result of applying these layouts.
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 â&#x20AC;&#x201C;
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.
User name component You use user name components to display components for anonymous users or authenticated users and to create different design experiences based on user names. The logic for a user name component is as follows: If an anonymous user is using the site, then it displays the Anonymous User Design, or else the User Component Design, where Anonymous User Design and User Component Design are the fields that are available in the component form. These fields contain designs that are based on HTML code or component references. A good example for a user name component is a welcome message on a Web site's home page for an authenticated user. The anonymous user does not see a welcome message.
Authoring Tools component WCM allows site designers to add direct access to some authoring functions inside the rendered web pages to: • • • •
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 â&#x20AC;&#x201C;
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.
Page Navigation Component The page navigator provides the control to navigate between a set of pages created as a result of a menu component, search component or a navigator component. A page navigation component provides the following options: • • •
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"/>
Refer to 3.2.7.6-creating-the-page-navigation-component for a complete example of the page navigation
Figure 27 Page navigation controls
Style sheet Component The style-sheet component is used to store a cascading style-sheet file. Style sheet components can not be referenced in authoring templates, sites, site areas or contents See 3.2.8-using-stylesheets for more information on using Style Sheet components in WCM.
- 168 â&#x20AC;&#x201C;
3.2 Steps to building the site Steps to Building the River Bend Tea and Coffee Company Site In this next section, we provide detailed steps of how to build the the River Bend Tea and Coffee Company Web site. The steps provided to build the basic core of the site include: 1. Creating an IA in WCM 2. Working with libraries 3. The site framework 4. Taxonomies and categories 5. Introduction to Workflow for the River Bend site 6. Authoring templates 7. Creating Components 8. Image Components 9. Creating the Authoring Tool Component 10. Creating the Navigator Component 11. Creating the Menu Component 12. Creating the Personalization Component 13. Creating the Page Navigation Component 14. Using StyleSheets 15. Using Presentation templates 16. Creating the content for the River Bend Site - Assigning Content Items to Site Areas 17. Viewing the Content within the Site - Default and Viewing within a Portlet
- 169 â&#x20AC;&#x201C;
3.2.1 Create an Information Architecture for the River Bend In preparation for building the River Bend Site, you should have already defined the Information Architecture and created Navigational Wireframes to have agreement on the layout and components within the site. Please refer to the following articles for properly defining the Information Architecture and creating Navigational Wireframes to determine the navigation and layout of the site. • • • • •
2.2. Information Architecture (IA) 2.2.1. Defining the Information Architecture - What is IA, or why websites don’t 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 –
3.2.2 Working with Libraries in WCM 6.1 Libraries 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. A library and its security settings are to be created before starting the work on the site. This section describes how to create and manage a Web Content Library. Only the administrator can create a library. Note We refer to the River Bend Tea and Coffee Sample Site as a specific example. For more information on the River Bend site, please refer to section 3.0 Overview of the sample site to be created.
Creating the library 1. Open the Administration portlet, navigate to Portal Content and then Web Content Libraries as shown in Figure 1
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 â&#x20AC;&#x201C;
Figure 2 Web Content Library creation
Defining roles within a library Roles determine the default library access of a user or a group as well as defining different access to individual tasks and views. There are two methods to assign roles to a whole library and the item types within it: Additive: You apply the User or Privileged User role to the entire library and deselect the propagation check box. It will give it access to the library and any authoring portlets configured to use the libarry. By applying Contributer, Editor, Manager or Administrator roles to specific resource types to grant additional access to specified users or groups. Subtractive: You apply the Manager or Administrator role to a user or group to the entire library. You then apply Editor, Contributor or User roles to specific item types and deselect the inheritance check-box. This reduces the access to different item types for specified users or groups. For a detailed list of the different roles and their respective access rights, refer to Portal 6 Infocenter. Setting access rights to specific item type:
- 172 â&#x20AC;&#x201C;
1.
Click on Library Recourses button
2. 3.
For the specific item, click on the Set Permissions button Edit the item type access rights.
in the list of libraries.
Selecting the library for use in Web Content Management 1. Navigate to Applications then to Content then to Web Content Management to access the Web Content Management authoring portlet. Refer to Figure 3
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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
Creating the site To create the site framework for the River Bend Coffee and Tea Company site, follow these steps: 1. Click on New and select Site, refer to Figure 5
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 –
Figure 6 Site framework index list
Creating the site areas The suggested framework for the example consists of only one site but many site areas belonging to it. After creating the site, create site areas underneath the created site. Follow those steps for the site area creation: 1. Click on New and select Site Area, similar to Figure 5 and the steps for creating the Site 2. Select River Bend as the parent site. Notice that the Start for the Link Order of the new site area is selected by default. Keep this selection. 3. Click Ok 5. In the Name field, enter Home. 6. In the Display name field, type Home 7. In the description field, type Main entry point to the website 8. Click Saveâ&#x20AC;Ś, and then click Save and Close. 9. Repeat steps 1 to 6 to create another site area, where its Name is Company. Display Name is Company. Description is Information about the River Bend Tea and Coffee Company. At this point, if you expand the site framework view, you see the home site area within the navigational hierarchy, as shown in Figure 7
- 176 â&#x20AC;&#x201C;
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â&#x20AC;Ś, and then click Save and Close.
- 177 â&#x20AC;&#x201C;
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
Rearranging the site area order After you create a site area, you can change where the site area displays. Follow these steps to move the Careers with us site area to the second position and back to the end position in the Company site area on the River Bend site: 1. In the item views navigator, expand the following: a. The Site Areas b. The By Site c. The River Bend site d. The Company site area 2. Select the Careers with us site area 3. In the button bar, click More Actions Move. a. Expand the River Bend site. b. Select Company site area. c. Choose After specified child d. Select About us from the second table 4. Click Ok The Career with us is now displayed after About us site area as shown in Figure 10
- 179 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
3.2.4 Creating the Taxonomy and Categories for River Bend Taxonomies and Categories This section explains how to build your taxonomy for the River Bend Web site. Note The process of building the taxonomy and categories which you perform in this section is a key step for creating a informal structure for your metadata. Consider this a behind-thescenes requirement for organizing your content.
Creating the Taxonomy Follow these steps to create the taxonomy for the River Bend Coffee and Tea Company Web site: 1. Click New and select Taxonomy 2. In the Name field, enter River Bend 3. Click Save…, and then click Save and Close.
Creating Categories for the Taxonomy Follow these steps to the categories for the taxonomy: 1. Click New and select Category 2. Select River Bend as the parent taxonomy 3. Click Ok 4. In the name field, enter Corporate. 5. Click Save…, and then click Save and Close. 6. Repeat steps 1 to 5 to create the rest of the categories as specified in the following list
- 181 –
Figure 10
- 182 â&#x20AC;&#x201C;
3.2.5 Introduction to workflow for the River Bend Site A group in the River Bend Coffee and Tea Company needs the ability to view data. To review data each document has to go through a workflow after it is created. The workflows that you build in this exercise are used in the authoring template that you will build in the next section. The following steps comprise the tasks that are required to complete this exercise: • • • •
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
Overview of Workflow for the River Bend site River Bend wants two different ways of publishing information: • •
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
This image shows a graphical representation of both workflows: • • •
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
Creating the workflow actions 1.Click New and select Workflow Action Publish Action 2. In the name field enter Publish 3. Click Saveâ&#x20AC;Ś, and then click Save and Close For the rest of the actions, repeat steps 1 through 3. Refer to the following table for the action names and action types Action Action Type Email for rejected Content
Email Action
Expired
Expire Action
Move content on expiry date Scheduled Move Action Generate thumbnail
Custom Action - 184 â&#x20AC;&#x201C;
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.
Creating workflow stages 1. Click New and select Workflow Stage 2. In the name field enter Draft 3. Click Save…, and then click Save and Close 4. Repeat steps 1 through 3 for the Approval stage 5. Click New and select Workflow Stage 6. In the name field enter Published 7. In the Properties section, click Select Actions under Execute on Entering Stage to select an action that is performed on any content that enters this stage of the workflow 8. Click Add. 9. The Execute on Entering Stage dialog box opens. It lists all the available actions. From the list, choose the following Publish, Generate thumbnail, Move content on expiry date. Note Generate thumbnail can be ignored if not added yet
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.
Creating the Express Workflow The Express Workflow is the express workflow that publishes content immediately without approval. We use this workflow for this exercise to avoid time consuming approval activities. Follow these steps to create the Express workflow: 1. 2. 3. 4.
Click New and select Workflow In the Name field, type Express Click Select Workflow Stages in the Properties section. Click Add. - 185 –
5. Select Draft and Published from the list of workflow stages. 6. Click Ok.
Creating the Approval Workflow This guided practice creates a workflow that publishes content with approval, expiry, and reject stages. Follow these steps to create the Approval workflow: 1. Click New and select Workflow 2. In the Name field, type Approval 3. Click Select Workflow Stages in the Properties section. 4. Click Add. 5. Select the following Approval Draft Expired 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: Draft Approval Published 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
- 186 â&#x20AC;&#x201C;
3.2.6 Creating the Authoring Templates Authoring Templates The River Bend Web Site contains four authoring templates. • • • •
General News Products Locations
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.
Creating the General Authoring Template To create the general authoring template, follow these steps: 1. Click New and select Authoring Template 2. In the name field, type General 3. For this template, use the default content form properties. To add specific attributes to this template, click Default Content Settings. 4. Click on Manage Elements to fill out the Content section, refer to Figure 11
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
Name
Rich Text
Body
Image
Image
Link
Link
Component Reference Navigator Component Reference Menu
- 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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Figure 14 Selecting Workflow 12. Click Ok
Figure 15 Workflow Section - 190 â&#x20AC;&#x201C;
13. Click Save..., and then click Save and Close
Creating the News Authoring Template To create the News authoring template, follow these steps: 1. Click New and select Authoring Template 2. In the name field, type News 3. In the Content Form Properties 4. Choose Selected site areas only 5. Click Add and choose Corporate Information and Promotions 6. Click Save 14. Click on the Default Content Settings tab 15. Expand the Identification section Changes made in this part will be applied on every content created with this authoring template 16. Click as shown in Figure 16 and change the fields as indicated
Figure 16 Identification â&#x20AC;&#x201C; Name Section 17. Click on Manage Elements to fill out the Content section
- 191 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Figure 18 Summary Field Properties 21. For the Image fields, set the Image border to be hidden
- 193 â&#x20AC;&#x201C;
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
Name
Text
Summary
Rich Text
Body
Image
Image
Image
Thumbnail
Component Reference ComplimentaryProducts Component Reference RelatedProducts
- 194 â&#x20AC;&#x201C;
Locations Locations Element Type Name Text
Summary
Rich Text
Body
Image
Image
Short Text
TheStoreTeam
Open Selection Country
- 195 â&#x20AC;&#x201C;
3.2.7 Creating Components Creating Components for the River Bend Site This section of the wiki covers how to create the following components used in the River Bend Site. • • • • • •
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:
Figure of Image Components from Home Page
- 196 –
Figure of the Menus on a page and the Left Navigator
- 197 â&#x20AC;&#x201C;
Figure 22b Summer Drink showing personalization on homepage
- 198 â&#x20AC;&#x201C;
Figure 28 Part of the Coffee page, showing the Menu and Page Navigators
- 199 â&#x20AC;&#x201C;
3.2.7.1 Creating the Image Components To create and reference image components, you need to: • •
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
Creating image library components Follow these steps to add image library components. 1. Click New and choose Component Image 2. In the name field, enter rbLogoBig 3. In the display name , enter River Bend Logo Big 4. In the Image Element Section, click Browse 5. Browse for the rbLogoBig.png image in the location where you downloaded it. 6. Click Open , and then click OK 7. Click Save …, and then click Save and Close . The image is saved in the library of image components. 8. Expand Image Component in the items view navigator to see the new image component that is listed in the index. 9. Repeat steps 1 through 7 to create the other image components as follows: Note: You can download the sample images listed below by following this link. (http://www10.lotus.com/ldd/portalwiki.nsf/dx/WCM_Redbook_Images.zip/$file/WCM_Redbook_Images.zip) • • • • • • • • • •
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 â&#x20AC;&#x201C;
3.2.7.2 Creating the Authoring Tool Component In this article, we discuss how to create the authoring tool component.
Authoring Tool Component The authoring tool element is used to add authoring portlet functions to Web pages. For this exercise, we will be creating an authoring tool to edit the content and create new one.
Creating authoring tool 1. Click New and choose Component Authoring Tools 2. In the name field, enter AUTH-EditAndCreate 3. In the New action design, add the following:
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 â&#x20AC;&#x201C;
8. Click Save…, and then click Save and Close.
- 203 –
3.2.7.3 Creating the Navigator Component Navigator Component In this article, we discuss how to build the Navigator component for the River Bend site. There are two key steps for building the navigator component. 1. Creating the Navigator Component and, 2. Formatting the Navigator Component
Creating Navigator Component For this example, you will be creating a left navigator that will be in every page throughout the website. The navigator component will be displaying the River Bend site areas. To display the navigator component it is added to the presentation templates of the inner pages. To display the navigator, the component reference is added to the three presentation templates. To add a left navigator component, you need to do the following: • • • •
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:
17. Click Save… and then click Save and Close.
Formatting the navigator To format the navigator so that the current site area is formatted differently from the rest of the site areas in the navigator, you need to: • •
Create HTML components to specify bold and plain formatting. Reference the bold and plain HTML formatting components in the left navigator component.
Creating HTML components to specify formatting Follow these steps to create the bold and plain formatting components: 1. Click New and choose Component Html 2. In the Name field, enter HTML-Layout-Main Nav Bold. 3. In the Description field, enter: This is the bold text formatting component.
- 205 –
4. In the HTML Component section, enter the following line of code:
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:
Referencing the HTML formatting components in the left navigator component To specify the format for bold and plain and to indent each level in the site navigation, do the following: 1. In the item views navigator, expand Component Library. 2. Expand Components 3. Expand Navigators 4. Select nav-left or Left Navigator as its display name. 5. Click Edit. 6. In the Navigator Component section, scroll to the Component Design 1 field. 7. Delete the existing placeholder tag in the field, and enter the following line of code:
8. Click Save and then click Save and Close.
- 206 –
3.2.7.4 Creating the Menu Component Menu Component In this article, we provide guidance on two methods for creating the Menu Component. We describe the approach for the following: â&#x20AC;˘ â&#x20AC;˘
Creating Menu Component using authoring template Creating Menu Component using authoring template and site area
Creating Menu Component using authoring template In this guided practice, you create a menu that uses the authoring template as search criteria. It allows users to find content throughout the Web site independently of a site area. The menu that you create in this section appears on the home page displaying the 4 main site areas using images. This content page displays content that has authoring template General assigned to it, but that is linked to different site area. To create a menu using categories as search criteria, follow these steps: 1. Click New and choose Component Menu. 2. In the name field, enter Menu-HomePage 3. In the Menu Element Query, choose Authoring Templates 4. Click on Select Authoring Template 5. Click Add 6. Choose General 7. Click Ok 8. In the Design for each menu search result, add the following Html:
Hint This is referencing the component stored in the Image field of the content items.
To be able to preview the menu, we have to create the content first
Creating Menu Component using authoring template and site area In the following steps, we will show you how to create a very similar menu to the previous one, but by choosing both the site area and the authoring template. We could have implemented it with the site area only, but since we have other content (ex. Default content) that should not appear in the menu, we had to add the authoring template as a search parameter as well. This menu will be displayed when clicking on the "Where we are" in the left navigator. - 207 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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
Authoring Template Site Area
Menu-Products
Products
Set Current Content to true
Menu-Careers Menu-Offers
Company/Careers with us News
News/Promotions
Menu-Corporate Information News
News/Corporate Information
Note: For the menus Menu-Products and Menu-Offers, the design for each menu result would be as follows:
You can also create a menu for the related links.
- 209 â&#x20AC;&#x201C;
3.2.7.5 Creating a personalization component Personalization Component For the River Bend web site example, we will personalize an image in the homepage. This image will be changed automatically based on the season we are currently in. There will be two images, a winter image and a summer image. The example of the summer image showing on the homepage can be seen in the figure below.
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: â&#x20AC;˘ â&#x20AC;˘
Create select action rules Create profiler rule - 210 â&#x20AC;&#x201C;
• •
Create binding rule Create Personalization Component
Creating a selection personalization rule To create a personalization rule, write a select rule that retrieves all the content that has the category as Summer. 1.Navigate to the Personalization Tab next to Web Content Management tab and then to Business Rules. Refer to Figure 23
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
Creating a profiler personalization rule Now, we will create the profiler rule that would set the present season according to the current month. 1. Select New and choose Rule. 2. Enter SeasonsProfilerRule in the Rule name 3. Choose Profiler 4. Click on Profile* and type Winter 5. Click Submit 6. Click on attribute* and change it to be Date Month 7. Click on is and make it is between 8. Add January in the first value and March the second value 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
Creating a binding rule Now, we will create the binding rule that binds together the action rules with the profiler rule. The binding rule runs first the profiler rule, and according to the profile selected, it will fire the action selector rule. 1. Select New and choose Rule. 2. Enter SeasonsBindingRule in the Rule name - 212 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Figure 26 Binding Rule Viewer A no content screen will be shown until we create content with those categories.
Creating Personalization Component To display the result that was filtered based on the season, we create a personalization component. The personalization component is very similar to the menu component. We choose the starting point of our rules, in our case it is the SeasonsBindingRule and we decide upon the display of the result. For out example, we will be showing the image of the content in the home page. Follow those steps, to create the personalization component: 1. Navigate back to Web Content Management tab 2. Click New and choose Component Personalization. 3. In the name field enter Pers-Seasons 4. In the Personalization Element section, click on Search 5. Choose SeasonsBindingRule - 214 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
3.2.7.6 Creating the Page Navigation Component Page Navigation Component The following article discusses how to build the page navigation component for the River Bend Site. When creating the component, there are two key steps involved. 1. Creating the Page Navigation Component, and, 2. Referencing the Page Navigation Component from within the Menu Components. A page navigation element provides navigation controls that are used to navigate through a set of results generated by menus, navigators and search elements only. To use a page navigation element, you must create a page navigation component. You cannot add a page navigation element to authoring templates, sites, site areas, or content items. A page navigation element can generate two kinds of page navigation controls: â&#x20AC;˘
â&#x20AC;˘
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.
Creating page navigator 1. Click New and choose Component Page Navigation 2. Choose pageNavigator 3. In Page Navigation Element section, choose the following: a. Shuttle (first, previous, next, and last controls) b. Paging (page numbering and continuation) 4. In the header, enter the following html 5. In the Separator, enter the following 6. In the footer, enter the following
7. Follow Figure 27 for the rest of the values
- 216 â&#x20AC;&#x201C;
Figure 27 Html values for the shuffle paging controls 8. Click Save…, and then click Save and Close.
Reference the page navigation component in menu components 1. In the items view navigator, expand Components 2. Expand Menu Components 3. Choose Menu-Products 4. Click Edit 5. In the Menu design properties section, change the value in Results per page to 1. Note: This is only done for illustration purposes, in order to have many pages to navigate on.
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 â&#x20AC;&#x201C;
3.2.8 Using StyleSheets Cascading Style Sheets (CSS) can be used to layout and style/format the information being presented through presentation templates. There are optional approaches when using CSS to apply formatting with WCM content, the information contained CSS files can be located in different locations. Examples of CSS locations would be: - Directly coded within the <style> tags in the presentation template(s). •
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.
· A CSS component referenced in the presentation template(s). •
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.
· A HTML or File component referenced in a presentation template. •
This is the pattern we’ve 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 â&#x20AC;&#x201C;
- 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 â&#x20AC;&#x201C;
11. 12. 13. 14. 15.
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 â&#x20AC;&#x201C;
information for the General Presentation template
- 224 â&#x20AC;&#x201C;
3.2.9 Creating the Presentation Templates for River Bend Presentation Templates In this article, we describe how to create the presentation templates used for the RiverBend site. Presentation templates are used to format the elements of the contents on a web page. For our example we will be creating the following presentation templates: • • • •
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 .
Create the home page presentation template The following steps represent the creation for the Home page. We will see how we will reference many of the components we have created in the previous steps sections. 1. Click on New and select Presentation Template 2. In the name field, type pt-HomePage 3. In the display name, type Home Page Presentation Template 4. In the Presentation Template section, replace the existing code with the code shown in Listing 1. 5. Replace the line after < !-- Click on Insert Image to add the image here -- > by clicking on the Insert Image and adding the logo of the RiverBend web site or reference the Image component with the following line < Component name="rblogobig"/ > 6.Observe the code, and check the lines after the comments of the Reference Note : To reference a component, the tag looks as follows < Component name=" Name of the component " / > To reference an element inside the content < Element context="current" type="content" key=" Name of the field to be referenced " / >
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" >
the menu field of = "Menu" />< br >
the menu field of = "ImagesMenu" /></
<!-- 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 â&#x20AC;&#x201C;
</ </ </ </ </
tr > tbody > table > div > div >
Refer to Figure 29 below for the preview of the Home page presentation template with the default content of the home.
Figure 29 Home page
- 227 â&#x20AC;&#x201C;
Create the general presentation template By clicking on any of the images of the images menu, user will be directed to the inside pages and the main pages of the web site. The general presentation template will be showing the content associated with the General authoring template. This presentation template will be showing the nav-left navigator on the left side, the River Bend log, an image and the content of the page. In addition to that, the authoring tool is also added. Before we create the general presentation template, we will create two html components that we will reference in our presentation template To create an html, follow those steps: 1. Click New and choose Component-> Html 2. In the name field, enter HTML-Logo 3. In the Display title, enter HTML Main Logo 4. In the HTML Element, add the following <div id="logo"> <Component name="riverbend/rblogo"/> </div> 5. Click Save and Close To create the footer html, follow those steps: 1. Click New and choose Component-> Html 2. In the name field, enter HTML-Footer 3. In the Display title, enter HTML Footer 4. In the HTML Element, add the following <div id="footer"> River Bend Sample WCM Site | Copyright &copy; 2008 IBM | <a href="http://jigsaw.w3.org/css-validator/check/referer" target="" title="">CSS</a> and <a href="http://validator.w3.org/check?uri=referer" target="" title="">XHTML</a> | <a href="http://www.ibm.com/software/lotus" target="" title="">IBM Lotus Software</a> </div> 5. Click Save and Close A reference to "search_form" is also included in the presentation templatel, refer to Search functionality in WebSphere Portal and Lotus Web Content Management for more information on the Search as well as to how to create the search form referenced here. Now, back to our general presentation template. These are the steps to create the general presentation template: 1. Click on New and select Presentation Template 2. In the name field, type pt-General 3. In the display name, type General Presentation Template - 228 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Figure 30 Beverages page with General presentation template
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.
Click Save and then click Save and Close
Create the products and news presentation template Things should be now clearer. We will create the last two presentation templates which are similar to the general presentation template but they reference a menu component as well. We could have used the general presentation template for that, but for different illustration purposes, we will create a new one. The steps are as follows: 1. Click on New and select Presentation Template 2. In the name field, type pt-Products 3. In the display name, type Products Presentation Template 4. In the Presentation Template section, replace the existing code with the code shown in Listing 3 Listing 3 Products presentation template code _________________________________________________________ <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- 230 â&#x20AC;&#x201C;
"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 â&#x20AC;&#x201C;
</ 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.
Refer to Figure 31 below for the display of News presentation template
- 232 â&#x20AC;&#x201C;
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
Pairing the authoring template and the presentation templates To put things together, we will now pair the authoring templates and the presentation templates together in the different site areas. Follow these steps to pair the different templates together: 1. In the items view navigator, expand Site Areas 2. Expand By Site 3. Select River Bend 4. Click Edit 5. In the site area properties section, click Edit Template Mapping 6. Click Add A list of available authoring templates and presentation template displays, as shown in Figure 32
- 233 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Food
Products
Products
Beverages
Products
Products
Promotions News
News Presentation Template
- 235 â&#x20AC;&#x201C;
3.2.10 Creating the Content for the River Bend Site This article discusses how to create the content contained and displayed within the RiverBend site. To create content, you need to: • • •
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 –
Content Created Using General Authoring Template Table 1 Default content for site area Beverages Field Default Content Name
Beverages
Display Title Beverages Description Drinking at River Bend Summary
Drinking at River Bend
Image
Beverages (Image Component)
Table 2 Default content for site area Food Field Default Content Name
Food
Display Title Food Description Food at River Bend Summary
Food at River Bend
Image
Food (Image Component)
Menu
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
What is new at River Bend.
Image
News (Image Component)
Table 4 Default content for site area Company Field Default Content Name
Company
Display Title
Company
Description Information about the River Bend Tea and Coffee company. Summary
Facts about the River Bend business
Body
River Bend considers itself a responsible member of the business - 238 â&#x20AC;&#x201C;
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
Our stores
Display Title
Our stores
Description Where we are Summary
With over 100 stores world wide there will always be great tea and coffee around the cornet.
Menu
Menu-Locations (Menu Component)
Table 6 Default content for site area About Us Field Default Content Name
About Us
Display Title
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
Body
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.
- 239 â&#x20AC;&#x201C;
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
The vision of the River Bend Company is to...
Menu
Menu-Careers (Menu Component)
Table 9 Default content for site area Promotions Field Default Content Name
Promotions
Display Title
Promotions
Description Default Content for Promotions Summary
River Bend offers....
Body
As well as the wide range of beverages and food that River Bend is offering, it also .............................................................. ..............................................................
Menu
Menu-Offers (Menu Component)
Table 10 Default content for site area Corporate Info Field Default Content Name
Corporate Info
Display Title
Corporate Info - 240 â&#x20AC;&#x201C;
Description Default Content for Corporate Infromation Summary
River Bend offers....
Body
As well as the wide range of beverages and food that River Bend is offering, it also .............................................................. .............................................................. .................................................
Menu
Menu-Corporate Information (Menu Component)
Table 11 Default content for site area Coffee Field Default Content Name
Coffee
Display Title
Coffee
Description Default Content for Coffee Summary
River Bend offers....
Body
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.
Image
Coffee.jpg
Menu
Menu-Products (Menu Component)
Table 12 Default content for site area Tea Field Default Content Name
Tea
Display Title
Tea
Description Default Content for Tea Summary
River Bend offers....
Body
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 â&#x20AC;&#x201C;
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
Tea.jpg
Menu
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
New Openings
Display Title
New Openings
Description New stores, new openings for staff. Summary
We're hiring for our new store opening over the next 12 months.
Body
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 â&#x20AC;&#x201C;
o o o
Orange County, NY India Bangalore Delhi
Table 14 Content for site area Careers with Us Field Default Content Name
Store Manager
Display Title
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.
Body
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.
Content Created Using Locations Authoring Template Table 15 Content for site area Where we are Field Default Content Name
Dubai
Display Title
Dubai
Description Dubai store Summary
Dubai is River Bend new location
Body
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
Table 16 Content for site area Where we are - 243 â&#x20AC;&#x201C;
Field
Default Content
Name
Bangalore India
Display Title
Bangalore India
Description Bangalore store Summary
This River Bend store nestles in amongst its rural setting.
Body
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
West Chiltington
Display Title
West Chiltington
Description West Chiltington UK store Summary
This River Bend store finally opens in West Chiltington in the UK
Body
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
Content Created Using News Authoring Template Table 18 Content for site area Corporate Information Field Default Content Name
River Bend India News
Display Title
River bend opens its first store in India.
Description River bend opens its first store in India. Summary
The first River Bend store in India opened its doors today.
Body
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 â&#x20AC;&#x201C;
Table 19 Content for site area Corporate Information Field Default Content Name
Recycle
Display Title
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.
Body
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.
Table 20 Content for site area Promotions Field Default Content Name
Half Price
Display Title
Half Price Offer
Description Reduced price drinks with location attraction ticket stubs. Summary
Get more for you money by saving your entry tickets to local attractions.
Body
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.
Table 21 Content for site area Promotions Field Default Content Name
Lunchtime offer
Display Title
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.
Body
For a limited period River Bend Tea and Coffee company will give you 50% - 245 â&#x20AC;&#x201C;
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
Lunchtime offer
Display Title
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.
Body
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.
Table 23 Content for site area Promotions Field Default Content Name
Lunchtime offer
Display Title
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.
Body
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.
Content Created Using Products Authoring Template Table 23 Content for site area Food - 246 â&#x20AC;&#x201C;
Field
Default Content
Name
Sandwiches
Display Title
Sandwiches and Panini
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.
Body
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!
Table 24 Content for site area Food Field Default Content Name
Cakes and biscuits
Display Title
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
Flower teas
Display Title
Flower teas
Description Variety of flower flavored teas. Summary
Back to nature. - 247 â&#x20AC;&#x201C;
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
Spiced tea
Display Title
Spiced tea
Description Cinnamon spiced tea.. Summary
Pleasing to the taste buds and the senses, cinnamon tea really spices up your day.
Body
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.
Table 27 Content for site area Coffee Field Default Content Name
Coffee freddochino
Display Title
Coffee freddochino
Description Iced coffee with whipped cream Summary
Phew, it's hot out there. Iced coffee is the way to cool you down and look cool too.
Image
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 â&#x20AC;&#x201C;
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
Latte Macchiato
Display Title
Latte Macchiato
Description Latte Macchiato Summary
If you like a coffee with something extra then this is the one for you.
Body
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...
Image
macchiato-149.jpg
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
Coffee cioccolato
Display Title
Coffee cioccolato
Description Coffee cioccolato Summary
Indulgent we know, but coffee and chocolate
Body
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 â&#x20AC;&#x201C;
Note: Create the content pages and assign them to the site areas as default content
- 250 â&#x20AC;&#x201C;
3.2.11 Viewing the content within the River Bend site The following article discusses how to view the content within the site, and how to view the content within the context of the content viewer portlet. The following topics are covered: • • • •
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
Opening and viewing the River Bend Web site in a browser After you have assigned default content to the site areas, the River Bend Web site is ready for browsing. To open and view the River Bend Web site in a browser, follow these steps: 1. Open a Web Browser window. 2. Enter the following URL. You should replace <your Servername> with your actual values. http:// <your Servername>:<port usually 10040>/wps/wcm/myconnect/RiverBend For example, the site for the example River Bend Web site is: http://wcm01.itso.ibm.com:10040/wps/wcm/myconnect/RiverBend/RiverBend/Home This will open the home page and you can continue navigating the pages from there. Tip: If you cannot view a certain page as you navigate the site, the default content for that page might be missing. Be sure that you have defined default content for all site areas.
Viewing content in a Portlet Creating and copying Content Viewer Portlets The Local Rendering Portlet is installed with the Authoring user interface. You can make copies of this user interface. For this specific example, you are specifying your own configuration for the River Bend Web site, and you do not configure the base portlet. To create two copies of the Web Content Viewer portlet, do the following: 1. Navigate to the Administration tab 2. Click Portlet Management. 3. Click Portlets. - 251 –
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.
Creating a Portal Page and adding the Content Viewer Portlets To create a Portal Page and to add two Portlets to the page, do the following: 1. Navigate to the Administration tab 2. On the left hand side, expand Portal User Interface is not expanded 3. Click on Manage Pages 4. Click on Content Root 5. Click New Page. 6. In the Title field, enter River Bend Coffee and Tea. 7. In the Type of Page section make sure Standard Portal Layout property is selected (default value). 8. Click OK. 9. In the list of pages, navigate to your created page 10. Select the Edit Page Layout icon.
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 â&#x20AC;&#x201C;
Figure 33 Part of the Administration left navigator showing the newly created page
Configuring the Portlets You need to configure the new Portlets on the River Bend Coffee and Tea Portal Page to show the NAV-Left navigator in the left Portlet and content in the right Portlet. To configure the Portlets, follow these steps: 1. Navigate to the Administration tab 2. On the left hand side, choose River Bend Coffee and Tea 3. In the left Portlet, click the Edit Shared Settings icon, as shown in Figure 34
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 â&#x20AC;&#x201C;
3.4. Managing the publishing process One of key goals of a Web content management system is to coordinate editing activities among large groups of authors. With coordination in this context, we refer to the following activities: • • • • •
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 –
3.4.1 Understanding security in Web content management The goal of the security in a Web content management (WCM) system is to partition the user population in different groups, adapting the content and actions available to them to the tasks they have to perform. To accomplish this mission, WCM provides tools for the following purposes: • • •
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
This article discusses • •
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.
The security model for the River Bend sample site The following section discusses the security model for the River Bend sample site.
The River Bend Web site is organized in five sections: • • • • •
Home Company News Food Beverage
This Web site has the following security requirements: •
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 •
Home
Author
• •
Author
content Approve rsHQ content All users Approve rsHR content Approve rsLegal
• • •
contentAppr oversHQ contentAppr Author oversHR contentAppr oversLegal
contentAuthorsSto reMgr Joint approval: •
Author
• •
content Approve rsHQ content Approve rsHR content Approve rsLegal
Author • • •
contentAppr oversHQ contentAppr oversHR contentAppr oversLegal
• • •
contentAppr oversHQ contentAppr oversHR contentAppr oversLegal
Author •
Company Author
• •
Author
content Approve rsHQ content All users Approve rsHR content Approve rsLegal
• • •
contentAuthorsMa rketing Joint approval: • Author • •
•
content Approve rsHQ content Approve rsHR content
• •
- 257 –
contentAppr oversHQ contentAppr oversHR contentAppr oversLegal
contentAppr oversHQ contentAppr Author oversHR contentAppr oversLegal
Approve rsLegal Author Author •
News
Author
• •
content Approve rsHQ content All users Approve rsHR content Approve rsLegal
• • •
contentAppr oversHQ contentAppr Author oversHR contentAppr oversLegal
contentAuthorsMa rketing Joint approval: •
Author
• •
content Approve rsHQ content Approve rsHR content Approve rsLegal
• • •
contentAppr oversHQ contentAppr oversHR contentAppr oversLegal
Author •
Food
Author
• •
Author
content Approve rsHQ content All users Approve rsHR content Approve rsLegal
• • •
contentAuthorsOp s Joint approval: • Author
• •
content Approve rsHQ content Approve rsHR content Approve
• • •
- 258 –
contentAppr oversHQ contentAppr oversHR contentAppr oversLegall
contentAppr oversHQ contentAppr Author oversHR contentAppr oversLegal
rsLegal Author • •
Beverage Author s
•
Author
content Approve rsHQ content All users Approve rsHR content Approve rsLegal
• • •
contentAppr oversHQ contentAppr oversHR contentAppr oversLegal
•
Author
contentAuthorsOp s Joint approval: •
Author
• •
content Approve rsHQ content Approve rsHR content Approve rsLegal
• • •
contentAppr oversHQ contentAppr oversHR contentAppr oversLegal
Security levels in Web content management JCR security Web content management (WCM) data resides in a repository called Java Content Repository (JCR). Inside JCR, WCM libraries are organized in a hierarchy with a common root. The security roles set on the content library root are propagated to all libraries. This is important if you want to add more WCM administrators. By default, only administrators have access to work with Web content libraries. To allow other users to work with Web content libraries, such as virtual portal administrators, you have to assign them access to the JCR content root node.
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
River Bend library security settings All users will have read access to the River Bend library as shown in the following figure.
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.
River Bend library resource security settings To avoid any user from seeing the authoring portlet view, inheritance is disabled for all resource types: Authoring templates, Components, Content, Presentation Templates, Site and Site Areas, Taxonomy, Workflow, and Workflow Elements as shown in the following figure.
- 262 â&#x20AC;&#x201C;
Authors are provided editor level to content as shown in the following figure.
Approvers have contributor level 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: • • • •
User Contributor: read Editor Manager
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.
•
River Bend item security River Bend item security is used to manage who can create content in site areas. Home
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
Portlet: Local rendering portlet or remote rendering portlet To access WCM items through Portal, a user or group must be granted access to different portlets depending on the task to perform: - 265 â&#x20AC;&#x201C;
• • • •
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
River Bend portlet security settings Local Rendering 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. • •
Creating a basic workflow Creating a custom workflow
Creating a basic workflow for the River Bend sample site In this section, we explain how to create a basic workflow within the context of the River Bend sample site. River Bend wants two different ways to publish information: • •
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.
The following figure illustrates both workflows: • • •
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 –
• • •
Draft to published to expired Published to expired Draft to published
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.
More actions can be performed when an item enters or leaves a 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.)
Workflow stages for the River Bend site The stages in the following table make up the approval workflow. Actions Stage Security Description upon entering User: All content begins the workflow in this stage. All content authors groups are authorized to use the draft stage inheriting the permission settings at the library resource level.
Contributor: Draft
Editor: Manager: Approver: [authors]
Approval
User: [authors], contentApproversLegal, Content requires a review contentApproversHQ, stage before being published. contentApproversHR Three groups of people are authorized to approve content. Contributor: People of all three groups must joint approve a content item Editor: before its published Manager: - 269 –
Approver (*): contentApproversLegal, contentApproversHQ, contentApproversHR * Joint approval
Publish
User: [anonymous portal user], [all Generate authenticated portal users] thumbnail Contributor: Publish Editor: Move content Manager: on expiry Approver: contentApproversLegal, date contentApproversHQ, contentApproversHR
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
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
Rejected content reaches this stage. Authors are able to create a new draft from the rejected content.
Editor: [authors] Manager: Approver:
- 270 â&#x20AC;&#x201C;
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
River Bend workflow actions Action
Description
Publish
Makes a content item visible on the Web site
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
Stops a document from being visible on the Web site
E-mail for rejected content
Schedules the move of any content that meets the items expiration date
Generate thumbnail
Creates a thumbnail for use in menus by using a Java-based custom action
Creating workflow actions To create the workflow actions: 1. Click New and select Workflow Action Publish Action . 2. In the name field, type Publish . 3. Click Save …, and then click Save and Close . For the remaining actions, repeat steps 1 through 3. Refer to the following table for the action names and action types. Action
Action type
E-mail for rejected content
Email action
Expired
Expire action
Move content on expiry date Scheduled move action Generate thumbnail
Custom action - 271 –
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.
Creating workflow stages To create the workflow stages: 1. 2. 3. 4. 5. 6. 7.
Click New and select Workflow Stage . In the name field, type Draft . Click Save …, and then click Save and Close . Repeat steps 1 through 3 for the Approval stage. Click New and select Workflow Stage . In the Name field, type Published. In the Properties section, under Execute on Entering Stage, click Select Actions to select an action that is performed on any content that enters this stage of the workflow. 8. Click Add. 9. In the Execute on Entering Stage window that lists all the available actions, from the list, choose Publish , Generate thumbnail , and Move content on expiry date . (Note: Generate thumbnail can be ignored if it is not added yet.) 10. Click Save …, and then click Save and Close . 11. Repeat steps 5 through 10 to create the Expired stage. Set the Execute on Entering Stage action to Expired . 12. Repeat steps 5 through 10 to create the Reject stage. Set the Execute on Entering Stage action to Email for rejected content .
Creating the Express Workflow Express Workflow is the express workflow that publishes content immediately without approval. We use this workflow for this exercise to avoid time-consuming approval activities. To create the Express workflow: 1. 2. 3. 4. 5. 6.
Click New and select Workflow . In the Name field, type Express. In the Properties section, click Select Workflow Stages . Click Add . From the list of workflow stages, select Draft and Published . Click OK .
Creating the Approval Workflow This guided practice creates a workflow that publishes content with approval, expiry, and reject stages. To create the Approval workflow: 1. Click New and select Workflow . 2. In the Name field, type Approval. - 272 –
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.
Description of the customization to be created River Bend wants to optimize the page size of their Web site. To achieve this goal, they generate a smaller image for products and news to be used in menus and navigators. Several options are available to do this, but the site designer has decided to implement a custom workflow action that reads the product image, generates a reduced image using Java APIs, and saves the new image as part of the content item before it is published.
Custom workflow actions Custom workflow actions are a new feature of Lotus Web Content Management 6.1 with which you can execute your custom code as part of a workflow process. This new functionality has been implemented by using the Eclipse Plug-in framework that is integrated in WebSphere Application Server, enabling you to hot deploy your code without even restarting portal. You can use Web content management (WCM) APIs inside custom actions to read or update the content items that are being processed or any other content items. The creation process of a custom action has three steps, which are outlined in the following table. Step Description - 273 â&#x20AC;&#x201C;
Development
Deployment Configuration
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
Using a custom action on the River Bend Web site River Bend wants to optimize the page size of their Web site. To achieve this goal, they generate a smaller image for products and news to be used in menus and navigators. Several options are available to do this, but the site designer has decided to implement a custom workflow action that reads the product image, generates a reduced image using Java APIs, and saves the new image as part of the content item before it is published.
Development steps Developers create a new Dynamic Web project.
- 274 â&#x20AC;&#x201C;
After the project is created, they add three classes: • • •
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 â&#x20AC;&#x201C;
} catch (Exception e) { e.printStackTrace(); } return null ; } }
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 â&#x20AC;&#x201C;
// 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 â&#x20AC;&#x201C;
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; import import import public
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
- 279 â&#x20AC;&#x201C;
point= "com.ibm.workplace.wcm.api.custom.CustomWorkflowActionFactory" id= "SimpleCustomWorkflowActionFactory" > <provider class= "com.ibm.itso.redwiki.wcm.wf.CWFActionFactory" /> </extension> </plugin>
Packaging & Deployment River Bend developers exported their code as an EAR file and deploy it in WCM using WebSphere Administrative Console. Note: When deploying your application you can use default settings in all steps but step 2 (Map modules to servers). In this step be sure to select the WebSphere_Portal server. Finally, they located the new installed application and started it by selecting it and clicking the “Start” button. Once the application was started Portal's console displayed a message showing the new action was avalilable: 00000c38 ExtensionPoint I CWXRS0034I: Extension com.ibm.workplace.wcm.api.custom.SimpleCustomWorkflowActionFactory connected with Extension Point com.ibm.workplace.wcm.api.custom.CustomWorkflowActionFactory
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
Global versioning strategy is defined in WCMConfigService.properties. These options are available: versioningStrategy.Default = always | never | manual versioningStrategy.AuthoringTemplate = always | never | manual versioningStrategy.Component = always | never | manual versioningStrategy.Content = always | never | manual versioningStrategy.PresentationTemplate = always | never | manual versioningStrategy.Site = always | never | manual versioningStrategy.Taxonomy = always | never | manual versioningStrategy.Workflow = always | never | manual
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 .
Item versioning features for River Bend web site When the development phase finished, River Bend administrators decided to disable versioning for all items but content in order to maximize performance. To achieve this goal, they edited WCMConfigService.properties and set these properties: versioningStrategy.Default = never versioningStrategy.AuthoringTemplate = never versioningStrategy.Component = never versioningStrategy.Content = manual versioningStrategy.PresentationTemplate = never versioningStrategy.Site = never versioningStrategy.Taxonomy = never versioningStrategy.Workflow = never
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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.
Working with locked items When a user is editing an item, the item is locked to other users. This means other users are unable to edit the item until the current user closes the item that they are editing. A lock symbol is displayed against items that are currently locked. Administrators can lock and unlock items by selecting them and clicking either the Lock or Unlock button. Locking: The locking of sites, site areas, taxonomies, and categories is configurable and is not enabled by default. When locking is enabled, authors cannot create any children under the locked site or site area. This only applies to items that are located one level below a locked parent. When a new draft of a published item is created, a check mark is displayed next to the published item indicating that no other user can create a draft until the current draft progresses through a workflow and its state changes to published. .
- 287 â&#x20AC;&#x201C;
3.4.4 Previewing content During the content creation process, River Bend authors want to see how content will be displayed on the rendered site before submitting a draft. Lotus Web Content Management provides authors two options to preview content before it is published: • •
Preview content on its own page Preview content on a portal page
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 –
previewed in a Web page and in the “Web Content Preview” page.
Previewing content on its own page Previewing content on its own page is the default option for nonportal-based Web sites such as the initial River Bend site. Content is previewed in a pop-up window in a new browser window. Note: In order to preview content work properly, be aware that you must allow pop-ups for your Lotus Web Content Management server. To preview a content element River Bend authors have two options: •
Select the content element from any of the views that are available in the authoring environment and click the Preview button.
- 289 –
â&#x20AC;˘
Open the content and click the Preview button.
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 â&#x20AC;&#x201C;
Previewing content on a portal page For WebSphere Portal-based sites, Lotus Web Content Management provides authors the option to preview content in any portal page. After clicking the Preview button (shown in the following figure), River Bend authors can choose to preview content as a portal page.
The selected page is displayed in the preview portal page as shown in the following figure.
- 291 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
3.5 Personalizing your site WebSphere Portal implements rule-based content delivery through a feature called personalization . By using personalization, you can customize the content that a Web site shows automatically for each user. Personalization can recognize a specific user based on a profile. It can also determine the characteristics of a user based on previous purchases, products, or pages viewed and then select content that is appropriate for that profile. In this article, we discuss the following topics: • • • •
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 –
Overview of the personalization feature You can find complete information about the rich set of capabilities that the personalization feature provides in the WebSphere Portal information center at the following address: http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1m0/topic/com.ibm.wp.ent.doc/pzn/p zn_intro.html A portlet can have a designated spot for rule-based content. For each spot, a rule is selected. All rules are created based on the resource attribute definition. These attributes are defined in a resource collection . The resource collection is a set of Java classes that retrieve content that is requested by the rule from the defined repository source. This back-end source might be LDAP or SQL databases, the portal Java Content Repository (JCR), Virtual Member Manager (VMM), or any other custom collection that is coded for the personalization API. The JCR resource collection is provided with WebSphere Portal as well as VMM. Wizards are available in Rational Application Developer 7 that guide developers in creating classes for other LDAP and relational database resources. A guide of how to create these resources is described fully in the WebSphere Portal Information Center. Three types of rules are used to target select content to a certain group of users: •
•
•
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.
Creating a personalization rule This section of the article discusses how to create a personalization rule within the context of the River Bend site. To create a personalization rule, write a select rule that retrieves all the content from River Bend Site Area that is created using the General authoring template. 1. Log in to WebSphere Portal. 2. Navigate to the Personalization Workspace. 3. Select New → Rule . 4. Enter a name for the new rule (for example, Get WCM Content). 5. Select 'Web Content' as the Resource Collection. 6. Select River Bend as the Location ( Site Area ). 7. Select the Authoring Template “General” from the Personalization Picker and the resulting rule is shown in the figure below.
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.
Configuring the Personalized List portal The Personalized List Portlet is installed with WebSphere Portal and can be added to any Portal page. A portal page is configured within the Personalization page with this list Portlet already on it when WebSphere Portal is installed. It has many configuration options that enable you to use a rule to show content quickly. There are two configuration modes: • •
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 â&#x20AC;&#x201C;
The following result is displayed, as shown in the figure below.
Figure - Personalized List content - 298 â&#x20AC;&#x201C;
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.
Creating the Personalization Component For the River Bend web site example, we will personalize an image in the homepage. This image will be changed automatically based on the season we are currently in. There will be two images, a winter image and a summer image. In the example used, we show the Summer Drink image. 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 steps: • • • •
Create select action rules Create profiler rule Create binding rule Create Personalization Component
Creating a selection personalization rule To create a personalization rule, write a select rule that retrieves all the content that has the category as Summer. 1. Navigate to the Personalization Tab next to Web Content Management tab and then to Business Rules. Refer to the Figure below:
Figure - Personalization tab - 299 –
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
Creating a profiler personalization rule Now, we will create the profiler rule that would set the present season according to the current month. 1. 2. 3. 4. 5. 6. 7. 8.
Select New and choose Rule . Enter SeasonsProfilerRule in the Rule name Choose Profiler Click on Profile* and type Winter Click Submit Click on attribute* and change it to be Date Ă Month Click on is and make it is between Add January in the first value and March the second value - 300 â&#x20AC;&#x201C;
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
Creating a profiler personalization rule Now, we will create the binding rule that binds together the action rules with the profiler rule. The binding rule runs first the profiler rule, and according to the profile selected, it will fire the action selector rule. 1. Select New and choose Rule . 2. Enter SeasonsBindingRule in the Rule name 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 the Figure below for the Binding Rule
- 301 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Figure - Binding Rule Viewer A no content screen will be shown until we create content with those categories.
Creating the Personalization Component To display the result that was filtered based on the season, we create a personalization component. The personalization component is very similar to the menu component. We choose the starting point of our rules, in our case it is the SeasonsBindingRule and we decide upon the display of the result. For out example, we will be showing the image of the content in the home page. Follow those steps, to create the personalization component : 1. 2. 3. 4. 5. 6.
Navigate back to Web Content Management tab Click New and choose Component Ă Personalization . In the name field enter Pers-Seasons In the Personalization Element section, click on Search Choose SeasonsBindingRule Click OK - 303 â&#x20AC;&#x201C;
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.
The end result Once complete - the end result looks like this - notice the Personalization "Summer Drink" image on the home page.
- 304 â&#x20AC;&#x201C;
3.5.4 Using campaigns The following article illustrates examples of specific campaigns and recommendations based on customer preferences. When implementing a personalization solution, it is important to understand the relationship to the content management systems and portals. The IBM Lotus Web Content Management solution uses the IBM Portal Personalization Recommendation Engine, which analyzes Web site user behavior in real time and makes recommendations based on click-through patterns, purchase history, and preference matching. These inputs are fed in turn to the Recommendation Engine subengines, which are subsequently queried for recommendations. The statistics used to drive these recommendations are based on collaborative filtering or Market Basket Analysis dependent on the engines used. If you request a recommendation for the Item Affinity Engine, you receive a recommendation based on Market Basket Analysis. Recommendations for all other engines are based on collaborative filtering algorithms. The WebSphere Personalization Recommendation Engine is built on the following principles: • •
•
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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:.
Resources to learn more about Internationalization • • • •
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.
WebSphere Portal search and Lotus Web Content Management WebSphere Portal ships an embedded search engine with core search services (see the following figure): •
Index build component using HTTP crawling techniques - 309 –
• •
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
Making River Bend content searchable The first step River Bend administrators need to make their site searchable is to configure the Portal Search Service to index the current content. To do that, they create an instance of the search service, called a search collection , to handle the indexing process of the existing Web content. There are two different ways to create such a search collection: •
•
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
Adding search components to the River Bend site As explained in the other sections, River Bend administrators have built a text index by using the existing Web content. In the steps that follow, we add to the River Bend Web site the user interface components that are required to allow users to work with searches. The following tools are the minimum set of search tools in a Web site: • • •
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
Quick search form The quick search form is included in all content items of the Web site. The form simply contains a text field and a submit action that sends the form contents to a content item that includes search components to process the search and display the results. See the
- 315 –
following figure.
Advanced search form The advanced search form works much like the quick search form. The advanced search form includes two different forms with the same action that allow two different kinds of searches: • •
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 â&#x20AC;&#x201C;
- 318 –
- 319 –
The results are shown to the user by displaying several pages through a page navigation element.
Search results page navigation Search results adds page navigation to the display of search results.
- 320 â&#x20AC;&#x201C;
- 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 â&#x20AC;&#x201C;
search presentation template.
Search authoring template By using the search authoring template, the River Bend designer can build any amount of search result pages by combining a search component, an advanced search form, and explanatory text.
- 324 â&#x20AC;&#x201C;
Search presentation template The search presentation template is based on the River Bend General presentation template. It is used to format the components of the search authoring template.
- 325 â&#x20AC;&#x201C;
Search content item Initially, only one search results page is created.
- 326 â&#x20AC;&#x201C;
- 327 –
Part IV – Expand your WCM Environment • •
• •
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 –
4.0 Expanding your Web content management environment In this section, we cover the following topics: •
• •
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 –
4.1 Personalizing your authoring tools When you manage any creative process, it is important to consider productivity. As we said previously, Web content management systems are basically coordination systems where many different content contributors join efforts to build a Web site by using a set of tools. As in any other building tasks, if you provide your content authors with the right tools, they will do things faster and better. Lotus Web Content Management provides a lot of extension points that allow site designers to provide a customized authoring experience with wizards and shortcuts for the most frequent tasks. In this section, we discuss the following topics: • • • • •
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
• • •
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.
Example: River Bend's authors page River Bend wants to help its authors to be productive by reducing the navigation that they need to do to perform simple tasks. To do this, designers found that the better solution was to create a launch JSP that provides direct access to the following tasks: • • • • •
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 â&#x20AC;&#x201C;
status=document.getElementById(id).style.display = "none"; } } </script> <h3>Select a task:</h3>
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> &nbsp; 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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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>
Custom content elements A "custom JSP" field is available on some element types when added to an authoring template. You can use this field to reference a JSP file to use instead of the element's default view in the user interface. You can write JSP to control the look and feel of an element and to restrict the values that can be entered into an element. You can also write JSP to create sophisticated UI components such as auto-completion boxes and pop-ups. You can find a complete set of examples in the "Customizing elements using JSP" topic in the WebSpherer Portal information center at the following address: http://publib.boulder.ibm.com/infocenter/wpexpdoc/v6r1m0/topic/com.ibm.wp.exp.doc/ wcm/wcm_dev_custom_jsp.html The JSP page must be stored in the WAR file directory for the Authoring portlet, which is was_profile_root/installedApps/ cellname /PA_WCM_Authoring_UI.ear/ilwwcmauthoring.war/jsp/html. In this directory name, cellname is unique to your installation. The JSP page might also need to be stored in the client WAR directory of the servlet or portlet that calls the JSP, such as when using the authoring tool element, or if using the Lotus Web Content Management API. For example, if displaying custom fields in content that is opened by using the edit button on an authoring tool, you also need to save the custom field JSP in the WAR file directory for the local rendering portlet.
- 338 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
4.2 Integrating with other systems The following document describes the integration options with Portal Document Manager, as well as how third party Enterprise Content Management (ECM) systems can be integrated with WCM.
Portal Document Manager As of version 6.1, Document Manager is no longer available in WebSphere Portal. After migrating your primary data, you must replace Web content previously stored as documents in a document library with either file resource components or file resource elements stored in authoring templates, content items, sites, or site areas. For more information, see the "Document migration, version 5.1 to 6.1" topic in the Lotus Web Content Management information center at the following address: http://publib.boulder.ibm.com/infocenter/wcmdoc/v6r0/index.jsp?topic=/com.ibm.lotus. wcm.doc/wcm/wcm_migration_pdm_51.html Migration to IBM WebSphere Portal version 6.1 is being delivered in two phases. The first phase, available today, is migration from version 5.1 to 6.1. Migration from version 6.0 to 6.1, and of the Document Manager content, will be available in the near future. For more Information, refer to "Migration Limitations in WebSphere Portal version 6.1" at the following address: http://www1.ibm.com/support/docview.wss?rs=899&uid=swg21312856
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 â&#x20AC;&#x201C;
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.
Figure: IBM Web Content Integrator
- 341 â&#x20AC;&#x201C;
4.3 WCM and Beyond WCM features can be extended using the WCM APIs and JSP files. This article discusses the following topics: • • • •
Overview of the WCM API New features in the WCM 6.1 API Library Management API Syndication API
WCM APIs introduction The Lotus Web Content Management API is focused on processing the content programmatically. It is an alternative way to access a Web content management (WCM) site. It allows content and other WCM objects to be created, edited, deleted, and rendered entirely by using Java code. Additionally, clients can manipulate their site and integrate WCM with other applications in a way that was not previously possible. The API offers only a subset of Lotus Web Content Management's functionality, although it is a very useful subset. Typical API scenarios may include the following examples: • • • • •
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. •
Web content libraries: o o
•
Search iterators of item IDs: o o o o o o o o o
• • •
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 •
The ability to retrieve the following items: o o o o o o
•
Content Sites Site areas Taxonomies and categories Workflows Components
The ability to retrieve the following items from searches, (but NOT as an item): o o o
•
Rich text components Style Sheet components Short text components Text components User Selection components
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 following features are not available using the API: •
The creation, update or deleting of workflows, workflow stages, workflow actions, taxonomies, categories, syndicators, subscribers, presentation templates, authoring templates, and components not specified above.
New features in the WCM 6.1 API •
•
•
•
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 Workspace Methods • •
•
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).
Dynamic workflow approvers • •
•
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()
Library Management API The Library Management APIs allows easier management of libraries through the WCM Admin UI and WCM API. WCM Admin UI could be used to delete library and for reporting. WCM Library management API could be used to create copy, save, delete, export, import, set library access, output document list to stream com.ibm.workplace.wcm.api.WebContentLibraryService enables access to Web Content Library methods through Portal services. WebContentLibraryService is available as a service and can be retrieved as below WebContentLibraryService webContentLibraryService = (WebContentLibraryService) ctx.lookup("portal:service/wcm/WebContentLibraryService");
- 345 –
Library Document List Method outputDocumentListToStream on the com.ibm.workplace.wcm.api.WebContentLibraryService can be used to export a list of information about the web content artifacts in a library. And the output can be directed to a CSV file with each document in a single row using the com.ibm.workplace.wcm.api.CSVDocumentListWriter. Example output of the document list would look like below
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 –
4.3.1 Lotus Web Content Management API Sample WCM API Samples used for the RiverBend site In the following article, we discuss the first of two specific samples.
Sample 1 - Add Comments to News This sample provides an easy method to add comments and ratings to News items in riverbend site. There are many number of ways this can be implemented and this is one of the ways to implement comments. To accomplish this, add a new text element into News Authoring Template as below
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 â&#x20AC;&#x201C;
{ 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 â&#x20AC;&#x201C;
} catch (Exception t) { out.println("error in the code: " + t.toString()); } %>
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 &nbsp; </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 â&#x20AC;&#x201C;
</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 –
Now you will be able to add and view the comments.
- 352 â&#x20AC;&#x201C;
4.3.2 - WCM API Sample-WCM Reports WCM API Samples used for the RiverBend site In the following article, we discuss the second of two specific samples.
Sample 2 - WCM Reports This WCM API sample provides some of the reports that can be generated for an administrator of Web Content Management. This just a sample list and there can be many more reports which can be generated. The reports are generated by a JSP. So create a JSP component and refer in a place where the reports have to be displayed. The figure below illustrates the list of reports that would be generated by this sample.
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 â&#x20AC;&#x201C;
<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);
if(displayHeader == 1) { %> <tr align="center">
- 354 â&#x20AC;&#x201C;
<td><b>&nbsp;&nbsp; Name &nbsp;&nbsp; </b></td> <td><b> &nbsp;&nbsp; Parent &nbsp;&nbsp;</b></td> </tr> <% } %> <tr> <td> &nbsp;&nbsp;&nbsp;<%= contentId.getName() %> &nbsp;&nbsp;&nbsp; </td> <td> &nbsp;&nbsp;&nbsp;<%=content.getDirectParent().getName()%>&nbsp;&nbsp;& nbsp; </td> </tr> <% } } if(displayHeader == 0) { %> <tr> <td colspan="2"> &nbsp;&nbsp;&nbsp;There is no Locked Content &nbsp;&nbsp;&nbsp;&nbsp; </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>&nbsp;&nbsp; Name &nbsp;&nbsp;</b></td> <td><b>&nbsp;&nbsp; Parent &nbsp;&nbsp; </b></td> <td><b>&nbsp;&nbsp; History &nbsp;&nbsp; </b></td> </tr> <% } %> <tr>
- 355 â&#x20AC;&#x201C;
<td> &nbsp;&nbsp;&nbsp;<%= contentId.getName() %> &nbsp;&nbsp;&nbsp; </td> <td> &nbsp;&nbsp;&nbsp;<%=content.getDirectParent().getName()%>&nbsp;&nbsp;& nbsp; </td> <td> <% while(logIterator.hasNext()) { HistoryLogEntry history = logIterator.nextLogEntry(); %> &nbsp;&nbsp;&nbsp;<%=history.getDate().toString() %> <%=history.getName()%> - <%=history.getMessage()%> &nbsp;&nbsp;&nbsp;<br> <% } %> </td> </tr> <% } if(displayHeader == 0) { %> <tr> <td colspan="2"> &nbsp;&nbsp;&nbsp;There is no content in Draft stage &nbsp;&nbsp;&nbsp;&nbsp; </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>&nbsp;&nbsp; Name &nbsp;&nbsp;</b></td> <td><b>&nbsp;&nbsp; Parent &nbsp;&nbsp;</b></td>
- 356 â&#x20AC;&#x201C;
</tr> <% } %> <tr> <td> &nbsp;&nbsp;&nbsp;<%= contentId.getName() %> &nbsp;&nbsp;&nbsp; </td> <td> &nbsp;&nbsp;&nbsp;<%=content.getDirectParent().getName()%>&nbsp;&nbsp;& nbsp; </td> </tr> <% } } if(displayHeader == 0) { %> <tr> <td colspan="2"> &nbsp;&nbsp;&nbsp;There is no content in Draft stage &nbsp;&nbsp;&nbsp;&nbsp; </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>&nbsp;&nbsp; Name &nbsp;&nbsp;</b></td> <td><b>&nbsp;&nbsp; Parent &nbsp;&nbsp;</b></td> </tr> <% } %> <tr> <td> &nbsp;&nbsp;&nbsp;<%= contentId.getName() %> &nbsp;&nbsp;&nbsp;
- 357 â&#x20AC;&#x201C;
</td> <td> &nbsp;&nbsp;&nbsp;<%=content.getDirectParent().getName()%>&nbsp;&nbsp;& nbsp; </td> </tr> <% } } if(displayHeader == 0) { %> <tr> <td colspan="2"> &nbsp;&nbsp;&nbsp;There is no content in Expire stage &nbsp;&nbsp;&nbsp;&nbsp; </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>&nbsp;&nbsp; Name &nbsp;&nbsp;</b></td> <td><b>&nbsp;&nbsp; Description &nbsp;&nbsp;</b></td> <td><b>&nbsp;&nbsp; Enabled &nbsp;&nbsp;</b></td> <td><b>&nbsp;&nbsp; Language &nbsp;&nbsp;</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> &nbsp;&nbsp;&nbsp;<%= docLibrary.getName() %> &nbsp;&nbsp;&nbsp; </td> <td> &nbsp;&nbsp;&nbsp;<%=docLibrary.getDescription()%>&nbsp;&nbsp;&nbsp; </td> <td> &nbsp;&nbsp;&nbsp;<%=docLibrary.isEnabled()%>&nbsp;&nbsp;&nbsp;
- 358 â&#x20AC;&#x201C;
</td> <td> &nbsp;&nbsp;&nbsp;<%=docLibrary.getLocale().getLanguage() %>&nbsp;&nbsp;&nbsp; </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>&nbsp;&nbsp; Library &nbsp;&nbsp;</b></td> <td><b>&nbsp;&nbsp; Authoring Template &nbsp;&nbsp;</b></td> <td><b>&nbsp;&nbsp; Components &nbsp;&nbsp;</b></td> <td><b>&nbsp;&nbsp; Content &nbsp;&nbsp;</b></td> <td><b>&nbsp;&nbsp; Presentation Template &nbsp;&nbsp;</b></td> <td><b>&nbsp;&nbsp; Site Framework &nbsp;&nbsp;</b></td> <td><b>&nbsp;&nbsp; Taxomomy &nbsp;&nbsp;</b></td> <td><b>&nbsp;&nbsp; Workflow &nbsp;&nbsp;</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> &nbsp;&nbsp;&nbsp;<b><%=roleTypes[i]%> </b>&nbsp;&nbsp;&nbsp; </td> <%
- 359 â&#x20AC;&#x201C;
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) { %> &nbsp;&nbsp;&nbsp; - &nbsp;&nbsp;&nbsp; <% } %> </td> <% } %> </tr> <% } } catch (Exception ne) { System.out.print("Exception: " + ne); } %> <tr>
- 360 â&#x20AC;&#x201C;
<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 â&#x20AC;&#x201C;
Part V – Site Administration and Operations • •
•
•
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 –
5.1 Site Administration Site Administration for Lotus Web Content Management 6.1 Every WCM website is part of a web content library .
Overview of what will be discussed in this section on Site Administration In this section we discuss the following: •
•
• • • •
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 –
5.1.1 - Site Administration - Library Management The concept of WCM libraries was introduced for the first time with WCM v6.0 and WCM v6.1 continues to build on this concept. In this section we will discuss the WCM library features available in WCM v6.1. A WCM library can be thought of as container for WCM sites and they provide means to a) Control access to the WCM site b) Partition WCM site design from the WCM site content c) Share items across WCM libraries d) Syndicate WCM libraries independently from one another
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 â&#x20AC;&#x201C;
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 –
Create new Library Use this action to create a new WCM library.
View locked items This is a very useful action that allows the administrator to identify all the WCM items that are locked by users (authors/web developers) across all the WCM libraries. The administrator also has the ability to unlock selected items from the view that displays as a result of using the View locked items action.
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 â&#x20AC;&#x201C;
Figure: Example of a System Report
Set Access on Root
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 â&#x20AC;&#x201C;
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.
Create a new WCM library As an administrator, follow these steps to create a new WCM library using the Web Content Libraries portlet 1) Click the Create new Library action.
- 368 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
5.1.1.1 Access Control Site Management - Access control After a new WCM library has been created you need to set the user and group access levels to control the following – a) Access to the WCM library b) Access to the WCM authoring portlet tasks and views Please note that you need to have administrator rights to set the access levels.
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.
Users and groups assigned to this role can: • •
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.
Users and groups assigned to this role can: • •
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 –
Figure: Example using Additive method
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: Example using Subtractive Method
Setting Access Permissions on the WCM Library Setting access permissions on the WCM Library will allow you to control who has access to the WCM Library. To apply access permissions to a WCM library, as an administrator use the Set Permissions action available for the WCM library in the Web Content Libraries view. The screen shot below illustrates the Resource Permissions window that loads up when the Set Permissions action is used.
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 â&#x20AC;&#x201C;
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
Description
Anonymous portal user
Select this user to assign a role to anonymous users.
All Authenticated Portal Users
Select this group to assign a role to users that have logged on to your server.
Users and User Groups
Select this group to assign a role to all users and groups.
All Portal User Groups
Select this group to assign a role to all groups.
Table: Pre-Defined 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 â&#x20AC;&#x201C;
Figure: Library Resources You can control access to the following WCM item types â&#x20AC;&#x201C; 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 â&#x20AC;&#x201C;
Item-level security inheritance: By default, each role's access is automatically inherited down to each item in a library. To prevent a user or group from automatically having inherited access to an item, you will need to turn off inheritance on that item. Note: By default, inheritance is enabled for all roles and items. To disable automatic inheritance, edit the WCMConfigService.properties file located in the /PortalServer/wcm/shared/app/config/wcmservices/ directory. To disable automatic inheritance, set this value to "false": default.inherit.permissions.enabled=false You will need to restart WebSphere Portal to enable any configuration changes made to this file. You can allow assigned roles to be inherited from parent items up to and including the library. The access roles are inherited in the following hierarchies: Library -> Site -> Site area -> Content item • • • • • • •
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 –
5.1.1.2 Version Management WCM Site Management - Version Management By default, WCM is configured to create a version of an item in the following scenarios – 1. Every time an item is saved 2. If an item is going through a workflow, every time it's states changes to be published The WCM Versioning feature does not take a "snap-shot" of the entire WCM site. Versioning occurs only at the item level. Any hierarchical relationships to other items are not saved. For example, if you save a version of a site area that has child site areas and you delete the child site areas, the child site areas will not be restored if you restore the parent site area. You cannot create versions of external resources (e.g. IBM Content Manager Resources) linked to from WCM items as WCM does not store a copy of the external resources in the version index. You can alter the default behavior of WCM by configuring it to not create versions of items automatically. This can be done by editing the WCMConfigService.properties file located in the /PortalServer/wcm/shared/app/config/wcmservices/ directory and changing the following settings – #################################################################### # 2c. Versioning - START #################################################################### # Enable version control for the following types. # options are always | never | manual versioningStrategy.Default = always versioningStrategy.AuthoringTemplate = always versioningStrategy.Component = always versioningStrategy.Content = always versioningStrategy.PresentationTemplate = always versioningStrategy.Site = always versioningStrategy.Taxonomy = always versioningStrategy.Workflow = always ##################################################################### # 2c. Versioning - END #####################################################################
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 â&#x20AC;&#x201C; 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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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.
Figure: Restore 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 â&#x20AC;&#x201C;
Library Version Management In this section we will discuss how to work with versions at the WCM library level. Please note that you will need Administrator access to work with WCM libraries.
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.
Figure: Web Content Libraries â&#x20AC;&#x201C; Additional Tasks
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 â&#x20AC;&#x201C;
Figure: Additional tasks portlet with Versioning actions
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.
Figure: Library labeling
- 383 â&#x20AC;&#x201C;
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.
Figure: Label library action report
Restore library by date The Restore library by date action will restore the most recent version of all items in a library saved prior to the specified date and time. The figure below illustrates the Restore library by date portlet that is displayed when this action is used. Select the default values for replacement of references to items that no longer exists. All the fields are mandatory and are prefixed by a red asterisk (*).
- 384 â&#x20AC;&#x201C;
Figure: Restore library by date Use the View Report action label action.
to view the report generated by the Restore library by
Restore library by label The Restore library by label action will restore all items that match the specified label. The figure below illustrates the Restore library by label portlet that is displayed when this action is used. Select the default values for replacement of references to items that no longer exists. All the fields are mandatory and are prefixed by a red asterisk (*).
- 385 â&#x20AC;&#x201C;
Figure: Restore library by label Use the View Report action label action.
to view the report generated by the Restore library by
- 386 â&#x20AC;&#x201C;
5.1.1.3 Exporting and importing libraries WCM provides a capability to manually export a WCM library from a source environment and then manually import it to a target environment. This capability allows you to backup WCM libraries and also moves WCM libraries between environments. However, this process cannot replace the WCM Syndication process due to the following reasons a) Only published items can be exported using this method. This method will not export draft items. b) Only the current versions of items will be exported using this method. c) Child items will only be exported and imported if the parent items have been successfully exported and imported. d) If an item exists on the target server with the same path, name and ID, then the item is overwritten. Note: If JSP components are being used, you will need to manually move the related JSP files to the target environment. The WCM Syndication process and the exporting and importing libraries method behave the same way in this regard. The configuration information required to perform the WCM library export and import process is stored in the file <wp_profile_root>/PortalServer/wcm/config/wcm60_conf.xml E.g. C:\IBM\WebSphere\wp_profile\PortalServer\wcm\config\wcm60_conf.xml The configuration file contains property tags with “name” and “value” attributes. E.g. <property name="ExportDir" value="C:/JCR_Export"/>
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.
Property Name ExportDir
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.
SourceServerPort
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.
TargetServerPort
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.
ExportUserId
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 –
administrator. This property is used by the export process.
ExportPassword
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.
ImportUserId
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.
ImportPassword
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 –
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.
WebLibProperty
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"/>
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 –
Figure: Sample Exported Directory Contents
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â&#x20AC;&#x201C; 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 â&#x20AC;&#x201C;
Exporting and importing multiple libraries You can only export a single library at a time by running the "export-wcm-data" command. The "import-wcm-data" command can be used to import multiple libraries at one time. If you are exporting and importing multiple libraries it is best practice to export your individual libraries to the same directory, and then import all your libraries from that directory at the same time by using the "import-wcm-data" command.
- 392 â&#x20AC;&#x201C;
5.1.1.4 Deleting Libraries For information on deleting libraries, please refer to the article posted on Site Administration - Library Management .
- 393 â&#x20AC;&#x201C;
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.
Syndication relationships can be of the following kinds – • • •
One way relationship Two way relationship Multiple relationships - 394 –
One way relationship In a one way Syndication relationship, the WCM libraries are always replicated from the Syndicator to the Subscriber in one direction. This type of setup is used when content the content creation is restricted to one environment.
Figure: One Way Syndication Relationship
Two way relationship In a two way Syndication relationship, the WCM libraries can be syndicated in both directions. When enabling two-way syndication relationship, you must first establish the syndication relationship from the source WCM instance to the target WCM instance. Once the libraries have been replicated to target WCM instance, you can set up another syndication relationship for syndicate the content in the opposite direction. Please note that you must use a consistent syndication strategy. For example, if syndicating "All items", then both syndication relationships must be syndicating "All items".
Figure: Two Way Syndication Relationship
- 395 â&#x20AC;&#x201C;
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.
Figure: Multiple Syndication Relationships
Syndication Pre-requisites Please remember the following important syndication pre-requisites â&#x20AC;&#x201C; 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 â&#x20AC;&#x201C;
Syndication - Important Things to Remember The list of important things to remember for syndication have been provided below – 1. Things to remember when doing first time syndication– 1. First-time syndication to an existing library is not supported. Attempting to syndicate a library to a subscriber that already has a library with the same name will result in an exception. Hence it is recommended not to use the default Web Content library. Although the libraries have the same name, they have different UUIDs. 2. 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. If the library does not exist on the subscriber, it will be created during syndication. By default, no access control settings are specified on the new library, so you must set them manually before users can access content in the new library. It is not required that the settings on the subscriber's library match those on the Syndicators library, because you might want to provide different access for users on the subscribing server. 2. Information about a Library is only syndicated the first time syndication occurs and not on subsequent updates and rebuilds. If a library is renamed or library user access is changed, this information is not syndicated to the Subscriber. If you change the name of a library or change user access to a library, you will need to manually make the same changes to any subscriber libraries if you want the same settings on all your syndicated libraries. If content from one library (Library A) uses an item from another library (Library B), you must include both libraries in the Syndicator to ensure that all items are syndicated successfully. If you only include Library A in the Syndicator, any items in Library A that reference items in Library B are not syndicated, and syndication errors are generated. 3. If you add a new library to a Syndicator after the initial syndication you will need to click Update to force the new library to be syndicated immediately. 4. If you intend to syndicate a library that contains more than 10000 items, update the maximum Java heap size (at least 1024 MB) used by the portal application server on the subscriber machine. 5. Save the Syndicator before you save the Subscriber. 6. Although it is possible to set up more than one syndication relationship between the same WCM instances, there is no reason to do so. The additional syndication relationships are not required. WCM Event Log is a database table that was created to track changes made to all objects within WCM. This table is separate from the main WCM object library. The Event Log stores attributes about each WCM object. The Event Log can be used to flag candidates for syndication based on the lastModified date, the item gatherer and the library in which the object resides. 7. An item will fail to syndicate if an item it references has been deleted (but not purged). Purge the deletion and rebuild the subscription so that the deleted item is resent.
- 397 –
5.1.2.1 Configuring WCM Syndication Before we dive into the details of setting up a syndicator – subscriber relationship, it will be helpful to understand the few configurations setting available to control the syndication process. These configuration options are specified in the Syndication section of the WCMConfigService.properties file which is located in the <was_profile_root>/PortalServer/wcm/shared/app/config/wcmservices/ directory. Note: • •
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.
Disabling Automatic Syndication • • •
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 –
5.1.2.2 WCM Syndication Example In this section we describe in detail the steps we took to complete syndication of the RiverBend library from the WCM instance on our lab server wcm01.itso.ibm.com ( Syndicator ) to the WCM instance on lab server wcm03.itso.ibm.com ( Subscriber ). From here onwards we will refer to these environments as the Syndicator and Subscriber . To ensure both the Syndicator WCM instance and Subscriber WCM instance were at the same WCM version we looked at the information available in the following file on both the servers – C:\IBM\WebSphere\wp_profile\PortalServer\log\VersionInfo.log. Both the environments are on the same build level, as shown below: wcm01.itso.ibm.com (Syndicator) -----------------------------------------------------------• • • • • •
IBM WebSphere Portal 6.1 Build Level: wp610_493_01 (2008-06-18 17:24 ) Server Name: WebSphere_Portal Started at: 8/19/2008 02:57:01:015 EDT Installed FixPacks: o None Installed Interim Fixes: o PK69424 (Cumulative iFix 2 for WCM 6100)
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 –
Figure: Check network connectivity from the Subscriber to the Syndicator
Figure: Check network connectivity from the Syndicator to the Subscriber
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 â&#x20AC;&#x201C;
Web Content Libraries on the Syndicator The Syndicator has two libraries RiverBend and Web Content as shown in the screenshot below.
Figure: Web Content Libraries available on the Syndicator
Web Content Libraries on the Subscriber The Subscriber has the default Web Content library as shown in the screenshot below.
Figure: Web Content Libraries available on the Subscriber
Configuring Syndication for this example On the Syndicator administration portlet click on the Syndicator link available in the left hand navigator. The screenshot below illustrates the Syndicator view which at this stage does not contain any syndicator entries.
Figure: Web Content Syndicators View - 402 â&#x20AC;&#x201C;
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.
Figure: Web Content Subscribers View
The Syndicator view contains the following two actions -
Create New Syndicator Use this action to create a new Syndicator configuration entry.
Refresh Use this action to refresh the information available in the view.
The Subscriber view contains the following two actions â&#x20AC;&#x201C;
Create New Subscriber Use this action to create a new Subscriber configuration entry.
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 â&#x20AC;&#x201C;
Creating a new Syndicator configuration Use the Create New Syndicator action to create a new Syndicator configuration. The screenshot below illustrates the page that loads up and in this case it's already populated with values.
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.
Figure: Web Content Syndicators â&#x20AC;&#x201C; Add Libraries
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.
Creating a new Subscriber configuration
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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.
Figure: Copy Syndicator
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.
We used the Update
action on the subscriber to initiate the syndication process.
- 408 â&#x20AC;&#x201C;
5.1.2.3 Monitoring Syndication Progress After the syndication relationship was setup, we monitored the progress of the data replication between syndicators and subscribers for details such as whether syndication was successful, when it occurred, and how many changes were included.
Monitor Syndicator/Subscriber Views We started monitoring the syndication process by observing the Syndicator and Subscriber views. The screenshots below illustrates the new status visible in the Syndicator and Subscriber views.
Figure: Web Content Subscribers View – Status Active
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.
Figure: Web Content Subscribers View – Status Idle
Figure: Web Content Syndicators View – Status Idle
Monitor the Synicator/Subscriber Status Report We used the Last Update column entry links on the syndicator and subscriber to review the Syndicator and Subscriber status reports as illustrated in the screenshots provided below.
- 410 –
Figure: Syndicator Status Report
- 411 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
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.
Update summary
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 details
the number of updates sent the number of successful updates the number of failed updated
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
Monitor the Subscriber directory Once Syndication has started, you can monitor its progress by looking at the <WP_Profile>\PortalServer\wcm\ilwwcm\system\subscriber\<SUBSCRIBER-ICE-ID> directory on the Subscriber server. As items are being retrieved from the Syndicator, this directory will grow. After all items are retrieved, they will start to be saved within the Subscribers repository. As each item is saved in the repository, its corresponding file entry will be removed from the above directory. The screenshots provide below illustrates this.
Figure: Subscribers File System Directory during Syndication
- 414 –
Figure: Subscribers File System Directory after Syndication
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
Monitor the logs Once the syndication process is completed, we noticed the following entries in the SystemOut.log for the Syndicator and the Subscriber
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 –
5.1.2.4 WCM Syndication Limitations The following article highlights limitations which need to be taken into account when configuring and working with syndication. •
•
•
• • •
•
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 –
5.2 Deployment Topics for WCM The following topics are discussed in this section. • •
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 –
5.2.1 Rendering Environments Rendering Environments - Local Rendering Portlet and the Remote Rendering Portlet The following article discusses rendering environments, with the focus on the Local Rendering Portlet and the Remote Rendering Portlet. Lotus Web Content Management can be delivered in four different methods: 1. Local Rendering Portlet (Web Content Viewer) o Content located on the same server is delivered using the local rendering portlet as a web content management application 2. Remote Rendering Portlet (Remote Web Content Viewer) o Content located on a different Web Content Management server is delivered using the remote rendering portlet 3. Web Content Management Servlet o Content is delivered as a web-site (non-portal) via the Web Content Management Servlet 4. Pre-Rendered site o Content is delivered as a standard web site (non-portal) via a pre-rendered site The most common ways of rendering for the portal environment are Local Rendering and Remote Rendering. The following table provides the considerations which can help influence your decision between the Local and Remote rendering, and determining the most appropriate solution for your organizations' needs. . Remote Less Volume Fewer Lotus Web Content Management licenses required
Primary Considerations Local High volume of requests Higher Throughput Cost More Lotus Web Content Management licenses required
Remote Yes (if redirection is setup and fully qualify URLs is disabled) Low
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
Yes
- 418 â&#x20AC;&#x201C;
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
Rendering Environments: Local Rendering Portlet A Local Rendering portlet is used to display Web content when your Portal content and Web content provided by Lotus Web Content Management reside on the same server. The Local Rendering Portlet utilizes the IBM Lotus Web Content Management API. In the sample architecture shown in the figure below, a local rendering portlet is used, as both the Websphere Portal and Lotus Web Content Management reside on Cluster Member A.
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 –
Configuring the Local Rendering Portlet To configure the Local rendering portlet, select one of the following options from the drop-down menu located in the portlet title bar .
â&#x20AC;˘
â&#x20AC;˘
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 â&#x20AC;&#x201C;
Local Rendering Portlet Configuration Once you click on Edit Shared Settings, you will be presented with the configuration screen, similar to the one shown below.
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.
Rendering Environments: Remote Rendering Portlet Unlike the Local Rendering Portlet, you typically use the Remote Rendering Portlet on a WebSphere Portal server that is not running IBM Lotus Web Content Management. Use this portlet when IBM Lotus Web Content Management is running on a different server than the instance of WebSphere Portal that will show the content. In the figure shown below, Cluster A hosts the WebSphere Portal Environment, while Cluster B hosts the content from Lotus Web Content Management.
- 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 –
Remote Rendering Portlet Configuration Configuring the Remote Rendering Portlet is very similar to configuring the Local Rendering Portlet. The only real difference is that the Remote Rendering Portlet requires some additional information. These differences are due to the fact that this portlet â&#x20AC;&#x201D; unlike the Local Rendering Portlet â&#x20AC;&#x201D; interacts with the IBM Lotus Web Content Management much as a Web browser would. The Remote Rendering Portlet makes a URL connection to IBM Lotus Web Content Management to get content. In order to facilitate this interaction, there are two sections in the configure mode of the Remote Rendering Portlet that are not in the Local Rendering Portlet: credential section and settings section. Important: The Remote Rendering Portlet has Content and Links sections that are identical in function to those in the Local Rendering Portlet. Similar to the process used in configuring the Local Rendering Portlet, select one of the following options from the drop-down menu located in the portlet title bar to configure the Remote Rendering Portlet. See the details above on the options within the configuration parameters.
- 424 â&#x20AC;&#x201C;
Credential section for the Remote Rendering Portlet By default, the Remote Rendering Portlet uses the Portal user's logon to access content on the remote IBM Lotus Web Content Management server. Alternately, it can use a valid Credential Vault Slot name instead of the user's logon.
- 425 â&#x20AC;&#x201C;
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.
Summary Considerations - Remote versus Local Rendering In summary, the following table describes the considerations that you should take into account when determining whether to use local or remote rendering portlets. Consideration Remote Local Request throughput Lower volume of requests High volume of requests Cost Less Workplace Web More Workplace Web Content Management Content Management licenses required licenses required Workplace Web Content Yes, but only when No Management can be placed redirection is set up and fully behind a firewall qualified URLs are disabled Workplace Web Content Low High Management CPU activity on delivery portal nodes Upgrade Workplace Web Yes No Content Management independent of WebSphere Portal Complexity of administration More complex Less complex Network traffic Because the path is longer, Less network activity the network congestion is higher System CPU requirement Less CPU speed required Higher CPU speed required Tuning required Yes Yes
- 427 â&#x20AC;&#x201C;
5.2.2 Authoring Environments Authoring Environments - sample configurations The authoring environment for Web Content Management is where the content authors and developers create content. Assuming a three-tiered environment, content will be developed and created within an authoring environment, then ultimately syndicated out to a staging environment, and finally, syndicated out to the production environment. The objective of this article is to discuss configuration examples, best practices and considerations for configuring the authoring environment. Throughout this article, we will be refer to the RiverBend context. Specific topics include: • • • •
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
Typical Authoring environment In a typical environment, WebSphere Portal and Web Content Management are deployed on the same node. In failover scenarios, there is a backup node and the nodes are clustered. WebSphere Portal and Web Content Management share a common user registry (LDAP server). However, they have unique database servers. Authors and designers access the portal and Web Content Management through an HTTP server that direct them to the first available node in the cluster. The following figure shows a typical clustered authoring environment.
Example of a typical authoring environment
- 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.
Example of Authoring Environment implimented at RiverBend Tea and Coffee company
Authoring Environments - Separating Content and Design Editing If you need a separate design editing environment that is separate from content creation, then consider the split-authoring server approach. In the configuration shown in the following figure, the authoring user interface on the design editing server should be locked. Authors should not access content on the design editing server. A common LDAP server is used for both servers.
- 429 â&#x20AC;&#x201C;
Sample configuration with separate Content and Design editing servers
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 that’s 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 Menu’s 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 don’t 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 Author’s can’t 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.
Advanced Previewing of draft content in the context of WebSphere portal The Sales and Marketing team of RiverBend is providing the WCM team with the raw content, but before the content goes live on the intranet, the content needs to be reviewed and approved by Corporate Communications and Legal representative. Because the Web Content Management content will appear on a page that includes information from other portlets, it is important that the content be reviewed in context. To make this possible, RiverBend decides to use the same portal development server that is used to develop and maintain the RiverBend intranet site to preview the Web content. Using a remote rendering portlet on the portal development server, Corporate Communications representatives will be able to review the content in the intranet context before the updates are moved to the delivery server. The content displayed in the rendering portlet is sourced from the authoring server. Only when they are happy with any changes to content and design will they syndicate these changes to a staging server.
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.
Geographically distributed authoring When your company’s content authors are geographically distributed across a distance that prohibits various departments from working on a single, centralized server, use the distributed authoring approach. The following figure shows an example of a distributed authoring environment.
Example of a distributed authoring configuration • • •
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
• •
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 –
5.2.3.1. Dynamic vs. Prerendering – environment Pre-rendering web sites within Lotus Web Content Management The pre-rendering process takes a snap shot of the entire Lotus Web Content Management 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. This article discusses how to set up and configure WCM for pre-rendering.
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 â&#x20AC;&#x201C;
# 3c. Prerendering - END ####################################################################### ########
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
Configure Pre-rendering for website delivery from the WCM server With this option, WCM saves static content as HTML files and dynamic content is rendered through the WCM server. This helps improve delivery performance. Note: You cannot use the WCM local rendering portlet (Web Content Viewer) when prerendering is set as the default module. To configure this option modify the following values in the WCMConfigServices.properties file Ensure that the following line is commented out: connect.businesslogic.module.default.class=com.aptrix.pluto.renderer.Re ndererModule
Ensure that the following line is NOT commented out: connect.businesslogic.module.default.class=com.aptrix.cacher.CacherModu le
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 –
Ensure that the following line is NOT commented out: connect.businesslogic.module.cacher.class=com.aptrix.cacher.CacherModul e
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 â&#x20AC;&#x201C;
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
connect.moduleconfig.cacher.task.cacherurl= http://${WCM_HOST}:${WCM_PORT}/ ${WCM_CONTEXT_ROOT}/connect/ - 439 â&#x20AC;&#x201C;
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
Pre-rendering a WCM Website This section describes the options available to pre-render a WCM website. The CacherModule can be configured to run automatically or manually.
Automatically running the CacherModule Specify the following value in the WCMConfigServices.properties file to configure the CacherModule to run when WCM application is started - 440 â&#x20AC;&#x201C;
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.
Manually running the CacherModule The CacherModule can be manually run to either pre-render the entire WCM website or to pre-render individual pages. This can be done using the following URLs â&#x20AC;˘
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 â&#x20AC;&#x201C;
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 –
5.2.4 Multiple LDAP Directories and WCM Multiple LDAP Directories and Lotus Web Content Management WebSphere Portal and Web Content management allows aggregation of users from one or more LDAP trees of the user registry and exposes them as a coherent user population. This is achieved by using realms. This can also be referred as horizontal partitioning. A realm can: • • •
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 –
Multiple Realm Configuration Tasks to manage Realms Tasks provided with WebSphere portal for managing realms can be categorized into two areas: Pure Realm Managing, and Configuring Content of the Realm. 1. Pure Realm Managing – This will help performing the CRUD operations of Realm in your environment o wp-create-realm o wp-update-realm o wp-delete-realm o wp-default-realm
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
Sample configuration steps This section provides a sample configuration steps for multiple LDAP configurations Consider a case where an organization has LDAP A and LDAP B. LDAP A has the prefix as follows: o=test.com LDAP B has the following prefixes: o=mycorp o=externals Following are the samples configurations steps to be followed for the above mentioned LDAP systems. 1. Add both Repositories to vmm using wp-create-ldap 2. Add a second baseEntry to LDAP B using wp-create-base-entry 3. Now your plan is to have a Realm per LDAP and for LDAP B in addition to one realm per baseentry Following are the list of tasks to be done to achieve the above: - 445 –
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 –
5.2.7 Go live preparation The following article discusses final considerations for taking your WCM site live, while also highlighting existing resources to help you in preparing the site for improved scalability and performance. Throughout the previous sections of this wiki, we have described how to build the sample RiverBend website and discussed the key considerations and techniques when using Lotus Web Content Management. As you now consider going public with the site, and need to estimate how the site will scale when used daily by potentially hundreds or thousands of users you must take additional tuning considerations into account. The key to prepare your site for going live is optimization and testing. If you reached this point, you are probably familiair with how to run functional and usability tests, you will need to consider these final issues as well. •
• • • •
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 â&#x20AC;&#x201C;
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 â&#x20AC;&#x201C;
a presentation
- 450 â&#x20AC;&#x201C;
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 –
•
Activate different cache types
•
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.
Tools for tuning River Bend web site The following tools were used in testing the River Bend site. Each of these tools is described in detail below. - 452 –
• •
• •
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.
One alternative to Firebug is IBM PageDetailer ( http://w3.alphaworks.ibm.com/tech/pagedetailer ):
- 454 â&#x20AC;&#x201C;
Load generation tool Load generation tools allow system administrators to test how will a system behave under a certain amount of load before it goes into production. Load generation is a mature discipline and many tools exists, every one with its pros and cons. Some of the most popular ones are: • • •
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 –
Advanced cache monitor Cache monitors are tools that allow system administrators to monitor and clear the different caches of a system providing a way to know if the cache system are configured in the right way and allowing to clean the cache between tests to be sure that response time won't be affected by elements cached in past tests. WebSphere Cache Monitor is an EAR installed as part of the WebSphere Application Server default installation but not deployed by default. River Bend administrators followed these steps to successfully use Cache Monitor in their performance tests: • • • •
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 â&#x20AC;&#x201C;
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.
River Bend web site tuning results By running the tests, River Bend administrators obtained these results : Caching technique Users No caching 10 50 100 200 500
1 105 1260 2694 3758 8307
Average time (ms) Troughput (requests/second) 67 2.5 5.2 13.6 19.4 32.1 41.9
WCM basic caching 50 100 200 500
10 15 22 587 4062
15 25.1 49 71.8 72.9
5.4
Servlet caching 50 100 200 500
10 9 10 582 3027
13 25.2 49.6 70.4 90.1
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: â&#x20AC;˘ â&#x20AC;˘
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 â&#x20AC;&#x201C;