Design for program that can be controlled remotely
Hello all,
I am currently thinking about what I would like to do for my final year project for my degree, I have come up with an idea that I like the idea of and feel that I have the programming knowledge to achieve each of the individual components.
I am thinking of trying to create a multi-room music system, which is controllable by other devices on the network. So for example the server running the software could be in my office but I can change the music in my living room (or any other room) while sitting on my couch with something like an iPad, laptop or smart phone.
I have already figured out a method for allowing me to have music playing in different rooms from the same PC but one thing that I'm not certain about is what would be the best method of creating an application which could be controlled by different devices on the network (not all necessarily all developed using the .Net framework, although if that's going to be too difficult then I can quite easily say I looked into it and decided it was too complex for my final year project).
I have thought about having it so that the application is controlled via a web interface (possibly using AJAX or something) which would possibly be the best method, although I have no experience with AJAX or connecting a .Net application to a web service.
I have also thought about having the devices run a piece of software that would connect to a specific port on the server which is used to communicate with the application directly.
Anyway if anyone has any idea's/comments, whether directly to do with the design problem I am trying to figure out or to do with the project as a whole then I would welcome your input.
Thanks for any help in advance (also for actually reading this far in the essay :p)
Satal :D
Re: Design for program that can be controlled remotely
"...with something like an iPad, laptop or smart phone."
You'll have to be more precise than that. Making applications for Apple hardware, a laptop (PC) or a smart phone (again, many diferent OS) is a very wide range. No one software can work on all.
Easiest way is over a standard LAN (WiFi), it can be a simple client server app.
Re: Design for program that can be controlled remotely
Quote:
You'll have to be more precise than that. Making applications for Apple hardware, a laptop (PC) or a smart phone (again, many diferent OS) is a very wide range. No one software can work on all.
Sorry I didn't explain what I meant very well. I wasn't thinking that I would develop a single application that would allow for the Jukebox to be managed from any of these devices, I meant that I would like to try and find some method of the communication between the applications that isn't specific to the .Net framework (so probably no serialization of objects).
I hope that makes more sense, if I'm still not being clear enough then let me know and I'll try and clarify any points I haven't explained properly.
Quote:
Easiest way is over a standard LAN (WiFi), it can be a simple client server app.
I had been thinking that a client server application operating over the network would probably be the best method of doing this, but I have to admit I have not created any applications that communicated over the network, so I am unsure about what would be the most appropriate method of sending the messages between the two applications. I would assume that sending strings would be the most appropriate (in order to accommodate non-.Net applications).
Re: Design for program that can be controlled remotely
Quote:
I had been thinking that a client server application operating over the network would probably be the best method of doing this, but I have to admit I have not created any applications that communicated over the network, so I am unsure about what would be the most appropriate method of sending the messages between the two applications. I would assume that sending strings would be the most appropriate (in order to accommodate non-.Net applications).
Sure. Devise a protocol by which your applications (client and server) will communicate. Create a list of supported commands, reponse and error messages etc. You'll also need to transfer some content, like list of songs etc.
Re: Design for program that can be controlled remotely
Thank you Baja Yu :)
If anyone has any comments about the concept of the application then I welcome them :D
Re: Design for program that can be controlled remotely
You could also run a web server on the server PC, and make your application as a web service. That way the front end will also be on the server, and clients would access it through a web browser. That way you have not coding/deployment for the client side, and it can be used with any device with browsing capabilities. And if the server is connected to the internet you could access it from anywhere, not just from your home LAN/wifi.
Re: Design for program that can be controlled remotely
I was looking at this idea also. My vision was to have a server application that could play music over the air. For things like XBOX360 I was going to look into, ah the name escapes me now, essentially there is already a protocol out there for this sort of file transition.
Re: Design for program that can be controlled remotely
@Baja Yu
Having the UI web accessible would be the best cross-platform solution. Although I'm not certain about Web services, my understanding of ASP.Net web services is that they are usually more for things like performing look ups against a database. I'm not certain how I would be able to create a web service that would act like an application. Or was you thinking that the web front end would be just that, a completely separate entity, which then sent commands to the application? In which case do you have any suggestions about how I could have the web application control the application as I wouldn't have thought working over the network would be the most appropriate method then.
@DeanMc
Sounds cool, when you say "over the air" do you mean like you produce a sort of web cast which then can be picked up by devices like xbox and played?