MSS Roaming

In Mobile Signature Service (MSS), messages are routed between Mobile Signature Service Providers (MSSPs). Interconnected MSSPs are called a Mesh.

Roaming_1

The point of interconnecting MSSPs is that Application Providers (APs) can reach any Mobile User that’s connected to any of the MSSPs.

Roaming_2

The protocol for MSSP messaging is defined in the ETSI TS 102 207 standard. Methics wrote a white paper to explain MSS Roaming and to help in implementing it. Roaming is a pillar which all MSS vendors should implement properly for MSS to work well in large.

Roaming Features

MSS Roaming, when properly implemented, has the following properties:

  1. All messages in a single transaction go through the same route.
  2. Message’s path is recorded.
    • Allows following requests to use the same route.
    • Allows humans to easily monitor the route.
  3. Sender can control message route.
    • Allows reaching services that are available in specific MSSPs.

RoamingHeader

Roaming messages have a SOAP Header named RoaminHeader. The RoamingHeader is written in both request and response messages.

RoamingHeader contains two element types:

  1. RoamingHeaderEntry: Each MSSP writes a log entry (History).
  2. CommonHeader: Defines which MSSPs the message is routed to (Plan).

Example of how the RoamingHeader is used:

Roaming_3

Example of the Roaming Headers in MSS Signature request:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 
        xmlns:msrs="http://uri.etsi.org/TS102207/v1.1.2#" 
        xmlns:mss="http://uri.etsi.org/TS102204/v1.1.2#" 
        xmlns:fi="http://mss.ficom.fi/TS102204/v1.0.0#">
  <env:Header>
    <msrs:RoamingHeader env:mustUnderstand="true" 
                      env:role="http://www.w3.org/2003/05/soap-envelope/role/next"
                      xmlns:msrs="http://uri.etsi.org/TS102207/v1.1.2#">
        <msrs:RoamingHeaderEntry> ...  </msrs:RoamingHeaderEntry>
        <msrs:RoamingHeaderEntry> ...  </msrs:RoamingHeaderEntry>
        <msrs:CommonHeader>       ...  </msrs:CommonHeader>
    </msrs:RoamingHeader>
  </env:Header>
  <env:Body>
    <mss:MSS_Signature xmlns="">
       ... 
    </mss:MSS_Signature>
  </env:Body>
</env:Envelope>

Example of a RoamingHeaderEntry (in a message from MSSP A to MSSP B):

<msrs:RoamingHeaderEntry MajorVersion="1" MinorVersion="1">
  <msrs:RE_SenderInfo Instant="2015-09-24T09:12:59.625+03:00"
                      RE_TransactionID="AEd2u5" TimeOut="59">
    <msrs:RE_Sender  
        Mesh_Role="http://uri.etsi.org/TS102207/v1.1.2#role_AcquiringEntity">
      <msrs:MeshMember>
        <mss:URI>http://mssp.a.com</mss:URI>
      </msrs:MeshMember>
    </msrs:RE_Sender>
  </msrs:RE_SenderInfo>
  <msrs:RE_Receiver 
      Mesh_Role="http://uri.etsi.org/TS102207/v1.1.2#role_RoutingEntity">
    <msrs:MeshMember>
      <mss:URI>http://mssp.b.com</mss:URI>
    </msrs:MeshMember>
  </msrs:RE_Receiver>
</msrs:RoamingHeaderEntry>

Example of a CommonHeader (in a message from MSSP A to MSSP B):

<msrs:CommonHeader AE_TransactionID="_11629">
  <msrs:MeshStartPoint
      Mesh_Role="http://uri.etsi.org/TS102207/v1.1.2#role_AcquiringEntity">
    <msrs:MeshMember>
      <mss:URI>http://mssp.a.com</mss:URI>
    </msrs:MeshMember>
  </msrs:MeshStartPoint>
  <msrs:MeshEndPoint 
      Mesh_Role="http://uri.etsi.org/TS102207/v1.1.2#role_HomeMSSP">
    <msrs:MeshMember>
      <mss:URI>http://mssp.c.com</mss:URI>
    </msrs:MeshMember>
  </msrs:MeshEndPoint>
  <msrs:MeshIntermediaryNode
      Mesh_Role="http://uri.etsi.org/TS102207/v1.1.2#role_RoutingEntity">
    <msrs:MeshMember>
      <mss:URI>http://mssp.b.com</mss:URI>
    </msrs:MeshMember>
  </msrs:MeshIntermediaryNode>
  <msrs:CurrentMeshTarget 
      Mesh_Role="http://uri.etsi.org/TS102207/v1.1.2#role_RoutingEntity">
    <msrs:MeshMember>
      <mss:URI>http://mssp.b.com</mss:URI>
    </msrs:MeshMember>
  </msrs:CurrentMeshTarget>
</msrs:CommonHeader>

For further reading, check out Methics’ white paper.

Posted in Blog Tagged with: , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*

*