<?xml version="1.0" encoding="UTF-8"?>
<package author="SCTR Group" name="" version="1.0" xmlns:UML="omg.org/UML1.3">
<description type="description">This is the basic Choreography description for a system</description>
<!--Declaracion de tipos-->
<informationType/>
<informationType/>
<informationType/>
<informationType/>
<informationType/>
<informationType/>
<informationType/>
<!--Declaracion de Tokens-->
<token name="FederalAdminRef" informationType="StringType"/>
<token name="LocalAdminRef" informationType="StringType"/>
<token name="RepositoryRef" informationType="StringType"/>
<token name="RegistryAppRef" informationType="StringType"/>
<!--Declaracion de roles-->
<roleType name="FederalAdminRoleType">
<behaviour name="FederalAdminBehaviour"/>
</roleType>
<roleType name="LocalAdminRoleType">
<behaviour name="LocalAdminBehaviour"/>
</roleType>
<roleType name="RepositoryRoleType">
<behaviour name="RepositoryBehaviour"/>
</roleType>
<roleType name="RegistryAppRoleType">
<behaviour name="RegistryAppBehaviour"/>
</roleType>
<!--Declaracion de participants-->
<participantType name="FederalAdmin">
<role type="FederalAdminRoleType"/>
</participantType>
<participantType name="LocalAdmin">
<role type="LocalAdminRoleType"/>
</participantType>
<participantType name="Repository">
<role type="RepositoryRoleType"/>
</participantType>
<participantType name="RegistryApp">
<role type="RegistryAppRoleType"/>
</participantType>
<!--Declaracion de las Relaciones que se establecen entre los distintos roles-->
<relation>
<relationship name="RegistryAppRepository">
<role1 type="RegistryAppRoleType"/>
<role2 type="RepositoryRoleType"/>
</relationship>
<relationship name="RepositoryRegistryApp">
<role1 type="RepositoryRoleType"/>
<role2 type="RegistryAppRoleType"/>
</relationship>
<relationship name="RepositoryRegistryApp">
<role1 type="RepositoryRoleType"/>
<role2 type="RegistryAppRoleType"/>
</relationship>
<relationship name="RegistryAppRepository">
<role1 type="RegistryAppRoleType"/>
<role2 type="RepositoryRoleType"/>
</relationship>
<relationship name="RepositoryRegistryApp">
<role1 type="RepositoryRoleType"/>
<role2 type="RegistryAppRoleType"/>
</relationship>
<relationship name="RegistryAppLocalAdmin">
<role1 type="RegistryAppRoleType"/>
<role2 type="LocalAdminRoleType"/>
</relationship>
<relationship name="RegistryAppFederalAdmin">
<role1 type="RegistryAppRoleType"/>
<role2 type="FederalAdminRoleType"/>
</relationship>
</relation>
<!--Declaracion de los canales-->
<channelType name="RegistryApp2RepositoryRoleType">
<role type="RepositoryRoleType"/>
<reference>
<token name="RepositoryRef"/>
</reference>
</channelType>
<channelType name="Repository2RegistryAppRoleType">
<role type="RegistryAppRoleType"/>
<reference>
<token name="RegistryAppRef"/>
</reference>
</channelType>
<channelType name="Repository2RegistryAppRoleType">
<role type="RegistryAppRoleType"/>
<reference>
<token name="RegistryAppRef"/>
</reference>
</channelType>
<channelType name="RegistryApp2RepositoryRoleType">
<role type="RepositoryRoleType"/>
<reference>
<token name="RepositoryRef"/>
</reference>
</channelType>
<channelType name="Repository2RegistryAppRoleType">
<role type="RegistryAppRoleType"/>
<reference>
<token name="RegistryAppRef"/>
</reference>
</channelType>
<channelType name="RegistryApp2LocalAdminRoleType">
<role type="LocalAdminRoleType"/>
<reference>
<token name="LocalAdminRef"/>
</reference>
</channelType>
<channelType name="RegistryApp2FederalAdminRoleType">
<role type="FederalAdminRoleType"/>
<reference>
<token name="FederalAdminRef"/>
</reference>
</channelType>
<!--Definicion de la Coreografia-->
<choreography name="Main" root="true">
<description type="description">This choreography performs the collaboration between FederalAdmin,LocalAdmin,Repository,RegistryApp</description>
<!--Definicion de relationship-->
<relationship type="RegistryAppRepository"/>
<relationship type="RepositoryRegistryApp"/>
<relationship type="RepositoryRegistryApp"/>
<relationship type="RegistryAppRepository"/>
<relationship type="RepositoryRegistryApp"/>
<relationship type="RegistryAppLocalAdmin"/>
<relationship type="RegistryAppFederalAdmin"/>
<!--Declaracion de las variables-->
<variableDefinitions>
<variable name="RegistryApp2RepositoryChannel" channelType="RegistryApp2RepositoryChannelType"/>
<variable name="Repository2RegistryAppChannel" channelType="Repository2RegistryAppChannelType"/>
<variable name="Repository2RegistryAppChannel" channelType="Repository2RegistryAppChannelType"/>
<variable name="RegistryApp2RepositoryChannel" channelType="RegistryApp2RepositoryChannelType"/>
<variable name="Repository2RegistryAppChannel" channelType="Repository2RegistryAppChannelType"/>
<variable name="RegistryApp2LocalAdminChannel" channelType="RegistryApp2LocalAdminChannelType"/>
<variable name="RegistryApp2FederalAdminChannel" channelType="RegistryApp2FederalAdminChannelType"/>
<variable name="CitizenType" informationType="xsd:int" roleTypes="RegistryApp"/>
<variable name="x" informationType="tns:Clock" roleTypes="RegistryApp"/>
</variableDefinitions>
<!--Asignación de valores a las variables inicializadas con algún valor-->
<assign roleType="RegistryApp">
<copy name="CitizenType_assign">
<source expression="1"/>
<target variable="CitizenType"/>
</copy>
</assign>
<!--Declaracion de las Interacciones-->
<sequence>MSG_780949073<interaction parent="" name="Login" operation="Login" channelVariable="canal">
<orden>1</orden>
<participate relationshipType="RegistryAppRepository" fromRole="RegistryAppRoleType" toRole="RepositoryRoleType"/>
<exchange name="LoginExchange" action="request"/>
<exchange name="LoginExchangeACK" action="respond">
<send variable="ACKVariable"/>
<receive variable="ACKVariable"/>
</exchange>
</interaction>MSG_725415015<interaction parent="FR_250297817" name="CitizenInfo" operation="CitizenInfo" channelVariable="canal" parseq="1">
<orden>3</orden>
<participate relationshipType="RepositoryRegistryApp" fromRole="RepositoryRoleType" toRole="RegistryAppRoleType"/>
<exchange name="CitizenInfoExchange" action="request"/>
<exchange name="CitizenInfoExchangeACK" action="respond">
<send variable="ACKVariable"/>
<receive variable="ACKVariable"/>
</exchange>
</interaction>MSG_779985034<interaction parent="FR_250297817" name="ProceduresInfo" operation="ProceduresInfo" channelVariable="canal" parseq="2">
<orden>4</orden>
<participate relationshipType="RepositoryRegistryApp" fromRole="RepositoryRoleType" toRole="RegistryAppRoleType"/>
<exchange name="ProceduresInfoExchange" action="request"/>
<exchange name="ProceduresInfoExchangeACK" action="respond">
<send variable="ACKVariable"/>
<receive variable="ACKVariable"/>
</exchange>
</interaction>MSG_989596892<interaction parent="" name="RegisterVoter" operation="RegisterVoter" channelVariable="canal">
<orden>6</orden>
<participate relationshipType="RegistryAppRepository" fromRole="RegistryAppRoleType" toRole="RepositoryRoleType"/>
<exchange name="RegisterVoterExchange" action="request"/>
<exchange name="RegisterVoterExchangeACK" action="respond">
<send variable="ACKVariable"/>
<receive variable="ACKVariable"/>
</exchange>
<timeout>x &lt;= 5</timeout>
</interaction>MSG_1931486766<interaction parent="" name="RegisterList" operation="RegisterList" channelVariable="canal">
<orden>7</orden>
<participate relationshipType="RepositoryRegistryApp" fromRole="RepositoryRoleType" toRole="RegistryAppRoleType"/>
<exchange name="RegisterListExchange" action="request"/>
<exchange name="RegisterListExchangeACK" action="respond">
<send variable="ACKVariable"/>
<receive variable="ACKVariable"/>
</exchange>
</interaction>MSG_1394912519<interaction parent="FR_1349958031" name="RegisterLocal" operation="RegisterLocal" channelVariable="canal" altelseseq="1">
<orden>9</orden>
<participate relationshipType="RegistryAppLocalAdmin" fromRole="RegistryAppRoleType" toRole="LocalAdminRoleType"/>
<exchange name="RegisterLocalExchange" action="request"/>
<exchange name="RegisterLocalExchangeACK" action="respond">
<send variable="ACKVariable"/>
<receive variable="ACKVariable"/>
</exchange>
</interaction>MSG_1664837821<interaction parent="FR_1349958031" name="RegisterFederal" operation="RegisterFederal" channelVariable="canal" altelseseq="2">
<orden>10</orden>
<participate relationshipType="RegistryAppFederalAdmin" fromRole="RegistryAppRoleType" toRole="FederalAdminRoleType"/>
<exchange name="RegisterFederalExchange" action="request"/>
<exchange name="RegisterFederalExchangeACK" action="respond">
<send variable="ACKVariable"/>
<receive variable="ACKVariable"/>
</exchange>
</interaction>FR_250297817<frames name="par1" idframe="FR_250297817" parent="" elements="2" block="true">
<orden>2</orden>
</frames>
<frames_end name="par1" idframe="FR_250297817">
<orden>5</orden>
</frames_end>FR_1349958031<frames name="alt_else1" idframe="FR_1349958031" parent="" guard="CitizenType==1" guard_invert="CitizenType!=1" elements="2" block="true">
<orden>8</orden>
</frames>
<frames_end name="alt_else1" idframe="FR_1349958031" guard="CitizenType==1">
<orden>11</orden>
</frames_end>
</sequence>
</choreography>
</package>
