Should the storage.js services be express middleware?
Probably not. We cannot assume that all data sources that might need to be adapted would have HTTP interfaces that could be accessed through express routes. ldp-service also has complex interactions with its data storage services, not something that fits simply into chain of command. So the abstract storage.js services is a better model because it allows more flexible implementations.
But oslc-servers might want to use more than one data source. That would mean there would be more than one storage.js implementation, which would require the oslc-server to instantiate ldp-service multiple times with different database configurations.
Should the storage.js services be express middleware?
Probably not. We cannot assume that all data sources that might need to be adapted would have HTTP interfaces that could be accessed through express routes. ldp-service also has complex interactions with its data storage services, not something that fits simply into chain of command. So the abstract storage.js services is a better model because it allows more flexible implementations.
But oslc-servers might want to use more than one data source. That would mean there would be more than one storage.js implementation, which would require the oslc-server to instantiate ldp-service multiple times with different database configurations.