Say I create both a client and a server application. The server remains secret while the client is published under a GPL-ish license, so obviously the communication protocol can be reconstructed to some degree allowing others to attempt writing their own server. I'd be fine with that, if those servers were also bound by the same (or a similar) GPL-ish license, such that only the original server were not Open Source.

  • Is there a license to work in such a way, i.e. that the client must not connect to any server but either mine or those licensed under a given license?
  • Would I have to dual-license the client in order to keep my own server "legal" if others contribute to the client?

This is indeed a great question. And the reason why it is great because it moves mere copyright domain to intellectual property domain. And the moment you talk about IP - there is no one way right!

OK - in a nutshell let me rephrase this so that I know that I have understood right! Basically there are two pieces of software one is client and one is server. The user is licensed under some conditions to use the client software. The server can either be distributed or reverse engineered. But you want to control who can build such servers ever and what they can do with licenses.

There is a real case for this. CISF is a file system (involving both as Client & Server side work) that allows people to share files. The protocol was hidden by Microsoft but Linux folks reverse engineered the protocol and made SAMBA. Now you are at the position of Microsoft here (no pun here!). Now CISF is proprietary.

Do the primary party has copyright for reverse engineered servers?
No mater whatever legal depth you go to, as far as the Copyright of SAMBA's source code is considered, Microsoft doesn't OWN it. So there is no way Microsoft can control which license SAMBA uses to distribute and whether or not they make it available free or commercially. So in simple terms - whatever be the license of client, the server code can't be controlled.

Possibility beyond client & server basic interaction
The issue becomes even more tricky when a client variants and server variants are build by third party does not just what your client-server pair does but supply more functionality and hence they own those functionality as well and not you.

Who owns the intellectual property?
Now, while Microsoft would have no right over SAMBA's source code, the do own the intellectual property around CISF which is the technology making things possible. You can have a patent for this; and since you own CISF IP, you can directly apply upon anyone who use the same spec for developing either client OR server or any system that inherently use the mechanism protected against in the patent.

Practical solution
What you can do in a real world is that have server be authenticated by the client using a specific listing server. Now what you can include in the End-User-License that will prohibit them to connect to any server which are not authorized. I presume that you are controlling such authorization of listing by default. Now the crux here is that, in principle you are not making it illegal to distribute or run reverse-engineered servers. You are just making it illegal for the users to use it. This also means that if someone has a way to make a client-server pairs both -then it is perfectly legal to use that which just uses the protocol you have. So in all, for you intellectual property of protocol only patent

Applicability of patents
Even if we assume that a patent is granted to you, patent protection is only for 15 years. Also, not every country grants every nature of work as patentable. Specially software patents, algorithms and I believe that will be true for protocols are not equally patentable everywhere around the globe. But the commercial licenses are there forever binding.

ALL of the above, of course have one more underlying assumption is being able to enforce contract terms and patent claims to all parties.

Hope this helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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