Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.

First time visiting? Here are some places to start:
  1. Looking for a certain topic? Check out the categories filter or use Search (upper right).
  2. Need support? Ask a question to our Community Support category.
  3. Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
  4. 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?

S1monS1mon Member Posts: 2,982 PRO
edited April 2023 in General
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?

Comments

  • S1monS1mon Member Posts: 2,982 PRO
    Hmm. I'm pretty surprised by the negative votes. If you've seen what I've written here over the years, I do not want to go back to the issues of other traditional CAD tools, and I'm very much pro-Onshape. Despite years of experience in other CAD tools, whatever my next job(s) are in my career I do not want to go back to those tools. I've basically never lost work in Onshape, something I can't say about any other software I've used in the 45+ years I've been using computers.

    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?
  • eric_pestyeric_pesty Member Posts: 1,885 PRO
    One of the key things is that unlike a lot of "cloud" apps, Onshape doesn't just share data... All the geometry solving is done remotely so if you had "extreme" latency, you might be able to add a fillet feature to your part feature tree but you wouldn't get a preview or have the fillet show up until you could connect to the server.

    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.
  • S1monS1mon Member Posts: 2,982 PRO
    @eric_pesty

    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).

    We already have light user functionality with limited ability to modify data. Could there be a version of this which could tolerate larger amounts of latency?
  • eric_pestyeric_pesty Member Posts: 1,885 PRO
    Right, I do think "view only" functionality can be achieved and I think it's kind of mostly working this way already right now (you can still spin your model around when you temporarily lose connection no?) but would be interesting to see how far this could be pushed... (would you cache the entire "company" "document" tree so you would have access to all BOMs etc?
    Basically all "triangles and metadata".
  • alnisalnis Member, Developers Posts: 452 EDU
    edited April 2023
    I think that this is somewhat similar to how Google Docs works. It's real time collaborative, and accessed through a browser, but has the capability to work offline and stay responsive even in poor network conditions or even going totally offline. Then when you reestablish a network connection all of your changes automatically sync. You can also flag specific documents to always have offline/synced.

    So, best of both worlds. Certainly something to think about.
    Get in touch: contact@alnis.dev | My personal site: https://alnis.dev
    @alnis is my personal account. @alnis_ptc is my official PTC account.
  • wayne_sauderwayne_sauder Member, csevp Posts: 554 PRO
    I just thought I would share my recent experience and why I think this might be a problem.
     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.)  :s
     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.       
  • S1monS1mon Member Posts: 2,982 PRO
    @wayne_sauder

    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.

    Given the unlikeliness of this happening, I still wonder what currently happens in the cloud to manage the latency that we are already dealing with. My understanding is that they are using Operational Transforms to enable concurrency and micro-versions, but I don't know what they are doing in terms of any conflict resolution.

    OT is a set of rules and algorithms for transforming and merging operations (e.g., edits) on shared data (e.g., a document). It allows concurrent operations to be applied in any order without conflicts, while ensuring that all users eventually see the same final state of the document.

    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.


  • glen_dewsburyglen_dewsbury Member Posts: 782 ✭✭✭✭
    I saw something like this a few years ago by a friend working with Fusion360. He had been working on a file for a few days and wanted to show that he could continue to work offline. Something he had done previously. Turns out there was a time limit on this and the location we were at didn't have internet so would not let him continue without logging in. He had to run off to another part of the building that had wi-fi and log in before continuing. 
Sign In or Register to comment.