[openstack-dev] [openstack-sdk-php] Transport Clients, Service Clients, and state
Matthew Farina
matt at mattfarina.com
Thu Jun 5 15:17:53 UTC 2014
We've started to talk about the interactions between transport
clients, service clients, and state. I've noticed we're not on the
same page so I wanted to start a dialog. Here's my starting point...
A Transport Client is about transporting data. It sends and receives data.
A Service Client handles the interactions with a service (e.g., swift,
nova, keystone).
A Service Client uses a Transport Client when it needs to transport
data to and from a service.
When it comes to state, a Transport Client knows about transporting
things. That means it knows things like if there is a proxy and how to
work with it. A Service Client knows about a service which includes
and state for that service.
In the realm of separation of concerns, a Service Client doesn't know
about transport state and a Transport Client doesn't know about
service state. They are separate.
A Service Client doesn't care what Transport Client is used as long as
the API (interface) is compliant. A Transport Client doesn't care what
code calls it as long as it uses the public API defined by an
interface.
This is my take. If someone has a different take please share it with
the reasoning.
- Matt
More information about the OpenStack-dev
mailing list