assembling enterprise 2.0 with alfresco
DESCRIPTION
Jeff Potts' presentation from Open Source ECM Event in Dallas, June 2008 (http://www.optaros.com/)TRANSCRIPT
Optaros Assembles Enterprise 2.0 Solutions Featuring Alfresco
Jeff Potts
Practice Director, ECM
Blog: http://ecmarchitect.com
06/26/08 © Optaros 2008. All rights reserved. 2
Agenda
Enterprise 2.0 components
Endeca EDeN architecture
Alfresco Web Scripts
Web Scripts + Liferay client examples
What's Next• New open source project: Streamlined, AJAX-based
Alfresco UI• Update on the Book• Alfresco-Ringside integration: Does anyone think this
is cool?
06/26/08 © Optaros 2008. All rights reserved. 3
Legacy
Systems w
ithunstru
cture
d co
nte
nt
User Management, LDAP-Integration, etc.
Assembling an agile, lightweight, component-based architecture for Enterprise 2.0
Wiki Blog
RSS/A
TO
M A
ggre
gatio
n
SocialNetworking
Consistent User Interface(with Single-Sign-On)
Leg
acy Sy
stem
s with
unstru
cture
d co
nte
nt
Intern
et
Federate
dSe
arch
06/26/08 © Optaros 2008. All rights reserved. 4
Open Source Enterprise 2.0 Components
Content Repository
Blogging
Wiki
Search
Collaborative Filtering
Social Networking
Forums / Real-time
COFI
06/26/08 © Optaros 2008. All rights reserved. 5
Client Case Study: Endeca
The Company:
Building a partner community for innovationThe Challenge:
Assembly Highlights:
` 180 users the first day, 360 the first week, more than 1000 the first month
` Site integrates portal, content, and blog servers with a seamless user interface
` Content is personalized to match user preferences
` Content approval rules can be adjusted for each department
` Reusable assembly for internal Endeca community (e.g. blogging, Wiki)
• Endeca Technologies, a next-generation information access company
• Information access platform is used by many leading companies and government agencies
• Headquarters in Cambridge, MA, USA and operations worldwide
• Create an online knowledge-sharing and collaboration community for employees, customers, and partners
• Provide controlled access to thousands of technical documents, best practices, code samples, case studies, and other content
• Address department-specific requirements for metadata and content approval
• Support future initiatives for interaction and participation
• Meet a 13-week deadline
“The solution that Optaros assembled
for us lets us interact with our audiences with
speed, flexibility and differentiation.”
- Colby DyessProduct Manager
Endeca
06/26/08 © Optaros 2008. All rights reserved. 6
Client Case Study: EndecaBuilding a partner community for innovation (Cont’d)
Flexibility:Key Components:
` Liferay Portal [JSR-168]
` Forums: Liferay Forums
` Alfresco: Content Presentation [JSR- 170]
` Additional AJAX integration with script.aculo.us, prototype
` DWR (Direct Web Remoting) toolkit for javascript
` Blogs: Apache Roller
Open Source SoftwareWeb Presentation:
` Used to integrate Liferay with Alfresco
Web Services:
` Alfresco content repository
` JBoss Application Server
` Red Hat Directory Server (LDAP) for user and group management
Back-end Components:
Differentiators:
` Enterprise 2.0 open source assembly designed for Endeca’s needs and preferences
` Content approval rules are adjustable for individual departments using Alfresco's embedded JBPM workflow engine
` Enterprise 2.0 stack can be leveraged and reused for Endeca’s internal community site
` Loose assembly architecture allows easy replacement of pluggable modules and the ability to experiment
“By offering our customers and
partners a seamless way to educate themselves and
interact with peers we are creating
loyalty to the site and to Endeca.”
- Colby DyessProduct Manager
Endeca
- Colby DyessProduct
ManagerEndeca
“Endeca customers and partners have been the driving force behind our
initiatives to encourage
relationship building and the open
exchange of ideas and best practices.
EDeN is the culmination of these
efforts…”
Differentiation:
` Vibrant online community builds stronger relationships with customers and partners
` Users can access thousands of technical documents, tools and utilities, code samples, case studies and other content
` Metadata tags identify relevant search content to match user profile
` Social networking and knowledge-sharing for e-business (blogs for executives and technical staff, feedback, forums)
` New participation and collaboration features coming soon
` Endeca Search EngineClient Preferred Component
06/26/08 © Optaros 2008. All rights reserved. 7
Endeca EDeN Architecture
Batch Job
SOAP WS
JDBC JDBC
•User Profiles•Preferences
•Presentation Services•RSS Portlet•Forums Portlet•Custom Search Portlets•Custom Alfresco Portlets
•Sitewide Search•Guided Navigation•Content Spotlighting
SOAP WS
LDAP
•Custom Content Model•Advanced Workflow•Custom Actions•Minor Web Client Cust.•All Filebased Content
•CTO Blog•Engineer Blogs
06/26/08 © Optaros 2008. All rights reserved. 8
Early wireframe
06/26/08 © Optaros 2008. All rights reserved. 9
06/26/08 © Optaros 2008. All rights reserved. 10
06/26/08 © Optaros 2008. All rights reserved. 11
06/26/08 © Optaros 2008. All rights reserved. 12
Alfresco Web Scripts(RESTful Services)
06/26/08 © Optaros 2008. All rights reserved. 13
What is the Web Script Framework?What is a web script?
A Web Script is a chunk of code mapped to a URL● Business logic can be JavaScript or Java
● Full access to the JavaScript and Foundation API's
● Can return anything you want but is commonly XML, JSON, or markup
● Enables RESTful interactions with the repository
Key enabler of...
● components within the existing web client● the entire 3.0 web client● Facebook/Ringside integration● Adobe Flex integration● integration with your custom application written in any language
that can issue an HTTP request
06/26/08 © Optaros 2008. All rights reserved. 14
Examples
Basic URL—the structure is up to you
● /alfresco/service/expenses/pending
● /alfresco/service/ui/myspaces
Passing arguments—part of the URL or explicit name-value pairs
● /alfresco/service/expenses/pending/unpaid/jpotts
● /alfresco/service/expenses/pending?user=jpotts&unpaid=true
● /alfresco/service/ui/doclist?q=sample
Response format—take the default or ask for the one you want
● /alfresco/service/search/keyword.html?q=sample
● /alfresco/service/search/keyword.rss?q=sample
● /alfresco/service/api/search/keyword?q=sample&format=rss
06/26/08 © Optaros 2008. All rights reserved. 15
How Does it Work?
The framework enforces the Model-View-Controller pattern
Controller: JavaScript or Java code that...
● Performs some logic (Optional)
● Stores some data in the model (Optional)
● Forwards the request to the view
View: Freemarker code that...
● Reads data from the model (Optional)
● Formats the response
Model: Essentially a hash of named objects
Descriptor: An XML file that ties all of this together for Alfresco
06/26/08 © Optaros 2008. All rights reserved. 16
How Does it Work?
Web Scripts can live...
● On the file system (in the classpath)
● In the repository
Web Scripts Directory helps with deployment, testing, and documentation
● http://localhost:8080/alfresco/service/
Prior to 2.9, Web Scripts have to execute in the same process as Alfresco. Starting with 2.9, this doesn't have to be the case
● Opens the way for embedding the Web Script execution
context in any Java web application
06/26/08 © Optaros 2008. All rights reserved. 17
Additional Examples
06/26/08 © Optaros 2008. All rights reserved. 18
Slightly customized version of Alfresco's “My Spaces” web
script
06/26/08 © Optaros 2008. All rights reserved. 19
Custom web script-backed portlet with AJAX calls to
Alfresco
06/26/08 © Optaros 2008. All rights reserved. 20
Screen Shots
Custom Alfresco web script-backed JSR-168 portlets running in Liferay Portal
06/26/08 © Optaros 2008. All rights reserved. 21
Custom Alfresco web script executes a full-text and property-based search against the repository
06/26/08 © Optaros 2008. All rights reserved. 22
Site communicates the availability of new services to
existing Swisscom Mobile users
06/26/08 © Optaros 2008. All rights reserved. 23
Users rate services, and view aggregate ratings from other users. Ajax interface means
no need to refresh entire page
Downloads are made available directly within the site for users to evaluate.
06/26/08 © Optaros 2008. All rights reserved. 24
Forums: Users also participate in ongoing discussions and
forums, encouraging not just feedback but discussion
RSS Feeds: User subscription
06/26/08 © Optaros 2008. All rights reserved. 25
What's Coming Next
06/26/08 © Optaros 2008. All rights reserved. 26
New at Optaros Labs: Streamlined Alfresco Web Client
Strips the web client down to the bare minimum for straight document management
Technologies• Completely web script based• Extensive use of AJAX• Built using the EXTJS toolkit• Works with Alfresco 2.1 and higher
Soon to be freely-available as an open source project under the GPLv3
• Check http://code.optaros.com over the next few weeks or so for availability
06/26/08 © Optaros 2008. All rights reserved. 27
Clean UI with reduced number of choices
06/26/08 © Optaros 2008. All rights reserved. 28
Selectable rows...
...and a preview pane
06/26/08 © Optaros 2008. All rights reserved. 29
Right-click menu with frequently-used items like download file and copy URL
to clipboard
06/26/08 © Optaros 2008. All rights reserved. 30
Modal dialogs with critical information
06/26/08 © Optaros 2008. All rights reserved. 31
06/26/08 © Optaros 2008. All rights reserved. 32
The Book
“Developer's Notebook” style• Example-intensive• If you like the ecmarchitect.com Alfresco Developer Series, you'll like
this book
Packt Publishing
Available for purchase late Summer or early Fall
Contents (Subject to change!)• The Alfresco Platform• Building, Deploying, and Troubleshooting• Working with Content• Handling Content Automatically• Customizing the Web Client User Interface• Web Scripts• Advanced Workflow
• Web Content Management• Security & Integration• Building a custom web
client with web scripts• Appendix
06/26/08 © Optaros 2008. All rights reserved. 33
Ringside SAS Integration
Ringside features• Implements the Facebook API• Maintains a social graph• Maps social graphs from disparate social networks like LinkedIn,
Facebook, and others• Runs in your environment (Secure, clear data ownership)• 100% Open Source
Still in beta, still a bit rough, but coming along nicely
06/26/08 © Optaros 2008. All rights reserved. 34
Ringside SAS Integration
Persist internal Facebook app data to an ECM repository
Write internal Facebook apps using the Alfresco web script framework (JavaScript, FreeMarker)
Expose Facebook and LinkedIn social graphs to Alfresco
Develop Alfresco-based Facebook apps without requiring a connection to Facebook
06/26/08 © Optaros 2008. All rights reserved. 35
What features make sense?
See which Ringside/Facebook/LinkedIn friends are online
Submit a workflow that automatically routes to all of my Ringside friends
Click an action for any document that sends an email with a link to the document to my Ringside friends
Make it so that document creation, updates, and deletes post an activity to my mini feed
Automatically sync users between SAS and the Alfresco user repository
Store the Ringside/Facebook ID as a piece of metadata on the Alfresco user object
Suggest friends based on the documents I've looked at/created
Make the social server pluggable
Create social Alfresco dynamic web site modules
06/26/08 © Optaros 2008. All rights reserved. 36
06/26/08 © Optaros 2008. All rights reserved. 37
06/26/08 © Optaros 2008. All rights reserved. 38
06/26/08 © Optaros 2008. All rights reserved. 39
06/26/08 © Optaros 2008. All rights reserved. 40
About Optaros
We design, assemble & support next-generation Internet solutions for ecommerce and media & publishing clients
We help our clients become more agile and deliver better user experiences to their customers, employees, and suppliers
We do great work100% reference-able98% on-time/on-budget
We‘re growing$0 $21 million since 2005
Over 200 employees across offices in North America, Bucharest, Geneva, London, Munich, Zurich
We have a rich historyLeadership since 1990 through the client-server, web browser, and “assembly” eras
We’re well capitalized$20 million capitalization