Building a Case for Software-Defined Data Centers: Challenges and Solutions