Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- Be respectful, on topic and if you see a problem, Flag it.
If you would like to contact our Community Manager personally, feel free to send a private message or an email.
Offline Is Just Online With Extreme Latency?
In general, I'm very much in favor of the requirement that Onshape needs to be connected to the cloud all the time in order to work. I've had multiple discussions with colleagues where I remind them that if they are in a situation where they don't have internet access, they likely can't do a bunch of other mission critical things like: communicate with remote coworkers/clients/partners, share files with vendors, research parts/materials/technology, check things in/out of their old-school PDM/PLM system, etc. In the reality of past jobs using Solidworks, even when I've been working somewhere where our PDM/license servers were on premise, on the rare occasions when the internet was down, it made trying to do work next to impossible, so people would just go home.
All that said, I find the premise of this blog post provocative and worth considering for Onshape's infrastructure and how it operates:
https://blog.jim-nielsen.com/2023/offline-is-online-with-extreme-latency/
[via https://news.ycombinator.com/item?id=35626015 which has a bunch of relevant discussion]
Is there a way to reconsider the concept of "Onshape must be online all the time" such that Onshape has such and such approach to "extreme latency" where that might be hours or a day or two?
All that said, I find the premise of this blog post provocative and worth considering for Onshape's infrastructure and how it operates:
https://blog.jim-nielsen.com/2023/offline-is-online-with-extreme-latency/
[via https://news.ycombinator.com/item?id=35626015 which has a bunch of relevant discussion]
Is there a way to reconsider the concept of "Onshape must be online all the time" such that Onshape has such and such approach to "extreme latency" where that might be hours or a day or two?
Tagged:
3
Comments
What I'm asking about here is a bit of a thought experiment. Everything we do now with Onshape includes a certain amount of latency - that's limited by simple physics of electrons or photons traveling through cables, never mind all the routers etc. Right now if that latency gets to be above some number, Onshape's servers see the clients as being disconnected. What if that number was a little larger? How would that impact user experience? How large could that number be before the whole paradigm falls apart?
Also when that article is talking about the bicycle vs aircraft carrier thing, it's basically describing "traditional" enterprise software running on a local server with some online replication/backup for outside sharing, hardly anything new! But now every company needs a bike mechanic on staff (instead of having a single "aircraft carrier" serving thousands of companies) so the "expense" of transmitting data argument seems a bit odd when the alternative requires local server architecture.
Very good points. In the back of my mind, I know the basics of how the processes/data are split between client and server now, but wasn't really connecting the dots with the remote situation with the geometry server. It would be a huge architecture shift to have that running locally on the client machine. So then the latency limit is roughly 0.1-1.0 seconds based on human factors, assuming you're making changes that need to be done using the server(s).
I wouldn't expect or want to go back to having a "local vault" of files like with Solidworks PDM. Right now the client has to have a cache of computed geometry (triangles, lines, etc) to display and spin the models. It would be helpful to understand what else is locally cached (BOMS?, feature lists?). I assume that section views are largely being done locally, but I'm not entirely sure. It would also be helpful to understand what display oriented tasks (i.e. things that aren't making permanent changes to the database) can be done without round trips to the server(s).
Basically all "triangles and metadata".
So, best of both worlds. Certainly something to think about.
@alnis is my personal account. @alnis_ptc is my official PTC account.
I use Fusion 360 for some cam projects. Yesterday I was running it on a laptop in the shop and just closed the lid when done, today I sit down in my office and try to open it on my desk. It opened without logging in (surprise, it should not have) however it opened the file I was using yesterday on my laptop but in the last version that was opened at my desk. It says that it is offline (ok, turn on the online slider) it will not go online, and gives an outage message. Fine, I have my laptop I open that. Fusion 360 opens, and the file opens, great (but, but, BUT ) The hours of work from yesterday are gone!!! (No I did not save before quitting yesterday. Hey I normally work in Onshape)
So at the moment, I have this crazy situation of having Fusion open on 2 computers at the same time. ( NOT supposed to be possible) One is logged in correctly the other reports offline but somehow seems to be accessing current data. And a big mess of file versions that at the moment I am not in the mood to sort out. ( on my desk the data panel shows one version but I open it and it opens another version. ( all while claiming to be Offline.)
I think I could solve the issue by logging out of Fusion on my laptop and then closing down the program on both computers and restarting, But I am uncertain which changes will win in the end as both computers are connected to the internet. It is a disgusting mess.
Another thing that I have not tested yet is, with the latest update to Fusion they switched to opening the login screen in a browser, so is it possible to log in without an internet connection? If you can't login what good is all the cache data?
I agree that at times it would be nice to work offline, and I'm sure someone will chime in here and say that you need to be aware of the risk of overwriting data, However, it seems to me that Onshape has no interest in supporting or encouraging that possibility. So maybe if that is part of the requirements perhaps another tool would be a better fit.
I for one am impatiently waiting for CAM studio in Onshape. If it works well enough to make good parts I will be parting with my Fusion subscription and all installed desktop CAD programs.
Sorry for the rant. This is probably way off the topic that @S1mon has in mind.
I've never used Fusion except as a locally running demo, but I can imagine the pain. Just dealing with Solidworks PDM Pro and Online/Offline mode was very tricky at best. Inevitably you'd forget to check out the files you needed, and there was no local version control, so it was much more likely that you could screw things up and not have any way to undo.
In my ideal world I guess what would be nice is to have an always up to date version of the full Onshape experience with the caveat that anything that's happened since the last connection to the cloud would be locally managed. This would require, as Eric reminded me, locally running versions of the various back end processes that are currently in the cloud (geometry engine, feature engine, drawing editor, release manager, etc). The code for those local instances of the processes could also - by necessity - become out of date. We do already have branching and merging, which could help with reconciling what's happened with an Onshape document since the last connection to the cloud, but adding the ability to run all those processes locally would be complex. I also assume that any add-ins, even first party things like simulation and rendering would require a lot of extra effort to support locally.
In OT, when a user makes an edit, that edit is sent as an operation to the server. If there are other concurrent operations, the server will transform the incoming operation to account for the concurrent ones, thus resolving any potential conflicts. This transformed operation is then applied to the document and broadcast to all users, so they can update their local copies.