Heterogeneity
Scalability
System development life cycle (SDLC)
Concurrency
Failure handling
Openness
Security