So I'm tossing around the idea of writing something new for Battle.net, from scratch, using some of the stuff I've learned more recently.
What I'd like to do is write a server that would allow people to hit it over a standard protocol (I'm thinking SOAP or something similar). It would probably be written in Java, but not guaranteed. It would have different services, including CheckRevision and the like, and additionally have bot functionality (create a new bot instance, connect to Battle.net, etc.).
A typical authenticated session would be:
- Client program hits the authentication service, supplies username/password (or certificate, if I go that way)
- Server sends back a token (sort of like a kerberos token, but maybe simpler, don't know)
- Clients makes requests, sending the token with each one
- Token expires after a preset time, 300s or something
I'd document all the public services, from cdkey hashing to version checking to viewing/using bots. Authorization would be a mix of discretionary access control and role-based access control.
It would, of course, be 100% opensource.
Here's one catch: I would NOT write a client program. But I would publish, document, and test the public interface, and would use a standard protocol (like I said, I'm thinking SOAP). But I hate writing GUIs. I would need somebody else to volunteer to write one, whether it's in Java, C++, Python, C#, VB, or whatever, I don't care.
Right now, the idea is just in my mind. If I decide to go ahead, it might be a summer project for me. I'm just reaching out for some ideas, though. Any suggestions, brainstorming, or whatever is encouraged. Also, the technologies I use are wide open, let me know what you'd prefer to see and I'll consider it.