1 / 28

Intro to Integrating Applications with Stellent

Intro to Integrating Applications with Stellent. or: 50 Ways to Integrate with the Content Server. Brian “Bex” Huff Chief Software Architect, Bezzotech Inc. February , 2007. Agenda. Mainly covering the Stellent Content Server (SCS) Some IBPM Basics of integrations

nathan-hull
Download Presentation

Intro to Integrating Applications with Stellent

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Intro to Integrating Applications with Stellent or: 50 Ways to Integrate with the Content Server Brian “Bex” Huff Chief Software Architect, Bezzotech Inc. February , 2007

  2. Agenda • Mainly covering the Stellent Content Server (SCS) • Some IBPM • Basics of integrations • Front end: your application to the SCS • Back end: SCS to your application • 50 ways to integrate • And 20 of them are SOAP! • Fairly technical overview • Recommendations • Which of the 50 is right for you?

  3. Integration Basics • SCS is a service-oriented architecture • Easy to consume services from remote applications (front-end) • Easy to customize services (back-end) • Front End Integrations • Execute services, access content from other applications • J2EE Portal, ASP.NET, Desktop application • Run services, receive data response, draw an interface • Example: run a search, perform a check-in, access documents from CRM • Back End Integrations • Add services, modify existing services • Access remote data or applications • Example: custom check-in logic, RSS feeds, LDAP

  4. Front-End Integrations

  5. J2EE: Content Integration Suite (CIS) • Standards compliant J2EE application for Stellent UCM • Add-on product for Stellent • Compatible with, and supported on, major app servers • IBM WebSphere, BEA WebLogic, SunOne, Plumtree, Tomcat • Complete coverage of Stellent API • Common services available as objects-oriented API • Can execute any UCM services • Can also interface with IBPM

  6. J2EE: Content Integration Suite (CIS) • CIS is an application that connects to the content server • CIS server connects to Stellent • CIS client is used in your app to connect to CIS server • CIS server caches results for faster performance in peak hours • Supports several kinds of J2EE connectors • Content Portal Suite (CPS) for J2EE Portal Server • Uses CIS to connect to Stellent • Contains several sample portlets for interacting with Stellent • Search, Library, Contribution, Workflow, Admin, Image Server Search (I/BPM), Federated Search (Combined search over I/BPM and UCM)

  7. CIS Integration Options • J2EE Application Server • CIS client uses EJBs to communicate with CIS server • J2EE Portal Server • Use CPS portlets to make calls to CIS server • May also use BEA’s Service Provider Interface (SPI) with CPS • Tomcat, other basic Servlet containers • CIS client uses RMI to communicate with CIS server • JSP Taglibraries • Quick access to CIS through JSP tags

  8. CIS Integration Options – cont. • Spring Framework • More coherent, flexible, maintainable than straight JSPs • J2EE Connector Architecture (JCA) interface for CIS • For J2EE purists, disabled by default for performance reasons • Java Messaging Service (JMS) interface for CIS • Get higher performance with asynchronous messages • Stand-alone Java application • For Plain Old Java Objects (POJOs) without a J2EE framework • Initialize CIS server directly for a direct connection to Stellent

  9. Simple Object Access Protocol (SOAP) • An 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 • Available as a free add-on (extra) for Stellent • Download the SOAP component if version is before 7.5 • SOAP support built into 7.5, but you still want the WsdlGenerator component • 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 • Much easier to use than pure XML

  10. SOAP Search Request <?xml version='1.0' encoding='UTF-8'?> <SOAP-ENV:Envelope xmlns:SOAP-ENV= "http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <idc:service xmlns:idc="http://www.stellent.com/IdcService/" IdcService="GET_SEARCH_RESULTS"> <idc:document> <idc:field name="QueryText"> dDocTitle &lt;substring&gt; `test`</idc:field> <idc:field name="ResultCount">20</idc:field> <idc:field name="SortOrder">desc</idc:field> <idc:field name="SortField">dInDate</idc:field> <idc:field name="SortSpec"></idc:field> <idc:field name="StartRow"></idc:field> <idc:field name="PageNumber"></idc:field> </idc:document> </idc:service> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  11. SOAP Search Response <?xml version='1.0' encoding='UTF-8'?> <SOAP-ENV:Envelope xmlns:SOAP-ENV= "http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <idc:service IdcService="GET_SEARCH_RESULTS"> <idc:document StartRow="1" EndRow="20" PageNumber="1" NumPages="1" TotalRows="8" TotalDocsProcessed="377" dUser="sysadmin"> <idc:field name="SortField">dInDate</idc:field> <idc:field name="EnterpriseSearchMaxRows">4</idc:field> <idc:field name="ftx"/> <idc:field name="ResultCount">20</idc:field> <idc:field name="TranslatedQueryText">dDocTitle <substring> `test`</idc:field> <idc:field name="QueryText">dDocTitle+%3csubstring%3e+%60test%60 </idc:field> <idc:field name="SortOrder">Desc</idc:field> <idc:field name="AdvSearch">True</idc:field> <idc:resultset name="NavigationPages"> <idc:row PageNumber="1" StartRow="1" EndRow="8"> <idc:field name="HeaderPageNumber">1</idc:field> <idc:field name="PageReference">1</idc:field> </idc:row> </idc:resultset> ...

  12. SOAP Search Response – cont. ... <idc:resultset name="SearchResults"> <idc:row dDocType="ADACCT" dRevisionID="1" dWebExtension="txt" sCollectionID="" dOriginalName="test.txt" dDocName="1234" DOC_FN="c:/stellent/weblayout/groups/public/documents/adacct/1234.txt" dFormat="text/plain" dPublishType="" dID="554" dDocAuthor="sysadmin" dOutDate="" dGif="adacct.gif" dExtension="txt" dInDate="8/8/05 1:49 PM" URL="/stellent/groups/public/documents/adacct/1234.txt" AlternateFormat="" dDocTitle="test document" dRevLabel="1" dSecurityGroup="Public" dRendition2="" dRendition1="" > <idc:field name="VDKSUMMARY">This is a test</idc:field> <idc:field name="SCORE">1.0000</idc:field> <idc:field name="AlternateFileSize">0</idc:field> <idc:field name="VaultFileSize">14</idc:field> <idc:field name="WEB-CGI-ROOT">/stellent/</idc:field> <idc:field name="WebFileSize">14</idc:field> <idc:field name="xComments"/> </idc:row> </idc:resultset> </idc:document> </idc:service> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  13. SOAP Benefits • All Stellent services available through SOAP • Can create XML request manually, or use WSDL • SCS 7.5 – 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 • All the drawbacks of XML and HTTP • Stateless requests – both good and bad • Standard security problems with HTTP • Verbosity presents performance challenges • Don’t execute services until you need to

  14. SOAP Integration Options • Third-party toolkits exist for most programming languages • Java (Apache Axis) • C# • PHP • Python • Perl • C++ (Apache Axis) • Visual Basic (MS Soap Toolkit, Pocketsoap) • VBScript (XmlHttpRequest ActiveX object) • JavaScript (using AJAX toolkits) • Command line apps (curl, wget, with IsSoap=1 in URL)

  15. SOAP Integration Options – cont. • Even more third party toolkits: • VB.NET • ASP.NET • C (csoap) • Ruby (built-in) • Flash (Flash MX Remote Scripting) • Appletalk • Tcl/Tk • Smalltalk • Ada • COBOL (partial)

  16. Command-Line Java Applications • Included with Stellent Content Server • Not for advanced integrations, but can get the job done • IdcCommand single service request • Make IdcCommand file to run an archive, check in a file • Create a shell script to run the command • Schedule that script with cron, or Windows Scheduled Tasks • IdcCommand batch files • Multiple service requests: configure metadata, users, check in content • Resubmit a large number of items for conversion • Batchloader • Check in large numbers of items • Can generate the batchloader file with a script

  17. ActiveX Connectors • Older than .NET, but still useful • Legacy VB systems, VBScript in Office Applications • IdcCommandUX on an ASP • SOAP-like interface, but with more features • Used in Site Studio • IdcCommandUX in a VB/COM Application • For admin tools only • IdcClient in a VB/COM Application • For desktop applications: Publisher, Site Studio use it • Can pop open a browser window for content check-in

  18. Very Lightweight Integrations • For situations where you only need to do something small and specific • SOAP and CIS are sometimes overkill • Perhaps your developers hate XML? • Perhaps your integrators don’t have time to write an application? • Output content as RSS (RssFeeds component) • Output search results, static lists, log files • Import RSS content (RssFeeds component) • Download a feed from another server, display in SCS

  19. Very Lightweight Integrations – cont. • WebDAV • Interface with Windows Explorer, Microsoft Office • Very easy to use interface, but limited functionality • Place IsJava=1 in the URL • Returns a HDA data dump for debugging, or scripts • Display just SCS forms without navigation links • Embed form in an IFRAME, or pop up a separate browser window • Pass coreContentOnly=1 in the URL • May additionally pass ClientControlled, but is trickier • Publisher and Site Studio sometimes use this technique

  20. Back-End Integrations

  21. Security Integrations • Security model just as customizable as everything else in SCS • Custom User Providers • Connect to LDAP/Active Directory • Do complex mapping from LDAP groups to SCS roles and accounts • Mostly Java code, plus some configuration • Custom Web Security Plug-Ins • For custom Single-Sign-On integrations at the web server • Examples: SSL certificates, Kerberos tokens, Nettegrity Site Minder • Mostly C++ code, fewer resources available at this level

  22. Custom Java Components • Need to know Java, and Stellent Component Architecture • Anything you can do in Java, you can do here • Add new services • Run reports, process content through custom life cycles, display data • Customize existing services • Generate a list of ‘related items’ when you get content info about an item • Execute code when specific Filter Events occur • When the server starts-up • When an item enters workflow • When an item is checked-in or deleted • You can alter how the service is processed, or run independent code

  23. Remote Repository Integrations • Need to know Java, and Stellent Component Architecture • Custom Database Providers • Connect to multiple databases • File Store Providers (SCS 8.0) • Alter how and where content item files are stored • Records Management Agents • Manage remote data as a record, even if it isn’t in the SCS repository! • Use Publisher to output content, and XML • Import the data into another search engine

  24. Site Studio Integrations • For integrating Site Studio web sites • Use SSPU to output pages to remote web farm • Export Site Studio pages as static HTML for maximum performance • Site Studio Extensible Elements • A custom contribution element, accessible from Contributor application • The ‘element’ is a URL to a web form you created • Users fill out values in your custom web form • Upon submit, your web form returns text to the Contributor • Uses a special JavaScript method • Useful for allowing users to generate raw HTML in a controlled manner • Parameters for Flash plug ins, Applets, JavaScript, or any arbitrary chunk of text

  25. Recommendations

  26. What Should You Use? • Are you integrating a Java front-end to the SCS? • CIS/CPS/Spring is probably what you want • SOAP with WSDLs a good choice for lighter integrations • Are you integrating a non-Java front end? • SOAP is the best choice • WSDLs if you choose, not always the best idea • IdcCommandUX has extra features, useful on an ASP • Command-line apps discouraged, but sometimes useful • Are you writing a desktop application? • SOAP is a good choice for behind-the-scenes integration • IdcClient if you wish to have a browser-like interface for check-ins • WebDAV is too rigid for extensive use

  27. What Should You Use? • Are you integrating Stellent with a remote repository? • Need Java component: custom Services, custom security plug-ins • Remote databases, remote user repository, email server • Connect with standard Java libraries from your code • JDBC, LDAP, IMAP, SOAP, RSS • If you need Records Management, use Agents • Do you want to execute code when specific events occur? • Example: on startup, every five minutes, when content is checked-in or deleted • Need Java component: Filter or chained Service Handler • Hundreds of filter events and services available for customization

  28. And finally –Questions! • My Company: http://bezzotech.com • My Blog: http://bexhuff.com • My Self: bex@bezzotech.com • Please complete the session survey before you leave today • Visit the Stellent Solutions Center & Partner Expo to learn more! Access this presentation* at: http://www.stellentcrescendo.com/Crescendo/Sessions/index.htm *Log-in and password required to access presentations (watch for an email containing your codes)

More Related