From Distributed Systems by Coulours, a distributed system is partitioned into layers
Middleware is defined as
Middleware was defined in Section 1.5.1 as a layer of software whose purpose is to mask heterogeneity and to provide a convenient programming model to application programmers. Middleware is represented by processes or objects in a set of computers that interact with each other to implement communication and resource-sharing support for distributed applications. It is concerned with providing useful building blocks for the construction of software components that can work with one another in a distributed system. In particular, it raises the level of the communication activities of application programs through the support of abstractions such as remote method invocation; communication between a group of processes; notification of events; the partitioning, placement and retrieval of shared data objects amongst cooperating computers; the replication of shared data objects; and the transmission of multimedia data in real time.
Distributed file systems are defined as
A distributed file system enables programs to store and access remote files exactly as they do local ones, allowing users to access files from any computer on a network. The performance and reliability experienced for access to files stored at a server should be comparable to that for files stored on local disks. In this chapter we define a simple architecture for file systems and describe two basic distributed file service implementations with contrasting designs that have been in widespread use for over two decades: the Sun Network File System, NFS, and the Andrew File System, AFS.
Naming services are defined as
This chapter introduces the name service as a distinct service that is used by client processes to obtain attributes such as the addresses of resources or objects when given their names. The entities named can be of many types, and they may be managed by different services. For example, name services are often used to hold the addresses and other details of users, computers, network domains, services and remote objects. As well as name services, we describe directory services, which look up services when given some of their attributes. Examples are DNS, GNS, and LDAP
Which layer(s) in a distributed system do distributed file systems and naming services belong to?
Are distributed file systems and naming services middleware? Are distributed file systems and naming services not considered as middleware according to the following two from the book?
Distributed file systems (Ch12) and naming services (Ch 13) are missing in categories of middleware:
Distributed file systems (Ch12) and naming services (Ch 13) are specified outside middleware: