WebCenter Portal an Agile Approach
Sunday, October 27, 2013 at 10:33AM
David Parry in Oracle, Portal, WebCenter, portal oracle webcenter

Introduction

Let’s first lay out the initial vision for our Ace Portal team. We just parachuted into the Acme Company who recently purchased Oracle WebCenter Portal. They know they need a Portal since Oracle packaged it with their Enterprise Corporate database purchase. The first step to our mission is to create an initial setup of a Portal in an agile development environment. This allows us to gather requirements, deploy small sets of Portlets in a timely fashion, and effectively allow the client to provide feedback throughout the process. A note to all Agile purists (if there is such a thing): this approach may not follow a traditional Agile methodology, however this is how I've successfully deployed WebCenter Portal projects in the past.

Our team will consist of a multifaceted talented set of team members. Titles and skill sets are as follows:

Now we need to setup our development environment with a project layout that will allow our team to work independently while still deploying on an integrated domain. We must also remember that our Acme client may not have the necessary portal knowledge to effectively communicate the needs of the project’s look-and-feel and portlet details. Therefore, our development team will be deploying various versions in order to receive useful feedback from the client. The client has hinted about having an application that will work with this new database they just bought from Oracle and something like a stock ticker for the CFO. Project Configuration, Continuous Integration, and Build & Deploy systems are needed simultaneously. I like to refer to this group as "The Agile Landscape":

Project Configuration

Let’s get started by splitting out projects into our areas of concern. Guess what? They each match up perfectly with our team setup (this is by design).

Project Hierarchy Diagram

Project Descriptions

UX_Project: [JDeveloper ADF Skin] skins, javascript (minimal if needed) and Sprites (images) - images as we know are frowned upon. Note: I am not sure why the ADF Skin Editor cannot run inside JDeveloper 11.1.1.7. JDeveloper 11.1.2 * is required currently.
Component_Project: [JDeveloper Fusion Web Application ADF] This project will consist of taskflows and simple Java beans. This is where the controller layer lies for our portlets, and also includes some business logic. The secret sauce cannot be given out - each project is different. I like to try and keep the bounded task flows encapsulated into their own flow logic. The approach is to pass all of the parameters into the taskflow - even requests and session values. At first it might be difficult to figure out what logic can be reused across these taskflows (let alone the entire corporate landscape). Keep in mind, however, that as we grow our portlets and taskflows - they will naturally group into categories which we can collect in multiple component projects after multiple iterations.
Commons_Project: [JDeveloper Generic Application] Having a placeholder encourages re-use so I have created a commons project. Note: This is not required for every project.
BackEnd_Project: [JDeveloper Fusion Web Application ADF] This project will house the data components for the databases and web services. This can also include a custom content repository or a WebCenter Content connection. To start I created a simple POJO data-bound control.
Master_Project: [JDeveloper WebCenter Portal Framework Application Project] This will be the collection of every other project as shared resource jars. MDS Configurations and Site Resources will be included here (i.e. navigation, security, site templates, etc.). We will name this Master WebCenter Framework Portal Project: ‘AcmePortal’. This is instrumental for managing site resources that can be updated without a complete redeploy of the entire Portal.

JDeveloper Project Screenshots

UX Project

Components Project

Commons Project

BackEnd Project

Master Project

Conclusion

This is a high-level walkthrough of the layout for our projects and assets. This allows our team to work simultaneously in an agile environment to create a portal and answer the business needs for the Acme Company. It is absolutely imperative that these separate projects are continuously growing and dependencies are consistently updated in order to encourage a fail-fast integration approach. Stay tuned for my next post which will describe how to seamlessly build and integrate all of these projects together. The image below displays the simple Acme Portal using a single portlet on the home page to show each piece working together.
Project source files
Article originally appeared on David Parry <DEV/> (http://davidparry.com/).
See website for complete article licensing information.