docdokuplm presentation - ow2con 2015 community award winner
TRANSCRIPT
DocDokuPLM : Using web technologiesin a desktop application
Morgan Guimard - 17 nov 2015 - OW2 con' 2015
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
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 – Introduction to Product Lifecycle Management2 – Working with CAD files3 - Our cross-platform solution
1 - Introduction to Product LifecycleManagement
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
PBS?
7
Product Breakdown Structure
A hierarchical listing of assemblies and components, and thequantities there-of, necessary to produce a final product
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
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
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
2 – Working with CAD files
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
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
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
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
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
3 – Our cross platform solution
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
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
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
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
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
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)
Our web based solution
24
DocDokuDPLM
● Built with NodeWebkit● Using AngularJS as the main framework● Using NodeJS API
Architecture
25
User's desktop
DocDokuDPLM APP
DocDokuCLINodeJS
Webkit + AngularJS
DocDokuPLM server
FSCAD editor
Remote and local navigation
26
● Allows the designer to browse remote and local folders
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
Recursive download
28
● Allows the designer to check out / download a whole structure within asingle action
● Select existing baseline
Synchronizing a whole folder
29
● Allows the designer to check in / upload a whole folder
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
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● ...
Questions ?
Thank you !