qualipso factory
DESCRIPTION
A presentation of the Qualipso Factory, as done in OWF.TRANSCRIPT
![Page 1: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/1.jpg)
QualiPSo Factory
mardi 5 octobre 2010
![Page 2: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/2.jpg)
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
![Page 3: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/3.jpg)
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
![Page 4: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/4.jpg)
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
![Page 5: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/5.jpg)
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
![Page 6: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/6.jpg)
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
![Page 7: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/7.jpg)
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
![Page 8: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/8.jpg)
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
![Page 9: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/9.jpg)
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
![Page 10: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/10.jpg)
Developing Factory Services
mardi 5 octobre 2010
![Page 11: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/11.jpg)
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
![Page 12: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/12.jpg)
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
![Page 13: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/13.jpg)
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
![Page 14: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/14.jpg)
Developing Factory Services UI
mardi 5 octobre 2010
![Page 15: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/15.jpg)
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
![Page 16: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/16.jpg)
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
![Page 17: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/17.jpg)
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
![Page 18: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/18.jpg)
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
![Page 19: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/19.jpg)
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
![Page 20: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/20.jpg)
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
![Page 21: Qualipso factory](https://reader033.vdocuments.mx/reader033/viewer/2022051608/5457d733af79594f558b5165/html5/thumbnails/21.jpg)
Demo(screencast)
mardi 5 octobre 2010