Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

35
Jónas Sigurðsson Director of Core Development Gagnavarslan ehf Building software services on Nuxeo and Django Gagnavarslan and Nuxeo

description

Presentation from Nuxeo customer, Gagnavarslan, at Nuxeo World 2010 on building software services on Nuxeo and Django.

Transcript of Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Page 1: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Jónas Sigurðsson

Director of Core Development Gagnavarslan ehf

Building software services on Nuxeo and Django

Gagnavarslan and Nuxeo

Page 2: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

About Gagnavarslan

Mission statement

To be a single entry point for organizations to access

expert knowledge and high quality services within the

field of Document and Information Management.

Page 3: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

About Gagnavarslan

2007

Founded late 2007

Initial focus on physical storage and preservation.

2008

Company expanded: Information Management Specialists (IMS) consultants division

added.

2009

Company expanded: Software services division added.

First SaaS offering based on Django released.

2010

Nuxeo based Case/DM management system released.

Page 4: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

About Gagnavarslan

Software services division goal is to

Develop highly usable, scalable and fast software

solutions and offer as SaaS.

Page 5: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Business opportunity?

Page 6: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Business opportunity

Investigation commission report revealed multiple IT specific

problems in government.

Increased focus on Document and Record Management.

Increased focus on compliancy with standards and best

practices, Moreq2, DoD5015.2, etc.

Page 7: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

The Project

Our requirements are mostly gathered from IMS and

decision makers within government and large organizations.

Big difference compared to what IT people think is needed.

(usually Sharepoint)

Compliance with regulations for case management in

government, compliance with National Archives, etc.

Page 8: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Development strategy

Development strategy based on Agile "Set based design" idea

1. Start with simple, lightweight Django front-end to clarify concepts

and UI with early adopters.

2. In the same time investigate repository options. Decide on a

system and build the necessary cloud infrastructure around the

system.

Base our services on open source and participate in communities

around products we use.

Focus on usability and simple user experience.

Page 9: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django
Page 10: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django
Page 11: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Research for selecting ECM platform

Alfresco

Fedora Commons

Sharepoint

Nuxeo

Page 12: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Research for selecting ECM platform

Alfresco

Fedora Commons

Sharepoint

Nuxeo

Page 13: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Django+Nuxeo

Page 14: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Why hybrid system of two platforms?

Page 15: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Why hybrid system of two platforms?

IT people buy platforms. IMS decision makers want

applications.

We need a killer app to sell the platform.

We need RAD infrastructure for vertical solutions.

Application developers should be domain experts,

not platform experts.

Page 16: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Why hybrid system of two platforms?

Ability to manage teams better

● Clear seperation of concern.

● Technology stack attracts different developer groups.

Ability to be more agile and manage changes

● Dynamic stack enables faster turnaround.

● Easier to customize and manage customizations.

Django has gained much momentum for rapid web

application development.

Page 17: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

New concepts and

changes

Page 18: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Missing pieces

We needed to add support for managing

organizational concepts as well as providing record

management capabilities.

● Organizational Spaces and Space Folders

● Fileplan for RM

● Aspects

Page 19: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Nuxeo Demo

Page 20: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Missing pieces

We needed support for rich querying against a

combination of metadata, freetext and relationship

information.

● Solr integration

● Relationship indexing

● Intrusive relationships

Page 21: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Missing pieces

We need robust solutions for integrating with

customer infrastructure which is always based on

Microsoft Server with over 90% of workstations

running Windows.

● Complete support for Windows Sharepoint Services

protocol (WSS).

● Support for SSO via CAS using Kerberos.

● Support for retreaving mail from MS Exchange Server

via MailFolder (IMAP).

Page 22: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Experience so far

Page 23: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Experience so far

Promising results overall. Technology decisions have

delivered great results so far.

Development group was afraid of Nuxeo complexity

and resources requirement compared to Django.

Concerns mainly addressed by excellent

development and packaging practices as well as

Nuxeo visible focus on continuously improving the

stack towards more efficiency.

Page 24: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Fileplan implementation

We have implemented a Fileplan for RM in Nuxeo.

● Based on concepts in DoD standard but also considering

Moreq2 requirements.

● Implemented as Nuxeo extension, of course.

● No UI in Nuxeo yet. Only REST methods.

Looking for collaborators!

Page 25: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Aspects implementation

Simple support for Aspects/MixIns in Nuxeo.

● Required for many of our use cases.

● Current solution is quite simple but still working well for our

needs.

Looking for collaborators!

Page 26: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Solr indexing implementation

Indexing component for Solr indexing in Nuxeo with

flexible mapping based on Solango/Jython

● Used for indexing metadata, freetext AND relationships.

● Provides support for fast search using complex conditions. ● Give me all emails to or from any contact associated with organization “Foo”

where mail body contains text “Bar”.

● Still rough areas in relation with ACL and batch-indexing

scenarios.

Looking for collaborators!

Page 27: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

WSS stabilization

Senior Java developer allocated to making WSS

support in Nuxeo fully compliant.

● Support all integration scenarios with MS Office.

● Support 3d party online/offline tools designed for

Sharepoint.

● All integration scenarios with File Explorer in Windows XP

and Windows 7, documented and undocumented.

Looking for collaborators!

Page 28: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Djoint – Python library for accessing content repository

Django has ORM for mapping Python objects against

database. This ORM is too much derived from

relational database world for ECM use cases.

● Djoint is a Python library for mapping documents in

document repository with usable and simple API.

● Designed to support any type of repository, of course.

● Currently only one supported repository driver, for Nuxeo.

Page 29: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Rapid vertical application development with Djoint

Page 30: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Rapid vertical application development with Djoint

Page 31: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Rapid vertical application development with Djoint

Looking for collaborators!

Page 32: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Challenges

● Finding the right balance between open source and

proprietary software development.

●Customers don’t believe that we can deliver true

integration.

● “It all sounds very cool but will it work seamlessly with

our current email system and Windows desktop

experience?”

Page 33: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Contributing

We plan to contribute within focused areas.

● Plan to open source Djoint with Nuxeo driver as soon as

we complete our application initial release.

● Commit to improving WSS support in Nuxeo.

● Open for collaborating on Fileplan implementation by

sharing our work.

Page 34: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

CoreData Demo

Page 35: Nuxeo World Session: Gagnavarslan and Nuxeo - Building software services on Nuxeo and Django

Thank you Contact me: [email protected]