docdokuplm : domain specific paas and business oriented api, ow2con'16, paris
TRANSCRIPT
DocDokuPLM: Domain Specific PaaS and Business Oriented API
Morgan Guimard - 21 sept 2016 - OW2 con' 2016
We are DocDoku
2
We help industrial organizations digitize their business
Based in France● Toulouse● Paris
Committed to the Open Source, we make DocDokuPLM:
● https://github.com/docdoku/docdoku-plm● Twitter: @docdoku
#PLM #HTML5 #Java #BigData#WebGL #IoT #Industry
About me
3
Tech experience● 10 years in Web Technologies● JavaScript developer● Java EE developer
Morgan Guimard● DocDokuPLM dev leader● Technical trainer
Agenda
4
1 – What is DocDokuPLM ?2 – DocDokuPLM meets PaaS3 – Technical aspects4 – Who is using it ?
What is DocDokuPLM ?
6
Product Lifecycle Management
Manage the entire lifecycle of a product
Create and manage your product structures
Define part variants
Visualize the 3D model of your products
What is DocDokuPLM ?
7
Document management system
Version control
Add tags and custom attributes
Create document models
Define links between documents
Organize, browse, share, search documents
What is DocDokuPLM ?
8
Web and desktop applications
Run in all modern browsers
3D visualization of products
Real time audio/video conversations
Synchronize files with user’s file system
DocDokuPLM meets PaaS
10
Why did we need an API ?
Building quickly new applications
Developing new GUIs
Offering new business perspectives
Bringing the API makes DocDokuPLM
PaaS ready
DocDokuPLM meets PaaS
11
Resolving specific use cases
Creating new APIs and applications around our services
{ api }Specific use case
DocDokuPLMAPI
{ api }Specific use case
DocDokuPLM meets PaaS
13
Benefits for every actors
Innovate faster
Focus on use case / needs
Ease deployment and scale
Save money
Support
Technical aspects
15
Good bye SOAP, welcome REST
Maintaining both is a pain
Not the same endpoints
Not the same codebase
One layer to rule them all!
Technical aspects
16
Annotations in the REST layer
Specific annotations (not standard yet), we use Swagger
Describes inputs, outputs, names, HTTP codes
@Api("documents")public class DocumentResource ...
@ApiOperation(value = "Create a document", response = Document.class)public Document createDocument (
@ApiParam(value = "Document to create") Document document...
@Api("documents")public class DocumentResource ...
@ApiOperation(value = "Create a document", response = Document.class)public Document createDocument (
@ApiParam(value = "Document to create") Document document...
Technical aspects
17
Parsing these annotations
Annotations reader, Java based program
Parse the entire REST layer
Produces a JSON file
Describes all services
Technical aspects
18
Generating the SDK
Swagger codegen – Apache License, Version 2.0https://github.com/swagger-api/swagger-codegen
Generates our Java API from JSON description
Packaged as a jar
« Mavenized »
Will be published on next release
Technical aspects
19
JavaScript SDK
Swagger-clienthttps://www.npmjs.com/package/swagger-client
Used to generate our JavaScript SDK
Runs in a browser, or simply as a NodeJS module
Can be used in a SPA, or in a NodeJS application
Technical aspects
20
Language support
Not using or don’t want to use Java or JavaScript?
We can bring our API to other languages
Who is using it?
22
We do, in DPLM
The DPLM: a web based desktop application
Mostly designed for CAD designers
Also fits for simple files management
Now DPLM relies on our JavaScript SDK
More flexible
More reliable
Much faster
Who is using it?
24
FarmStar
Jee & web application
Reporting system, modulation and advice
for agricultural industry
Who is using it?
25
You, tomorrow?
Need some kind of …
document management system
within your information system?
Manufacturing or tracking facilities?
Social and notification features?
Next release coming soon, stay tuned!