Heterogeneity – applies to networks computer hardware; operating systems; programming languages; implementations by different developers
Openness – interfaces should be publicly available to ease inclusion of new components Security – confidentiality(protection against disclosure to unauthorized users), integrity(protection against alteration or corruption), availability(protection against interference with the means to access the resources)
Scalability – System should work efficiently with an increasing number of users; System performance should increase with inclusion of additional resources
Failure handling – detecting failures, masking failure (hidden or made less severe), recovery from failure, redundancy
Concurrency – Several clients will attempt to access a shared resource at the same time, producing inconsistent results
Transparency
access transparency(enables local and remote information objects to be accessed using identical operations)
location transparency(enables information objects to be accessed without knowledge of their physical or network location)
name transparency(incorporates a global naming scheme)
concurrent transparency (enables several processes to operate concurrently using shared information objects without interference between them)
replication transparency(enables multiple instances of information objects to be used to increase reliability and performance without knowledge of the replicas by users or application programmers)
migration transparency(allows the movement of resources and clients within a system without affecting the operation of users or programs)
failure transparency(enables the concealment of faults, allowing users and application programs to complete their tasks despite the failure of hardware or software components)
performance transparency(allows the system to be reconfigured to improve performance as loads vary)
scaling transparency (allows the system and applications to expand in scale without change to the system structure or the application algorithms)
Quality of Service (QoS) – ability to meet service requirements for applications