tags:

views:

71

answers:

4

Hi Guys

I need some guidance around how to develop the app I'm working on.

It's basically a backend system to manage photos and slideshows (eg arrange photos in albums, decide which ones to publish, update names and captions etc)

I would like to avoid giving the source code to clients but would like to keep the actual photos and thumbnails on the client's server.

I'm not sure what would be the best way to achieve this. In my mind the steps are: a) client uploads a photo to MY site b) photo is registered into my DB c) the original photo is moved to client's server d) thumbnails are generated and saved on client's server

then the public site: e) install the public website on my client's server; f) when a user is browsing the client's website, the script gets the list of images to show from my database, and gets them from the local server.

(hope I made myself clear)

basically the question is: what's the best way to give the client minimal/no access to the source code?

A: 

IMO, this seems a little unnecessary. What exactly is your concern about having the source code rest on a client's server? All you need is a signed license agreement between you and the client preventing them from doing anything with it.

Or, if you really don't trust them, just sell it as hosted software. No point in the above procedure, which is rather convoluted (no offense), when you can just have everything on one server.

Just my $.02.

benjy
Convoluted and S-L-O-W
San Jacinto
A: 

You can obfuscate the code with a commercial tool like IonCubelink text, or you can develop your application and license it using a SaaS model, and provide an API for the client software to use.

Jeff Paquette
A: 

Zend Guard, SourceGuardian, IonCube, and similar are other viable options if you cannot keep it local but want to make it difficult to find out what the "source" is.

Kevin Peno
+1  A: 

I agree with benjy, however, you can get away with using an API to manage the system specific calls, and just have an upload handler that communicates back to your API on the clints box, so they still have some code, it is minimal, and the code requires an API call to function. That way you reduce the DB need, and reduce the resources required to manage the clients code.

API is used to authenticate / manage communication while the upload / manage scripts handle the upload/image handling.

Jakub