![Page 1: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/1.jpg)
DocDokuPLM : Using web technologiesin a desktop application
Morgan Guimard - 17 nov 2015 - OW2 con' 2015
![Page 2: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/2.jpg)
We are DocDoku
2
We help industrial organizations digitize their business
Based in France● Toulouse● Paris
Committed to the Open Source, wemake DocDokuPLM:
● https://github.com/docdoku/docdoku-plm● Twitter: @docdoku
#PLM #HTML5 #Java #BigData#WebGL #IoT #Industry
![Page 3: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/3.jpg)
About me
3
Tech experience● 10 years in Web Technologies● JavaScript developer● Java EE developer
Morgan Guimard● DocDokuPLM dev leader● Technical trainer
![Page 4: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/4.jpg)
Agenda
4
1 – Introduction to Product Lifecycle Management2 – Working with CAD files3 - Our cross-platform solution
![Page 5: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/5.jpg)
1 - Introduction to Product LifecycleManagement
![Page 6: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/6.jpg)
6
Manages the entire lifecycle of a product from its conception toits disposal.
Integrates people, data, processes and business systems andprovides a product information backbone.
Product Lifecycle Management
![Page 7: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/7.jpg)
PBS?
7
Product Breakdown Structure
A hierarchical listing of assemblies and components, and thequantities there-of, necessary to produce a final product
![Page 8: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/8.jpg)
Parts
8
Each node of a PBS is a part
Stores every information of a component, as its name, customattributes, and its geometry file.
The part number is its identifier. You may find the same part atmultiple PBS levels.
V54S3434RTX
![Page 9: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/9.jpg)
Assembly / Leaf
9
● Assembly nodes stores the structure informations● Leaves stores the geometry● Assemblies and leaves are both considered as parts
Example: An office desk
![Page 10: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/10.jpg)
Everything is tracked
10
● Through Check-in / Check-out mechanism● Iteration (1, 2, 3...) and Revision (A, B, C...)
Example: Part 100 A.3A is the revision, 3 is the iteration and A.3 is the version
● Iteration = minor changes● Revision = major ones
![Page 11: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/11.jpg)
2 – Working with CAD files
![Page 12: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/12.jpg)
Working with CAD files
12
● Our target: CAD designers● They are editing lot of files / large files
Check in / Check out
● Those files need to be synchronized on a server● Collaborative work is a main topic
![Page 13: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/13.jpg)
Standard formats ?
13
Some formats are standard
● STEP, IFC, OBJ, …
And some other formats are not standard
● SLDPRT, CATPART, …
We're trying to convert any format, even if not standard
![Page 14: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/14.jpg)
CAD files content
14
Depends on the format, can contains
● Geometry only● Structure only● Both
Managed server side with DocDokuPLM server
● Converting many formats to a WebGL format● Extracting the structure from CAD files and creating the PBS● May require proprietary SDK to parse some none standard formats
![Page 15: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/15.jpg)
Multiple editors
15
Many edition tools / platforms
● Windows - Mac OS X - Linux● AutoCAD, SolidWorks, CATIA, BIM Editor ...
● Developing a plugin for all of them isn't realistic● Should also be maintained for every software update
![Page 16: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/16.jpg)
How can we help every CAD designer ?
16
Editor plugins ?
● Not realistic: too many editors, versions, languages
Operating system integration ?
● Would be a great solution, but requires more than a single code base
The easiest way for us is a cross platform application
![Page 17: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/17.jpg)
3 – Our cross platform solution
![Page 18: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/18.jpg)
Command line interface
18
Fits for most advanced users...
● Scriptable● Lightweight● Easy to use● Check in / Check out and synchronize files from command line with a
single command
● ...but lacks a graphical user interface to easily make bulk operations
$ dplm checkin some-part-number
![Page 19: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/19.jpg)
Choosing a cross-platform technology
19
Native ? Web based ? What do we need ?
● Read and write the user's FileSystem● Be able to interact with our JSON WebServices● Interact with our CLI● Have a responsive design for each display● 3D preview
![Page 20: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/20.jpg)
Node Webkit
20
Just a nutshell ...
● Wrapping NodeJS and a Webkit browser● Let's keep a standard API: HTML5● And let's use NodeJS low level API
![Page 21: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/21.jpg)
NodeJS brings us ...
21
… exactly what we need
● Ability to walk the user's FileSystem to discover CAD files● Read CAD files contents to display them in a 3D preview● An API to interact with our CLI (Directly in java or bash)● FileSystem watchers to detect any change made on a file● An easy way to work with JSON objects
![Page 22: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/22.jpg)
Webkit browser
22
Helps us to :
● Create a responsive design● Keep a single code base for each platform● Allow HTTP connections and easy JSON parsing● Load 3D file with WebGL technology for a live preview
![Page 23: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/23.jpg)
Pros and cons of this choice
23
We like...● One code base, and code reuse● Standard API● Fast development process● Latest web technologies can be used● Easy to package
We don't like so much…● App size (must embed Webkit and NodeJs)● Requires more RAM and CPU● Hard to mimic the OS look and feel● May have bugs for NodeWebkit (notification, file system changes)
![Page 24: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/24.jpg)
Our web based solution
24
DocDokuDPLM
● Built with NodeWebkit● Using AngularJS as the main framework● Using NodeJS API
![Page 25: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/25.jpg)
Architecture
25
User's desktop
DocDokuDPLM APP
DocDokuCLINodeJS
Webkit + AngularJS
DocDokuPLM server
FSCAD editor
![Page 26: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/26.jpg)
Remote and local navigation
26
● Allows the designer to browse remote and local folders
![Page 27: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/27.jpg)
File change detection
27
● Allows the designer quickly see which files are out of sync● Green tick icon means synchronized● Orange cloud icon means modified
![Page 28: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/28.jpg)
Recursive download
28
● Allows the designer to check out / download a whole structure within asingle action
● Select existing baseline
![Page 29: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/29.jpg)
Synchronizing a whole folder
29
● Allows the designer to check in / upload a whole folder
![Page 30: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/30.jpg)
3D preview
30
● Allows the designers to see their files in 3D before uploading them● The same 3D engine is used in the DocDokuPLM server
![Page 31: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/31.jpg)
To come soon
31
We'd like to bring the following features to our solution
● Desktop notifications (synchronization done, etc…)● Better errors handling● Shortcuts to open a part in the user's favorite editor from our app● SMART check-in order when pushing many files in a single operation● ...
![Page 32: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/32.jpg)
Questions ?
![Page 33: DocDokuPLM presentation - OW2Con 2015 Community Award winner](https://reader030.vdocument.in/reader030/viewer/2022033103/58f130861a28ab8a078b461b/html5/thumbnails/33.jpg)
Thank you !