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