In Service Oriented Architecture, each application is often designed with a set of reusable services and a business process. In order to retain the reusability of services, it is important to separate non-functional properties of applications (e.g., security and reliability) from their functional properties. Currently, non-functional properties are often defined on a per-service basis. In contrast, this paper investigates a new per-process strategy, and proposes an aspect oriented language to separate functional and nonfunctional properties in business processes. Each aspect formally specifies non-functional properties that crosscut among multiple services. The proposed language frees applications developers from manually specifying and validating non-functional properties for services one by one, thereby reducing the burdens/costs of application development and maintenance. This paper describes the design of the proposed language and demonstrates how each aspect (i.e., a set of non-f...