University of Toronto, 2011.
Many large business processes are inherently distributed, spanning multiple organizations, administrative domains, and geographic locations. To support such applications, this thesis develops a flexible and distributed platform to develop, execute, and monitor business processes. The solutions utilize a distributed content-based publish/subscribe overlay that is extended with support for mobile clients and client interest churn. Over this layer, a distributed execution engine uses events to coordinate the execution of the process, and dynamically redeploys activities in the process in order to minimize a user-specified cost function and preserve service level agreements (SLAs). Finally, a management layer allows users to find and automatically compose services available across a distributed set of service registries, and monitor processes for SLA violations. Evaluations show that the distributed execution engine can scale better than alternate architectures, exhibiting over 60% improvements in execution time in one experiment. As well the system can dynamically redeploy processes to reflect changing workload conditions and SLAs, saving up to 90% of the process messaging overhead of a static deployment.