The Internet of Things (IoT) connects more and more devices and supports an ever-growing diversity of applications. The heterogeneity of the cross-industry and cross-platform device resources is one of the main challenges to realize the unified management and information sharing, ultimately the large-scale uptake of the IoT. Inspired by software-defined networking, we propose the concept of software-defined device (SDD) and further elaborate its definition and operational mechanism from the perspective of cyber-physical mapping. Based on the device-as-a-software concept, we develop an open IoT system architecture which decouples upper-level applications from the underlying physical devices (Physical-D) through the SDD mechanism. A logically centralized controller is designed to conveniently manage Physical-D and flexibly provide the device discovery service and the device control interfaces for various application requests. We also describe an application use scenario which illustrates that the SDD-based system architecture can implement the unified management, sharing, reusing, recombining, and modular customization of device resources in multiple applications, and the ubiquitous IoT applications can be interconnected and intercommunicated on the shared Physical-D.