Contenu connexe Similaire à Forge - DevCon 2017, Darmstadt Germany: HFDM - What, why & how? (20) Forge - DevCon 2017, Darmstadt Germany: HFDM - What, why & how?1. © Autodesk, Inc. 2017
HFDM - What, Why and How ?
Arno Zinke
Cloud Platforms
October, 2017
11. © Autodesk, Inc. 2017
Architect
Bulding Design
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
12. © Autodesk, Inc. 2017
Architect
Bulding Design
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
13. © Autodesk, Inc. 2017
Architect
Bulding Design
This file is huge!
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
14. © Autodesk, Inc. 2017
Architect
Bulding Design
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
I don’t want my full design
to be available to Keller!
15. © Autodesk, Inc. 2017
Architect
Bulding Design
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
16. © Autodesk, Inc. 2017
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
Architect
Bulding Design
I need to write a Revit plugin
or manually copy it!
17. © Autodesk, Inc. 2017
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
Architect
Bulding Design
18. © Autodesk, Inc. 2017
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
Architect
Bulding Design
I need to write a Fusion plugin
or manually import it!
19. © Autodesk, Inc. 2017
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
Architect
Bulding Design
I need to write a Fusion plugin
or manually import it!
20. © Autodesk, Inc. 2017
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
Architect
Bulding Design
We can't manufacture this!
21. © Autodesk, Inc. 2017
We can't manufacture this!
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
Architect
Bulding Design
22. © Autodesk, Inc. 2017
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
Architect
Bulding Design
23. © Autodesk, Inc. 2017
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
Architect
Bulding Design
24. © Autodesk, Inc. 2017
Formwork
Detailed Design
Woodwork
Manufacture Data
Shoring
Design
Architect
Bulding Design
What has actually changed?
26. © Autodesk, Inc. 2017
What are the relationships between all these files?
2 Years Later
? ?
?
27. © Autodesk, Inc. 2017
What did the project look like 6 months ago?
2 Years Later
28. © Autodesk, Inc. 2017
History and Relationships
● What are the relationships between all these design files?
● Can I go back in time to look at an older version?
Granular data access
● Why do I need send complete files?
○ The next in line only needs a small part.
○ I made only a small change.
● I don’t want to share my IP
Data Management Needs
Internal collaboration
● Design exploration
● Collaborative design
Custom workflows
● Autodesk does not always have to right functionality.
● I don’t want to write a plugin for every possible CAD application.
30. © Autodesk, Inc. 2017
http://boredomtherapy.com/wp-content/uploads/2015/04/02-fake-animal-hybrids.jpg
31. © Autodesk, Inc. 2017
○ Generic branch and merge
○ Real-time
○ Offline mode
What is Forge HFDM?
Secure and efficient HF
cloud data store
Collaboratively change data Granular Access Control
○ Communicate and store HF Changes
○ Full and fine grained history
○ GDPR, SOC compliant
○ Users own certain parts of the data
○ Clients can subscribe to parts of the data
○ Owners can restrict access to their data
Service that allows:
33. © Autodesk, Inc. 2017
Drawing Application Example
○ Allows to draw shapes on a canvas.
○ Make modifications to these shapes.
○ Automatically saves to cloud storage.
Application that:
Cloud Storage
34. © Autodesk, Inc. 2017
Drawing Application Example
○ Allows to draw shapes on a canvas.
○ Make modifications to these shapes.
○ Automatically saves to cloud storage.
Application that:
Cloud Storage
37. © Autodesk, Inc. 2017
Shapes:
Circle_1:
Type: circle
center: (x: 2, y: 2)
radius: 2
color: “blue”
Storing Full Views (naive way)
38. © Autodesk, Inc. 2017
Storing Full Views (naive way)
Shapes:
Circle_1:
Type: circle
center: (x: 2, y: 2)
radius: 2
color: “blue”
Rect_1:
Type: rectangle
center: (x: 4, y: 5)
width: 2
height: 3
color: “blue”
39. © Autodesk, Inc. 2017
Storing Full Views (naive way)
Shapes:
Circle_1:
Type: circle
center: (x: 2, y: 2)
radius: 2
color: “blue”
Rect_1:
Type: rectangle
center: (x: 4, y: 5)
width: 2
height: 3
color: “red”
40. © Autodesk, Inc. 2017
Storing Full Views (naive way)
Shapes:
Circle_1:
Type: circle
center: (x: 2, y: 2)
radius: 2
color: “blue”
Rect_1:
Type: rectangle
center: (x: 4, y: 5)
width: 3
height: 3
color: “red”
41. © Autodesk, Inc. 2017
Storing Full Views (naive way)
Shapes:
Circle_1:
Type: circle
center: (x: 2, y: 2)
radius: 2
color: “blue”
Rect_1:
Type: rectangle
center: (x: 5, y: 5)
width: 3
height: 3
color: “red”
42. © Autodesk, Inc. 2017
Storing and sending full datamodels is inefficient
Client StorageFiles
43. © Autodesk, Inc. 2017
Storing and sending full datamodels is inefficient
In the use of network bandwidth
Client StorageFiles
44. © Autodesk, Inc. 2017
Storing and sending full datamodels is inefficient
With regards to memory consumption
Client StorageFiles
45. © Autodesk, Inc. 2017
Storing and sending full datamodels is inefficient
Common “solution”: no history
Client StorageFiles
48. © Autodesk, Inc. 2017
Add:
type: circle
id: circle-1
center: (x: 2, y: 2)
radius: 2
color: “turquoise”
Storing Changes (HFDM way)
49. © Autodesk, Inc. 2017
Add:
Type: rect
id: rect-1
center: (x: 4, y: 5)
width: 2
Height: 3
color: “blue”
Storing Changes (HFDM way)
50. © Autodesk, Inc. 2017
Modify:
id: rect-1
color: “red”
Storing Changes (HFDM way)
51. © Autodesk, Inc. 2017
Modify:
id: rect-1
width: 3
Storing Changes (HFDM way)
52. © Autodesk, Inc. 2017
Modify:
id: rect-1
Center:
x: 5
Storing Changes (HFDM way)
53. © Autodesk, Inc. 2017
Is efficient
● bandwidth: we send only what has changed
● storage: circle data is stored only once
And we can reconstruct the full history
of the data.
Storing Changes (HFDM way) Cloud Storage
54. © Autodesk, Inc. 2017
High Frequency Data Streams and Persistency
Upload File
Update File
Upload File Upload File
Update File Update File
Low frequency file handling
55. © Autodesk, Inc. 2017
Upload File
Update File
Upload File Upload File
Update File Update File
Low frequency file handling
change change change change change change change change
Incremental high frequency changes
High Frequency Data Streams and Persistency
71. © Autodesk, Inc. 2017
3 Options to resolve conflicts
● Standard Operational Transformation (OT)
● Automatic custom conflict resolution functionality
● Custom conflict resolution with user intervention
Three options:
72. © Autodesk, Inc. 2017
Branching and Merging Allows :
Design exploration
By creating multiple branches
Asynchronous collaboration
By merging changes of two branches
Client
Client
Changes
74. © Autodesk, Inc. 2017
Real-time collaboration allows :
● Multiple collaborators
Manipulating the branches simultaneously
● Continuous merging
Of the local and global branches
Client
Client
Changes
76. © Autodesk, Inc. 2017
● A client can choose
which data to fetch
● A user owns
certain parts of the data
● Owner can control
user access
Granular access
Changes
Client
Forge HFDM
Client
All data Circles only
79. © Autodesk, Inc. 2017
Reactive, Distributed Clients and Services
Forge
HFDM
Changes
80. © Autodesk, Inc. 2017
Interoperability: data schema’s
{
typeid: 'example:colored_point-1.0.0',
properties: [
{ id: 'position', properties: [
{ id: 'x', typeid: 'Float32' },
{ id: 'y', typeid: 'Float32' },
{ id: 'z', typeid: 'Float32' }
]},
{ id: 'color', properties: [
{ id: 'r', typeid: 'Float32' },
{ id: 'g', typeid: 'Float32' },
{ id: 'b', typeid: 'Float32' }
]}
]
}
81. © Autodesk, Inc. 2017
○ Generic branch and merge
○ Real-time
○ Offline mode
What is Forge HFDM?
Secure and efficient HF
cloud data store
Collaboratively change data Granular Access Control
○ Communicate and store HF Changes
○ Full and fine grained history
○ GDPR, SOC compliant
○ Users own certain parts of the data
○ Clients can subscribe to parts of the data
○ Owners can restrict access to their data
Service that allows:
83. © Autodesk, Inc. 2017
What are the relationships between all these files?
? ?
?
84. © Autodesk, Inc. 2017
History and Relationships
● What are the relationships between all these design files?
● Can I go back in time to look at an older version?
Granular data access
● Why do I need send complete files?
○ The next in line only needs a small part.
○ I made only a small change.
● I don’t want to share my IP
Data Management Needs
Internal collaboration
● Design exploration
● Collaborative design
Custom workflows
● Autodesk does not always have to right functionality.
● I don’t want to write a plugin for every possible CAD application.
85. © Autodesk, Inc. 2017
Bring the Data to the Center
Players store data in HFDM
Shoring
FormworkArchitect
Woodwork
Forge HFDM
86. © Autodesk, Inc. 2017
Dealing with Large Models
Only changes are communicated
Players only subscribe to the data they need.
Shoring
FormworkArchitect
Woodwork
Forge HFDM
87. © Autodesk, Inc. 2017
Read-Only
IP Issues
Access Control: Read, Write, Read / Write
To the part of the data that needs to be shared
Shoring
FormworkArchitect
88. © Autodesk, Inc. 2017
IP Issues
Access Control: to Read, Write, Read / Write
To the part of the data that needs to be shared
Formwork
Read-Only
Shoring Woodwork
89. © Autodesk, Inc. 2017
Custom Workflow
Write microservices in any language
Interoperable through open data schemas that can run anywhere.
Shoring
Architect
Woodwork
Formwork
91. © Autodesk, Inc. 2017
HFDM is a Key Technology
Ubiquitous
● Available client libraries: JavaScript, C++, C#
● Interfaces with Autodesk core products and services
HFDM enables connected
applications and collaborative workflows
● Directly access Revit, Inventor or Fusion data from anywhere, even in the browser
● Build custom end-to-end workflows through a common data interface
93. HFDM: Working with a Shared State
▪ HFDM works best with reactive, data-centric applications
▪ Applications react to data model changes
94. HFDM: Working with a Shared State
▪ HFDM works best with reactive, data-centric applications
▪ Applications react to data model changes
▪ Data model changes drive the business logic of an applications
95. Cloud HFDM
● A simple HFDM-based browser application that renders shapes
Rendering App
Working with a Shared State
A Simple Example
96. Cloud HFDM
● A simple HFDM-based browser application that renders shapes
State (data model in local HFDM)
Rendering App
Working with a Shared State
A Simple Example
97. Canvas RenderingBusiness Objects (code)
● A simple HFDM-based browser application that renders shapes
State (data model in local HFDM)
Working with a Shared State
A Simple Example
Cloud HFDM Rendering App
98. Canvas Rendering
● Fetch an existing commit (PropertySet data state) from HFDM
Business Objects (code)
{
Circle: center = (2.0,3.0) color = “red”
Circle: ...
Triangle: ...
Rectangle: ...
}
State (data model in local HFDM)
Cloud HFDM Rendering App
Working with a Shared State
A Simple Example
99. Canvas RenderingBusiness Objects (code)
● Instantiate and bind business objects to state
CircleRenderObject
CircleRenderObject
TriangleRenderObject
RectangleRenderObject
{
Circle: center = (2.0,3.0) color = “red”
Circle: ...
Triangle: ...
Rectangle: ...
}
State (data model in local HFDM)
Cloud HFDM Rendering App
Working with a Shared State
A Simple Example
101. {
Circle: center = (2.0,3.0) color = “blue”
Circle: ...
Triangle: ...
Rectangle: ...
}
State (data model in local HFDM) Canvas RenderingBusiness Objects (code)
● Data state mutation by application: circle color change in state
CircleRenderObject
CircleRenderObject
TriangleRenderObject
RectangleRenderObject
Cloud HFDM Rendering App
Working with a Shared State
A Simple Example
103. Canvas RenderingBusiness Objects (code)
● Change gets written to HFDM
CircleRenderObject
CircleRenderObject
TriangleRenderObject
RectangleRenderObject
{
Circle: center = (2.0,3.0) color = “blue”
Circle: ...
Triangle: ...
Rectangle: ...
}
State (data model in local HFDM)
Cloud HFDM Rendering App
Working with a Shared State
A Simple Example
104. ● A Forge console app that prints the state (shape types)
Canvas RenderingBusiness Objects (code)
TextObject
TextObject
TextObject
TextObject
{
Circle: center = (2.0,3.0) color = “blue”
Circle: ...
Triangle: ...
Rectangle: ...
}
State (data model in local HFDM)
Cloud HFDM Console App
Circle
Circle
Triangle
Rectangle
Console
Working with a Shared State
A Different Application
105. ● Apps and services share the same state, enabling real-time collaboration
Circle
Circle
Triangle
Rectangle
{
Circle: center = (2.0,3.0) color =
“blue”
Circle: ...
Triangle: ...
Rectangle: ...
}
State(data)
{
Circle: center = (2.0,3.0) color =
“blue”
Circle: ...
Triangle: ...
Rectangle: ...
}
State(data)
Working with a Shared State
Data-Centric Collaboration
110. Autodesk and the Autodesk logo are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders.
Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document.
© 2017 Autodesk. All rights reserved.