1

I know that interface Mca is the channel throught CRUD operations comme from AE to CSE. But, what about Mcc? Mcc is proposed to connect two CSEs. But which kind of operations are executed through this Mcc interface? Please, a sample operation would be very appreciated. Thank you.

A sample command that may be sent through Mcc interface

Alex Co
  • 11
  • 1

1 Answers1

0

Though they are defined as different reference points, both Mca and Mcc are technically very similar. They share the same operations and the formats for requests and responses are basically the same. Similar to Mca the same transport bindings (http, matt, soap, web sockets) and serialisations (xml, json, cbor) are used as well.

There are, of course, slight differences in the request handling and some transformation. For example, one CSE that needs to communicate with another CSE must make sure that (resource) identifiers are changed to SP-relative formats (to identify the CSE on which a resource is hosted).

Also, there are different procedures that are only defined for communication over Mcc, for example the registration of one CSE with another, the announcement of resources to another CSE, or the forwarding of requests from an AE via its hosting CSE to a target CSE.

From an architecture point of view Mcc is mainly used between CSEs to either manage resources on another CSE (creating, updating, notifying, etc) as well as forwarding requests from an entity that is not the CSE itself towards a target CSE or a another remote AE.

Here is an example of an MN-CSE that registers itself with an IN-CSE (with an http request). The registration is done by successfully creating a <remotCSE> resource at the other CSE.

POST http://127.0.0.1:8080/~/id-in/cse-in
Date: Thu, 27 Jul 2023
User-Agent: ACME 0.13.0-dev
Content-Type: application/json;ty=16
X-M2M-Origin: /id-mn
X-M2M-RI: 7483637638789744322
X-M2M-RVI: 4

{
    "m2m:csr": {
        "rn": "id-mn",
        "rr": true,
        "csi": "/id-mn",
        "cst": 2,
        "csz": [
            "application/json",
            "application/cbor"
        ],
        "poa": [
            "http://127.0.0.1:8081"
        ],
        "srv": [
            "2a",
            "3",
            "4",
            "5"
        ],
        "cb": "/id-mn/cse-mn",
        "dcse": []
    }
}

The response looks similar to any other response received via Mca (http):

Server: Werkzeug/2.3.6 Python/3.11.4, ACME 0.13.0-dev
Date: Thu, 27 Jul 2023 19:38:36 GMT
X-M2M-RSC: 2001
X-M2M-RI: 7483637638789744322
X-M2M-RVI: 4
Content-Type: application/json
Content-Length: 351

{
    "m2m:csr": {
        "rn": "id-mn",
        "rr": true,
        "csi": "/id-mn",
        "cst": 2,
        "csz": [
            "application/json",
            "application/cbor"
        ],
        "poa": [
            "http://127.0.0.1:8081"
        ],
        "srv": [
            "2a",
            "3",
            "4",
            "5"
        ],
        "cb": "/id-mn/cse-mn",
        "dcse": [],
        "ri": "id-mn",
        "pi": "id-in",
        "ct": "20230727T193836,890237",
        "lt": "20230727T193836,890237",
        "ty": 16,
        "et": "20280725T193836,896471"
    }
}
Andreas Kraft
  • 3,754
  • 1
  • 30
  • 39
  • Thank you Andreas. It is a little bit more clear now. By the way, is there (in the spec) a section where the operations supported by Mcc are defined? – Alex Co Jul 27 '23 at 21:02
  • You might have a look at oneM2M's TS-0001, section 8 "Description and Flows of Reference Points" and TS-0004, section 5 "Protocol design principles and requirements". Perhaps TS-0001, section 10 "Information Flows", is what you are looking for. But again, the operations are only the 5 CRUD(N) operations. They are used to access the services via the resources. That section lists all those services in detail, eg. the CSE registration for the example above is specified in clause 10.2.2.6 "CSE registration" – Andreas Kraft Jul 27 '23 at 21:32
  • Great! I missed something when I searched for it in the spec. One last question please: Although the Mcc is for CSE<->CSE communication, it is the AE that requests the source CSE to register with the second CSE, right? – Alex Co Jul 27 '23 at 21:59
  • No, the CSE deployment infrastructure is defined by an operator, service provider, or other infrastructure management. Your can think of it as a tree-like deployment of infrastructure nodes (or computing edges). The CSEs resp. the CSE's nodes are part of an infrastructure, not necessarily part of an application deployment. Also, the connectivity between CSEs requires security operations like keys, credentials and especially the CSE-IDs that are allowed to register. An authorised AE might be used to do the management, but not necessarily initiate the registrations. – Andreas Kraft Jul 27 '23 at 22:14
  • Perfectly clear now! Thank you very much – Alex Co Jul 28 '23 at 08:04
  • Would you be so kind and accept the answer if it helped you with your question? – Andreas Kraft Jul 29 '23 at 22:53