microsoft sharepoint and java application development
TRANSCRIPT
Microsoft Sharepoint vs.Java Application DevelopmentContent Integration and Content Repositories
David NueschelerDay SoftwareSubmission ID: 3141
David Nuescheler Chief Technology [email protected]
David NueschelerJackrabbit Committer / [email protected]
David NueschelerJSR-170 Spec [email protected]
Agenda
Content Integration: A Business Issue
Java vs. Microsoft Sharepoint
Various Integration Options Pro/Cons
Integration Demo using JCR
4Sep-04-07
Application EApplication DApplication CApplication B
Today: “The Content Problem” Content Isolated in Silos
Application A
Repository E
Repository D
Repository C
Repository B
Repository A
Accounting Marketing Legal HR R&D
“The Content Market”
“The Content Market”
Apache Jackrabbit Oracle XML DBExo
ECMS PlatformMicrosoft
Sharepoint OpenText Livelink
Day CRX IBM FileNet P8 Xythos Repository Alfresco ECM Vignette V7
Interwoven Repository IBM CM / Domino EMC Documentum
+hundreds moreregisteredSaperionArchive
So many
Vendors to
choose from...
Reality Check.
write a “JSP snippet” that lists all the documents in a folder by “title”.
Task
Reality Check.List all documents in a folder
<%childCount = node.getContentCount();for(int i=0;i<childCount;i++) { IContent child = node.getContent(i); Property title = child.getPropertyByName("Title"); %><%= title.getValue() %><br/><%}%>
<%LAPI_DOCUMENTS documents
= new LAPI_DOCUMENTS(session);
LLValue childTable = new LLValue();
documents.ListObjects(volumeID, folderID,
null, null, LAPI_DOCUMENTS.PERM_SEE, chi
ldTable);
Enumeration children = childTable.enumerateValue
s();
while(children.hasMoreElements()) {
LLValue child = (LLValue)e.nextElement()
;
String title = child.toString("Name");
%><%= title %><br/><%
}%>
<%fndocs = new IFnObjSetDu
alProxy(
fnfolder.getContents(idm
FolderContent.idmFolderContentDocument));
int numDocs = fndocs.getCount();
for (int i = 1; i <= numDocs; i++) {
IFnDocumentDual fndoc =
new IFnDocumentDualProxy(fndocs.getItem(
new Integer(i)));
IFnPropertiesDual propset = fndoc.getPro
perties();
IFnPropertyDual idmTitleProp = propset.g
etItem("Title");
String title = idmTitleProp.getValue();
%><%= title %><br/><%
if (comCleanup) {
cleaner.release(fndoc);
}}%>
<%IDocuments documents =
new IDocumentsProxy(binder.getDocuments());
documents.cache();
int documentCount = documents.getCount();
for (int i = 0; i<documentCount; i++) {
document = new IDocumentProxy(docume
nts.getItemByIndex(i));
String title = document.getTitle()
%><%= title %><br/><%
}%>
<%PageIterator children = page.getPages();while (children.hasNext()) { Page child = children.nextPage(); Container toplevel = child.getContent(); Atom title = toplevel.getAtom("Title"); %><%= title %><br /><%}%>
+800
CMS Market
CMS Market
Is there any agreement?Yes, Real-life architecture!
Bottom line:
“Best Advice”:
Standards, Standards, Standards
Now what!?
based on the
previously
established
consensus...
Now what!?
An"ew S. Tanenbaum, Computer Networks
The nice thing about standards is that there are so many of them
to choose from.
...not in CMS
15Industry Standard: JCR
170
283
16Industry Standard: JCR
Known Compliant Repositories(partially using 3rd party connectors)
Apache Jackrabbit Oracle XML DB
Exo ECMS Platform
Microsoft Sharepoint OpenText Livelink
Day CRX IBM FileNet P8 Xythos Repository Alfresco ECM Vignette V7
Interwoven Repository
IBM CM / Domino
EMC Documentum
+hundreds of TCKsregisteredSaperionArchive
Some known JCR Applications...
Sourcemix Sourcemix
Percussion Rhythmix Lutece
Portal
QuickWCM WCMS
Jahia Framework
Hippo CMS
InfoQ Online CommunityNuxeo ECM
Sakai E-learning
TYPO3 v5.0 WCMGX WebManager
Exo ECMS Platform
Liferay Enterprise Portal
Artifactory Maven Proxy
IBM FileNet WebSiteManagerApache James
medic-2-medic mapofmedicine
Day Communiqué WCMS
Apache Tapestry
Day Communique Collab
QSLabs ComplianceApache
Cocoon
Alfresco ECMSApache Sling
Mindquarry Collaboration
Day Communique DAMmagnolia WCMS
JBoss PortalSun OpenPortal Interface 21
Spring Framework
Fast Enterprise SearchOracle PortalBEA Portal
JCR - Weatherforcast-5°
2008 2009-8°
2010-12°
Commodity Infrastructure
StandardChaos
Enterprise SoftwareMarket Evolution
Operating Systems
WebServers
Relational Databases
J2EE Application Servers
Content Industry
Free your content... and put it to work.
proprietarysilos:Liabilities
open standard
repositories:
Assets
NO INTEGRATION
WCM
JCR CompliantContent Repository
IndustryStandard (JCR)
connector
connector
connector
connector
DAM Collab
The Content Warehouse.
Portal
JCR
Applications
JCR Infrastructure
Agenda
Content Integration: A Business Issue
Java vs. Microsoft Sharepoint
Various Integration Options Pro/Cons
Integration Demo using JCR
Poll: Sharepoint vs. Java
Java? Sharepoint?
myestimate
myestimate
Java vs. Sharepoint
Java vs. Sharepoint
Agenda
Content Integration: A Business Issue
Java vs. Microsoft Sharepoint
Various Integration Options Pro/Cons
Integration Demo using JCR
Integration Options
WebServices : WSS
Content Repository for Java
1
2
Windows SharePoint Services 3.0
SOAP/WSDL-Based Services
Base Services for Office Sharepoint Server 2007
“... framework for lists and libraries, site administration, and site customization”
Trying it with Maven, Axis, WSS3.0
mavenaxis2:
generates 20mb .java fileswss3:
500k .wsdl
WebServices approach
Pros:No third party libraries, apart from the WS tooling
Cons:Requires tooling and seems overly complicatedProprietary, Sharepoint Specific
Integration Options
WebServices : WSS
Content Repository for Java
1
2
Java vs. Sharepoint
Java vs. Sharepoint
Java vs. Sharepoint
JCR Connector approach
Pros:Simple & EasyStandardized API
Cons:Requires JCR to Sharepoint Connector
Agenda
Content Integration: A Business Issue
Java vs. Microsoft Sharepoint
Various Integration Options Pro/Cons
Integration Demo using JCR
DEMO
JCR JCR overWSS 3.0
1
2
My first Sharepoint Java App
3
No tools!
Q&A