<p indent="0mm">Software is the core component of IT industry and an important “infrastructure” that supports social operations in the digital economy era. Since the 21st century, the internet has evolved into a global ubiquitous computing environment and open platform. Its open, dynamic, and uncontrollable nature requires the corresponding changes in the basic form and characteristics of software, the conceptual framework, and the logical connotation, and thus leads to substantial challenges to software theory, methods, and technologies. In 2000, researchers from China proposed the term “internetware”, which indicates a new software paradigm for the internet computing. After more than <sc>20 years</sc> of efforts, a series of important research achievements have been made in aspects of the basic model, development methodology, runtime support, quality assessment and assurance of internetware, and resulted in systematic innovation results and produced a wide range of academic and industrial impacts. In internetware, the software model consists of a set of autonomous software entities distributed and/or decentralized over the internet and other extensions like internet of things and 4G/5G, together with a set of connectors for enabling collaborations among these entities in various ways. Internetware software entities are able to sense dynamic changes of the underlying environments, and continuously adapt to these changes by means of structural and behavioral maintenance and evolution. From the micro perspective, internetware software entities collaborate with each other on demand and on the fly. From the macro perspective, the entities can self-organize to form an application or community of interest and even decentralized autonomous organizations. As a result, the development and evolution of a software application with internetware can be viewed as continuous and iterative composition of various “disordered” resources into “ordered” software applications. Thus, software development with internetware is a process being bottom-up, inside-out, spiral, and to some extent, similar with the complex adaptive systems. For example, the internetware paradigm proposed the theory of software architecture modeling (called ABC methodology) covering the whole life-cycle, where the core artifacts and activities of every single stage are unified into the software architecture model and its iterative refinement and transformation. In this way, the internetware paradigm greatly improves the efficiency and quality of software development and evolution. In addition, the internetware paradigm expands the software architecture from the development phase to the runtime, by proposing the concept of runtime software architecture (RSA). The RSA has been widely applied for a large number of information “silo” systems to enable the functionality and data interoperability. This solution is a significantly disruptive technical invention, or namely the “black box” mode, based on the client-driven resource reflection mechanism to achieve automatic recovery of the system runtime architecture and automatic generation of data access interfaces. Compared to the traditional “white box” interoperability solution, the internetware paradigm eliminates the need of accessing source code, documentation, and original development team, and improves the interoperability efficiency between information silos, with more than 100X acceleration. This article reviews the research and practice of internetware from the perspective of software paradigm, following the internet computing environment and its extensions as a clue. It also discusses the future research outlook of internetware, especially for the ubiquitous computing environments and data centric technologies.
Read full abstract