environment.  
XChor Language facilitates to create three 
different models. Configuration interface models 
cover variability specifications stated in (Nguyen et 
al., 2011). Choreography model can specify twelve 
service interaction patterns described in (Barros et 
al., 2005). 
The basic elements of XChor is shown under 
three model to cope with variability in 
choreography. Models are exemplified based on a 
part of a real life case study, verification of a user in 
adaptable security system. 
Adaptable Security System is an authentication 
system residing between customers and third party 
applications or institutions that supports different 
authentication types of data, including software and 
hardware (biometric device) parts. The system has 
the ability to be integrated and applied to a military 
installation or to a banking system, which requires 
fulfilling different stakeholder needs. Applicability 
to different stakeholder systems requires different 
functionality support and behaviour. User 
verification can be done offline or online by a third 
party authority such as web services or certain 
devices like: PDA, PC, ATM, or mobile phone. The 
third party authority gets different types of data as 
required user credentials: (1) username and 
password, (2) username and password with instant 
mobile text, (3) e-sign, (4) biometric data; 
fingerprint, finger vein, and/or iris. Then, according 
to the online and offline verification result, the 
system will allow or ban users entering the 
integrated application.  
Device support is important as different devices 
have different capabilities. ATM, PDA and mobile 
phone can be used with (1), (2) and (3). PC supports 
(1), (2), (3) and (4). Therefore, the system should 
change verification processing functions according 
to used devices and parameters to be verified.  
While modeling this system, user verification is 
treated as a choreography utilizing other 
choreographies and services. In the following 
sections, (i) configuration interfaces for defining and 
managing variability of choreographies and services, 
(ii) interfaces of user verification choreography and 
interrelated services, and (iii) user verification 
choreography  are depicted. 
4.1 Configuration Interface 
Configuration interface model covers service and 
choreography variability specifications internally 
and externally to depict possible abilities, to 
configure others and to be configured by others. To 
depict possible abilities; Choreography can specify 
internal, external and configuration variation points, 
whereas services can only depict external variation 
points. The external ones are used to be configured 
by choreographies and services. Capabilities to 
configure its own interface or other services’ 
intefaces as activating/deactivating and 
setting/unsetting parameters are also specified in this 
model.  Numerical or logical constraints among 
variability  specifications are depicted.  
Different user authentication types such as 
biometric authentication, supported authentication 
modes (online and/or offline), transaction types (real 
or fake transaction) are the system’s behaviours need 
to be configured differently. Therefore, each is 
treated as variability in configuration interface of 
user verification choreography.  
To enable authentication variability, both types 
of authentication and parameters used in encryption 
function are changed with regard to the usage of 
biometrics or not. For this purpose a configuration 
variation point named as “authentication_type” as 
external and two internal variation points 
“i_auth_type” and “i_encryption_parameters” are 
defined. Binding of  “authentication_type” 
configures consistent bindings of “i_auth_type” and 
“i_encryption_parameters”. 
“i_auth_type” is specified with “internalVP” 
keyword (line 5). “username_passw” is a mandatory 
variant, whereas “onetimepassw” (line 9) and 
“esign” (line 10) are optional in other words can be 
selectable. At least one and at most two variants can 
be selected among the following alternatives: 
"fingerprint” (line 12), “fingervein” (line 13), “iris” 
(line 14), and “face” (line 15). The binding time of 
this variation point is runtime (line 17). 
“authentication_type” is specified as external (line 
26). The variation point has two optional variants 
specified (lines 29-30); “userinfo” and “biometrics”. 
“userinfo” variant is realized (line 33) by selection 
of “defaultparams” variant of 
“i_encryption_parameters” variation point. 
For “biometrics”, the realization requires two 
selections at the same time: (i) minimum one variant 
among “fingerprint fingervein iris face” set should 
be selected from “i_auth_type” variation point (line 
35) and “setparams” variant of 
“i_encryption_parameters” variation point (line 36). 
Default variant of the “authentication_type” 
configuration variation point is “userinfo” (line 37). 
Configuration type is parameterization and it is 
bound at development time represented as “devtime” 
(line 39). 
 
Third International Symposium on Business Modeling and Software Design
126