Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

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?