Internetware. Internetware is a term coined to describe the emerging software paradigm for the Internet computing environment. It also refers to the software exhibiting the desired properties (described below) to meet the requirements of the Internet environment.

The Internet is a dynamic, open, ever-changing environment. These characteristics impose new requirements on software over Internet. More specifically, in traditional software, the requirements of the tasks are often predetermined and clearly stated, and the tasks are performed by pre-designed software components following fixed algorithms. On the other hand, in the Internet computing environment, more and more requirements are unclear or undetermined, and the software components that collaborates to finish a task are dynamically obtained. As an example mentioned by Mei et al., handling swine flu epidemic requires emergent cooperation among organizational and individual software and services, such as airlines, hotels, hospitals and mobile phones. We do not know what components will be involved in the collaboration nor their behaviors. We also do not know what kind of collaboration needs to occur or will occur beforehand.

History 

Internetware was first proposed by Chinese researchers from Peking University and Nanjing University in 2003. Through the support from two Chinese National Basic Research Programs (also known as 973 programs) from 2002–2008 and 2009–2013, approximately 80 researchers  from different Chinese universities, institutes and companies have participated in the research of Internetware, and a large number of papers have been published.

The development of Internetware soon attracted international attentions, and many researchers outside China started to work on this topic. IBM participated in the 973 program as one of the main industrial cooperators.  The annual Asia-Pacific Symposium on Internetware started in 2009 in cooperation with ACM SIGSOFT, attracted authors from US, Australia, Canada, and attendees from Japan and Korea. Articles discussing Internetware also appear in various venues by international authors.

Desired Properties of Internetware 

 Autonomous  Software entities should be able to detect the environment changes and adapt itself.
 Cooperative Software entities should be able to collaborate dynamically for specific needs.
 Situational Software entities should be able to expose their runtime states for others to detect.
 Evolvable The application should be able to change its structures and behaviors dynamically.
 Emergent Software applications should be able to cope with random behavior and undesired effects from its entities and the environment.
 Trustworthy Though individual entities may fail or behave randomly, the software application as a whole should meet a set of quality requirements.

Internetware Research 

The research community of Internetware propose methodologies and techniques to develop software exhibiting the above properties. As of the year 2012, the research of Internetware mainly covers the following three aspects.

Software model 

The software model defines the basic form of Internetware. The current research tries to define the basic interfaces of the software entities, such that collaboration is enabled. Mathematical models of collaboration are also proposed based on the interfaces.

Operating platform 

The software operating platform implements the software model, supporting the features defined in the entity model and the collaboration model. For example, researchers have proposed connectors that enable communications between heterogeneous protocols, and runtime software architecture to govern on-demand collaboration.

Engineering approach 

The engineering approach guides the developers for building Internetware. Researchers have proposed to use software architecture as a high-level blue-print to guide the Internetware development, where the individual components can be dynamically discovered and replaced at runtime.

External links
 The official Internetware web site (in Chinese)

References 

Neologisms