1 Understanding Oracle WebCenter

This chapter introduces you to Oracle WebCenter and helps you understand what you must consider when building a custom application using the Oracle WebCenter Framework.

This chapter includes the following sections:

Audience

This chapter is intended for developers of custom WebCenter applications. Developers should review this chapter carefully to determine what options are available to them.

1.1 Introduction to Oracle WebCenter

With the advent of portals, users were suddenly able to interact with the information they were viewing and personalize their experience to match their exact requirements. These users are now demanding the same level of interaction with web applications. The line between portals and other web applications has become blurred, and with the proliferation of Web 2.0 technologies such as wiki, RSS, and blogs, this user demand for highly interactive applications can be met.

One way to simplify transactions is to provide everything users need to support a given task within the application itself. Since it is almost impossible to anticipate everything that users need to complete the tasks associated with their particular jobs, the best solution is often to enable users to evolve the application or mash it up with information from other enterprise sources. Oracle WebCenter provides you with a set of features and services (for example, portlets, customization, and content integration) that help you provide such options to your users, and help simplify the transactions users perform through your JSF applications.

Figure 1-1 provides an overview of the Oracle WebCenter architecture, showing the major components that comprise the product and the features and services offered.

Figure 1-1 Overview of Oracle WebCenter Architecture

Description of Figure 1-1 follows
Description of "Figure 1-1 Overview of Oracle WebCenter Architecture"

The next few sections describe the WebCenter components depicted in Figure 1-1:

1.1.1 Introduction to Oracle Application Development Framework

The Oracle Application Development Framework (Oracle ADF) is an end-to-end application framework that builds on Java Platform, Enterprise Edition (Java EE) standards and open-source technologies to simplify and accelerate implementing service-oriented applications. Used in tandem, Oracle JDeveloper and Oracle ADF give you an environment that covers the full development lifecycle from design to deployment, with drag-and-drop data binding, visual UI design, and team development features built in.

Oracle ADF uses a set of standard JSF components that include built-in Ajax functionality. Ajax is a combination of asynchronous JavaScript, dynamic HTML (DHTML), and XML. This combination allows requests to be made to the server without fully re-rendering the page. While Ajax allows rich client-like applications to use standard Internet technologies, JSF provides server-side control.

Oracle ADF provides over 100 rich components, including hierarchical data tables, tree menus, in-page dialogs, accordions, dividers, and sortable tables. Oracle ADF also provides data visualization components, which are Flash and SVG-enabled and capable of rendering dynamic charts, graphs, gauges, and other graphics that can provide a real-time view of underlying data. Each component also supports skinning, along with internationalization and accessibility.

ADF task flows represent a critical new component for you to understand and use in your application development. They provide a modular approach for defining control flow in an application. Instead of representing an application as a single large JSF page flow, you can break it up into a collection of reusable task flows. In each task flow, you identify application activities, the work units that must be performed in order for the application to be complete. An activity represents a piece of work that can be performed when running the task flow. Task flows also have the advantage of being able to be packaged and deployed with the application, rather than requiring a separate deployment like remote portlets. For more information about task flows, see the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

1.1.2 Introduction to Oracle JDeveloper and the WebCenter Extension

Oracle JDeveloper is an integrated development environment (IDE) for building service oriented applications using the latest industry standards for Java, XML, web services, portlets, and SQL. JDeveloper supports the complete software development life cycle, with integrated features for modeling, coding, debugging, testing, profiling, tuning, and deploying applications. JDeveloper's visual and declarative approach and Oracle ADF work to simplify application development and to reduce mundane coding tasks. For example, code for many standard user interface widgets, such as buttons, lists of values, and navigation bars, are prepackaged for you. All you need to do is select the appropriate widget from the Component Palette and drop it into your application.

The WebCenter Extension packaged with JDeveloper provides all the development functionality you need for building custom WebCenter applications. Oracle WebCenter components are readily accessible from a catalog of resources.

Figure 1-2 Oracle JDeveloper and the WebCenter Extension

Description of Figure 1-2 follows
Description of "Figure 1-2 Oracle JDeveloper and the WebCenter Extension "

The WebCenter Extension also provides several wizards to help you with essential development tasks such as building portlets, consuming an existing portlet, creating a data control to a content repository, and securing your application. By significantly reducing the amount of coding you do, JDeveloper and the WebCenter Extension dramatically increase your productivity as a developer.

In JDeveloper, the easiest way to ensure that you properly define an application and its projects with the appropriate technology scope is to apply an application template. An application template automatically partitions the application into projects that reflect a logical separation of the overall work. The WebCenter Extension provides two templates optimally configured for building custom WebCenter applications:

  • WebCenter Application template. Prepopulates the application with projects and libraries optimally scaled for the creation of data controls and consumption of portlets and Web 2.0 services.

  • Portlet Producer Application template. Prepopulates the application with a project and libraries scoped for the creation of portlets.

It is not required that you use these templates. If you prefer, you can create your own custom WebCenter applications and portlet applications by manually scoping the application technologies and creating the relevant projects. For more information, see Chapter 3, "Preparing Your Development Environment."

For more information about JDeveloper, access the many educational aids from the JDeveloper Start Page, accessible from JDeveloper's Help menu.

1.1.3 Introduction to Oracle WebCenter Framework and Custom WebCenter Applications

Oracle WebCenter Framework augments the Oracle ADF environment by providing additional integration and runtime customization options. In essence, it integrates capabilities historically included in portal products, such as portlets, customization, personalization, and integration, directly into the fabric of the JSF environment. This eliminates artificial barriers for the user and provides the foundation for developing context-rich applications.

You can selectively add only desired Oracle WebCenter components or services to your custom WebCenter application. For example, you might only want to add the Instant Messaging and Presence (IMP) service. In this case, you could add just that service without adding all of the other services available with Oracle WebCenter.

An application built using Oracle WebCenter is referred to as a "custom WebCenter application," and can employ some or all of the following elements:

  • The Oracle WebCenter Framework to provide declarative security, life cycle management tools, and the ability to consume portlets, WebCenter Services, and content in a JSF application.

  • Oracle Composer to provide a runtime customization tool that enables your users to participate in and evolve the application in a managed way. Composer also enables users at runtime to add the WebCenter Services that they need to tailor their applications to meet their specific needs.

  • WebCenter Services to provide the foundation of a social network and enable improved communication, content management capabilities, customization, and advanced searching, tagging, and linking support.

  • Content repository data controls to integrate content from multiple content repositories into your application.

  • Portlets to display, personalize, and reuse dynamic content.

  • JSF skins to define a consistent look and feel for your application.

  • Policy- and role-based security to control end user access and privileges.

Oracle WebCenter's commitment to Service Oriented Architecture (SOA), and to the JCR 1.0 Java Content Repository and other community standards, means that front-end labor, for example needing to become familiar with things such as the APIs of the back-end systems of content stores, is no longer necessary. You get a wide range of plug-and-play products, tools, and services that make it easy to build the applications that your users need.

After you have built and tested your custom WebCenter application, you must still deploy it for your end users. When deployed and running, users begin to access the application and administrators to maintain it.

This section includes the following subsections:

1.1.3.1 Oracle Composer

Page customization, making updates that affect all users, is very important when branding an application for each deployment or each department. Allowing each user to modify the page to meet their specific needs is commonly referred to as personalization. Having an infrastructure that can handle all these customizations and personalizations requires a core set of components to manage and retrieve all the relevant metadata. More importantly, these customizations should be easy to change when the application has been deployed. JSF provides not only the running application code but also a description of the application. Hence, it is key to save customizations and personalizations as layers. This approach ensures that customizations are not lost because you can carry them over when you deploy a new version of the application. As an application developer, you require a set of JSF components that have this customization architecture built in to minimize the complexity of implementing such a solution.

Oracle Composer is an easy, browser-based environment that you can add to existing JSF applications. End users can then use Oracle Composer to edit the page at runtime to create their own mashups. To make pages editable at runtime in this way, you simply add Oracle Composer design time components to a page in JDeveloper. If you create a blank page in JDeveloper with just Oracle Composer components, users have the ability to redesign the page while in Edit mode using Oracle Composer. Some of the tasks they can perform include:

  • Editing page settings and parameters

  • Adding content to the page

  • Editing component properties and parameters

  • Wiring components to page parameters

  • Arranging content on the page

  • Changing the layout for components on the page

  • Removing components from the page

The Oracle Composer tag library provides the components that you can add to make a page editable at runtime and define the behavior of content on the page (for example, move, sequence, or hide components).

In Oracle Composer, the Component Catalog dialog box, which is displayed by clicking the Add button on the page, displays the default runtime Resource Catalog Viewer. Users can browse the components in the viewer and then add them to the page. By default, the viewer displays the default Resource Catalog, which contains all of the Oracle ADF components and portlets available to the application. To control what components are visible to users in the viewer, you can modify the default Resource Catalog, or create one or more of your own Resource Catalogs. Resource Catalogs can contain items such as portlets, layout components, task flows, documents, and Oracle ADF Faces components.

For more information about implementing Composer components in your application, see Chapter 7, "Enabling Runtime Editing of Pages Using Oracle Composer."

1.1.3.2 Portlets

Portlets enable users to access a wide range of functions and services. Oracle WebCenter Framework supports deployment and execution of both standards-based portlets (JSR 168, WSRP 1.0 and 2.0) and traditional Oracle PDK-Java based portlets. It also provides the runtime functions necessary to consume those portlets from within JSF applications. Any existing portlet can be leveraged by a custom WebCenter application with no changes. Developers simply register portlet producers within JDeveloper, and then drag and drop portlets directly onto their JSF pages.

You should be aware that all portlets run remotely from the application in the Oracle WebCenter Framework environment, meaning that there are no local portlets. You must always deploy the producer and register it with the application before consuming its portlets.

Several prebuilt portlets are available for use through a sample producer that you can register with your application. You can use the portlets that Oracle or third parties provide you, or you can create your own portlets programmatically. The prebuilt portlets that the Oracle WebCenter Framework provides include:

Packaged applications also often come with their own set of portlets that enable you to access particular data or functions of the application. Assuming that they were built with compatible technology (WSRP, JSR 168, or PDK-Java), you can include these portlets in your custom WebCenter application as well.

Following the Oracle-submitted standard JSR-301, you can expose your task flows as standards based portlets. In this way, one application encompasses both the base application functionality and the portlets to be consumed for integration. When you revise your application, the portlets are naturally and automatically updated right along with it, rather than requiring a separate development project. To support JSR-301, the Oracle WebCenter Framework provides the Oracle JSF Portlet Bridge. For more information about the Oracle JSF Portlet Bridge, see Chapter 30, "Creating Portlets with the Oracle JSF Portlet Bridge."

In addition to consuming task flows as portlets, you can consume task flows as shared libraries in a JSF application to enable you to embed these JSF fragments directly. You can wrap the transactions around the task flows along with the other functionality in their application. For more information, see Chapter 14, Getting Started with ADF Task Flows" in the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

You can link WSRP 2.0 portlets such that parameters are passed between portlets and Faces components, and between portlets and the page. In this fashion, you can create a context-sensitive application, where the data displayed by the portlets changes depending upon the page context. In effect, it enables you to create an enterprise mashup for your users and, if you take advantage of Oracle Composer, your end users can create their own enterprise mashups, too.

For information about the different ways you might create portlets and how you might use them, see Chapter 29, "Overview of Portlets." For information about consuming portlets on pages and linking them, see Chapter 34, "Consuming Portlets."

1.1.3.3 Content Integration

JCR (Java Content Repository API, also known as JSR 170) adapters enable you to make data stored in content management systems, such as Oracle Universal Content Management, Oracle Portal, or even your file system, available to your application.

Using JDeveloper, you can use the prebuilt JCR data control to grab the content and drop it onto your page. You can leverage the provided prebuilt user interface to display the content in your custom WebCenter application. This architecture enables you to build your user interface once and then at deployment time or during runtime, switch to whatever back end is required without having to recompile or rebuild the application. In addition, you do not need to learn the intricacies of each content management system's custom APIs. For example, you could create a data control that selects content from any JCR 1.0 compliant repository or file system. When the data control is created, you can drop it onto a JSP document as a table.

If you retrieve data from a content repository other than Oracle Portal or the file system, then you can create your own JCR adapter. From the Content Repository Configuration page of the Create Data Control wizard, you can choose the content repository from which you want to retrieve data.

For more information, see Chapter 13, "Integrating Content."

1.1.3.4 Search Framework

Search is one of the most common and useful features of any application. Oracle WebCenter Framework has a unified, extensible Search framework that enables the discovery of information and people through an intuitive user interface. The powerful Search framework enables you to seamlessly include enterprise-wide search capabilities into your application. With all relevant and secure information easily navigable, users do not need to switch between applications performing multiple searches.

1.1.3.5 Resource Catalog

The Resource Catalog provides a federated view of the contents of one or more otherwise unrelated repositories within a unified search and browse user interface. Resources are created and published in their source repository, then exposed to the developer through the JDeveloper Resource Palette and to the end user through the Resource Catalog Viewer.

Resource Catalogs can contain the following components:

  • Layout components. The primary layout component is a Box, which is a container that can hold all other types of components. At runtime, you must have a Box into which you can drag and drop components. You can also add and arrange child components and delete components from a Box.

  • Oracle ADF Faces components. You can add Text, Image, Page Link, Web Page, and Website Link components to your page. These are analogous to the JDeveloper design time components Rich Text Editor, Image, Command Link, Web Page, and Go Link, respectively.

    The Text component enables you to add rich text on the page. Adding this component invokes a text editor that can be resized and is similar to an HTML editor. You can add text and format it using the options available in the editor.

  • Portlets. You can add WSRP, JSF, or PDK-Java portlets from any producer that was registered in JDeveloper. For more information about registering portlet producers and adding portlets to a page, see Chapter 34, "Consuming Portlets."

  • Task Flows. If you have created task flows in JDeveloper, you can add these task flows from JAR files onto your page at runtime. For more information about ADF task flows, see the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.

  • Documents. If you have configured the Documents service in your application, you can add documents from this service. For more information about the Documents service, see Chapter 14, "Integrating the Documents Service."

1.1.3.6 Customizable Components

To make any JSF JSP document (.jspx) editable at runtime, you must add Oracle Composer components to your page in JDeveloper. Depending on whether you want to enable personalization or customization of a page, there are two separate libraries to consider.

  • Oracle Composer Components. Use these components if your page contains ADF Faces components. These components also make a page editable at runtime and define the behavior of content on a page at runtime (for example, move, sequence, or hide components).

  • Oracle Composer HTML Components. Use these component if your page contains Trinidad components. These components are also useful for enabling personalization only on the page at runtime.

For more information, see Chapter 7, "Enabling Runtime Editing of Pages Using Oracle Composer."

1.1.3.7 Application Security

With the Oracle ADF extensions provided in Oracle WebCenter, you can define security for an entire application, a page within the application, or for individual actions provided by customizable components. In addition, for WebCenter Services that connect to back-end servers using web services, you can provide secure identity propagation with WS-Security.

Because Oracle WebCenter security is based on the JAAS and J2EE standards, enterprise roles defined in the existing identity management store can be leveraged directly when securing a custom WebCenter application. You need not synchronize roles within the application being built. It just references and uses the defined users and roles directly. Note also that you can use file-based security for the development phase of the application and then easily switch over to enterprise identity management at deployment time.

Oracle WebCenter also provides application roles that you can use to represent the policy of an application. By associating permissions with an application role defined within the policy store, you can keep them self contained within the application. On deployment, you can then associate users and enterprise roles with the application roles to grant those permissions to end users.

In some cases, it is desirable to leverage existing applications that have their own authentication mechanism, such as email. The email system is often on a different authentication system (with different user names and passwords) than the new application. The application must map the email user to the application user such that end users do not have to enter their user names and passwords each time they need information. Oracle WebCenter Framework provides the means to securely manage these user names and passwords with the External Application functionality.

For more information about options for securing your custom WebCenter application, see Chapter 37, "Securing Your WebCenter Application."

1.1.3.8 Application Life Cycle

After you have created and tested your custom WebCenter application in the design time environment (JDeveloper), you must deploy it to your production system. When deployed, you must then maintain the system, which includes monitoring performance and availability, editing or refreshing portlet producers, undeploying applications, and perhaps migrating customization data. Inevitably, at some point you will also want to further enhance the application, stage it again, and then redeploy it to your production system.

WebCenter is built on top of JDeveloper and Oracle ADF, which provide several benefits in the lifecycle management of your application:

  • Development framework: JDeveloper and Oracle ADF provide the tools and framework you can use to build and update your application. Adding portlets, content, and customization capabilities to your custom WebCenter application is simply a matter of dragging and dropping the appropriate objects in either a source or WYSIWYG environment.

  • Enterprise deployment: When you are ready to deploy your application to a production environment, JDeveloper packages everything that the JSF/Oracle ADF application needs in the EAR file for easy deployment though Enterprise Manager to the production system. For more information, see Chapter 38, "Testing and Deploying Your WebCenter Application."

    Note:

    WebCenter Services typically require some back end, such as Oracle Discussions Server or Oracle Wiki Server, to be available in the deployment environment.
  • Standards-based administration: Browser-based tools enable administrators to deploy, configure, and manage custom WebCenter applications and WebCenter Services. In addition, tools built on industry standards-based JMX methods offer administrators granular control and monitoring mechanisms for health status, performance, and popularity. Tools for obtaining historical performance and status reporting over time (within a single Oracle Application Server context) are also provided. Custom WebCenter application metrics are delivered using the familiar Application Server Control monitoring and management interface. For more information, see Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter.

1.1.4 Introduction to Oracle WebCenter Services

Oracle WebCenter Services expose social networking and personal productivity features through services, which, in turn, expose subsets of their features and functionality through task flows.

Note:

Oracle WebCenter Services refers to a specific packaging option when purchasing WebCenter. WebCenter Services refers to the services provided by Oracle WebCenter.

Table 1-1 describes each of the available services.

Table 1-1 Oracle WebCenter Services

Service Description Chapter

Announcements

Provides the ability to post announcements about important activities and events to all authenticated users.

Chapter 16, "Integrating the Announcements Service"

Blog

Provides easy integration of a blog application within the context of your application.

Chapter 21, "Integrating Oracle WebCenter Wiki and Blog Server"

Discussions

Provides the ability to create threaded discussions, posing and responding to questions and searching for answers. Also provides an effective group communication mechanism for important activities and events.

Chapter 17, "Integrating the Discussions Service"

Documents

Provides content management and storage capabilities, including content upload, file and folder creation and management, file check out, versioning, and so on.

Chapter 14, "Integrating the Documents Service"

Events

Provides the ability to create and maintain a schedule of events relevant to a wider group of users. Events are published to all authenticated users.

Note: This service is available only in Oracle WebCenter Spaces.

"Working with the Events Service" in the Oracle Fusion Middleware User's Guide for Oracle WebCenter

Instant Messaging and Presence (IMP)

Provides the ability to observe the status of other authenticated users (whether online, offline, busy, or idle) and to contact them instantly.

Chapter 18, "Integrating the Instant Messaging and Presence Service"

Links

Provides the ability to view, access, and associate related information; for example you can link to a solution document from a discussion thread.

Chapter 22, "Integrating the Links Service"

Lists

Provides the ability to create, publish, and manage lists. Users can create lists from prebuilt structures or create their own custom lists.

Note: This service is available only in Oracle WebCenter Spaces.

"Working with the Lists Service" in the Oracle Fusion Middleware User's Guide for Oracle WebCenter

Mail

Provides easy integration with IMAP and SMTP mail servers to enable users to perform simple mail functions such as viewing, reading, creating, and deleting messages, creating messages with attachments, and replying to or forwarding existing messages.

Chapter 19, "Integrating the Mail Service"

Notes

Provides the ability to "jot down" and retain quick bits of personally relevant information.

Note: This service is available only in Oracle WebCenter Spaces.

"Working with the Notes Service" in the Oracle Fusion Middleware User's Guide for Oracle WebCenter

People Connections

Provides the ability for online social netowrking, such as creating a personal profile, display information about their current status, or view other users' recent activities.

Chapter 20, "Integrating the People Connections Service"

Recent Activities

Provides a summary view of recent changes to documents, discussions, and announcements.

Chapter 25, "Integrating the Recent Activities Service"

RSS

Provides the ability to access the content of many different web sites from a single location—a news reader.

Chapter 15, "Integrating the RSS Service"

Search

Provides the ability to search tags, services, the application, or an entire site. This includes integrating Oracle Secure Enterprise Search for WebCenter searches.

Chapter 24, "Integrating the Search Service"

Tags

Provides the ability to assign one or more personally relevant keywords to a given page or document.

Chapter 23, "Integrating the Tags Service"

Wiki

Provides the ability for geographically diverse teams to originate and collaborate on web documents.

Chapter 21, "Integrating Oracle WebCenter Wiki and Blog Server"

Worklists

Provides a personal, at-a-glance view of business processes that require attention. These can include a request for document review, and other types of business process that come directly from enterprise applications.

Chapter 26, "Integrating the Worklist Service"


WebCenter provides task flows for these services through the WebCenter Services Catalog. For information about how to prepare your application to consume these task flows, see Chapter 4, "Preparing Your Application for Oracle WebCenter Services."

How WebCenter Services Integrate with Each Other

WebCenter Services are designed to be integrated with each other. Here are some examples of the ways WebCenter Services work together:

  • The Search service is designed to search any WebCenter service in your application. For example, if you have the Documents service in your application, then the search operation looks for terms in document names and in the documents themselves. The results include tag hits, so any matching tags on your documents and pages are also returned, with relevance based on the quality and frequency of tags.

  • The Links service lets you view, access, and associate related information across services. For example, in a discussion forum, you can link to a related discussion forum, document, URL, or event. The Links service also supports bidirectional links between objects, such as a link from a discussion topic to a document and back to the discussion topic.

  • The Presence icon can appear in any WebCenter service where a user is indicated. For example, click the author's name on a document to invoke a context menu and send an instant message or mail to that person.

  • The Recent Activities service lets you view the most recent additions or changes to the announcements, documents, discussions, and pages in your application.

1.2 Design Questions to Consider Before You Start

When you design your custom WebCenter application, you must consider the needs of your audience. In particular, it is important to think about what features and capabilities your custom WebCenter application end users, administrators, and developers need. Before you begin to actually build a custom WebCenter application, take a look through the questions listed below and use the answers to help plan your application.

This section includes the following subsections:

1.2.1 User Considerations

The following list suggests questions you should ask about the end users of your application:

  • How many users are there? If your custom WebCenter application must serve a large number of users, then you must take that into account when you define your deployment environment.That is, you must choose a topology that can support the number of users you expect to access your custom WebCenter application and set the configuration parameters of the different services accordingly.

    To help you decide which Oracle Application Server configuration best supports your custom WebCenter application, see the Oracle Fusion Middleware Enterprise Deployment Guide for Oracle WebCenter.

  • Do users need to edit pages and create enterprise mashups by adding resources? If you plan to let users edit pages, you must add Oracle Composer components to your application. You should also consider issues such as which areas you want to make editable and what resources to make available to users.

    When you design your application, you must choose where to insert the Oracle Composer components to make those areas of the page editable. Components that allow users to add to the page must appear in a Resource Catalog at runtime. You can also choose to have different catalogs available depending upon the context of the application or the user's privileges.

    If you choose to allow page editing, the application must be able to associate the personalizations with particular users, which means some form of authentication is required for users of the application. Furthermore, since the user's personalizations are stored in Metadata Storage (MDS), you must ensure that your deployment system has access to MDS for the storage an retrieval of personalizations.

    For more information about the Oracle Composer and exposing resource catalogs, see Chapter 7, "Enabling Runtime Editing of Pages Using Oracle Composer."

  • Do users need to personalize their portlets? Portlets can optionally include a personalization mode (Edit mode) that enables an authenticated user to personalize the portlet. The Edit mode might allow the user to enter things such as the portlet's title or a parameter that affects the content of the portlet. For example, you could implement an Edit mode that enables the user to enter ticker symbols for a stock portlet. When the user's changes are applied, the portlet displays the prices for their chosen ticker symbols.

    If you choose to implement personalization, then you must also implement some form of security for the application consuming the portlet. The Personalize option appears only to authenticated users.

    In considering portlet personalization, you should also consider whether the portlets are load balanced. If they are load balanced, then you must use database backed personalization to ensure that all of your middle tiers can access to the user's personalization data. Otherwise, the user has to personalize the same portlet multiple times.

    For more information, see Chapter 29, "Overview of Portlets."

  • Which services do your users need to access? WebCenter provides a variety of services, such as Documents, Discussions, Search, People Connections, and Instant Messaging and Presence. You must decide which of these services your users need and then configure those services. When the desired services are installed and configured, you can add task flows to your application pages that access those services. The services that you choose to implement can also impact the topology you choose. For example, you might choose to have your discussions server and content repositories reside on different systems, which must both be accessible to your application.

    For more information, see Chapter 4, "Preparing Your Application for Oracle WebCenter Services."

  • Will there be both authenticated and unauthenticated (public) users? Several of the WebCenter services offer limited functionality for unauthenticated users. For example, unauthenticated users can view but not contribute to discussions. Due to this loss of functionality, it sometimes works better to create special public pages designed just for unauthenticated users.

1.2.2 Site Administrator Considerations

The following list suggests questions you should ask about the administrators of your application:

Note:

It is critical that the custom WebCenter application administrator and the developers communicate when the application is under construction. At design time, developers must make many choices that determine what the administrator can do to the application at runtime. For example, if the developers choose not to implement skins, then the administrator has no control over the look and feel of the application. Hence, the administrator and the developers should ensure that they consult over these decisions at design time.
  • Do administrators need to customize pages and portlets for users or user groups? You may want to enable your custom WebCenter application administrator to customize pages and portlets to provide default views of the custom WebCenter application for users.

1.2.3 Developer Considerations

The following list suggests questions you should ask about the developers who will contribute to your application:

  • Should developers build task flows or portlets as reusable components? Thanks to the Oracle JSF Portlet Bridge, developers can make their task flows into JSR 168 portlets. Hence, they have the option of creating reusable components either as task flows, which can potentially be made into JSR 168 portlets through the bridge, or directly as JSR 168 portlets. If the primary purpose of the component is inclusion in a portal, then developers may prefer to build it directly as a JSR 168 portlet, without going through the bridge. If the primary purpose of the component is local execution in a JSF application, then the developer may prefer to create it as a task flow first and then, optionally, use the bridge to run it as a JSR 168 portlet. Building task flows means that the components can be used in other applications without having to repackage them as portlets first.

  • Do developers need to integrate content from content repositories (for example, Oracle Content Server, file system, or Oracle Portal)? If you have content located in content repositories to expose in the custom WebCenter application, then you must use JCR adapters and data controls to make that content available.

    For information about including content through JCR data controls and adapters, see Chapter 13, "Integrating Content."

  • Will the visible/editable content of the custom WebCenter application vary depending upon the identity of the user? If you plan to have content in your custom WebCenter application that is not for everyone, then you must set up a security model with login and user roles that enable you to control access. Components, portlets, and pages can display or not display, depending upon a user's identity. If the content is open to everyone (for example, a Human Resources custom WebCenter application with content for all employees), then you might not need to implement access control.

    Furthermore, with Oracle Composer, you can allow users to edit the content within the application. Again, you must consider whether you want to restrict that capability to certain users and, if so, you must factor that into your security model.

    For more information about implementing a security model for your custom WebCenter application, see Chapter 37, "Securing Your WebCenter Application."

  • Does your custom WebCenter application need to provide access to external applications? In many cases, you might have external applications to surface in your custom WebCenter application. For example, you might have email, Human Resources, or financial applications that you would like users to be able to view from within the application. To provide seamless interaction for the user, you must employ an external application credential store of some kind.

    For more information about accessing external applications from your custom WebCenter application, see Chapter 37, "Securing Your WebCenter Application."

    If you have legacy external application portlets that were built for Oracle Portal, then you can reuse those portlets in a custom WebCenter application. This feature allows users to view these portlets from their custom WebCenter application rather than having to open each application separately or go back to Oracle Portal. When building such portlets, though, you must remember that they typically must authenticate themselves to the external application before retrieving and displaying any data. As previously mentioned, such authentication requires a credential vault, where the custom WebCenter application can store the credentials necessary for logging into the external application. Oracle WebCenter Framework provides choices in Oracle JDeveloper for incorporating portlets based on external applications.

    For more information about external application portlets, see Section 37.2.3, "Managing External Applications."

  • Will the custom WebCenter application be developed by a team of developers? If your custom WebCenter application is being developed by a team, then you must think about some additional design considerations. For example, when doing team development, you must be much more aware of which files various JDeveloper actions touch, and may want to take advantage of JDeveloper's ability to integrate code management systems.

    For more information about team development, see Chapter 39, "Working Productively in Teams."

1.3 Accessibility Features

Accessibility involves making your application usable by persons with disabilities such as low vision or blindness, deafness, or other physical limitations. In the simplest of terms, this means creating applications that can be used without a mouse (keyboard only), used with a screen reader for blind or low-vision users, and used without reliance on sound, color, or animation and timing.

Oracle software implements the standards of Section 508 and WCAG 1.0 AA using an interpretation of the standards at http://www.oracle.com/accessibility/standards.html.

This section describes accessibility features that are specific to WebCenter. For general information about creating accessible ADF Faces pages, see the Developing Accessible ADF Faces Components and Pages section in the Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework. For information about accessibility features in JDeveloper, see the help topics available by selecting the JDeveloper Accessibility node under JDeveloper Basics in the online help table of contents.

1.3.1 Generating Accessible HTML

WebCenter provides several Composer components that you can add to your application pages to make them editable at runtime. These components provide attributes that are used to generate accessible HTML. To ensure that the pages you create are accessible, you must set these attributes, listed in Table 1-2.

Table 1-2 Accessibility Attributes for Oracle Composer Components

Component Accessibility Attributes

pe:changeModeButton

No accessibility attributes.

pe:changeModeLink

No accessibility attributes.

pe:imageLink

shortDesc—Mandatory. This attribute transforms into an HTML alt attribute.

accessKey—Optional. This attribute sets the mnemonic character used to gain quick access to the component.

pe:pageCustomizable

No accessibility attributes

pe:layoutCustomizable

shortDesc—Mandatory. This attribute transforms into an HTML alt attribute.

accessKey—Optional. This attribute sets the mnemonic character used to gain quick access to the component.

cust:panelCustomizable

No accessibility attributes

cust:showDetailFrame

shortDesc—Mandatory. This attribute transforms into an HTML alt attribute.


1.3.2 Accessibility Features at Runtime

When you enable users to customize a page at runtime, you must ensure that any customizations are also accessible to all users. For all components that users can create at runtime, all accessibility-related attributes are shown in the Property Inspector where users can set them appropriately.

For a list of accessibility-related attributes for WebCenter-specific components, see Table 1-2. For a list of accessibility-related attributes for other components, see the Developing Accessible ADF Faces Components and Pages section in the Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework.

1.3.3 Accessibility Considerations for Portlets

HTML standards do not allow the use of nested form tags in page content. However, JavaServer Faces pages almost always include a form tag so the JSF reference implementation, which is what is used to generate the markup, puts the entire page body inside a form tag. If you then have a portlet on that Faces page that includes a form tag in its content, which is frequently the case, you have a nested form tag. The common resolution for nested form tags is to put the inner form inside an iframe.

However, iframes are not very well accommodated by today's screen readers and so are not permitted by some accessibility standards.

To address the situation of nested form tags and iframes, WebCenter offers two solutions:

  • WebCenter automatically parses the HTML markup from portlets looking for form tags and rewrites them and the corresponding submit tags to be Faces compliant using JSF's subform mechanisms. However, this HTML parsing can fail, especially given the growing use of complex, AJAX style markup.

  • WebCenter provides an optional attribute in the adf:portlet tag called renderPortletInIFrame that has three settings:

    • auto (default) - parse the markup and, if the parsing gets an error because it cannot understand it properly, render the content inside an iframe, otherwise render the content inline.

    • true - always render an iframe.

    • false - never render an iframe.

1.3.4 Accessibility Features in WebCenter Spaces

WebCenter Spaces pages has been designed to meet accessibility guidelines.