Crescendo 2006 Presentation Format

Download Report

Transcript Crescendo 2006 Presentation Format

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

• 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?

2

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 3

Front-End Integrations

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 5

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) 6

CIS Integration Options

1.

J2EE Application Server

CIS client uses EJBs to communicate with CIS server

2.

• •

J2EE Portal Server

Use CPS portlets to make calls to CIS server May also use BEA’s Service Provider Interface (SPI) with CPS

3.

Tomcat, other basic Servlet containers

CIS client uses RMI to communicate with CIS server

4.

JSP Taglibraries

Quick access to CIS through JSP tags 7

CIS Integration Options – cont.

5.

Spring Framework

More coherent, flexible, maintainable than straight JSPs

6.

J2EE Connector Architecture (JCA) interface for CIS

For J2EE purists, disabled by default for performance reasons

7.

Java Messaging Service (JMS) interface for CIS

Get higher performance with asynchronous messages

8.

• •

Stand-alone Java application

For Plain Old Java Objects (POJOs) without a J2EE framework Initialize CIS server directly for a direct connection to Stellent 8

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 9

SOAP Search Request

dDocTitle <substring> `test` 20 desc dInDate

10

SOAP Search Response

dInDate 4 20 dDocTitle `test` dDocTitle+%3csubstring%3e+%60test%60 Desc True 1 1 ...

11

SOAP Search Response – cont.

... This is a test 1.0000 0 14 /stellent/ 14

12

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

13

SOAP Integration Options

Third-party toolkits exist for most programming languages 9.

Java (Apache Axis) 10.

C# 11.

PHP 12.

Python 13.

Perl 14.

C++ (Apache Axis) 15.

Visual Basic (MS Soap Toolkit, Pocketsoap) 16.

VBScript (XmlHttpRequest ActiveX object) 17.

JavaScript (using AJAX toolkits) 18.

Command line apps ( curl , wget , with IsSoap=1 in URL)

14

SOAP Integration Options – cont.

Even more third party toolkits: 19.

VB.NET

20.

ASP.NET

21.

C (csoap) 22.

Ruby (built-in) 23.

Flash (Flash MX Remote Scripting) 24.

Appletalk 25.

Tcl/Tk 26.

Smalltalk 27.

Ada 28.

COBOL (partial)

15

Command-Line Java Applications

Included with Stellent Content Server

• Not for advanced integrations, but can get the job done

29.

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

30.

IdcCommand batch files

• Multiple service requests: configure metadata, users, check in content • Resubmit a large number of items for conversion

31.

Batchloader

• Check in large numbers of items • Can generate the batchloader file with a script 16

ActiveX Connectors

Older than .NET, but still useful

• Legacy VB systems, VBScript in Office Applications

32.

IdcCommandUX on an ASP

• SOAP-like interface, but with more features • Used in Site Studio

33.

IdcCommandUX in a VB/COM Application

• For admin tools only

34.

IdcClient in a VB/COM Application

• For desktop applications: Publisher, Site Studio use it • Can pop open a browser window for content check-in 17

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?

35.

Output content as RSS (RssFeeds component)

• Output search results, static lists, log files

36.

Import RSS content (RssFeeds component)

• Download a feed from another server, display in SCS 18

Very Lightweight Integrations – cont.

37.

WebDAV

• Interface with Windows Explorer, Microsoft Office • Very easy to use interface, but limited functionality

38.

Place IsJava=1

in the URL

Returns a HDA data dump for debugging, or scripts

39.

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 19

Back-End Integrations

Security Integrations

Security model just as customizable as everything else in SCS 40.

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

41.

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 21

Custom Java Components

Need to know Java, and Stellent Component Architecture

• Anything you can do in Java, you can do here

42.

Add new services

• Run reports, process content through custom life cycles, display data

43.

Customize existing services

• Generate a list of ‘related items’ when you get content info about an item

44.

Execute code when specific Filter Events

• When the server starts-up

occur

• • • 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 22

Remote Repository Integrations

Need to know Java, and Stellent Component Architecture 45.

Custom Database Providers

• Connect to multiple databases

46.

File Store Providers (SCS 8.0)

• Alter how and where content item files are stored

47.

Records Management Agents

• Manage remote data as a record, even if it isn’t in the SCS repository!

48.

Use Publisher to output content, and XML

• Import the data into another search engine 23

Site Studio Integrations

For integrating Site Studio web sites 49.

Use SSPU to output pages to remote web farm

• Export Site Studio pages as static HTML for maximum performance

50.

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

24

Recommendations

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 26

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 27

And finally – Questions!

  

My Company: http://bezzotech.com

My Blog: http://bexhuff.com

My Self: [email protected]

 

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)

28