Section: Scientific Foundations
Collaborative Computing Processes
Today's systems have entered the era of community computing – the antithesis of personal computing. While people do possess their own handheld and personal computers, they indelibly rely on the community of computers and users for content, code, and services. Users also contribute resources – this phenomenon underlying the open source movement [22] , utility computing, peer-to-peer computing, B2C, B2B, etc. Nonetheless, each user is constrained in his use of content and services by community rules, these being expressed through licensing and IP contracts, the Law (e.g., Sarbanes-Oxley [23] , Basle II) or organizational rules. Thus, systems built today must be aware of digital restrictions management and support organizational requirements.
Community computing devices do not simply run applications – they participate in processes . A process is a goal-directed, inter-related set of activities. An example of a process is the operation of an on-line boutique service. The activities of this process include Web server maintenance, customer lists management, catalogue production, payment, etc. One challenge for process managers is to coordinate activities; for instance, information from the catalogue activity must be fed to the Web maintenance activity, feedback from the payment activity is needed for customer management. In effect, process efficiency depends on facilitating information flows between activities. A second important aspect of processes is the presence of legal and organizational issues, e.g., privacy (for customer data retention), Sarbanes-Oxley for data archival, and intelligent attribution of tasks to people within the organization for the efficient running of the boutique.
The objective of the this activity is to study abstractions for process programming models and their implementation. The role of a process programming model is to express activities. These activities involve people, their devices, computers as well as environment (embedded) computing devices. Compared to standard programming languages, process languages need to express concepts like principals (for people, organizations, etc.), roles (for security and organizational tasks), rules for content protection and security, events (for activity coordination) and process metering (for performance, security, etc.). Much work has been done on modeling processes in business information systems (e.g., BPEL [15] ), though these are heavily dependent on XML. We would like an approach that is closer to high-level programming languages so that we can harness safety and portability. The case study of our approach is Free and Open Source software (F/oss ) processes, as this has legal, social, economic implications, and is also a method in which we can conduct our own developments.