This paper presents an overview of distributed applications, describes the core specifications of DDS and its components, and discusses how DDS can help developers design distributed applications and achieve data-centricity.