114 lines
6.0 KiB
Plaintext
114 lines
6.0 KiB
Plaintext
arcadia 7;
|
|
project service_details "Valve service Details trial" id "80300000-0000-4000-8000-000000000000" {
|
|
sa_actor console "Operator console" id "80300000-0000-4000-8000-000000000001" {}
|
|
sa_system valve "Valve service" id "80300000-0000-4000-8000-000000000002" {}
|
|
sa_port caller_port "Console service client" id "80300000-0000-4000-8000-000000000003" {
|
|
parent @console; contract { Component { kind Standard; orientation Unset; }; };
|
|
}
|
|
sa_port provider_port "Valve service endpoint" id "80300000-0000-4000-8000-000000000004" {
|
|
parent @valve; contract { Component { kind Standard; orientation Unset; }; };
|
|
}
|
|
sa_data_type text_value "Service text" id "80300000-0000-4000-8000-000000000010" {
|
|
definition { String { minimum_length 0; maximum_length 128; }; };
|
|
}
|
|
sa_data_type pressure_value "Pressure in bar" id "80300000-0000-4000-8000-000000000011" {
|
|
definition { Real { minimum 0; maximum 100; }; }; unit "bar";
|
|
}
|
|
sa_data_type accepted_value "Acceptance flag" id "80300000-0000-4000-8000-000000000012" { definition Boolean; }
|
|
sa_exchange_item read_status "ReadStatus" id "80300000-0000-4000-8000-000000000020" {
|
|
kind Information; mechanism Operation;
|
|
}
|
|
sa_data_field read_scope "Scope" id "80300000-0000-4000-8000-000000000021" {
|
|
parent @read_status; type_ref { Named @text_value; }; direction In;
|
|
minimum 0; maximum 1; storage Value;
|
|
}
|
|
sa_data_field read_result "Status" id "80300000-0000-4000-8000-000000000022" {
|
|
parent @read_status; type_ref { Named @text_value; }; direction Return;
|
|
minimum 0; maximum 1; storage Value;
|
|
}
|
|
sa_exchange_item set_limit "SetLimit" id "80300000-0000-4000-8000-000000000030" {
|
|
kind Information; mechanism Operation;
|
|
}
|
|
sa_data_field limit_value "Pressure limit" id "80300000-0000-4000-8000-000000000031" {
|
|
parent @set_limit; type_ref { Named @pressure_value; }; direction In;
|
|
minimum 0; maximum 1; storage Value;
|
|
}
|
|
sa_data_field limit_accepted "Accepted" id "80300000-0000-4000-8000-000000000032" {
|
|
parent @set_limit; type_ref { Named @accepted_value; }; direction Return;
|
|
minimum 0; maximum 1; storage Value;
|
|
}
|
|
sa_interface valve_api "Valve commands" id "80300000-0000-4000-8000-000000000040" {}
|
|
interface_item_allocation read_allocation "ReadStatus allocation" id "80300000-0000-4000-8000-000000000041" {
|
|
source @valve_api; target @read_status; order 0;
|
|
transmission Synchronous; acquisition Accept;
|
|
}
|
|
interface_item_allocation limit_allocation "SetLimit allocation" id "80300000-0000-4000-8000-000000000042" {
|
|
source @valve_api; target @set_limit; order 1;
|
|
transmission Synchronous; acquisition Accept;
|
|
}
|
|
interface_requirement requires_api "Console requires Valve commands" id "80300000-0000-4000-8000-000000000043" {
|
|
source @caller_port; target @valve_api;
|
|
}
|
|
interface_provision provides_api "Valve provides Valve commands" id "80300000-0000-4000-8000-000000000044" {
|
|
source @provider_port; target @valve_api;
|
|
}
|
|
boundary_exchange service_channel "Valve service channel" id "80300000-0000-4000-8000-000000000045" {
|
|
source @caller_port; target @provider_port; oriented false;
|
|
items [@read_status, @set_limit];
|
|
}
|
|
sa_scenario service_review "Review service calls" id "80300000-0000-4000-8000-000000000050" {
|
|
viewpoint BoundaryInterface;
|
|
steps [@first_call, @first_reply, @control_call, @control_reply];
|
|
}
|
|
sa_lifeline caller "Console caller" id "80300000-0000-4000-8000-000000000051" {
|
|
parent @service_review; represented @console;
|
|
}
|
|
sa_lifeline provider "Valve provider" id "80300000-0000-4000-8000-000000000052" {
|
|
parent @service_review; represented @valve;
|
|
}
|
|
sa_occurrence first_call "Read primary status" id "80300000-0000-4000-8000-000000000060" {
|
|
parent @service_review;
|
|
body { Exchange {
|
|
exchange @service_channel; sender @caller; receiver @provider; message_kind Call;
|
|
operation { allocation @read_allocation; };
|
|
values [{ path []; field @read_scope; expression "\"primary\""; }];
|
|
}; };
|
|
}
|
|
sa_occurrence first_reply "Primary status response" id "80300000-0000-4000-8000-000000000061" {
|
|
parent @service_review;
|
|
body { Exchange {
|
|
exchange @service_channel; sender @provider; receiver @caller;
|
|
message_kind Reply; reply_to @first_call;
|
|
values [{ path []; field @read_result; expression "\"READY\""; }];
|
|
}; };
|
|
}
|
|
sa_occurrence control_call "Set reserve limit" id "80300000-0000-4000-8000-000000000062" {
|
|
parent @service_review;
|
|
body { Exchange {
|
|
exchange @service_channel; sender @caller; receiver @provider; message_kind Call;
|
|
operation { allocation @limit_allocation; };
|
|
values [{ path []; field @limit_value; expression "12.5"; }];
|
|
}; };
|
|
}
|
|
sa_occurrence control_reply "Reserve limit accepted" id "80300000-0000-4000-8000-000000000063" {
|
|
parent @service_review;
|
|
body { Exchange {
|
|
exchange @service_channel; sender @provider; receiver @caller;
|
|
message_kind Reply; reply_to @control_call;
|
|
values [{ path []; field @limit_accepted; expression "true"; }];
|
|
}; };
|
|
}
|
|
diagram service_details_view "Service calls - Details trial" id "80300000-0000-4000-8000-000000000070" {
|
|
layer Sa; projection { Scenario { scenario @service_review; }; };
|
|
layout { Scenario {
|
|
lanes [{ lifeline @caller; x 160; }, { lifeline @provider; x 650; }];
|
|
messages [
|
|
{ address { references []; occurrence @first_call; }; send_y 160; },
|
|
{ address { references []; occurrence @first_reply; }; send_y 270; },
|
|
{ address { references []; occurrence @control_call; }; send_y 390; },
|
|
{ address { references []; occurrence @control_reply; }; send_y 500; }
|
|
];
|
|
}; };
|
|
}
|
|
}
|