| 1 | = BoincLite: A thin BOINC client library = |
| 2 | |
| 3 | Peter Hanappe, Sony Computer Science Laboratory |
| 4 | |
| 5 | !BoincLite de |
| 6 | fines the minimum API to realise a simple BOINC client. |
| 7 | Its main functionality is to download work units, to upload the results, and |
| 8 | to make sure there is always one work unit ready to be executed. It has a |
| 9 | fair number of restrictions compared to the existing BOINC manager: |
| 10 | * It handles only one BOINC project. |
| 11 | * It doesn't manage the resource usage (CPU, memory, disk) nor the |
| 12 | scheduling between projects and work units. If resource management |
| 13 | is needed, the calling application will have to implement it. |
| 14 | * It doesn't provide any glue for constructing a user interface. Again, |
| 15 | this has to be managed by the calling application. |
| 16 | * Only one workunit is computed at once and at most one workunit is |
| 17 | waiting to be executed. |
| 18 | * The downloads and uploads are performed sequentialy. |
| 19 | * The library doesn't use multi-threading. However, it is straighforward |
| 20 | to spin of separate threads for the scheduler for and the computation |
| 21 | of the work unit so that they run parallel to the main thread. |
| 22 | |
| 23 | The library consists of four components: !BoincScheduler, !BoincProxy, |
| 24 | !BoincCon |
| 25 | guration, and !BoincHttp (see Fig. ). |
| 26 | |
| 27 | !BoincHttp is a thin abstraction layer for handling HTTP requests. It is |
| 28 | used as a portable layer that can be easily implemented on top of existing |
| 29 | HTTP libraries, such as libcurl on Linux or libhttp on CellOS. |
| 30 | |
| 31 | The !BoincCon |
| 32 | guration is another shallow abstraction layer. It man- |
| 33 | ages all the confi |
| 34 | guration data needed by BOINC, such as the user ID, the |
| 35 | authenticator string, but also the disk usage or the FLOPS of the host machine. |
| 36 | |
| 37 | !BoincLite source code and documentation are here: |
| 38 | {{{ |
| 39 | svn co http://boinc.berkeley.edu/svn/trunk/BoincLiet |
| 40 | }}} |
| 41 | |