1 Implementation Patterns for Oracle Universal Content Management Brian “Bex” Huff Chief Software Architect
Nov 01, 2014
1
Implementation Patterns for Oracle Universal Content Management
Brian “Bex” HuffChief Software Architect
22
Agenda
Intro
Cover common UCM implementation patterns• Usually fall into one of 4 groups
1. Integrating with Technical Architecture
2. Integrating with Organizational Structure
3. Re-Branding UCM Interface
Building Custom Functionality
33
1) Integrating with Technical Architecture
Security Integrations
Storage Model
Content Enhancing Applications
Enterprise Applications
Scanning and Imaging
4
Security Integrations
Content management system manage content, not users!• Users should always be stored in a remote system• “Local” users only for development
LDAP, Active Directory
In 11g, all security is handled by WebLogic• Create connectors to LDAP system• Some issues with Active Directory
4
5
Storage Model
UCM needs a shared infrastructure for file storage• Clusters need to both point to the same resources
Filesystem (default)• Good for small web-centric content
Database / Oracle Secure Files (11g)• Good for business documents with a lot of block-level similarities
Hierarchical Storage Management• Combines fast disk, slow disk, and tapes for cost-effective storage• Sun SAM, with WORM capabilities
And many, many more!• UCM’s FIleStoreProvider can be customized to work with almost anything
5
6
Content “Enhancing” Applications
After creation and capture, the next value-add is “enhancement”
Annotation engines• Mark up documents with notes, redaction, highlighter
Translation• Manage changes to content, and which ones warrant translation
Controlled Thesaurus• Extract metadata, keywords, and fine related content
6
7
Enterprise Applications
E-Business Suite Adapter
Siebel Files Replacement
Peoplesoft Adapter
SOA Suite Connectors
Secure Enterprise Search
Oracle adding more all the time...
7
8
Scanning and Imaging
Imaging and Process Management connectors• Link records in your applications to attachments in UCM• EBusiness Suite, JD Edwards, Peoplesoft• Uses Oracle Application Extension Framework (AXF) to connect
Can also scan directly to UCM• Oracle Document Capture, Kofax Capture Export Connector• Read bar codes, OCR, and speed up content ingestion
8
9
2) Integrating with Organizational Structure
Metadata Model
Document Security Model
Content Profiles
BPM / Workflows
Folders and Desktop Contribution
Site Studio Web Pages
9
10
Metadata Model
Types, audiences, related products, keywords, actions, status
Keep it simple!!!• Don’t try to create the “prefect” taxonomy• You business changes too often• Your users’ needs are too many
A “growable” taxonomy is better than a “complete” taxonomy• Get to know UCM tools for “pruning” and maintaining your model
10
11
Document Security Model
Security comes in multiple parts:• Groups, Accounts, Rights, Roles, Users, and Access Control Lists
Groups/Accounts are collections of documents, not users!• Easily confused with “LDAP Group Membership” for users
Rights are abstract access rights to Groups/Accounts• Read / Write / Delete / Admin
Roles are containers of “Rights” for Groups only
Users are given Roles, and Account Rights directly• Usually by mapping to LDAP “Group” membership
11
12
Document Security Model, cont.
Access Control Lists• Users get direct control over who can do what with documents:
• Bob can read, Sue can read/write, Joe can read/write/delete
Common recommendation: 2 dimensional group/account model• Groups for classification: Public, Internal, Secure• Accounts for department: Accounting, Sales, HR• VP of Sales can read Secure documents in Sales account...• ... but cannot read Secure documents in HR account!
Complex security models can affect performance• Reduce ACL usage, focus on groups/accounts blend• Minimize the number of “buckets” to maximize performance
12
13
Content Profiles
Simplify the metadata model• You may require 100 metadata fields to describe all types of content• But... any one type may only need 10 fields• Profiles allows you to minimize the “clutter”
Can do much more than organize• Create “default” values on pages to minimize data entry• Minimize the number of values in drop-down lists• Block certain users from selecting certain values• Create “derived” values to store based on what they entered
13
14
Content Profiles, Before and After!
14
15
BPM and Workflows
Internal workflows• UCM has a built-in custom workflow engine• Works well, but not standards compliant• Good for simple content-centric workflows
External workflows• Many “enterprise” workflows require input from other systems• Also, may prefer standards-compliant metadata language
• BPEL, BPM• UCM connects with external workflow engine via Web Services
• Workflow can start in UCM, or a different enterprise application• Useful for “orchestrating” large processes
15
16
Folders and Desktop Contribution
Drag-and-drop interface to contribute via a desktop• UCM looks like a shared file system
Everybody understands them... BUT...• Folders don't really scale enterprise-wide
A structure makes sense to you...• But doesn't make sense to everybody!
Be sure not to rely too heavily on folders• Good for quick contribution• Also need "tagging" so others can find them• Make sure folders have reasonable metadata defaults• Use the “pop-up” feature in UCM 11g to encourage additional tagging
16
17
Folders and Desktop Contribution, cont.
17
18
Site Studio Web Pages
Site Studio is the Web Content Management tool• Good for entire dot com web sites and intranet sites• Can eve “push” managed web content to existing web applications!
• Site Studio for External Applications
Site Studio a great for content-centric web sites• For web forms, need additional applications: WebCenter, AJAX, etc.
Intranet pages have some of the best "bang for the buck"• I installed UCM... now what???
Intranet portal sites good way to "get your hands dirty"• Get experience with basic security, workflow, metadata• Build the knowledge you team will need for bigger projects
18
19
3) Re-Branding UCM
Custom UI with Component Architecture
Custom UI with Site Studio
Custom UI with Remote Application
19
20
Custom UI with Component Architecture (CA)
CA is the “framework” that UCM is built upon• Code, resources, files, tables, components, and dynamic html• Java, HTML, XML, JavaScript, SQL, and IdocScript• From top to bottom, a Service Oriented Architecture
Every page delivered by UCM is assembled with CA• What SQL to call, what Java to run, rendered with which HTML template?• Can also call services directly and get back XML or JSON
If familiar with it, it’s the fastest way to modify the UI• New skins, new buttons, new data displayed on existing forms
20
21
Custom UI with Site Studio
Create a slimmed-down web form from scratch• Run a simplified search form, display results• Retrieve and display action items in a workflow• Perform check-ins, or display RSS feeds
Easy to place these forms on existing Site Studio pages• Can run “scriptable” services with IdocScript• Other services need a form post
Drawback: you need to create entire form• You cannot use a component to simply add one new field• Must build up the form yourself in plain HTML• Crops up if you want complex data entry / option lists
21
22
Custom UI with External App
Create a slimmed-down web form from scratch• Run a simplified search form, display results• Retrieve and display action items in a workflow• Perform check-ins, or display RSS feeds
Can use Web Services or other connectors• For Java, use RIDC connector to run web services / download files• For PHP/.NET/others, use SOAP Web Services• Can use SOAP with Java, but RIDC is simpler and has more power
Drawback: you lose a lot of context• Building a lot of pages from scratch• Metadata, security, workflow context must be determined
22
23
jQuery and Web-Oriented Architecture
Web-Oriented Architectures more lightweight that SOA• Pass IsJson=1 into any UCM service request, for JSON-formatted data!• Can be used to integrate with JavaScript frameworks like jQuery:• http://bezzotech.com/library.html
One gotcha: single-origin JavaScript policy in browsers• Dumbest. Security. Feature. Ever.• Can only make requests back to originating server• True mashups (like Google Maps) requires more flexibility• Doesn’t even add any security!!!
Remote applications need a proxy to “fool” the browser• Post to a proxy on the same server, instead of directly to UCM
23
24
4) Building Custom Functionality
Custom Behavior with Component Architecture
Custom Behavior in Remote Applications
24
25
Custom Behavior with Component Architecture
New services / modifications to existing services• Create additional life-cycles for the content• Execute custom code when specific “events” occur in UCM
• content creation, deletion, modification• fairly easy to “plug-in” new code
What about 100% entirely new code? Where should it go?• If new code affects the life-cycle of a document, it should be in UCM• If not -- like a custom UI -- it makes no difference
Advantages to code built-in to UCM:• Similar to a “stored procedure” in a database• More context-sensitive, usually faster, gain benefits of security model
25
26
Custom Behavior in Remote Applications
Use UCM as a “unstructured content repository”• Create UI and most custom functionality in custom code• Implement content-centric code inside UCM as a component
Recommendations:• Use WebCenter / ADF if integrating with other Oracle Applications• Use lighter framework if creating front-facing dot com site
• jQuery / Spring / AJAX a good blend for JEE applications
26
2727
Fill out your session evaluation! Session: 112
Come visit Bezzotech in Booth #850• Near the Oracle Demo Pods• Come see a demo: Translation Management, Enterprise Storage
Three other talks today (Wednesday):• 9:15am, Fusion Applications UX: Transforming Work into Insight• 10:30am, Top 10 Security Vulnerabilities in Web Applications• 1:00pm, Creating and Maintaining an International Web Site
My Company: http://bezzotech.com My Blog: http://bexhuff.com My Self: [email protected]
Questions?