<?xml version="1.0" encoding="UTF-8"?>
<package author="SCTR Group" name="" version="1.0">
<!--Declaracion de tipos-->
<!--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 Relationship-->
<relation>
<rel>
<relationship>RegistryAppRepository</relationship>
<role1>RegistryAppRoleType</role1>
<role2>RepositoryRoleType</role2>
</rel>
<rel>
<relationship>RepositoryRegistryApp</relationship>
<role1>RepositoryRoleType</role1>
<role2>RegistryAppRoleType</role2>
<j>RegistryAppRoleTypeRegistryAppRoleType</j>
<canalrep>
					   si
					  </canalrep>
</rel>
<rel>
<relationship>RepositoryRegistryApp</relationship>
<role1>RepositoryRoleType</role1>
<role2>RegistryAppRoleType</role2>
<j>RegistryAppRoleTypeRegistryAppRoleType</j>
<canalrep>
					   si
					  </canalrep>
<repe>si</repe>
</rel>
<rel>
<relationship>RegistryAppRepository</relationship>
<role1>RegistryAppRoleType</role1>
<role2>RepositoryRoleType</role2>
<repe>si</repe>
<j>RepositoryRoleTypeRepositoryRoleType</j>
<canalrep>
					   si
					  </canalrep>
<j>RepositoryRoleTypeRepositoryRoleType</j>
<canalrep>
					   si
					  </canalrep>
</rel>
<rel>
<relationship>RepositoryRegistryApp</relationship>
<role1>RepositoryRoleType</role1>
<role2>RegistryAppRoleType</role2>
<j>RegistryAppRoleTypeRegistryAppRoleType</j>
<canalrep>
					   si
					  </canalrep>
<repe>si</repe>
<repe>si</repe>
<j>RegistryAppRoleTypeRegistryAppRoleType</j>
<canalrep>
					   si
					  </canalrep>
</rel>
<rel>
<relationship>RegistryAppLocalAdmin</relationship>
<role1>RegistryAppRoleType</role1>
<role2>LocalAdminRoleType</role2>
</rel>
<rel>
<relationship>RegistryAppFederalAdmin</relationship>
<role1>RegistryAppRoleType</role1>
<role2>FederalAdminRoleType</role2>
</rel>
</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="RegistryApp2LocalAdminRoleType">
<role type="LocalAdminRoleType"/>
<reference>
<token name="LocalAdminRef"/>
</reference>
</channelType>
<channelType name="RegistryApp2FederalAdminRoleType">
<role type="FederalAdminRoleType"/>
<reference>
<token name="FederalAdminRef"/>
</reference>
</channelType>
<!--Declaracion de la Coreografia-->
<choreography name="Main">
<description type="description"/>
<variableDefinitions>
<!--Declaracion de las variables intercambiadas en los interaction y excepciones-->
<variable name="CitizenType" informationType="xsd:int" roleTypes="RegistryApp"/>
<!--Declaracion de la variable de reloj-->
<variable name="x" informationType="tns:Clock" roleTypes="RegistryApp"/>
</variableDefinitions>
<!--Asignacion de los valores iniciales de las variables-->
<assign roleType="RegistryApp">
<copy name="CitizenType_assign">
<source expression="1"/>
<target variable="CitizenType"/>
</copy>
</assign>
<sequence>1<interaction name="Login" operation="Login" channelVariable="canal" parent="">
<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>2<frames name="par1" idframe="FR_250297817" elements="2" parent="" block="true"/>3<interaction name="CitizenInfo" operation="CitizenInfo" channelVariable="canal" parent="FR_250297817" parseq="1">
<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>4<interaction name="ProceduresInfo" operation="ProceduresInfo" channelVariable="canal" parent="FR_250297817" parseq="2">
<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>5<frames_end name="par1" idframe="FR_250297817"/>6<interaction name="RegisterVoter" operation="RegisterVoter" channelVariable="canal" parent="">
<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>7<interaction name="RegisterList" operation="RegisterList" channelVariable="canal" parent="">
<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>8<frames name="alt_else1" idframe="FR_1349958031" guard="CitizenType==1" guard_invert="CitizenType!=1" elements="2" parent="" block="true"/>9<interaction name="RegisterLocal" operation="RegisterLocal" channelVariable="canal" parent="FR_1349958031" altelseseq="1">
<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>10<interaction name="RegisterFederal" operation="RegisterFederal" channelVariable="canal" parent="FR_1349958031" altelseseq="2">
<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>11<frames_end name="alt_else1" idframe="FR_1349958031" guard="CitizenType==1"/>
</sequence>
</choreography>
</package>
