Jónas Sigurðsson
Director of Core Development Gagnavarslan ehf
Building software services on Nuxeo and Django
Gagnavarslan and Nuxeo
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.
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.
About Gagnavarslan
Software services division goal is to
Develop highly usable, scalable and fast software
solutions and offer as SaaS.
Business opportunity?
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.
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.
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.
Research for selecting ECM platform
Alfresco
Fedora Commons
Sharepoint
Nuxeo
Research for selecting ECM platform
Alfresco
Fedora Commons
Sharepoint
Nuxeo
Django+Nuxeo
Why hybrid system of two platforms?
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.
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.
New concepts and
changes
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
Nuxeo Demo
Missing pieces
We needed support for rich querying against a
combination of metadata, freetext and relationship
information.
● Solr integration
● Relationship indexing
● Intrusive relationships
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).
Experience so far
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.
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!
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!
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!
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!
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.
Rapid vertical application development with Djoint
Rapid vertical application development with Djoint
Rapid vertical application development with Djoint
Looking for collaborators!
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?”
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.
CoreData Demo
Thank you Contact me: [email protected]