## 4 Selection of Services
### Adaptable WSD Security Certification  
The above example is a good starting point towards dynamic and adaptable WSD based on security certification. Adaptable service discovery aims to recognize which security properties need to be certified to support the dynamic selection of services in a context-agnostic manner. Moreover, it provides a mechanism that enables service consumers to define their preferences in terms of certified properties, evidence, and tests, and automatically matches them against the certificates awarded to a service at discovery time. The service security properties that are used for an adaptable WSD security certification can be further broken down into the following groups. * _Abstract Security Property (ASP)_: An abstract security property represents a generic security requirement for the service, such as, confidentiality, integrity, and authentication. It can also be referred as a concrete security property with no class attributes. * _Concrete Security Property (CSP)_: An ASP enhanced with class attributes. Given two instances of CSP, \(p_{i}\) and \(p_{j}\), based on the same abstract property \(\hat{p}\), \(p_{j}\) is a specialization of \(p_{i}\), if a certificate proving \(p_{j}\) always proves \(p_{i}\). For instance, given the abstract property _integrity_, and two concrete properties \(p_{1}\) = (_integrity_,{\(\mathit{algorithm}=\mathit{RSA}\), \(|key|=1024 bits\)}) and \(p_{2}\) = (_integrity_,{\(\mathit{algorithm}=\mathit{RSA}\), \(|key|=2048 bits\)}), a certificate proving \(p_{2}\) always proves \(p_{1}\). The relation between \(p_{1}\) and \(p_{2}\) is called intra-property relation, because it involves properties with the same ASP and only considers the class attributes. * _Semantic Security Property (SSP)_: An SSP is a concrete security property. The only difference between CSPs and SSPs is that the latter refers to order and equivalence relations, called inter-property relation, involving different abstract properties. Inter-property relations are defined based on expert knowledge. As an example, given the two properties \(p_{1}\) = (\(\mathit{authenticity}\),{\(\}\)) and \(p_{2}\) = (\(\mathit{non-repudiation}\),{\(\}\)), \(p_{2}\) implies \(p_{1}\) meaning that each certificate for property \(p_{2}\) also applies to property \(p_{1}\). ASP, CSP, and SSP form a hierarchy of security properties. * _Domain Security Property (DSP)_: A domain-aware security property specification. Since a hierarchy characterization of a security property could be different in different domains (both intra- and inter-property relations), a DSP enables an accurate evaluation of the security properties relevant for a given domain. This alleviates the problem of having a complex hierarchy of security properties that is suitable for all domains. Fragments of the hierarchies for _Domain X and Y_ are depicted in Figures 2 and 3, respectively. After defining different categories of security properties, we need to integrate the certification process into the WSD process. To realize this, we first introduce the concept of Assurance-Level Agreement (ALA), as the part of the Service Level Agreement (SLA) that exposes the security properties supported by a given service in the form of machine-readable certificates. The user has then to define its requirements in a _policy_, that is, a machine-readable format of its security requirements. Finally, WSD matches them against certificates to provide a list of compatible services. Each certificate is an XML-based document that stores and manages security properties and test evidence. Certificates canbe attached to Web service interfaces in order to provide the assurance information (_i.e._, artifacts and evidence) to be matched during the discovery process. The format of the service certificate can be specified using the XML-based schema shown in Figure 4. The service certificate includes the following main sections. * _TestProperty_: Information about the certified security properties. Each property includes the _PropertyName_ and a set of _ClassAttribute_ fields.