The platform was built with a number of considerations in mind. In particular, we were interested in whether a Raspberry Pi be practical for creating cloudlets considering battery consumption and network range?
There are numerous aspects the current cloud computing paradigm is lacking in, these limitations carry over to general cloudlets. The following are the limitations or aspects platform addresses.
The platform uses a service-oriented architecture. The base of the platform supports a limited number of actions. The capabilities of the platform can be further expanded through developed services. Communication between the cloudlet and all clients is done through the MQTT protocol. This is a lightweight machine to machine messaging protocol for use on top of the TCP/IP protocol.
The services which extend the cloudlet can be physically located on the mobile device or the device that hosts the cloudlet. The services which extend the cloudlet need to use raw sockets. That is, they should create a server using raw sockets and not use the MQTT protocol as it has limitations in the message payload size. When a user request a service, they should be provided an IP and port.
Those details will be used to communicate. The implementation of the cloudlet allows quick loading and removal of services. It allows services to be hosted on the Raspberry Pi and clients. It is designed to quickly detect connections and disconnections. It ensures that humans can be able to tell what a service does and provides them with information where they can get more information about the service. It uses a well established messaging system to ensure that communication between client and cloudlet is easy and well separated as client can perform numerous actions1. Figure: System overview