I am developing something like a web application framework in Ruby, and I want to turn that into a business. The application is provided as a single library, and can be used by simply require
-ing it into the main file of the application. It does not require the application to be given in a fixed directory structure as in Ruby on Rails.
In what ways can I serve the framework to customers while keeping the source code disclosed? I think that obfuscation of Ruby code may be broken in a matter of time, so I do not want to distribute the source code directly to the customer. Rather, I am thinking of a PaaS business, where the customers can work on their application that uses the framework.
Which technical business models would work in this case?
I am thinking of a PaaS business, where the customers can work on their application that uses the frameworkThe problem with that is your customers would evaluate you on uptime track record, scalability, and vendor lock in risks. You'd need to handle all the concerns of a true PaaS platform like Amazon EC2 or Google App Engine. You could outsource some of that by running on top of EC2 like Heroku does -- but your customers would want to see a technical track record and depth of know-how similar to what Heroku has.
Ruby is an interpreted language. Therefore it is not practically possible to prevent users of the library to access the source code.
Your two options are:
My experience shows that plenty of software developers pirate their own software. It's more common the less wealthy a region is. Unless your software does something very unusual, or you know your customers very well. it's probably very unwise to just rely on copyright law.
The only reliable way to not share your source code would be to create a client-server based API system, where you provide them with a file which just calls the methods on your own server. They will have access to the file's source code, but it will not matter, because it cannot work on its own.