Qualipso factory
-
Upload
funckychris -
Category
Technology
-
view
748 -
download
0
description
Transcript of Qualipso factory
QualiPSo Factory
mardi 5 octobre 2010
2
Context
Forge is an on-line service that allows to instantiate, compose and manage collaborative services.
Collaborative services are traditionally Version Control Systems, Bug Trackers, Forums, Mailing list, Wikis etc.
mardi 5 octobre 2010
3
Motivations
Many forges are available today Gforge, Trac, Launchpad, Codendi,
FusionForge, Sourceforge, GoogleCode, CodePlex, etc.
Very hard to bootstrap an eco-system
mardi 5 octobre 2010
4
Factory User Story
The targeted user of the QualiPSo Factory is the developer of a new forge service
A forge service developer must be able to create a new collaborative service very easily
mardi 5 octobre 2010
5
Qualipso Factory Architecture
The QualiPSo Factory is based on a component model
Core services are provided by the forge Authentication, access control, binding,
events, indexation, semantic Forge service developers reuse core/
existing services to develop new collaborative services
mardi 5 octobre 2010
6
Qualipso Factory Architecture
Technologies used: Java EJB3 Web-fragment (Servlet 3.0 specification) GWT (Google Web Toolkit)
Tools used Maven Eclipse JBoss
mardi 5 octobre 2010
7
Authenticationprovider
Client
BrowsingService
Service 1
Service 2WS-binding
WS-binding
WS-binding
WS-binding
Forge API
CoreService
SecurityService
Binding
Notification
Indexation
Factory Assembly
Service 3Abstract Service 1 Abstract Service 2 Abstract Service 3
mardi 5 octobre 2010
8
Factory Benefits
The factory core is a kernel to bootstrap an eco-system The kernel is maintainable, dependable and usable.
The QualiPSo Factory allows composition of services i.e. the workflow service orchestrate project
creation. The QualiPSo Factory allows composition of
resources i.e. create complex resource by composing simple resource. i.e. a “File” resource can be child of a “Forum”
resource or a “Issue” resource.
mardi 5 octobre 2010
9
/p1 : project
/p1/svn1 : svn repo
/p1/q1 : index queue
/p1/buc1 : s3 bucket
/p1/b1 : bugtracker
/users/u1/a1 : activity feed
FactoryResourceIdentifiersubversion:repository:http://svn.qualipso.org/svn/repo1Service Name Resource Name External ID
Triple expression for rules : Security : (/users/u1,read,/p1/svn1) Notification : (*,commit,/p1/svn1) Semantic: (/users/u1, a, /factory#user)
Sample Factory Instance
/users : folder
/users/u1 : profile
/
mardi 5 octobre 2010
Developing Factory Services
mardi 5 octobre 2010
11
Creating a new Abstract Service
Steps for adding factory services
1. Instantiate an empty project with maven archetype
2. Define Service Interface3. Implements Service4. Test service locally5. Publish your Service
6. Assemble your new service with existing ones7. Deploy your assembly8. Run external service tests
ServiceDeveloper
FactoryAdministrator
mardi 5 octobre 2010
12
Authenticationprovider
Client
BrowsingService
Service 1
Service 2WS-binding
WS-binding
WS-binding
WS-binding
Forge API
CoreService
SecurityService
Binding
Notification
Indexation
New Factory Assembly
Service 3Abstract Service 1 Abstract Service 2 Abstract Service 3
StorageService
WS-binding
Amazon S3
mardi 5 octobre 2010
13
Results
The developer of a new forge service is the targeted user of the QualiPSo Factory
A forge service developer is able to create a new collaborative service very easily by following the provided methodology
This QualiPSo Factory component model allows to fulfill these objectives
mardi 5 octobre 2010
Developing Factory Services UI
mardi 5 octobre 2010
15
Objectives
Extrapolate the same component model, but on the UI side
Use the same tools, the same language, the same methodology, the same model
mardi 5 octobre 2010
16
Building UI Component
Steps to develop a new UI Component
1. Create new service UI using maven archetype 2. Define components Views3. Define components Events4. Implements component Views5. Implements server communication6. Test server communication and UI locally7. Assemble your new service with existing services8. Deploy your assembly9. Run external tests (selenium)
ServiceDeveloper
FactoryAdministrator
mardi 5 octobre 2010
17
Assemble Factory UI Components
Authenticationprovider
BrowsingService
CoreService
S3Service
SecurityService
Web Container
Event Bus
Security component
Core service component
Browsing component
Forge API
Web browser
OPContainer
S3 component
Core service UI part
Browsing UI part
S3 UI part
Security UI part
Web Container
mardi 5 octobre 2010
18
Results
Created a component model based on GWT allowingseparated component development and cold assembly
UI Components are maven-based as abstract services
Same language for abstract services and UI components
Complete development process can be done in the same IDE
Integration in a Single Page Composite Interface
mardi 5 octobre 2010
19
Conclusion
The kernel component model gives developers the ability to contribute easily writing server side and also client side (UI) extensions in a uniform way
QualiPSo Factory aims to promote the emergence of a forge eco-system
mardi 5 octobre 2010
20
Open Source
LPGL Sources : https://gforge.inria.fr/projects/qualipso/
Contribution of 2 open-sources libraries for GWT: OpenParts (loadable components) QGWT (Qualipso Graphical Widget
Toolkit)
http://qualipso.orgmardi 5 octobre 2010
Demo(screencast)
mardi 5 octobre 2010