In 2010, Nuxeo launched Nuxeo Studio, a hosted software application delivered over the cloud, allowing configuration and customization of applications based on the Open Source Nuxeo Enterprise Platform. This application is a cornerstone of Nuxeo's Customization as a Service strategy.
This talk will take an in-depth look at the making of this large scale ajax-based application and how we industrialized it. The application leverages OSGi and the extension point system, upon which the Nuxeo Enterprise Platform is built, to offer a great customization experience to developers. An Eclipse IDE plugin is currently in development and future plans include Eclipse Orion integration to provide a code and template editor online.
Nuxeo Studio is approximately 100,000 lines of Java code for GWT. GWT expedited the process by providing rich user interface snippets, a relatively painless learning curve, and development tools that integrate with Eclipse such as the Google Eclipse Plugin, which reduced the time for coding and testing cycles. About Bogdan: Bogdan Stefanescu is the lead architect of core runtime and platform technologies at Nuxeo. He has architected the core runtime and service model found in Nuxeo EP, based on OSGi and an extension point model. Current projects cover both server-side and client-side frameworks, from integrating Nuxeo with Virgo to integrating GWT front-ends within modular OSGi-like frameworks or providing Eclipse-based tooling for Nuxeo developers. He enjoys designing highly modular frameworks, RESTful approaches, and still counts CPU cycles when coding.
Accelerating the Packaging Design Process with Artificial Intelligence
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform
1. Leveraging OSGi-based Architecture, GWT,
and Eclipse to build a large ajax-based
applications on top of the Nuxeo Enterprise
Platform
Nuxeo Studio
Roland Benedetti, VP Products & Marketing, Nuxeo
Bogdan Stefanescu, Lead Architect at Nuxeo
2001-03-24
1
2. Nuxeo, who are we?
●
Vendor of an open source software platform in the
feld of Enterprise Content Management
●
Love to create great software, fond of modularity,
started to use OSGi 4 years ago to create server-side
enterprise software...
●
10 years old, 500+ customers, 5000+ installations
●
Sells support & maintenance subscription and added
value software provided as a service
●
Dual HQ Paris & Boston, offces in San Francisco
●
http://www.nuxeo.com
2
3. Nuxeo Enterprise Platform
●
The software we develop is an Open Source ECM
platform known as Nuxeo Enterprise Platform (EP)
●
A “platform” because you can use Nuxeo EP to
develop your own customized ECM application
●
We also provide Turn-Key pre-build applications
based on Nuxeo EP already customized for different
scopes:
– Document Management (DM)
– Digital Asset Management (DAM)
– Case Management Framework (CMF)
– … or simply Content Application Platform (CAP) for
developers
3
8. In a nutshell
●
Full-featured confguration & customization
environment delivered as a Service
●
Develop Faster: start fast, reuse, focus on your
model and business logic, not on plumbing
●
Deploy & Update Easily on your various
platforms thanks to the Update Center & Nuxeo
Marketplace
●
Protect your investment: Forward Compatibility
Guaranteed! No more upgrades that break your
customization work.
8
9. What is Studio?
●
A Web User Interface to confgure Nuxeo EP
●
Easy to use Rich Client Interface – based on GWT
●
Made for non technical people
– Everyone can confgure Nuxeo EP
●
Generates a bundle containing the confguration
extensions (a JAR fle)
●
Hides the complexity and the huge number of
extension points provided by the platform
●
Focus on confguring functionality and not on
how the confguration is done
9
10. Some Background - Extension Points
●
Nuxeo EP is an ECM platform made of hundreds
of bundles and extension points
●
Each bundle may defne one or more extension
points
●
Extension Points provide a way to confgure services
from outside the host bundle.
●
Any bundle may contribute new extensions to
other bundles to confgure them
●
Extension points are primarily used to confgure
the application or to install new capabilities
10
11. Why Studio?
●
Extension Points are great but are designed to be
used by developers
●
Require knowledge of the target service internals
●
To customize a functionality you may need to defne
tens of extensions
●
Nuxeo EP already ships as a complete ECM
product – ready to be used in production
●
In most of cases you only need to confgure it through
extensions to defne your content model, add your
business logic or for branding the product
●
This confguration task is usually made by non
technical people 11
12. Why Studio? – Example
●
Defning a new document type requires at least 4
extensions:
●
Defne the document type (behavior, schemas etc.)
●
Contribute XSD schemas used by the document
type.
●
Attach a life cycle to your document type
●
Confgure document views (e.g. tabs in UI)
●
Then you need to package your extensions as an
OSGi bundle
12
13. Nuxeo Studio – the Solution
●
To defne a new content type you need to create
a new plugin that may contain many XML
extensions
●
Not diffcult for developers
●
But diffcult for non technical people
●
Nuxeo Studio is allowing you to focus on the
feature you want to add and not on how to add it
●
No need to worry about:
●
How to create a new OSGi bundle
●
How the extension point works and what the format is
13
14. Studio Internals - How it works?
●
Defnes a confguration meta model on top of
Nuxeo EP extensions
●
Each confgurable object has its own meta model
●
Meta models are stored on the fle system in a
GIT repository
●
Confgurable objects are versioned through GIT
●
Generates an OSGi bundle containing Nuxeo EP
extensions at user request
●
The meta model is converted into Nuxeo EP
extensions (an XML fle)
●
Just install the generated bundle! 14
15. Benefts and Limitations
●
Create Content Applications without coding
●
Including Branding and Business Logic
●
Anyone can create its ECM application!
●
Install the Studio generated bundle at runtime
●
Ensure backward compatibility
●
Confguration meta model is maintained by Nuxeo
●
Old Studio Projects will work on new Nuxeo EP
versions
●
Limitations - Extensions cannot be reverted
back to confguration objects
15