Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page offers an overview about what a service could be (or not) and the (detailed) steps of how to integrate it into the SIC Framework. The code for all the existing services can be found at https://bitbucket.org/socialroboticshub/processing/src/master/ . Creating a new service can be done as follows:

...

//bitbucket.org/socialroboticshub/processing/src/master/.

What Is (Not) a Service?

Do’s

A service is required to:

  • use input from a device and/or another service

  • do more than 1 line of code in processing

  • give output that is useful for another service and/or an application

Additionally, it should be reusable/generic (i.e. more than 1 specific application can make use of the service).

Do’nts

A service should only relate to the software aspect of the SIC framework. An example of what would NOT count as a service is integrating both a third-party device (e.g.: smartwatch) and the data collected from it into an application. In this case, the device should be added separately as one, and the data collection and processing should be turned into a service itself.

Summary How to Add a Service to the SIC Framework

  1. create a new folder in https://bitbucket.org/socialroboticshub/processing/src/master/ with the name of the service

  2. copy the certificate file https://bitbucket.org/socialroboticshub/docker/src/master/cbsr/beamforming/cert.pem from any of the other services' folders into the service’s folder

  3. copy any additional files that the services may need into the service’s folder

  4. create a factory file inheriting from the CBSRFactory in the service’s folder, and override the superclass’s methods

  5. create a service file inheriting from CBSRService in the service’s folder, and override the superclass’s methods

  6. update the https://bitbucket.org/socialroboticshub/processing/src/master/deploy_to_docker.sh file in the root folder with the new service files

  7. deploy the new service to the https://bitbucket.org/socialroboticshub/docker/src/master/ folder by running the deploy_to_docker.sh file

  8. update the https://bitbucket.org/socialroboticshub/docker/src/master/docker-compose.yml file in the docker folder with the new service

  9. update the https://bitbucket.org/socialroboticshub/docker/src/master/Dockerfile.python3 file in the docker folder with the new service’s dependencies

  10. update the topics in the constructor of the Abstract Connector from the https://bitbucket.org/socialroboticshub/connectors/src/master/python/social_interaction_cloud/ folder with the name of the new service

  11. update the device listeners in enable_service in the Abstract Connector with the service

  12. update the listened to channels in __listen in the Abstract Connector with the service

  13. create the corresponding event handler method for the service in the Abstract Connector

  14. create the corresponding event handler method for the service in the Basic Connector

  15. use the service in a new file

...

The detailed explanation of these steps with a sentiment analysis example can be found below:

Detailed

...

How to Add a Service to the SIC Framework

  1. create a new folder in https://bitbucket.org/socialroboticshub/processing/src/master/ with the name of the service. sentiment_analysis (https://bitbucket.org/socialroboticshub/docker/src/master/cbsr/sentiment/ ) will be used as the example folder and service in this case

  2. copy the certificate file https://bitbucket.org/socialroboticshub/docker/src/master/cbsr/beamforming/cert.pem from any of the other services' folders into the sentimentfolder

  3. copy the https://bitbucket.org/socialroboticshub/docker/src/master/cbsr/sentiment/classifier.pickle into the sentiment folder

  4. create a https://bitbucket.org/socialroboticshub/docker/src/master/cbsr/sentiment/sentiment_factory.py file in the sentiment folder

...