The ISO Remote Operations Service Element Protocol(ROSE) is a protocol that provides remote operation capabilities, allows interaction between entities in a distributed application, and upon receiving a remote operations service request, allows the receiving entity to attempt the operation and report the results of the attempt to the requesting entity. The ROSE protocol itself is only a vehicle for conveying the arguments and results of the operation as defined by the application.
In the OSI environment, communication between application processes is represented in terms of communication between a pair of application entities (AEs) using the presentation service. Communication between some application entities are inherently interactive. Typically, one entity requests that a particular operation be performed; the other entity attempts to perform the operation and then report the outcome of the attempt. The generic structure of an operation is an elementary request/reply interaction. Operations are carried out within the context of an application-association. Operations invoked by one AE (the invoker) are performed by the other AE (the performer).
Operations may be classified according to whether the performer of an operation is expected to report its outcome. Operations may also be classified according to two possible operation modes: synchronous, in which the invoker requires a reply from the performer before invoking another operation; an asynchronous, in which the invoker may continue to invoke further operations without awaiting a reply.
The remote-operation-protocol-machine (ROPM) communicates with its service-user by means of primitives. Each invocation of the ROPM controls a single application-association. The ROPM is driven by ROSE service request primitives from its service-user, and by indication and confirm primitives of the RTSE services, or the presentation-service. The ROPM, in turn, issues indication primitives to its service-user, and request primitives on the used RTSE services, or the presentation-service.
The reception of an ROSE service primitive, or of an RTSE service or of a presentation-service primitive, and the generation of dependent actions are considered to be individual. During the exchange of APDUs, the existence of both, the association-initiating AE and the association- responding AE is presumed. During the execution of operations, the existence of an application-association between the peer AEs is presumed.
ROSE services summary
| Service | Type |
| RO-INVOKE | Non-confirmed |
| RO-RESULT | Non-confirmed |
| RO-ERROR | Non-confirmed |
| RO-REJECT-U | Non-confirmed |
| RO-REJECT-P | Provider-initiated |
Protocol Structure
ROSE Incoming event list:
| Abbreviated name | Source | Name and description |
| AA-ESTAB | RTSE | positive RT-OPEN response primitive or positive RT-OPEN confirm primitive |
| ACSE | positive A-ASSOCIATE response primitive or positive A-ASSOCIATE confirm-primitive | |
| RO-INVreq | ROSE-user | RO-INVOKE request primitive |
| RO-RESreq | ROSE-user | RO-RESULT request primitive |
| RO-ERRreq | ROSE-user | RO-ERROR request primitive |
| RO-RJUreq | ROSE-user | RO-REJECT-U request primitive |
| ROIV | ROPM-peer | valid RO-INVOKE APDU as user data on a TRANSind event |
| RORS | ROPM-peer | valid RO-RESULT APDU as user data on a TRANSind event |
| ROER | ROPM-peer | valid RO-ERROR APDU as user data on a TRANSind event |
| RORJu | ROPM-peer | valid RO-REJECT APDU (user -reject) as user data on a TRANSind event |
| RORJp | ROPM-peer | valid RO-REJECT APDU (provider-reject with General-problem) as user data on a TRANSind event |
| APDUua | ROPM-peer | unacceptable APDU as user data on a TRANSind event |
| TRANSind | ROPM-TR | transfer indication of an APDU |
| TRANSreq | ROPM | transfer request for an APDU |
| P-DATAind | PS-provider | P-DATA indication primitive |
| RT-TRind | RTSE | RT-TRANSFER indication primitive |
| RT-TRcnf+ | RTSE | positive RT-TRANSFER confirm primitive |
| RT-TRcnf- | RTSE | negative RT-TRANSFER confirm primitive |
| RT-TPind | RTSE | RT-TURN-PLEASE indication primitive |
| RT-TGind | RTSE | RT-TURN-GIVE indication primitive |
| AA-REL | RTSE | RT-CLOSE response primitive or RT-CLOSE confirm primitive |
| ACSE | Positive A-RELEASE response primitive or A-RELEASE confirm primitive | |
| AA-ABreq | ROPM | Abort application-association |
| AA-ABind | ROPM-TR | Application-association aborted |
| ABORTind | RTSE | RT-P-ABORT indication primitive or the RT-U-ABORT indication primitive |
| ACSE | A-ABORT indication primitive or A-P-ABORT indication primitive |
ROSE Outgoing event list:
| Abbreviated name | Target | Name and description |
| RO-INVind | ROSE-user | RO-INVOKE indication primitive |
| RO-RESind | ROSE-user | RO-RESULT indication primitive |
| RO-ERRind | ROSE-user | RO-ERROR indication primitive |
| RO-RJUind | ROSE-user | RO-REJECT-U indication primitive |
| RO-RJPind | ROSE-user | RO-REJECT-P indication primitive |
| ROIV | ROPM-peer | RO-INVOKE APDU as user data on a TRANSreq event |
| RORS | ROPM-peer | RO-RESULT APDU as user data on a TRANSreq event |
| ROER | ROPM-peer | RO-ERROR APDU as user data on a TRANSreq event |
| RORJu | ROPM-peer | RO-REJECT user-reject APDU as user-data on a TRANSreq event |
| RORJp | ROPM-peer | RO-REJECT provider-reject APDU as user data on a TRANSreq event |
| TRANSreq | ROPM-TR | transfer request for an APDU |
| TRANSind | ROPM | transfer indication of an APDU |
| P-DATAreq | PS-provider | P-DATA request primitive |
| RT-TRreq | RTSE | RT-TRANSFER request primitive |
| RT-TPreq | RTSE | RT-TURN-PLEASE request primitive |
| RT-TGreq | RTSE | RT-TURN-GIVE request primitive |
| AA-ABreq | ROPM-TR | abort application-association |
| AA-ABind | ROPM | application-association aborted |
| ABORTreq | RTSE | RT-U-ABORT request primitive |
| ACSE | A-ABORT request primitive |
Related protocols: ISO Session Protocol, ISO Presentation Protocol
Sponsor Source: The ROSE protocol is defined in ISO (http://www.iso.org) documents 9072 and ITU (http://www.itu.org) documents X.219 and X.229.
Reference:
http://www.doc.ua.pt/arch/itu/rec/product/X.htm:
X.219: Remote Operations: Model, notation and service definition
X.229: Remote Operations: Protocol specification
