leveraging osgi-based architecture, gwt, and eclipse to build a large ajax-based applications on top...

17
1 Nuxeo Studio Roland Benedetti, VP Products & Marketing, Nuxeo Bogdan Stefanescu, Lead Architect at Nuxeo 2001-03-24 Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

Upload: nuxeo

Post on 13-Jan-2015

2.083 views

Category:

Documents


0 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

1

Nuxeo Studio

Roland Benedetti, VP Products & Marketing, NuxeoBogdan Stefanescu, Lead Architect at Nuxeo

2001-03-24

Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

Page 2: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

2

Nuxeo, who are we? 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

Page 3: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

3

Nuxeo Enterprise Platform 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

Page 4: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

4

Page 5: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

5

The Platform approach The Platform approach

Page 6: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

6

The Problem ... The Problem ...

Page 7: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

7

… the solution … the solution Is in the Browser

Page 8: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

8

In a nutshell 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.

Page 9: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

9

What is Studio? 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

Page 10: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

10

Some Background - Extension Points 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

Page 11: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

11

Why Studio? 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

Page 12: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

12

Why Studio? – Example 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

Page 13: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

13

Nuxeo Studio – the Solution 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

Page 14: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

14

Studio Internals - How it works? 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!

Page 15: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

15

Benefts and Limitations 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

Page 16: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

16

Wanna see it live ?Wanna see it live ?

DEMO

Page 17: Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-based applications on top of the Nuxeo Enterprise Platform

17

Questions?Questions?Start Hacking ECR:

https://github.com/nuxeo/org.eclipse.ecrGet Involved:

ECR Proposal Forum

Read more:Eclipse ECR Proposal

Nuxeo EP Reference Documentation

Contact me/us:Bogdan Stefanescu - [email protected]

http://www.nuxeo.com