Sits independently between the controller and the model, performing request data validation, serialization and integrity checks