building very rich portals using oracle fusion …...building very rich portals using oracle fusion...

107
Building very rich portals using Oracle Fusion Middleware 11g Eric Marcoux Université Laval Training days 2009 Training days 2009 UTOUG

Upload: others

Post on 23-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Building very rich portals using Oracle Fusion Middleware 11g

Eric MarcouxUniversité Laval

Training days 2009Training days 2009

UTOUG

Speaker Qualifications

• Chief Architect, Université Laval• Oracle ACE Director• Active member in Oracle and Java User Groups

• IOUG, ODTUG, OraGec and JavaQuébec• Speaker since 2006

• Collaborate, Kaleidoscope, OraGec,

www.ulaval.ca

• Collaborate, Kaleidoscope, OraGec, JavaQuébec, OpenWorld, JavaOne, Alliance, Gartner and many other Oracle User Group events in North America

Agenda

• The ENA project• Technical architecture• Software architecture

• Accessing the data• Implementing the SOA• Building the UI

www.ulaval.ca

• Building the UI• Development environment• Security

Objectives

• Discover two Fusion Middleware 11g products:• Fusion Development Platform• WebCenter

• Learn how you can use these products to build your own Fusion Application

• Learn best practices learned from the field

www.ulaval.ca

• Learn best practices learned from the field about using these products

• Learn how these products can be reused inside your organization

The ENA project

What does ENA stands for ?

• ENA means:• Environnement Numérique d’Apprentissage

• Learning Management System

www.ulaval.ca

What is it exactly ?

• Learning Management System• portal, content and collaboration tools for our students, teachers and courses

• academic tools• highly customizable• à la Web 2.0 (very rich web pages)

www.ulaval.ca

• à la Web 2.0 (very rich web pages) • SOA based • integration points with HR, High-Ed and other existing apps

• Will replace WebCT and all other current existing eLearning systems at Université Laval

What functionalities does it offer ?

• Portal services:• student’s portal, teacher’s portal, course web site, web services integration + drag and drop

• Academic tools:• syllabus, gradebook, drop boxes, live quizzes

• Content management services:live Web page editing, drag and drop features,

www.ulaval.ca

• live Web page editing, drag and drop features, document management

• Collaboration tools:• forums, RSS feeds, wikis, presence server, email, calendar, workspaces, personal spaces, live classes

What it looks like ?

www.ulaval.ca

Course web site

www.ulaval.ca

Course web site in edit mode

www.ulaval.ca

Course content & activities

www.ulaval.ca

Course content & activities in edit mode

www.ulaval.ca

Rich text box in edit mode

www.ulaval.ca

Course academic material

www.ulaval.ca

Forums

www.ulaval.ca

Forum thread

www.ulaval.ca

Forum evaluation form

www.ulaval.ca

Poll

www.ulaval.ca

Evaluations

www.ulaval.ca

File upload

www.ulaval.ca

Document search

www.ulaval.ca

Dialogs

www.ulaval.ca

Calendar (still under dev)

www.ulaval.ca

Who are our users ?

• Students (38k)• Teachers (4k)

www.ulaval.ca

How much, how long, when ?

• 13M$• 2 years of development effort

• 3000 days / person• January 2010

• Conversion begins• First faculty to begin

www.ulaval.ca

• First faculty to begin• June 2010

• Public release• Our first delivery is almost over

Technical architecture

What products are we using ?

• Oracle WebCenter 11g (core component): • portal engine• portlet integration framework + catalog drag and drop• collaboration services• web application integration framework• customization framework (page composer)

• Oracle Universal Content Management 10g (formerly Stellent): • document management (records manager + metadata)• web content management (site studio integrated into WebCenter)

www.ulaval.ca

• web content management (site studio integrated into WebCenter)• search features

• Oracle ADF 11g + JDeveloper 11g: • web 2.0 (rich dynamic web pages)• custom web applications• custom portlets• custom task flows (published into WebCenter page composer)• WebCenter customization

What products are we using ?• Oracle DB 10gR2 + RAC

• application’s data• Oracle Identity Manager 9.1

• identity and security management (application security)• identity provisionning

• Oracle Access Manager 9.1• authentication and authorization• web single sign-on

• Oracle Entitlements Server• contextual authorization

www.ulaval.ca

• contextual authorization• Oracle Internet Directory

• application security (WebCenter + ADF)• MS Exchange 2007:

• email • calendar

• MS Active Directory 2003• corporate security data (user codes, passwords, etc.)• MS Exchange security data (mailboxes + calendar)

What products are we using ?

• F5 BIG IP• SSL encryption• load balancing• web page caching

• Jive Forums Gold• forums

• Articulate: • live quizzes

www.ulaval.ca

• live quizzes• Rusticy Software:

• SCORM engine• Open Source products :

• Apache Maven + Continuum• Subversion• XPlanner + Jira• Various Java libraries

Why Oracle Fusion Middleware 11g ?

www.ulaval.ca

Why Oracle UCM ?

• #1 content and document management product in Gartner’s magic quadrant

• Robust, already used in large size companies• Easy to install, use, configure and administer• Web services API available• Java API very easy to use• Very complete (security, document management and

www.ulaval.ca

• Very complete (security, document management and conversion, etc.)

• JCR 170 compliant (easy integration withWebCenter)

• Enterprise search engine• Multi-usage product (also used to manage our 400 web sites)

Why Oracle ADF ?

• Easy to teach, learn and use• Robust, fast • Has been there since a long time• 100+ visual components available

• very nice look and feel• Web 2.0 compliant

www.ulaval.ca

• Web 2.0 compliant• Declarative (require less programming)• SOA easy to implement• 4GL Java (relational DB approach)

• concepts similar to Oracle Forms

Software architecture

Goals and principles

• Open • standards based• close to the open source community• ability to integrate web apps made by different technologies (PHP, Microsoft, PL/SQL WP, etc.)

www.ulaval.ca

PL/SQL WP, etc.)• Flexible• Modular (for reusability throughout the campus)

• data, services, ui• SOA based

Integration of multiple components, documents and tools together

Oracle Access Manager

ADF Task ADF Dynamic Menu

www.ulaval.ca

Elluminate live

WebCenter Wiki + Blog

Jive Forums

MS Exchange

Content stored into UCM

Content managed by WebCenter Composer

FlowMenu

Software architecture diagram

www.ulaval.ca

Fusion Development Platform

Oracle Fusion Architecture

Oracle Application Development Framework

www.ulaval.ca

Oracle Application Development Framework

www.ulaval.ca

Oracle ADF Faces

• 100+ AJAX visual components • visual component drag and drop

• component palette• data control palette

• properties window• events• real time feedback

www.ulaval.ca

• real time feedback• New look (rich UI)• Task flows• Extensible• Skin feature

Is Oracle ADF Faces similar than Forms ?

Oracle Forms ADF Faces

Java UI Renderer ADF Faces Render kit

UI Logic Expression Language

www.ulaval.ca

UI Logic Expression Language

Block UI Defn Managed beans

PL/SQL Java

Oracle ADF Bindings

• Glue between your business services, data and your UI

• Textfield = automatically display and update a column in a DB table

• Button = automatically invoke a business service• Use a metadata XML scheme

www.ulaval.ca

• Reduce the learning curve• Very useful for developers new to Fusion

• Reduce the amount of Java code required

Oracle ADF Business Components

• Cover business services and data access• Three kinds of objects:

• Application module• Business services• Transactions• Concurrency

• View objects• Your “SELECT” statement

www.ulaval.ca

• Your “SELECT” statement• Master / detail relationships• LOV

• Entity objects• Handle INSERT, UPDATE and DELETE operations• Contains unit validations

Oracle ADF BC Components

View Object

• Three component :

• Application Module

• View Object

• Entity Object

Application Module

www.ulaval.ca

View Object

Entity ObjectADFBusiness Components

Is Oracle ADF BC similair than Forms ?

Forms ADF BC

Application Forms Builder Application Module

Triggers – Application level Application Module

Triggers – Block level Entity object

Data block (query) View object

www.ulaval.ca

Data block (CRUD) Entity object

Package code Application Module (createCallableStatement())

Sequences Entity object

Actions Application module

JDeveloper 11g

• The “new” Oracle Developer tool• Used to create custom Fusion Applications

+ WebCenter portals+ BPEL processes+ PhP applicationsand much, much more

www.ulaval.ca

and much, much more• Easy to install and configure (zip file – OUI to come this year)

Some concepts before we drill down...Client tier Web tier Business tier EIS Tier

EnterpriseJava Beans

(EJB)

ADF

JSF ADF Faces

JavaApplication

Standalone Java Runtime

JSP

www.ulaval.ca

ADFBusiness

Components

Servlets

Browser

Pure HTML + JavaScript

Applet

HTML Files

TopLink

Database

Where do you run each tier ?Client tier Web tier Business tier EIS Tier

OracleInternet Explorer

FirefoxOracle

Application Oracle

Application

www.ulaval.ca

OracleDatabase

Server

Firefoxetc.

Application Server

ApplicationServer

By the way, does Forms as tiers too ?

Client tier Web tier Business and EIS tier

www.ulaval.ca

MVC... Another important concept

• “M” stands for Model• takes care of persistence logic

• data access• takes care of business logic

• often associated with SOA• “V” stands for View

www.ulaval.ca

• “V” stands for View• takes care of web pages

• “C” stands for Controller• takes care of navigation between web pages

Accessing the Data

Entity objects vs View objects

• Component based approach:• DML operations -> Entity object

• one database table = one Entity object• contains unit validations (field, component) • exposed in one or more View objects

• SQL queries -> View objects

www.ulaval.ca

• SQL queries -> View objects• read-only• modification: aggregation of Entity objects• static and dynamic SQL queries (using params)• embedded iterator

• Master/detail relationships -> View Links

Entity objects

Attribute definition

www.ulaval.ca

Unit validations

Attribute definition (DB column mapping)

View objects

SQL Query

www.ulaval.ca

Binding variables

View links

Cardinality

www.ulaval.ca

Relationship

Oracle ADF BC Component Diagram

Business Component

www.ulaval.ca

Component Palette

Component Diagram

ADF BC Pros

• Easy to learn• Relational DB approach (perfect for 4GL programmers like Oracle Forms developers)

• Well integrated with the ADF Bindings feature• Easy to map a data table and manage its content

www.ulaval.ca

content• Lots of documentation available• Requires less Java coding

ADF BC Cons

• Does not do everything• Still requires Java coding

• Not much but minimum knowledge is required

• Pure Java programmers usually don’t like that approach (relational vs object oriented)

www.ulaval.ca

approach (relational vs object oriented)• Limited with complex use cases and relationships involving many childrens

• All validations are done on the server side (requires a network round trip each time)

• Limited for “wizards” like web pages

Implementing the SOA

High level overview of our SOA implementation

ENA

Common services

Java

BPEL

www.ulaval.ca

Facades

Business services

OrchestrationCustomers

BPEL

ADF BC

WSDL

Technical overview of our SOA implementation

Ap

plic

atio

n

Select statement

Business logic

www.ulaval.ca

Da

tab

ase

A

DB Row

Service facade in JDeveloper

Application modules

Data services

www.ulaval.ca

Services

Data services

Business services

Business service in JDeveloper

www.ulaval.ca

Application module

Business service in JDeveloper

Java class

www.ulaval.ca

SOA Pros

• Aligned on business processes• Business processes reusability • Share business processes with existing systems and partner applications

• Reduce maintenance costs• Enhance flexibility:

• Interoperability (multiplatform

www.ulaval.ca

• Interoperability (multiplatform communication)

• Better separation of business services between your applications

• SOA modeling, debugging and testing tools integrated into JDeveloper

• one tool for you development team

SOA Cons

• Oracle BPEL is still hard to learn• even with a course

• Need to be tied to an enterprise architecture if used larger than for one project

• very important change to manage• Configuration management harder to do

www.ulaval.ca

• Configuration management harder to do• Each change of a service interface require an impact analysis and must be planned

• ROI is long term not short term if you use this approach for your whole organisation

Building the UI

How are we building this system ?

WYSIWYG editor

www.ulaval.ca

Visual component palette

Properties window

ADF Faces component palettes

Data control palette

Component palette

www.ulaval.ca

ADF Faces components

www.ulaval.ca

ADF Faces data binding

• You can bind three things :• Action (method)• Value (database field)• Iterator (LOV)

www.ulaval.ca

Action binding

You can create your own components

Custom components JSF tags

Custom components Java classes

www.ulaval.ca

JSF tagsJava classes

Reusability with ADF

• Templating for ADF technology• Define page templates and task flow templates

• Task flows• Develop reusable application flows

• Page RegionsConstruct a page from fragments

www.ulaval.ca

• Construct a page from fragments• Declarative Components

• Bundle components together• ADF Libraries

• Create libraries of components and expose them in the resource catalog

ADF Faces Pros

• Easy to learn and use• WYSIWYG more stable in 11g than in 10g• You can create your own components• You can customize existing components• Data bindings are very useful• Requires less Java coding

www.ulaval.ca

• Requires less Java coding• New cool look and feel visual components• Very stable and flexible• Apache Trinidad is the heart of 11g

ADF Faces Cons

• Creating your own components requires advanced Java and JSF skills

• Not everything can be done in the WYSIWYG editor

• May not work well when using your own custom components

www.ulaval.ca

custom components• Skin still hard to use

• Easier than in 10g• The new AJAX features requires you to think your web pages differently than in 10g

How are we using the task flows ?

Banner

Use case(ADF dynamic

www.ulaval.ca

(ADF dynamic region displaying taskflow)

Menu(Data driven taskflow)

LegendRed: Defined in page templateBlue: Varies according to navigation

ADF Faces task flows and fragments

Fragment

www.ulaval.caConditions Task flow

Task flows can be reused

www.ulaval.ca

ADF Faces Task Flows Pros

• Very easy to learn and use• Very useful• Can be used extensively• Enhance reusability of web pages• Reduces Java coding• Ease maintenance

www.ulaval.ca

• Ease maintenance• Visual diagrams

ADF Faces Task Flows Cons

• When used with fragments, may be hard to understand at first

• Not a JSF standard yet• Oracle specific

• Complex task flows sometimes slows JDeveloper

www.ulaval.ca

JDeveloper• No repository available for reusability

• Hard to package if you want to reuse a task flow on another project

WebCenter framework

www.ulaval.ca

LegendBlue: First deliveryRed: Second delivery

WebCenter into JDeveloper

• You can drag and drop:• portlets • JSF components (ex.: WebCenter composer)• task flows

• Components are customizable at runtime

www.ulaval.ca

WebCenter composer components

WebCenter customization (before and after)

www.ulaval.ca

Metadata Service (MDS)

User CustomizationTed’s Page+

+

www.ulaval.ca

Base Document

John’s Page

Application Customization

MDS Customization Engine

WebCenter in view mode

Block(task flow)

WebCenter Managed zone (page composer – view mode)

www.ulaval.ca

Block (task flow)

Block (task flow)

WebCenter in edit mode

WebCenter zone (page composer – edit mode)

www.ulaval.ca

WebCenterResource Catalog

Dynamic content location

MDS

www.ulaval.ca

DB

UCM

UCM UCM

WebCenter Pros

• Lots of collaboration services available• Task flows and WebCenter are a good fit• Enhance reusability• Tight integration within JDeveloper• Can reuse portlets from Oracle Portal• WebCenter composer is very useful

www.ulaval.ca

• WebCenter composer is very useful• WebCenter framework offers very good integration services

WebCenter Cons

• Some collaboration services requires additional knowledge to customize (like Jive Forums that is JSP not JSF)

• Not intuitive at first• Requires you to read documentation to understand

• Some collaboration services requires other services to work (ex.: announcements requires

www.ulaval.ca

services to work (ex.: announcements requires Jive Forums to work)

• Some collaboration services cannot be customized or are limited

• Content integration service is read only• Still some bugs and features not working in 11g beta

Development environment

Configuration management tools

• Collabnet’s Subversion (open source)• Configuration management tool

• Java related files• DML scripts• Word documents

• JDeveloper plug-in

www.ulaval.ca

• JDeveloper plug-in• developers

• Tortoise SVN• developers, DBA and functional analysts

Application builds tools

• Apache Maven (open source)• Web application build automation• Automatic deployment of new Java libraries on the developer’s computers

• Configuration change automation• Apache Continuum (open source)

www.ulaval.ca

• Apache Continuum (open source)• Automatic deployment on our test servers• Nightly build automated

Bug tracking tool

• Jira (open source)

www.ulaval.ca

Project management tools

• MS Project• Project schedule and delivery plans

• XPlanner (open source)• Timesheet tracking system

www.ulaval.ca

Security

Web Single Sign-On requirements

• WebCenter 11g• Custom Web applications (ADF based)• Universal Content Management• Elluminate• Jive Forums• Rusticy Software (scorm engine)

www.ulaval.ca

• Rusticy Software (scorm engine)• Microsoft Outlook Web Access• Microsoft Exchange (calendar)

How are we managing WSSO ?

• We are using Oracle Access Manager for WSSO

www.ulaval.ca

Identity management requirements

• The following tools manage their identities in their own way:

• WebCenter 11g (LDAP)• Custom Web applications (JAAS – LDAP)• Enterprise Content Management (LDAP + DB)• Elluminate (LDAP + DB)

www.ulaval.ca

• Elluminate (LDAP + DB)• Jive Forums (DB)• Rusticy Software (DB)• Microsoft Outlook Web Access (MS AD)• Microsoft Exchange (calendar – MS AD)• Oracle DB

How are we managing our identities ?

• We are using Oracle Identity Manager

www.ulaval.ca

How do we manager access permissions ?

• We are using Oracle Entitlement Server for contextual authorization

www.ulaval.ca

Want to know more about Oracle IDM ?

• Come to see my 2h15PM training session• MPDC 209

www.ulaval.ca

Conclusion

ENA: more than just an academic system

• Students and teachers will be able to customizetheir own portals by themselves

• Faculties and departments staff will be able to develop, add and share their own functionalities

• Reusable development environment:• Visual components (JSF)

www.ulaval.ca

• Business services (SOA)• Data components

• One set of tools to integrate them all• One programming language to learn (Java)• Will be used to create future applications ex.: Employee portal

What we have learned so far ?

• Web 2.0 requires you to think different• Don’t forget to think about security

• Think about doing a risk analysis• Using beta products may be a high risk (be careful)• Limit the number of products you are using• Document your solution

www.ulaval.ca

• Try using the same versions (Oracle 10g vs 11g)• Relay on standards, it’s always useful• Use a development platform that allows you to use

OS products, API and libraries when possible (can lower your dev costs)

• Identify your maintenance team early in the process

What more ?

www.ulaval.ca

Thank You

• Email: [email protected]• Blog: http://emarcoux.blogspot.com

www.ulaval.ca