4

I want to build a some tools for ArcGIS. Toolboxes that I've seen are open source and run the scripts that reside in their src folder. However, I don't want to release the source code. After some googling (and thinking!), I came to these choices:

  1. Releasing the .pyc files
  2. Password-Protecting the tool
  3. Implementing the core algorithm in an exe file and running it in my python code.

Are these options really helpful? What is the standard practice used for creating proprietary tools?

2 Answers 2

5

A standard, modern approach to address this issue, create a web service that contains your proprietary knowledge. Your tool then calls the web service. Any local code can be cracked open. All you can do is make the process more difficult. Python is not the tool to use to keep your proprietary knowledge secret.

6
  • @Ehsan More specifically, you can create a geoprocessing service.
    – a1234
    Commented Mar 20, 2015 at 18:09
  • Even more specifically, a geoprocessing service in ArcObjects (C# or Java)
    – Vince
    Commented Mar 20, 2015 at 18:19
  • Well... Web service seems to be the optimal solution. Actually, I don't want to go that far. Just a compiled code is enough for me. I wonder if it's possible to use compiled local code. And if python is not suitable for closed source software, is it possible to code ArcGIS tools with other languages?
    – Ehsan
    Commented Mar 20, 2015 at 18:36
  • Is an ArcObjects geoprocessing service more secure than a Python geoprocessing service?
    – Erica
    Commented Mar 20, 2015 at 18:41
  • You could code some of your app's key logic in C or C++ and call that from python. That would keep everything local and increase the level of difficulty to snoop. Before heading down this road, ask yourself if what you're trying to protect is really a secret and worth the effort. Commented Mar 20, 2015 at 18:42
3

An ArcGIS Desktop add-in will probably meet your requirements. With an add-in you ship a single compressed file as opposed to a folder structure that includes your source code.

8
  • This one looks good. Are add-ins only created with python or I can use other languages like cpp (which are better for proprietary software)?
    – Ehsan
    Commented Mar 20, 2015 at 19:00
  • Add-Ins can be authored in .NET (VB, C#), C++, and also in Java. This link may be helpful: resources.arcgis.com/en/help/main/10.1/index.html#//…
    – crmackey
    Commented Mar 20, 2015 at 19:31
  • If you're familiar with C++ I would recommend creating the addin using C# with Visual Studio Express 2010. It's probably most painless route as the documentation is solid.
    – Radar
    Commented Mar 20, 2015 at 19:57
  • Sounds great! I have some cpp and C# experience. Thanks bro!
    – Ehsan
    Commented Mar 20, 2015 at 20:02
  • Just FYI, it's a trivial matter to extract and decompile this type of code. It's really just for convenience of deployment and not protection of trade secrets or whatever.
    – blah238
    Commented Mar 20, 2015 at 20:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.