© 2011 autodesk moving from desktop to cloud albert szilvasy software architect, autocad...

31
© 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

Upload: alban-stevens

Post on 05-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Moving from Desktop to Cloud

Albert SzilvasySoftware Architect, AutoCAD Engineering Team

Page 2: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Agenda

Why does the ‘cloud’ matter? Understand how AutoCAD is changing Understand how to change your apps

Page 3: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Why does the cloud matter?

Pay as you go computing power Background tasks (e.g. drawing standard compliance) Simulations, rendering

Pay as you go storage Autodesk Cloud Docs iCloud, Skydrive, Dropbox

Very high speed network Accessing other web services from your own is fast

Page 4: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Using the cloud from a desktop application

Rendering Simulation Document management Etc.

AutoCAD

Add-in

Page 5: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Using the cloud from a mobile application

Most mobile apps have a ‘connected aspect’ Data is in the cloud (e.g. maps, dropbox etc.) Battery must be conserved

Examples: Amazon Silk browser Evernote Navigation apps

Mobile app

Page 6: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Add-in

Using AutoCAD from a mobile application

AutoCAD WS Your app?

AutoCAD

Mobile app

Page 7: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk 7

Desktop vs. Mobile vs. Cloud

Desktop Mobile CloudCPU CISC & Many RISC & Few ‘unlimited’/pay as you goGPU Common Common RareStorage TBs GBs ‘unlimited’/pay as you goNetwork Gbit Mbit GbitPower ‘unlimited’ Limited by battery ‘unlimited’Sensors Few Many NoneInteraction High precision Less precise Programmatic only

Page 8: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Demo: Running AutoCAD on a mobile device

CAD authoring is difficult on a touch-only device A traditional desktop app draws a lot of power There’s room for apps optimized for mobile

Page 9: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Evolving AutoCAD for the cloud era

Page 10: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Our goal: Provide AutoCAD as a Service (SaaS)

What does this mean for you, the 3rd party developers? AutoCAD evolves to become Platform as a Service (PaaS):

Pay as you go service to run your AutoCAD add-ins

We are at the early stages of this evolution We want to preserve your existing investment We want to enable ‘write once run everywhere’

Apps written for the desktop work in the cloud/mobile devices The more code you can share the better

Page 11: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Server friendly components

The economy of the cloud comes from maximum resource utilization Host as many task as possible on a given hardware

Running the entire AutoCAD with UI is expensive nobody is there to see it, interact with it

Need components that are server friendly RealDWG = DWG DOM AutoCAD Core Engine = Real DWG +

Page 12: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

acad.exe.arx apps

AcDb (RealDwg).dbx apps

AutoCAD 2000

acad.exe.arx apps

Page 13: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

.crx apps

AutoCAD Core

AutoCAD.arx apps

AutoCAD 2011

AutoCAD.arx apps

AcDb (RealDwg).dbx apps

Osnap

Core commands

Plot

Command processor Input acquisition Viewports

Lisp Selection Layouts

ToolbarsMenus Palettes Dialogs

Page 14: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

AutoCAD Core Technology Stack

AcDb (RealDwg)

AcCore

.crx

app

s.d

bx a

pps

Graphics Subystem

Acad

.arx

app

s

AutoCAD Core Engine

Page 15: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Demo: console autocad

Page 16: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

One Core

AutoCAD for Windows AutoCAD for Mac AutoCAD WS

AutoCAD Core Engine

Page 17: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

One API

AutoCAD Core Engine

Aut

oCA

D

for

Win

dow

s

Au

toC

AD

fo

r M

acA

uto

CA

D

WS

DBX AppsCRX Apps

Page 18: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

One Backend

CRX Apps

AutoCAD WSmobile

AutoCAD WSbrowser

AutoCAD for Windows

AutoCAD for Mac

AutoCAD WS (PaaS)

DBX Apps

Page 19: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Evolving AutoCAD Add-ins for the cloud era

Page 20: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Desktop application

User interacts with mouse/keyboard and sees results on screen

Remote desktop: Remotes mouse/keyboard events and bitmaps Latency is a problem Underutilizes most clients Form factor mismatch (screen size, pointer vs. touch)

Driver

OS

OSDriver

Application

Page 21: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

AutoCAD to AutoCAD WS

Driver

OS

OSDriver

AutoCADAutoCAD

WS

AutoCAD Core

Engine

Commands, 3D point input, selection

3D primitives

Mobile/Browser client Server

Page 22: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

What does it take to be cloud ready?

Your add-in must run on top of the Core Engine Separate in-canvas UI from out of canvas UI (dialogs)

Make sure that all your ‘business logic’ is accessible via the command line Split your code:

CRX app: Command line UI ARX app: Form-based UI

The mechanics are different for each API technology: C++ .NET Lisp COM/VBA

Page 23: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Useful pattern

‘Host pattern’ Represent the out of canvas UI as a proxy object in CRX code Implement the real out of canvas UI in ARX Proxy holds back pointer to Host Fallback when Host not present

AutoCAD Core Engine

Host application (e.g. AutoCAD for Window)

XYZDialogProxy

XYZDialogHost

IXYZDialogHost

Page 24: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Porting a C++ application

Main libraries that applications now reference: Acad.lib, accore.lib, acdbXX.lib

Applications that target the Core Engine should only reference Accore.lib and acdbXX.lib

Page 25: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Porting a .NET application

Applications can reference 3 main assemblies: Acdbmgd.dll, accoremgd.dll, acmgd.dll

Accoremgd.dll: Much of APIs that used to be in acmgd.dll Command registration Prompts, selection Graphics Publishing/Plotting

Acmgd.dll All the out of canvas stuff Dialogs Palettes

Page 26: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Porting a .NET Application

Apps that run on the Core Engine should reference only these: Acdbmgd.dll, AcCoreMgd.dll

Split your assembly into two: One that supplies command line UI One that provides windows, palettes, dialogs

Page 27: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Porting Lisp code

No vla-/vlax- COM API is only partially available in the Core Engine

No DCL Out of canvas UI does no make sense on the server

Page 28: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Porting VBA/COM code

VBA apps will not work COM apps (VB6?) may work if they only use a subset of the API

Unlikely since most applications would use the Application object Port these apps to .NET

Page 29: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Summary and Call to Action

Mobile & Cloud go hand in hand Your mobile apps will be hybrids: do some of their work in the cloud

Mobile apps need access to DWG data AutoCAD is evolving to meet this challenge Your apps must evolve too

Make your apps scriptable: ensure that functionality is available without dialogs/windows, via the command line

Start separating your code: keep command line UI in one module and move dialog/windows into another

Page 30: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Related sessions

“Get under the AutoCAD WS hood” Thursday 3:15pm at Delfino 4105.

Page 31: © 2011 Autodesk Moving from Desktop to Cloud Albert Szilvasy Software Architect, AutoCAD Engineering Team

© 2011 Autodesk

Autodesk, AutoCAD* [*if/when mentioned in the pertinent material, followed by an alphabetical list of all other trademarks mentioned in the material] 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. © 2011 Autodesk, Inc. All rights reserved.