4.2 Registration

Registration is required before any other service request. The following describes a typical registration scenario involving a client and a server.

  1. The client sends a non-registration service request to the server.

  2. The server returns a service Fault response message with a fault code of 304.

     <SOAP-ENV:Envelope 
       SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP-ENV:Body>
         <SOAP-ENV:Fault>
           <faultCode>304</faultCode>
           <faultString>GMS Registration Required. </faultString>
         </SOAP-ENV:Fault>
       </SOAP-ENV:Body>
     </SOAP-ENV:Envelope>
    
  3. The client receives the service Fault response and sends a Registration request.

     <SOAP-ENV:Envelope 
       SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
       xmlns:xsd="http://www.w3.org/1999/XMLSchema" 
       xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
       <SOAP-ENV:Body>
         <Registration>
           <Version xsi:type="xsd:int">1</Version>
           <Payload data="PD94bWwgdmVyc2lvbj0nMS4wJz8+PD9ncm9vdmUubmV0IHZlcnNpb249JzEuMCc/PjxnOmZyYWdtZW50IHhtbG5zOmc9InVybjpncm9vdmUubmV0Ij48UGF5bG9hZCBNYW5hZ2VtZW50U2VydmVyPSJU
     ZXN0c2VydmVyL2dtcy5kbGwiIE1ldGhvZD0iUmVnaXN0cmF0aW9uIj48ZzpTRSBFbmNyeXB0ZWRL
     ZXk9Ik5Ndi9xeUhHZkR0d3g2NnU1K2R6K1NKRjRtSEQyRzN3MFZnd1U2SGNYVGxZNFp2eGJWOXUz
     N21VVm1rcTJrdDlyek9UZWhqeHNkcUluYm11aFdWWUlLVWhTdm5JT3FSTGdNaERtUmw1ZUJFM3lG
     UXpuK0U0cFVEK0xUUE9mMUQxUEM5RFkwRGlTT0l5ci9tajBvQVNvKzBnOW94b2Z5ZGYxUndiMkFv
     RitqcFhlRlV3ZXNKZkt6azcvdnlQR01GNTRsUC9ZS0o3cytrOWtvVzhlcHdzL3N6ZEFTb042SGVy
     dDlQSzBKTGFPc0xZNERPZXRFVHRIc1drNy9hSHBxVGhQelZTa3pvYlNsMjBXbFI1NW8xczVJK3Fz
     VnlibHBSSEhVR1hqd0x6ZGhUYXBvY0N1UG1RNUJxWWNxYWY3bndnaVVjUEZrczNmNmVBOXQwQkNS
     WjJLZz09Ij48ZzpDZXJ0IEVQS0FsZ289IlJTQSIgRVB1YktleT0iTUlJQkNBS0NBUUVBbExaOFk2
     V2U1aFFRWTA5VThnOXRJZVRFRkxnKzBWVXNzSkVVSThDTThEcldaRVNaSW1NK0pUcG9DNGZtelJ4
     anRFbWUxTkkvWWl2U3FmWW5Nc3pRanNyUk41dW42OE15eHYvbGlQYitLSVpBNU4vaUF6K0dZVWpq
     U0c4bVgzUmZsTDVEbnYwSlNNeHRwMTlPL09BYi9NT0FPb3U4Z2R1dTNPUVlMNGJkTDBVMG1RVExL
     ak00cGhxcXZWbWZEVVZHeXY1QUpxdGVzQlVnSEtIY1hlU0V3cXpvUE1pUTVuK0czSW5QZ1F2dDJZ
     cDJkeVh0cHl3Z3MyVDNZR1hEeEh6UjhyTW9vS3VkMnlWcnM4b3ZoK2FLbE5zSCs5bk5DZld6QWRl
     M05lVndBa0RBTHlIU0pYbktObm5WM0gzV3M1bEFFd3RvUmdSbVBNTENjYjNMOXBYTTRRSUJFUT09
     IiBFbmNBbGdvPSJSU0EiIFNQS0FsZ289IlJTQSIgU1B1YktleT0iTUlJQkNBS0NBUUVBdmt3ay80
     YktES2lhU25EWnp2OHdhbXhxL1pOM3JHeVpBVVZ0Z2NwV0F0bjJPazNZd2wyT2psVlVBQlJSNFA1
     WDFNbThiMUxWYUF4TW9IQndSL0g4YVFrSURmRmRtUUxhZEVKMnRtenR2RWdWV3R4NUNNT011eGdY
     aTFJR2JhSnQ5YXM1QXlnTTBkSWUyelZGUFpBeWgzWW1QNnZ2L09tUCtaekFqWThIaHY4VEJ2eDFx
     S0I1RktKT2RzYTBDNTZjeldvS1c2TWFiYldEcTJ0Z21OWlFqVmtLb1RjTndKYmE3UlpIOVlZdmpv
     VC9HU1JoL2VOLzNtSnBRSWpFWjlIaFRoOGdpUnBUYlZZMXdKZ1ZPVU1ZR2dzVndKZ1Q3SlAraWZD
     NTZ6NkRkVXlDYkQ1R1NiaHdBNHFNL3RHbGdkZjgybkZLL3BrNkl6RG9McE9idW5VVUN3SUJFUT09
     IiBTaWdBbGdvPSJSU0EiLz48ZzpFbmMgRUM9IkdwQ3N5bllwUVFtTWtaQnNuQjliR2l6RlVXMlVp
     UmJkMGNhOTFiSG9xbEJPQ0EyY0RSakZFMHkxMEgxSWo3WjJSeUxYZFJLb3JZTEF6RXc9IiBJVj0i
     bkdmVnlBTmhRdjZpak5EZFZoZlFnVHB4L05BPSIvPjxnOkF1dGggU2lnPSJ0elYyNHFaYTJaSkd6
     MmFaN2tnSmdkdjhYRkdNVUszdEY3Y3Y2Q1Z1TDNqNnoyeWVkZkErYTVGTTVpNDU3a1FXTS9wSmtZ
     M212VU82V0VOR05pbDc0Z0s3VThqRU44RUdvUHpvTDE2dEZSNDJhVTd5RmdYYTBnTWN3ZEgzZ25i
     K0NHTk9aemNSSU9sU1ZRYUxLRUdZV29NVG0xZ0lhYTdQT0JSbzlWWk8ySHhoM2dtV3g3dUhmbkZ1
     Vmtrc2VaVHhqWUw2citOYzV6TDNUamtCL3JOKy9aejRBSjZNd09XQWcweVpMZysyN3hQdGQ3SlY5
     M1NhN2d0akhzRjgvSjFrSkU5Z29aM3UvUE01ZlAxVS9KWmlmNGg3MHErMG81L1FRZlU1d2JPcUtO
     bU9YNVJINk5nRXFoa3RzdUZMYmRGUVRCVlZ6UVZGdHRZTkZEaHRrWmw4QlE9PSIvPjwvZzpTRT48
     L1BheWxvYWQ+PC9nOmZyYWdtZW50Pg==" xsi:type="binary"/>
         </Registration>
       </SOAP-ENV:Body>
     </SOAP-ENV:Envelope>
    

    The /Envelope/Body/Registration/Payload/@data, encoded with 64base encoding, contains:

     <?xml version='1.0'?><?groove.net version='1.0'?>
     <g:fragment xmlns:g="urn:groove.net">
       <Payload ManagementServer="Testserver/gms.dll" Method="Registration">
         <g:SE EncryptedKey="NMv/qyHGfDtwx66u5+dz+SJF4mHD2G3w0VgwU6HcXTlY4ZvxbV9u37mUVmkq2kt9rzOTehjxsdqInbmuhWVYIKUhSvnIOqRLgMhDmRl5eBE3yFQzn+E4pUD+LTPOf1D1PC9DY0DiSOIyr/mj0oASo+0g9oxofydf1Rwb2AoF+jpXeFUwesJfKzk7/vyPGMF54lP/YKJ7s+k9koW8epws/szdASoN6Hert9PK0JLaOsLY4DOetETtHsWk7/aHpqThPzVSkzobSl20WlR55o1s5I+qsVyblpRHHUGXjwLzdhTapocCuPmQ5BqYcqaf7nwgiUcPFks3f6eA9t0BCRZ2Kg==">
         <g:Cert EPKAlgo="RSA" EPubKey="MIIBCAKCAQEAlLZ8Y6We5hQQY09U8g9tIeTEFLg+0VUssJEUI8CM8DrWZESZImM+JTpoC4fmzRxjtEme1NI/YivSqfYnMszQjsrRN5un68Myxv/liPb+KIZA5N/iAz+GYUjjSG8mX3RflL5Dnv0JSMxtp19O/OAb/MOAOou8gduu3OQYL4bdL0U0mQTLKjM4phqqvVmfDUVGyv5AJqtesBUgHKHcXeSEwqzoPMiQ5n+G3InPgQvt2Yp2dyXtpywgs2T3YGXDxHzR8rMooKud2yVrs8ovh+aKlNsH+9nNCfWzAde3NeVwAkDALyHSJXnKNnnV3H3Ws5lAEwtoRgRmPMLCcb3L9pXM4QIBEQ==" EncAlgo="RSA" SPKAlgo="RSA" SPubKey="MIIBCAKCAQEAvkwk/4bKDKiaSnDZzv8wamxq/ZN3rGyZAUVtgcpWAtn2Ok3Ywl2OjlVUABRR4P5X1Mm8b1LVaAxMoHBwR/H8aQkIDfFdmQLadEJ2tmztvEgVWtx5CMOMuxgXi1IGbaJt9as5AygM0dIe2zVFPZAyh3YmP6vv/OmP+ZzAjY8Hhv8TBvx1qKB5FKJOdsa0C56czWoKW6MabbWDq2tgmNZQjVkKoTcNwJba7RZH9YYvjoT/GSRh/eN/3mJpQIjEZ9HhTh8giRpTbVY1wJgVOUMYGgsVwJgT7JP+ifC56z6DdUyCbD5GSbhwA4qM/tGlgdf82nFK/pk6IzDoLpObunUUCwIBEQ==" SigAlgo="RSA"/>
         <g:Enc EC="GpCsynYpQQmMkZBsnB9bGizFUW2UiRbd0ca91bHoqlBOCA2cDRjFE0y10H1Ij7Z2RyLXdRKorYLAzEw=" IV="nGfVyANhQv6ijNDdVhfQgTpx/NA="/>
        <g:Auth Sig="tzV24qZa2ZJGz2aZ7kgJgdv8XFGMUK3tF7cv6CVuL3j6z2yedfA+a5FM5i457kQWM/pJkY3mvUO6WENGNil74gK7U8jEN8EGoPzoL16tFR42aU7yFgXa0gMcwdH3gnb+CGNOZzcRIOlSVQaLKEGYWoMTm1gIaa7POBRo9VZO2Hxh3gmWx7uHfnFuVkkseZTxjYL6r+Nc5zL3TjkB/rN+/Zz4AJ6MwOWAg0yZLg+27xPtd7JV93Sa7gtjHsF8/J1kJE9goZ3u/PM5fP1U/JZif4h70q+0o5/QQfU5wbOqKNmOX5RH6NgEqhktsuFLbdFQTBVVzQVFttYNFDhtkZl8BQ=="/>
        </g:SE>
       </Payload>
     </g:fragment>
    

    The encrypted /fragment/Payload/SE/Enc/@EC contains:

     <?xml version='1.0'?><?groove.net version='1.0'?>
     <Payload/>
    
  4. The server receives the Registration request. If the request is successful, the server returns a successful registration response.

     <SOAP-ENV:Envelope 
       SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
       xmlns:xsd="http://www.w3.org/1999/XMLSchema" 
       xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
       <SOAP-ENV:Body>
           <Registration>
             <Payload data="PD94bWwgdmVyc2lvbj0nMS4wJz8+PD9ncm9vdmUubmV0IHZlcnNpb249JzEuMCc/PjxnOmZyYWdtZW50IHhtbG5zOmc9InVybjpncm9vdmUubmV0Ij48UGF5bG9hZCBNYW5hZ2VtZW50U2VydmVyPSJUZXN0c2VydmVyL2dtcy5kbGwiIE1ldGhvZD0iUmVnaXN0cmF0aW9uIj48ZzpTRT48ZzpFbmMgRUM9IkNuRjhvd0oyTC8waGRZZStIM01NRjE3NURvcTZBN1YrakI0c2FseXVwYWxvUlZhNS8rYnUzODdiazNDUXl6NWcxZlMyR0Q2MW91akpiTWpwT3VHdzQxWnRIL3RmMEJ0clFIR0oxNUNBWTlVakl4VmdCZjJubWkzeGcwd3FqWkZUUXhkcWdiMzFaUUtzQitTcXJCeUN1MHNvanllaGVkazJ5SDE0c3MzSWR0UVc0R0ROQUdyellrN0FjOUU0ZENvSjU3aXJmUlppY0E9PSIgSVY9InRXY1NCWjJUaE41c0FrMkhzMlhLb3Z1cHNBQT0iLz48ZzpBdXRoIE1BQz0iSWpFL1I4SXRZZ2V0bjc1ZWNVekorZ0hjWXhvPSIvPjwvZzpTRT48L1BheWxvYWQ+PC9nOmZyYWdtZW50Pg==" xsi:type="binary"/>
           </Registration>
       </SOAP-ENV:Body>
     </SOAP-ENV:Envelope>
    

    The /Envelope/Body/Registration/Payload/@data, encoded with base64 encoding, contains:

     <?xml version='1.0'?><?groove.net version='1.0'?>
     <g:fragment xmlns:g="urn:groove.net">
       <Payload ManagementServer="Testserver/gms.dll" Method="Registration">
           <g:SE>
             <g:Enc EC="CnF8owJ2L/0hdYe+H3MMF175Doq6A7V+jB4salyupaloRVa5/+bu387bk3CQyz5g1fS2GD61oujJbMjpOuGw41ZtH/tf0BtrQHGJ15CAY9UjIxVgBf2nmi3xg0wqjZFTQxdqgb31ZQKsB+SqrByCu0sojyehedk2yH14ss3IdtQW4GDNAGrzYk7Ac9E4dCoJ57irfRZicA==" IV="tWcSBZ2ThN5sAk2Hs2XKovupsAA="/>
             <g:Auth MAC="IjE/R8ItYgetn75ecUzJ+gHcYxo="/>
           </g:SE>
       </Payload>
     </g:fragment>
    

    The encrypted /fragment/Payload/SE/Enc/@EC contains:

     <?xml version='1.0'?><?groove.net version='1.0'?>
     <Registration epoch="3">
       <Registration ErrorMessage="Success Registration." Status="0"/>
     </Registration>
    
  5. The client receives the Registration response. If the registration is successful, it can send other service requests.