OSDash - Client definition
The OSDash Client is a cross platform, .NET based library used by a platform to communication with the web services.
While the OSDash project itself is about standardizing interfaces and using web services to communicate data and information, one custom component will be the client (the other two are the server and a web interface to control settings). The client will function as the translator between the OS and the applications that run on the OS.
What is the client?
The client is a piece of software that runs on the local PC, often the car PC, and provides a "helper" interface to web services in the OSDash project. The client can be a daemon (a software application that runs in the background), such as the Linux client, or a thin assembly that handles the calling of the services, the parsing, and provides easy to use methods with concrete objects.
This can either be a joint effort to provide a platform specific interface, or front end developers are free to just call the web services themselves. In other words, the calls to the web service can be 'baked in' to the application and fully integrated, or handled like a plug-in to provide access to the web services. It is the services themselves that provide the value in the OSDash project. For more information on services, see the OSDash services forum.
In order to expand the reach and use of OSDash, we will need clients for the most popular platforms - Windows XP, Windows Vista, Windows 7, Linux, Mac OS X are among the most popular for use in car PC's.
1. Ideally, the client should do *just enough* to make the system work. Early design discussions have focused on RESTful services. Enough definitions of REST are out there to help speed the process along. We're not breaking new ground in this area. Instead, we're applying the concepts for purposes most have not envisioned. Some discussion about using SOAP are also in progress. The exact technology has not yet been decided upon.
2. If possible, the client should be flexible and easily expanded. That is, new functions or data or services should be able to be handled by the client. CRUD plus a few more functions are what have been discussed so far.
3. Initially, the clients that are being developed are based on .NET and will expose a library of functions that can be accessed by applications on the car PC.