SlideShare a Scribd company logo
Top 10 Ways To Integrate With Oracle ECM Brian “Bex” Huff Chief Software Architect
Agenda ECM integration basics What’s involved, why its useful The Top 10 ways to integrate Out-of-the-box tools Frameworks Web services  Some honorable mentions… Less common, but still important! Recommendations
Integration Basics UCM is a service-oriented architecture Easy to consume services from remote applications Easy to customize services for your needs Integrations come in several forms Pre-built integrations Just install, and configure. Framework integrations Lets you easily create content-rich applications and interfaces Web-service integrations Direct APIs for the most options and power. Customizations to the applications Integrate the back-end with your systems.
The Top Ten… Secure Enterprise Search SOAP Content Integration Suite (CIS/CPS) Open WCM JCR Adapter and WebCenter AJAX / Mashups AquaLogic Ensemble (WebCenter Services) Records Management Adapters BPEL Workflows Custom components and security integrations
Secure Enterprise Search Enables you to search across multiple systems Content Manage Systems: Stellent, Documentum, FileNet Legacy system: shared file systems, web sites, Lotus Notes Enterprise Applications: Siebel Generic database table search Multiple security options Global security policy, application specific policy Can oranize results differently based on user context Department, location, language, etc. Easy to set up Multiple connectors, generic spiders, plus integration API
Secure Enterprise Search screen Find information wherever it lives in your organization. Browse content hierarchy from your search results. Sort results by relevance, date or other criteria. Login to enable secure access to any application you are authorized to see. Filter results by topics or metadata values such as record type, author, or other criteria. See search term highlighted in context in your hit results.
SOAP Open XML-based protocol for application integration Typically over the web (HTTP), or in messages Fundamental part of Microsoft’s .NET framework Toolkits exist for almost every language and platform Built into Content Server SOAP support built into Content Server (7.5 and above) WSDLGenerator  component bundled with Content Server (10gR3 and above); separate extra for 7.5.x Add  IsSoap=1  to any content server URL Web Services Description Language (WSDL) Helps SOAP toolkits parse XML into easy to use objects One object to execute the service Binds the XML request and response into data objects
SOAP Benefits All UCM services available through SOAP Can create XML request manually, or use WSDL 7.5.x and later – pass  IsSoap=1  into any URL or request to get back SOAP All the benefits of XML and HTTP Simple, extensible, used almost everywhere Most developers comfortable with the technology Toolkits available for nearly every language Java, C, C++, C# Python, Perl, PHP, Ruby JavaScript, Flash, Flex
SOAP Challenges All the drawbacks of XML and HTTP Stateless requests – both good and bad Standard security challenges with HTTP Verbosity presents performance challenges SOAP (and WSDL) considered needlessly complex Some prefer ReST-based approach UCM is mostly, but not entirely, ReST-ful SOAP with ReST-like simplicity… Use the  IsSoap=1  flag Use the URL Mapping feature built-in to 10gr3
SOAP vs. ReST Fewer tools available for security, auto configuration, etc. No WSDLs Although it usually is simple enough to not need these tools HTTP is kind of broken: sometimes it needs help Messaging, polling, encoding, quality of service. HTTP not good for all use cases. Difficult to separate the good ideas from ReST dogma
Content Integration Suite (CIS/CPS) Standards compliant JEE application for UCM Client connector, plus service cache Supported on all major Java app servers Oracle App Server, Websphere, WebLogic, JBoss, Tomcat Plain Old Java Objects Complete coverage of UCM API Common services available as objects-oriented API Can execute any UCM service Can also interface with IPM
CIS/CPS Continued CIS allows Java apps to communicate with UCM CIS server connects to Content Server CIS client is used in your app to connect to CIS server CIS server caches results for faster performance in peak hours Server supports multiple interfaces: JMS, JCA, EJB, RMI  Content Portal Suite (CPS) for J2EE Portal Server Uses CIS to connect to UCM Contains sample portlets for interacting with UCM Search, Library, Contribution, Workflow, Admin Federated Search (Combined search over I/BPM and UCM)
Open Web Content Management Distributed model for web content management Manage web content in containers outside the repository Display images, text, converted Word docs Alter content in-context with the application! Standard Site Studio contributor editor Launch in remote portal or web app Uses standard workflows, conversion, subscription, etc. Change it in one portal, see it change in them all!
Open WCM Architecture
Java Content Repository (JCR) Adapter Java Content Repository Java standard for content management Formerly known as JSR170 and JSR283 Oracle’s JCR adapter connects to UCM through CIS Achieves Level 1 compliance with JCR Easy integration with WebCenter ADF components  Create a JCR  Data Control Bind to ADF Tables and Trees Show thumbnails, content, and limited metadatas
JCR Adapter Limitations Only works with Java Cannot connect to SharePoint with JCR connectors Less powerful than SOAP or CIS alone Very limited feature set Gives an awkward view of the content repository Limited ECM vendor adoption; not a popular standard IBM, EMC, and Microsoft have dropped it in favor of CMIS Oracle and others will likely follow suit
Asynchronous JavaScript and XML (AJAX) Several AJAX options Use semi-ReSTful SOAP interface Put  IsSoap=1  into any URL to get SOAP formatted response Create a read-only SOAP request in JavaScript Search, content info, workflow info, etc. Use “Schema” APIs to download option lists Lists of content metadata Run queries, cache results in JavaScript files Mash-up data with other JavaScript accessible resources
Aqua Logic Ensemble The problem: application proliferation Dozens of web applications, many done outside IT control. Portals, web applications, Java, .NET, PHP, Ruby on Rails IT forced to support whatever becomes business critical. Management nightmare! Impossible to find the application you need. Inconsistent security policies. How to solve this? Force everybody to agree to one single framework / language? Or, mash-up the applications into one interface?
Ensemble Architecture Ensemble Mashup Ensemble Server .NET App JSP Mashup PHP Mashup .NET Mashup Pagelet Pagelet PHP App JSP App Pagelet
Ensemble And UCM Treat UCM like every other web applications Create “pagelet” of the screen you want Site Studio page Workflow queue Dynamically converted content Images, digital assets, folios Embed UCM Pagelet anywhere in your enterprise Embed other Pagelets inside a Site Studio web page
Universal Records Management Adapters Life cycle management is critical for all organizations Retain content for specific time, according to rules and regulations Destroy content once it is no longer relevant, or useful Reduce storage cost, and legal risk One gigabyte of data: $0.25 of hardware, $60 / year to maintain,  $2500  for a lawyer to review Where is your business critical content??? No matter what, its not all in your UCM system. Email archives, SharePoint, file systems URM Adapters manage life cycle no matter where it is Custom connectors, generic adapters
URM Architecture Oracle Universal  Records Management Discovery Services Central Policy Management Oracle UCM Adapter Oracle I / PM Adapter File Servers Adapter Adapter Adapter Services Adapter: Oracle UCM Adapter: Oracle I / PM Adapter: File Servers Adapter: Microsoft Sharepoint Adapter: Symantec Vault Adapter: Generic Adapter Services Notification Services Physical Records Manager Records Manager
BPEL Workflows Business Process Execution Language (BPEL) Workflow language for tying systems together Some human workflow capabilities (BPEL4People) Graphically design your workflows Pass content from content server to enterprise apps Process through external workflow Check-in content, update metadata, others? Tie together processes with SOAP Workflow events trigger a web service Workflow approve, search, check-in, update Makes application integrations simple!
BPEL Diagram
Custom Components and Security All of UCM is a service oriened architecture Use “Component Architecture” to add/modify services Anything you can do in Java, you can do here Used mostly to add new life-cycles to content items Also used to quickly modify existing interface Execute code when specific  Filter Events  occur When the server starts-up When an item enters workflow, is checked-in, or deleted Add custom code to a service, or override standard behavior
Honorable Mentions Content Management Interoperability Services (CMIS) Emerging specification that will replace JSR170 Only at version 0.5, but has significant potential Oracle Real-Time Decisions Uses analytics to determine what content people might want Next-best activity Great idea, but no productized integration yet
Honorable Mentions (continued) Information Rights Management Oracle Document Capture Oracle Universal Online Archive Siebel Files replacement ActiveX controls for Windows applications Command-line utilities for administrators
Which Should You Use? Are you integrating a Java front-end? CIS or CPS is probably what you want Use from Spring, ADF, or Web Center frameworks SOAP with WSDLs a good second choice Are you integrating a non-Java front end? SOAP with WSDLs is the best choice Are you writing a desktop application? SOAP a good choice for behind-the-scenes integration
Which Should You Use? Are you integrating with a remote repository? BPEL Workflows sometimes the easiest way Direct SOAP or CIS a good second choice Sometimes need custom Java component Connect with standard Java libraries from your code JDBC, LDAP, IMAP, SOAP, RSS If you need compliance or Records Management, use Agents Generic .NET and Java agents have 80% functionality you need Do you want to execute code when specific events occur? Example: on startup, when content is checked-in or deleted Need Java component: Filter or chained Service Handler Hundreds of filter events and services available for customization
Important Resources Books: The Definitive Guide To Stellent Content Server Development http://www.amazon.com/dp/1590596846 Standard Stellent documentation: Content Integration Suite / JCR UCPM API Developer’s Guide, Content Server JCR Repository Adapter   Java Components Working With Components SOAP –  Using WSDL Generator and SOAP Content Server JCR Repository Adapter
More Important Resources… Transforming Infoglut! A Pragmatic Strategy for Oracle Enterprise Content Management. Bex Huff and Andy MacMillan Available on Amazon in January 2009
Special Thanks… Independent Oracle User Group http://ioug.org For inviting me to talk here Chris Bucchere [email_address] For helping me with the Ensemble demo
My Company:  http:// bezzotech.com My Blog:  http:// bexhuff.com My Self:  [email_address] Questions?

More Related Content

Top10waystointegratewithoracleecmbezzo 1222791433931452 9

  • 1. Top 10 Ways To Integrate With Oracle ECM Brian “Bex” Huff Chief Software Architect
  • 2. Agenda ECM integration basics What’s involved, why its useful The Top 10 ways to integrate Out-of-the-box tools Frameworks Web services Some honorable mentions… Less common, but still important! Recommendations
  • 3. Integration Basics UCM is a service-oriented architecture Easy to consume services from remote applications Easy to customize services for your needs Integrations come in several forms Pre-built integrations Just install, and configure. Framework integrations Lets you easily create content-rich applications and interfaces Web-service integrations Direct APIs for the most options and power. Customizations to the applications Integrate the back-end with your systems.
  • 4. The Top Ten… Secure Enterprise Search SOAP Content Integration Suite (CIS/CPS) Open WCM JCR Adapter and WebCenter AJAX / Mashups AquaLogic Ensemble (WebCenter Services) Records Management Adapters BPEL Workflows Custom components and security integrations
  • 5. Secure Enterprise Search Enables you to search across multiple systems Content Manage Systems: Stellent, Documentum, FileNet Legacy system: shared file systems, web sites, Lotus Notes Enterprise Applications: Siebel Generic database table search Multiple security options Global security policy, application specific policy Can oranize results differently based on user context Department, location, language, etc. Easy to set up Multiple connectors, generic spiders, plus integration API
  • 6. Secure Enterprise Search screen Find information wherever it lives in your organization. Browse content hierarchy from your search results. Sort results by relevance, date or other criteria. Login to enable secure access to any application you are authorized to see. Filter results by topics or metadata values such as record type, author, or other criteria. See search term highlighted in context in your hit results.
  • 7. SOAP Open XML-based protocol for application integration Typically over the web (HTTP), or in messages Fundamental part of Microsoft’s .NET framework Toolkits exist for almost every language and platform Built into Content Server SOAP support built into Content Server (7.5 and above) WSDLGenerator component bundled with Content Server (10gR3 and above); separate extra for 7.5.x Add IsSoap=1 to any content server URL Web Services Description Language (WSDL) Helps SOAP toolkits parse XML into easy to use objects One object to execute the service Binds the XML request and response into data objects
  • 8. SOAP Benefits All UCM services available through SOAP Can create XML request manually, or use WSDL 7.5.x and later – pass IsSoap=1 into any URL or request to get back SOAP All the benefits of XML and HTTP Simple, extensible, used almost everywhere Most developers comfortable with the technology Toolkits available for nearly every language Java, C, C++, C# Python, Perl, PHP, Ruby JavaScript, Flash, Flex
  • 9. SOAP Challenges All the drawbacks of XML and HTTP Stateless requests – both good and bad Standard security challenges with HTTP Verbosity presents performance challenges SOAP (and WSDL) considered needlessly complex Some prefer ReST-based approach UCM is mostly, but not entirely, ReST-ful SOAP with ReST-like simplicity… Use the IsSoap=1 flag Use the URL Mapping feature built-in to 10gr3
  • 10. SOAP vs. ReST Fewer tools available for security, auto configuration, etc. No WSDLs Although it usually is simple enough to not need these tools HTTP is kind of broken: sometimes it needs help Messaging, polling, encoding, quality of service. HTTP not good for all use cases. Difficult to separate the good ideas from ReST dogma
  • 11. Content Integration Suite (CIS/CPS) Standards compliant JEE application for UCM Client connector, plus service cache Supported on all major Java app servers Oracle App Server, Websphere, WebLogic, JBoss, Tomcat Plain Old Java Objects Complete coverage of UCM API Common services available as objects-oriented API Can execute any UCM service Can also interface with IPM
  • 12. CIS/CPS Continued CIS allows Java apps to communicate with UCM CIS server connects to Content Server CIS client is used in your app to connect to CIS server CIS server caches results for faster performance in peak hours Server supports multiple interfaces: JMS, JCA, EJB, RMI Content Portal Suite (CPS) for J2EE Portal Server Uses CIS to connect to UCM Contains sample portlets for interacting with UCM Search, Library, Contribution, Workflow, Admin Federated Search (Combined search over I/BPM and UCM)
  • 13. Open Web Content Management Distributed model for web content management Manage web content in containers outside the repository Display images, text, converted Word docs Alter content in-context with the application! Standard Site Studio contributor editor Launch in remote portal or web app Uses standard workflows, conversion, subscription, etc. Change it in one portal, see it change in them all!
  • 15. Java Content Repository (JCR) Adapter Java Content Repository Java standard for content management Formerly known as JSR170 and JSR283 Oracle’s JCR adapter connects to UCM through CIS Achieves Level 1 compliance with JCR Easy integration with WebCenter ADF components Create a JCR Data Control Bind to ADF Tables and Trees Show thumbnails, content, and limited metadatas
  • 16. JCR Adapter Limitations Only works with Java Cannot connect to SharePoint with JCR connectors Less powerful than SOAP or CIS alone Very limited feature set Gives an awkward view of the content repository Limited ECM vendor adoption; not a popular standard IBM, EMC, and Microsoft have dropped it in favor of CMIS Oracle and others will likely follow suit
  • 17. Asynchronous JavaScript and XML (AJAX) Several AJAX options Use semi-ReSTful SOAP interface Put IsSoap=1 into any URL to get SOAP formatted response Create a read-only SOAP request in JavaScript Search, content info, workflow info, etc. Use “Schema” APIs to download option lists Lists of content metadata Run queries, cache results in JavaScript files Mash-up data with other JavaScript accessible resources
  • 18. Aqua Logic Ensemble The problem: application proliferation Dozens of web applications, many done outside IT control. Portals, web applications, Java, .NET, PHP, Ruby on Rails IT forced to support whatever becomes business critical. Management nightmare! Impossible to find the application you need. Inconsistent security policies. How to solve this? Force everybody to agree to one single framework / language? Or, mash-up the applications into one interface?
  • 19. Ensemble Architecture Ensemble Mashup Ensemble Server .NET App JSP Mashup PHP Mashup .NET Mashup Pagelet Pagelet PHP App JSP App Pagelet
  • 20. Ensemble And UCM Treat UCM like every other web applications Create “pagelet” of the screen you want Site Studio page Workflow queue Dynamically converted content Images, digital assets, folios Embed UCM Pagelet anywhere in your enterprise Embed other Pagelets inside a Site Studio web page
  • 21. Universal Records Management Adapters Life cycle management is critical for all organizations Retain content for specific time, according to rules and regulations Destroy content once it is no longer relevant, or useful Reduce storage cost, and legal risk One gigabyte of data: $0.25 of hardware, $60 / year to maintain, $2500 for a lawyer to review Where is your business critical content??? No matter what, its not all in your UCM system. Email archives, SharePoint, file systems URM Adapters manage life cycle no matter where it is Custom connectors, generic adapters
  • 22. URM Architecture Oracle Universal Records Management Discovery Services Central Policy Management Oracle UCM Adapter Oracle I / PM Adapter File Servers Adapter Adapter Adapter Services Adapter: Oracle UCM Adapter: Oracle I / PM Adapter: File Servers Adapter: Microsoft Sharepoint Adapter: Symantec Vault Adapter: Generic Adapter Services Notification Services Physical Records Manager Records Manager
  • 23. BPEL Workflows Business Process Execution Language (BPEL) Workflow language for tying systems together Some human workflow capabilities (BPEL4People) Graphically design your workflows Pass content from content server to enterprise apps Process through external workflow Check-in content, update metadata, others? Tie together processes with SOAP Workflow events trigger a web service Workflow approve, search, check-in, update Makes application integrations simple!
  • 25. Custom Components and Security All of UCM is a service oriened architecture Use “Component Architecture” to add/modify services Anything you can do in Java, you can do here Used mostly to add new life-cycles to content items Also used to quickly modify existing interface Execute code when specific Filter Events occur When the server starts-up When an item enters workflow, is checked-in, or deleted Add custom code to a service, or override standard behavior
  • 26. Honorable Mentions Content Management Interoperability Services (CMIS) Emerging specification that will replace JSR170 Only at version 0.5, but has significant potential Oracle Real-Time Decisions Uses analytics to determine what content people might want Next-best activity Great idea, but no productized integration yet
  • 27. Honorable Mentions (continued) Information Rights Management Oracle Document Capture Oracle Universal Online Archive Siebel Files replacement ActiveX controls for Windows applications Command-line utilities for administrators
  • 28. Which Should You Use? Are you integrating a Java front-end? CIS or CPS is probably what you want Use from Spring, ADF, or Web Center frameworks SOAP with WSDLs a good second choice Are you integrating a non-Java front end? SOAP with WSDLs is the best choice Are you writing a desktop application? SOAP a good choice for behind-the-scenes integration
  • 29. Which Should You Use? Are you integrating with a remote repository? BPEL Workflows sometimes the easiest way Direct SOAP or CIS a good second choice Sometimes need custom Java component Connect with standard Java libraries from your code JDBC, LDAP, IMAP, SOAP, RSS If you need compliance or Records Management, use Agents Generic .NET and Java agents have 80% functionality you need Do you want to execute code when specific events occur? Example: on startup, when content is checked-in or deleted Need Java component: Filter or chained Service Handler Hundreds of filter events and services available for customization
  • 30. Important Resources Books: The Definitive Guide To Stellent Content Server Development http://www.amazon.com/dp/1590596846 Standard Stellent documentation: Content Integration Suite / JCR UCPM API Developer’s Guide, Content Server JCR Repository Adapter Java Components Working With Components SOAP – Using WSDL Generator and SOAP Content Server JCR Repository Adapter
  • 31. More Important Resources… Transforming Infoglut! A Pragmatic Strategy for Oracle Enterprise Content Management. Bex Huff and Andy MacMillan Available on Amazon in January 2009
  • 32. Special Thanks… Independent Oracle User Group http://ioug.org For inviting me to talk here Chris Bucchere [email_address] For helping me with the Ensemble demo
  • 33. My Company: http:// bezzotech.com My Blog: http:// bexhuff.com My Self: [email_address] Questions?