1: Sorry for the confusion. I'll try to explain. In IoT Open, the term edge-client is the collection of software that runs in the edge and makes something an edge-client. This is the MQTT-broker and the Edge-daemon. The edge-client have some cababilities, it can
- Authenticate itself to the back-end server
- Run a local MQTT-broker bridged to the backend MQTT
- Run edge-apps
- Download and handle configurations for edge-apps.
There are also edge-clients that can register with the back-end.
So this software is the edge-client. But when running on some hardware we also call the whole unit an edge-client. So the answer to you question is that technically the software on the Raspberry Pi is the edge-client but the Raspberry itself is also called an edge-client.
2: A gateway technically translates between different network types. In IoT this often means that it translates between a local radio-network and a connection to some IoT backend. E.g. a LoRa gateway communicates with the devices on the LoRa network on one side and a LoRa Network Server on the other side. A Z-Wave gateway communicates with the local Z-wave network on one side and the back-end system on the other. This term is pretty well defined even though as in the case with the edge-client above we also tend to call the whole equipment a gateway even though it technically also is software.
A controller in managing some type of network or similar. Typically a controller handles addressing, provisioning and in some cases routing in the sensor network. In some cases any node that can send commands to other nodes is also called a controller. E.g. a remote control or wall button like in sensors, actuators and controllers.