I have had a sweet spot for Oracle WebCenter for quite some time now. As early as 2007 I already did a presentation at ODTUG on WebCenter (10g). One of my main conclusion at the time was that while the product showed a lot of potential, it was certainly not ready for prime time. After that presentation, a guy came up to me, thanked me for the presentation then told me he was a product manager for WebCenter – and agreed with most of the things I had said. That was my first encounter with Peter Moskovits. Today, two years later, the situation has changed quite dramatically. WebCenter has evolved, as had ADF which is the foundation for WebCenter, and WC is now one of the cornerstones for Oracle Fusion Applications. WebCenter 11g is like the swan that started out as the ugly duckling. Well worth a look.
I was in a presentation today by Peter Moskovits and Christina Kolotouros, titled: A Marriage Made in Heaven – Enterprise 2.0 and ADF. They touted it as Part 2 of Steve Miranda’s talk on how Fusion Applications were built (see: http://technology.amis.nl/blog/5645/oracle-fusion-applications-it-is-for-real-and-impressive-too ). In this presentation, they explained the architecture of WebCenter, demonstrated the use of some of the essential facilities and clarified how the product can be incorporated in your own ADF development efforts.
WebCenter implements the (runtime) customization & personalization requirements, allows consumption of 3rd party external portlets (that also bridge technologies), provides many Web 2.0/E2.0 Services (Blog, Wiki, Content Integration, Tagging, Linking, Email/VOIP/IM integration, …) and Community Workspaces; Search and Recent Activities.
WebCenter lives on top of ADF which in turn adds productivity to ‘plain’ JSF – through rich components, declarative and visual development and especially the data controls and complex databindings they provide to tie business services based on various technologies to the rich components. It adds functionality in a number of steps to the ADF foundation.
These steps/stages/levels are:
Services – an extensive set of ADF Task Flows that in some case use backend services such as Forums, Wikis, Tagging and Linking; these taskflows can be consumed in any ordinary ADF page and enrich those pages with valuable functionality in the area of Social Networking & Collaboration and Personal Productivity.
Framework – WC Framework also brings the Portlet support – both to consume Portlets (WSRP 1.0 and 2.0 as well as (Oracle) PDK-Java) as well as to publish ADF Pages as WSRP 1 or 2 based standard Portlets that can be consumed in any Portal that can handle WSRP – through the ADF Faces – Portlet bridge (implementing JSR-329 around the JSF-Portlet bridge. Then Framework comes with support for Content Integration (from backend Content Management Systems such as UCM (pka Stellent) and Oracle Portal. Framework has a unified, extensible Search framework that enables the discovery of information and people through an intuitive user interface. Finally Framework comes with a number of valuable predefined Portlets, such as the well known Omni Portlet and Web Clipping Portlet.
WebCenter Composer – the run time facility with which the end user interacts with the customization infrastructure. 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 and enterprise mashups. Composer leverages the Resource Catalog (that in turn works with MDS (Meta Data Services)) to support run time customization (and even personalization) of pages;
Spaces – a prebuilt Portal application leveraging the aforementioned components. WebCenter Spaces is a Web-based application, built using the Oracle WebCenter Framework, WebCenter Web 2.0 services, and Oracle Composer, that offers the very latest technology for social networking, communication, collaboration, and personal productivity. Out of the box, WebCenter Spaces offers a configurable work environment that enables individuals and groups to work and collaborate more effectively. Spaces can be set up for temporary initiatives like campaigns and projects, inviting enterprise users in the intranet, and also business partners and customers that an organization wants to work with.
Spaces saves us the trouble (or joy) of developing our own ADF application to provide a Portal based Workspace for Community activities (as well as providing some facilities not available with the other WC licenses). An screenshot from Spaces is shown here (minimize – click on it to see the larger picture).
Included with WebCenter is a limited usage license for UCM (Universal Content Manager) as well as Oracle BPEL (part of SOA Suite) for coordinating workflows.
Note: the WebCenter services are an easy first step into the product. The services can be consumed in Oracle Portal, some other WSRP 2.0 compliant portal or in an ordinary ADF application. The WC Services add a lot of functionality to any ADF application, so may be worthwhile in situations where portals are not relevant at all. Of course, given the mutual integration of the various parts of WebCenter, once you are using WC Services, the step towards Framework and
WebCenter breathes ADF
In case this has not been clear: developing applications and portals based on WebCenter or leveraging WebCenter Services or Framework first and foremost means developing ADF (11g Rich Client components) applications. WebCenter is an additionalo layer on top of ADF 11g and that is what you develop with. Unless… all you want to do is leverage the WebCenter Services by consuming them as Portlets in your Oracle Portal, WebCenter Interaction (fka Plumtree) or any other WSRP-enabled Portal.
Working with Portlets seems to be a lot easier with the upcoming WebCenter 11g technology. Both consuming and producing (from JSF as well as from and to ADF Faces) Portlets is very straightforward. And having the portlets that have been consumed synchronize with the rest of the page is quite easy to do as well. And that is really valuable – and pretty new as well.
WSRP 2.0 Portlets can publish events that are consumed by other consumed portlets or taskflows; if they expose parameters, a change in the value of those parameters is published as an event back to the page: as an ADFm (Contextual) Event. It is straightforward to create mappings of such events produced by a portlet (or any other producer) to consumers that can either be other Portlets or for example TaskFlows or other components.
Consumed portlets can be configured with EL based attributes AND they can have the partialTriggers attribute set that causes them to be PPRed like other ADF Faces components.
When consuming ADF Faces based functionality in ADF Faces pages, you would typically not go through the Portlet route. Using Taskflows directly makes it easier to control styling and reduces the overhead. However, there are hardly any restrictions on publishing ADF Faces based portlets anymore:
- should be consumed in an IFRAME
- can have some accessibility limitations (nothing major)
- the ADF Faces page to be portletized can not not contain Portlets of its own
The overhead of using Portlets instead of Task Flows directly is about 180-200 ms – regardless of the number of portlets in a page. That is much less than I had feared!
Look & Feel
One of the challenges with using WebCenter Spaces or any part of WebCenter or even ‘plain’ ADF is getting the look and feel exactly right. Organization frequently have stylebooks that prescribe the way the pages and components should look. Peter indicated that recently WebCenter Spaces has been extended to make it a little bit easier to get your own look and feel. A mechanism has been added that allows us to specify an ADF Page Template to be used by WebCenter Spaces. In this page template we can include any headers, footers and other supporting content – as long as we include a facet that has the name that is appropriate for Spaces to embed its content into. (I will try to find out from either Peter or the documentation where I should store the page template and what the name of this facet should be to have it picked up.
One of the interesting services offered by WebCenter is called Recent Activities. It makes available a visual representation of recent activities that may be relevant to the user – activities through services that are tied into the Recent Activities facility. The Recent Activities service can track information from the following WebCenter Services: Documents, Announcements, Discussion Forums, Pages created or modified by the page service
It would be nice if you could add recent activities from your own task flows, including special navigation or DML operations that you want to publish as interesting recent activity. I am trying to find out whether there is an API for injecting my own recent activities; I have asked Peter and he is looking into it.
Tagging and Linking
Very useful – especially in terms of collaboration – are the tagging and linking services.
Through tagging, any user can add a tag onto any business object (such as a customer, an order or product, an email or document etc.). Through the tag center, it is easy to find all business objects that have one or more specific tags as well as inspect the tag cloud. From the tag center, the user can navigate directly into the object. The picture on the right shows the Tag Center.
Linking is somewhat similar. The Links service allows users to easily connect pieces of information. For example, suppose you are viewing discussion threads where other users are discussing a problem with a particular task. You know of a document that provides a detailed description of how to perform that task and could help them with the problem. You can link that document to the thread so that as other users review the thread, they can immediately view the linked document.
The links are bi-directional: when you link document A to business object B you are at the same time creating the reverse reference from B to A. Links are visually indicated on both ends through a small marker. Clicking on the marker brings up the list of links to other resources that can be navigated to. Links can also be added and removed – and they can be used during searches
One of the key facilities in WebCenter Services is the Search service. Through it, a user can perform a search that goes across virtually all content that is exposed in the ADF/WebCenter application. Only entities that the user is allowed to see will be returned in the search result. And the search results can be used as direct navigation links to the entity.
The WC Search Service has built search capabilities for the entities managed by any of the WC Services – such as documents, discussions, blogs, tags etc. Search queries can be saved for reuse through WC Composer. It is also possible to have your own business objects be included in the search. Anything that has a unique identifier and searchable attributes can be made part of the ‘global search’ facility. You can extend WebCenter search through search adapters implementing the unified Search service provider interface (SPI). WebCenter framework automatically discovers these search adapters and consolidates them in the search results for your custom WebCenter application.
In order for WebCenter to allow navigation to custom resources from the Tag Center or the Search Results and to allow tagging and linking of such resources, a custom resource viewer must be registered with the so called Resource Action Handling framework. A Resource Viewer is an ADF Task Flow that knows how to present a given ResourceId. Alternatively, a URL Rewriter can be configured to turn a ResourceId into a URL that leads to a representation of the Searched for (or Tagged/Linked) resource. More on that in later articles.
One interesting service – that some colleagues of mine implemented themselves in a fairly generic manner – is one to allow the user to add notes (or post-it like scribbles) to any business object or WC Service entity (Discussion topic, RSS entry, Agenda Item,…). This service is available in Spaces and is coming - as I understand it – Services as well, at a later stage.
Around July 1st the software should be available for download from OTN. To get started with WebCenter – Services and Framework – all you need to do is download and install JDeveloper 11g (220.127.116.11.0) and the WebCenter Extension which can be downloaded through the ‘Check for Updates’ feature in JDeveloper. Only if you want to work with Spaces do you need to install additional infrastructure.
Some people would say that in order to get started, you might start saving some money as WebCenter has a hefty price tag. That is true – however, WC comes in various incarnations that each provide specific value that you can balance against the costs. Also good to know – and reliable sources have confirmed this to me – certainly at this point when Oracle tries to build up momentum, visibility and some makrrket presence for WebCenter -: you will be able to get substantial discounts from the list prices for the WebCenter offerings!
You will find Christina’s and Peter’s presentation here: A marriage made in heaven.
I hope to provide additional resources after July 1st – when I am allowed to blog about the things I have been doing with WebCenter 11g.
One last picture – not for fainthearted – showing the overall architecture for WebCenter with the different core constituents with their components that can be used with WebCenter.