Jump to content
Simio Forum

Welcome to the Simio Forum

Welcome to the Simio Forum! Experience the full experience of the forum by becoming a Simio Insider! You must be an Insider to post on any forum!

Click_Here_button.png

New Software Release

Our latest release, Simio 11, is here!

ajhenryVT

Using XML to edit model

Recommended Posts

I am trying to use XML to edit my model instead of having to drag and drop 200+ resources. I save my model as a .XML and then open it up and try and edit something ... anything... even just the name of a minor/un-used state variable. After I save any changes to the XML file I try and open it back up in Simio and receive the following error "Failed to open.... Reason: Unable to verify XML contents"


Anyone have thoughts on this issue. or a better easy way to create a large number of resources with out dragging and dropping them.


-Andrew

Share this post


Link to post
Share on other sites

Andrew,


I think it is intentional that you cannot edit the XML and reload the model. If you could do that it would undermine the license model; you could create and save any model with any version of Simio by simply using an XML editor (or build your own tool), which should not be possible with the evaluation version.


Nicolas

Share this post


Link to post
Share on other sites

Follow up on your last question: We have built a Simio Design Add-In which reads information from a database and automatically creates objects (e.g. servers) from that information. We have created models with 1000+ servers that way. Please contact me if you are interested in learning more about it (nicolas.meseth@kimesolutions.de). We can also see if we can implement a solution tailored to your requirements.


Nicolas

Share this post


Link to post
Share on other sites

Any chance we could use the xml to edit the model for paid versions?


I feel this is a fairly large limitation.

Share this post


Link to post
Share on other sites

I feel the same way. Using XML to save the model is great, but it only pays off if you allow other tools to actually edit the model. That's the whole point of XML in my opinion, to make open the model for third-party providers. So I am with you that Simio should offer a way to allow paying users to edit XML and be able to load the models afterwards.


Think of the possibilities it would give you for dynamic model creation...

Share this post


Link to post
Share on other sites
I feel the same way. Using XML to save the model is great, but it only pays off if you allow other tools to actually edit the model. That's the whole point of XML in my opinion, to make open the model for third-party providers. So I am with you that Simio should offer a way to allow paying users to edit XML and be able to load the models afterwards.


Think of the possibilities it would give you for dynamic model creation...

I have a vested interest in the near future for this too.

Share this post


Link to post
Share on other sites

That's the whole point of XML in my opinion, to make open the model for third-party providers.
In fact, opening it to third party providers was not on our list of reasons to implement this - we had many other very good internal reasons. And there are other (programmatic) methods provided to interact with external programs. We actually debated internally about even telling anyone that it was XML because it might set false expectations. But we decided that there are many benefits that users could (and have) realized from using the XML and so we made it as open and usable as we could without "giving away the farm".


I can certainly understand your user perspective and I agree XML has great potential value. But it is also true that there are many people with less than honorable intentions who would try to use this to essentially make Simio "freeware", which you must admit would be a difficult business model for us to support.


We will keep looking at this issue, but I doubt that you will see a policy change on using XML in the near future.

Share this post


Link to post
Share on other sites
That's the whole point of XML in my opinion, to make open the model for third-party providers.
In fact, opening it to third party providers was not on our list of reasons to implement this - we had many other very good internal reasons. And there are other (programmatic) methods provided to interact with external programs. We actually debated internally about even telling anyone that it was XML because it might set false expectations. But we decided that there are many benefits that users could (and have) realized from using the XML and so we made it as open and usable as we could without "giving away the farm".


I can certainly understand your user perspective and I agree XML has great potential value. But it is also true that there are many people with less than honorable intentions who would try to use this to essentially make Simio "freeware", which you must admit would be a difficult business model for us to support.


We will keep looking at this issue, but I doubt that you will see a policy change on using XML in the near future.

It definitely isn't my place to be dictating policy or anything... But what would be wrong with having a plain XML importer/exporter? What exactly are you trying to prevent?


From my point of view, you are trying to prevent people from designing in academic or free versions and running in paid for versions, and vice versa. I think this essentially boils down to product differentiation. Do the features provided in paid for versions provide incentive for people to buy them and tell others to too?


Setting that aside...what is it that we want? The ability to import/export plain XML into paid for versions. Would it break your business model to allow this? A possible implementation would be to create a unique hash created based on license info (factor in multi roaming licenses) that is in the meta for each XML. The academic/free versions would not be able to import at all. And if someone is developing in free versions, their models must eventually be run in a paid version regardless.


I do not think anyone is requesting to be able to generate models and run them for free.


This was just an idea, but what have I over-looked?

Share this post


Link to post
Share on other sites

I don't see the problem with opening XML either, because you have many options to avoid it being abused.


By the way, the API for creating models dynamically is great, but it does not provide the full flexibility. For example, you cannot create processes or add elements. Please consider a solution in which it possible to create XML models for customers with good intentions. This would be a feature by which Simio could further be distinguished on the market, and it would definitely add value to the tool.

Share this post


Link to post
Share on other sites

Could this decision please be revisted. The ability to use xml combined with version control software to allow merging of models is incredibly useful and is something that is not allowed presently.


It seems to me as if there are many ways to address Simio's security concerns. Could we please get an answer on why these ways, already addressed in this thread, are not appropriate, and therefore why Simio will not be changing it's policy?

Share this post


Link to post
Share on other sites

As I said back on my Feb 6th post, I understand your need and your frustration at being almost, but not quite, there.


I would love to live in a world where everyone was honest and where we could spend 100% of our resources making the best product possible. We would hold nothing back and just assume that people would pay a fair amount for what they use. Unfortunately that is a dream world and I would soon have to seek another line of work to feed my family

 

What is it that we want? The ability to import/export plain XML into paid for versions. Would it break your business model to allow this?
Unfortunately the answer is "yes, it could."


It is unfortunate that we sometimes have to inconvenience our honest customers to prevent the less than honest customers from putting us out of business. When faced with that choice we always strive to minimize the inconvenience to the honest customers even when it means that our solution permits some misuse.


In this case we have not yet found a way to do what you ask without leaving gaping holes in our protection. We will keep looking for a solution, but until we find one, we cannot go down that path.


You can still use the xml files for version control (one of the goals), but you cannot use it for creating model files outside of Simio (never intended).

Share this post


Link to post
Share on other sites

This is unfortunate, and I understand the need to protect the software.


I am surprised that allowing business owners to open xml files that don't match the hash would leave a gaping hole. I am not, however, a security expert :cry:

Share this post


Link to post
Share on other sites

Why can't you just prevent non-hashed/signed files from running in the free version? You may allow for version control however the lack of a collaborative piece is hurting the product.

Share this post


Link to post
Share on other sites

Has anything happened regarding this issue in the last years? - I'm fairly new to the simulation community with Simio (but I have a broad background in software engineering). So one of the first question I came up with was exactly the one discussed in this topic.


I saw the potential of Git and the flexibility of models stored in XML. But as long as I can't merge files working in a team is brutally limited. In our team we will have to merge simulations respectively Simio-projects. Doing this with the support of a VCS in the background would boost our productivity.

So if the hash can't be circumvented my question would be: How do teams collaborate within one model/project?



I had the idea of splitting the simulation into several projects (one main project and the others as libraries with sub-models). This would at least decrease the likelihood of merge-conflicts. But then again they might happen. Especially if the team members are designing in the main model and forgot to pull the newest version from the repository. And it mustn't even be when designing - chances are high that someone is designing the model and somebody else the experiments.


I understand the licensing issue - but I'm not that satisfied with the provided solution. How about signing only when necessary (imagine it as "publishing" - if not published the model only runs in properly licensed version but not the free one)?

To be fair I currently only have experience with the Academic licensed version of Simio since I work as research assistant at a University (maybe there are some limitations coming along with that license). But we run student projects during a simulation's course with small teams.



To summarize my questions:

Is it now possible to merge XML models without crippling the whole model (Simio could still load it)? What license would we need to do that?

And if not, what is the best-practice approach if multiple team members have to work with the same simulation?

Share this post


Link to post
Share on other sites

I would also like to underline this point again. It is still valid and it would offer a great benefit if we could generate / edit XML directly AND be able to load the model in Simio.


BR

Nicolas

Share this post


Link to post
Share on other sites

I appreciate the ongoing interest in this. Please don't give up on us :) - on some things like this we move slow, but continued user pressure helps keep it moving.


Right now, the entire set of xml files is signed. We are currently considering pulling certain parts of the xml outside of that signed bucket.


One obvious set of constructs to free would be the items in the data tab. Are there other things that are high on the list?


In other words can interested users provide a prioritized list of the things you most want to change via unsigned xml? We can possibly work toward them all, but perhaps we can quickly support the ones in highest demand.

Share this post


Link to post
Share on other sites

Hi David, it is nice that you encourage us to request such things.

In my oppinion, ability to place objects in SIMIO by modification of xml file will be great. Although, I can use API and Excel-add on, it is slow if you have more objects. We made some modifications to the add-on Glen created, so that it is not switching between excel and simio after each row, but still for hundreds of object (even simple nodes) it takes a long time. And you want to utilize some automation when it comes to placing hundreds of objects.


Or enabling SIMIO to do this add-on placing of objects quickly will solve the problem for us. I can send you the files and modified add-on if you are interested in testing.

Share this post


Link to post
Share on other sites

Hi Dave,


I'd really like the ability to merge files, which would support concurrent modeling (in Simio! Using licensed copies!) and version control software (i.e. Git). Even implementing this within the Simio software itself would be great... it just seems so promising with the xml. It would be a huge differentiating factor for us.


Thanks!


Adam

Share this post


Link to post
Share on other sites

I'd really like the ability to merge files

Adam, Can you be more specific? What parts of Simio are you changing that you want to merge? If the answer is "everything" then it is probably a ways off. But if you can identify a few priority items, we might make progress sooner.

Share this post


Link to post
Share on other sites

Unfortunately, it is likely "everything" :D . As an example, we have a large model (a detailed factory model) written in software that is no longer meeting our needs. To port it to Simio we would like to have several modelers working on the various components of the model. At this point with Simio, we can only have one person work on the model at a time, which may kill the proposal and force us to continue using the other software. If we could merge the model (primarily object instances, definitions, and processes) we could have concurrent modeling with significantly reduced "clean-up". The current project has two modelers and they spend almost as much time merging the model manually (in the other software) as they save by working in parallel. Again, this feature would therefore be a big differentiator for Simio from a workflow perspective.


Thanks!


Adam

Share this post


Link to post
Share on other sites

Yes, I agree with Adam. For all things we do that require programming, we use GIT. I know that SIMIO uses TortoiseSVN for taking care of all the development of SIMIO.

What I sometimes do is that I copy my model to do some minor or major changes (in the same project) and than if the changes are for the benefit of modelling I have to sometimes reincorporate to the Master model.


I understand, that you need to have signed XML files, so that noone can write models in pure XML, but I would suggest adding some version control into SIMIO (maybe it will take a long time to implement, but will make a significant competing advantage).


Abbility to branch model, make changes on a branch, test it and than incorporate some changes into main version will be a nice advantage and will open possibilities to use more team work in SIMIO.


I think that something like version control can be implemented in SIMIO.


Petr

Share this post


Link to post
Share on other sites

I strongly disagree with Petr on the idea to build version control into Simio. Please don't! There are a lot of very good tools for that, for example GIT. Please invest the development resources into features that make Simio even better in terms of simulation modeling capability.


I want to underline the wish to be able to edit all parts of the model in pure XML. I also don't quite get why writing models in XML would pose a problem for Simio:


1. The modeling capabilities of Simio are outstanding so that you will always need and want a license of Simio

2. You'd still need a Simio license to run the model

3. For the purpose of productionizing simulation models and making the model more dynamic, it would be a required feature to edit it in XML. An analogy: In many projects where we built data integration pipelines with Microsoft SSIS (also saved in XML format) we greatly benefitted from being able to generate parts of the integration pipeline at runtime. Examples are replacing parameters, adding and removing certain components as needed for a particular run etc. When building a simulation model for running every day, for example, similar capability's would be required.


Thanks

Nicolas

Share this post


Link to post
Share on other sites

Using git with unsigned xml files it would easy to see how a model has changed over time and to spot any modifications you can do without noticing, like unintentionally moving a node.

Right now I'm working with a team and because of unintended mistakes and no version control, I have decided to make any changes to the model myself, this creates a bottleneck in our process, making things very slow.

Please make it possible to use xml to edit the model.


Thank you!!

Share this post


Link to post
Share on other sites

As of Sprint 156, the file signature has been moved from the main project file which enables merges/dif comparisons using version control software (the release notes for 156 has some details). We use Git for version control, forking, merging, etc. of Simio models (with multiple users) and it is working pretty well.


-Adam

Share this post


Link to post
Share on other sites

×
×
  • Create New...