building very rich portals using oracle fusion …...building very rich portals using oracle fusion...
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
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
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
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 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
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
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
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
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)
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
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
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
How are we building this system ?
WYSIWYG editor
www.ulaval.ca
Visual component palette
Properties window
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 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 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
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
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
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
Project management tools
• MS Project• Project schedule and delivery plans
• XPlanner (open source)• Timesheet tracking system
www.ulaval.ca
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)
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 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
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