Oracle UCM Implementation Patterns


Published on

A collection of common customizations and implementation patters with Oracle UCM

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Oracle UCM Implementation Patterns

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