{"component": "clause", "props": {"groups": [{"samples": [{"hash": "eZB6aYdi0Jq", "uri": "/contracts/eZB6aYdi0Jq#software-architecture", "label": "Grant Agreement", "score": 24.6252903772, "published": true}], "snippet": "Following the comments from the first year technical review, this appendix has been added to describe the software modules that will be developed in the prototype of the COSIGN control layer. The objective is to highlight the components that will be implemented in the OpenDaylight framework as new OpenDaylight plugins developed from scratch or as extended versions of already existing OpenDaylight plugins. In this latest case, this section will provide details about the modifications and enhancements that will be needed to meet COSIGN requirements. Moreover, some components related to the composition and delivery of virtual optical slices will be implemented as OpenVirteX plugins and will require the extension of the OpenVirteX platform in support of optical resources, as documented in the next tables. The outcomes documented in this section are the result of the software design activities carried out in T3.1, T3.2 and T3.3 from M13 to M15. These activities have taken as input the functional architecture documented in the previous sections of this document and, for each functional component defined in Section 4.1, have defined a set of software modules which will implement the associated control plane functions (functions derived from the requirements, as detailed in Table 2). The list of the resulting software modules is summarized in Table 5, which also specifies the prototype release(s) where each module will be included (i.e., preliminary release in D3.3 \u201cSDN controller for DC optical network virtualization and provisioning software prototypes: Preliminary release\u201d at M24 and/or final release in D3.4 \u201cSDN controller for DC optical network virtualization and provisioning software prototypes: Final release\u201d at M30). The following tables describe in details each software module, defining the software architecture which marks the milestone MS14 (Intra-DC control plane high-level architecture), planned at M15.", "snippet_links": [{"key": "following-the", "type": "definition", "offset": [0, 13]}, {"key": "first-year", "type": "definition", "offset": [32, 42]}, {"key": "technical-review", "type": "clause", "offset": [43, 59]}, {"key": "software-modules", "type": "definition", "offset": [106, 122]}, {"key": "the-objective", "type": "clause", "offset": [192, 205]}, {"key": "will-provide", "type": "clause", "offset": [443, 455]}, {"key": "modifications-and-enhancements", "type": "clause", "offset": [474, 504]}, {"key": "related-to", "type": "clause", "offset": [580, 590]}, {"key": "delivery-of", "type": "clause", "offset": [611, 622]}, {"key": "require-the", "type": "clause", "offset": [697, 708]}, {"key": "extension-of-the", "type": "clause", "offset": [709, 725]}, {"key": "activities-carried", "type": "clause", "offset": [891, 909]}, {"key": "functional-architecture", "type": "clause", "offset": [995, 1018]}, {"key": "section-41", "type": "clause", "offset": [1118, 1129]}, {"key": "control-plane", "type": "definition", "offset": [1206, 1219]}, {"key": "the-requirements", "type": "clause", "offset": [1254, 1270]}, {"key": "in-table-2", "type": "clause", "offset": [1284, 1294]}, {"key": "table-5", "type": "definition", "offset": [1357, 1364]}, {"key": "final-release", "type": "clause", "offset": [1609, 1622]}], "size": 1, "hash": "dd3707f86111fa86107e7a1814f52f59", "id": 4}, {"samples": [{"hash": "rHtxiEKYoU", "uri": "/contracts/rHtxiEKYoU#software-architecture", "label": "Service Level Agreement", "score": 33.1085679122, "published": true}, {"hash": "jMT5rh85bnA", "uri": "/contracts/jMT5rh85bnA#software-architecture", "label": "Service Level Agreement", "score": 25.6995208761, "published": true}], "snippet": "The hosted online vending system software must be hosted in at least a Tier 3 data centre.", "snippet_links": [{"key": "system-software", "type": "definition", "offset": [26, 41]}, {"key": "data-centre", "type": "definition", "offset": [78, 89]}], "size": 2, "hash": "5d34bfe707dfd3c3d897f12cc426f3d1", "id": 1}, {"samples": [{"hash": "2XuQvMPgudr", "uri": "/contracts/2XuQvMPgudr#software-architecture", "label": "Grant Agreement", "score": 21.2436687201, "published": true}], "snippet": "21 4.6.1 Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.6.2 Components - micro-ROS Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.6.3 Components - micro-ROS Agent 30 4.7.1 Node interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.7.2 Publisher and subscribers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.7.3 Service, server and client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.7.4 Parameters manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.7.5 Graph manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.7.6 Timers and Clocks interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.7.7 Executor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.7.8 Lifecycle and system modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.7.9 Logging utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.7.10 Agent core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.7.11 Parameter server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.7.12 Graph server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.8.1 micro-ROS Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.8.2 micro-ROS Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.7 External Interfaces 31 4.8 4.9 Infrastructure Architecture 38 4.9.1 infrastructure 38 4.10 Deployment 38 4.10.1 Deployment 38 4.10.2 Build system 40 4.10.3 Profiles 40 4.10.4 Test system 41 5 Appendix 41 5.1 A1 Related documents 41 References 42 1 Acronyms\u200c Acronym Explanation CDR Common Data Representation DDS Data Distribution Service FSM Finite-State Machine HW Hardware IDL Interface Definition Language IRQ Interrupt Request MCU Microcontroller Unit MPU Microprocessor Unit MTU Maximum Transmission Unit NTP Network Time Protocol OMG Object Management Group OS Operating System OSS Open Source Software QoS Quality of Service PTP Precision Time Protocol ROS Robot Operating System RPC Remote Procedure Call RTOS Real Time Operating System RTPS Real-Time Publish-Subscribe XRCE Extremely Resource Constrained YAML YAML Ain\u2019t Markup Language 2 Introduction\u200c", "snippet_links": [{"key": "system-modes", "type": "clause", "offset": [933, 945]}, {"key": "external-interfaces", "type": "clause", "offset": [1705, 1724]}, {"key": "build-system", "type": "definition", "offset": [1838, 1850]}, {"key": "test-system", "type": "clause", "offset": [1880, 1891]}, {"key": "related-documents", "type": "definition", "offset": [1916, 1933]}, {"key": "common-data", "type": "clause", "offset": [1987, 1998]}, {"key": "distribution-service", "type": "clause", "offset": [2023, 2043]}, {"key": "maximum-transmission-unit", "type": "definition", "offset": [2190, 2215]}, {"key": "network-time-protocol", "type": "definition", "offset": [2220, 2241]}, {"key": "management-group", "type": "clause", "offset": [2253, 2269]}, {"key": "operating-system", "type": "clause", "offset": [2273, 2289]}, {"key": "open-source-software", "type": "clause", "offset": [2294, 2314]}, {"key": "quality-of-service", "type": "clause", "offset": [2319, 2337]}], "size": 2, "hash": "4ef5f789517b4d59ab0a708dafa1ca0c", "id": 2}, {"samples": [{"hash": "3ZRyIrCUp3B", "uri": "/contracts/3ZRyIrCUp3B#software-architecture", "label": "Grant Agreement", "score": 32.58086481, "published": true}], "snippet": "The purpose of this Section is to describe how the proposed modules are integrated into one system, focusing on three separate aspects: \u25cf Communication between the modules \u25cf Coordination between the modules \u25cf Deployment of software components to a shared compute platform In doing so, the section will discuss the difficulties encountered during the deployment of different modules and the adopted solutions.", "snippet_links": [{"key": "purpose-of-this", "type": "clause", "offset": [4, 19]}, {"key": "the-proposed", "type": "clause", "offset": [47, 59]}, {"key": "software-components", "type": "definition", "offset": [223, 242]}], "size": 1, "hash": "240313d6156c8e5494d4d02e49c2a2f7", "id": 3}, {"samples": [{"hash": "jMT5rh85bnA", "uri": "/contracts/jMT5rh85bnA#software-architecture", "label": "Service Level Agreement", "score": 25.6995208761, "published": true}], "snippet": "2.2.2 Reporting System 2.2.3 Online Customer Contract Management 2.2.4 Online Engineering Operations 2.2.5 Online Auxiliary Account Management 2.2.6 Online Asset Management 2.2.7 Online System Configuration 2.2.8 Online System Security 2.2.9 Annual tariff adjustments 2.3 Support, Installation & Commissioning", "snippet_links": [{"key": "reporting-system", "type": "clause", "offset": [6, 22]}, {"key": "contract-management", "type": "clause", "offset": [45, 64]}, {"key": "account-management", "type": "definition", "offset": [124, 142]}, {"key": "asset-management", "type": "definition", "offset": [156, 172]}, {"key": "system-configuration", "type": "clause", "offset": [186, 206]}, {"key": "online-system-security", "type": "clause", "offset": [213, 235]}, {"key": "tariff-adjustments", "type": "clause", "offset": [249, 267]}], "size": 1, "hash": "d4958ddd2512b59b0030f3f63f410d03", "id": 5}, {"samples": [{"hash": "8zcTAjKjqXY", "uri": "/contracts/8zcTAjKjqXY#software-architecture", "label": "Grant Agreement", "score": 23.2757681602, "published": true}], "snippet": "The content delivery software consists of following main components: \uf0b7 FIBRE control framework to provide the slice of OpenFlow enabled devices (packet, optical), media server and virtual machines to host software\u2019s. \uf0b7 Media Solution: FOGO 4k Player and Streamer. The FOGO is a proprietary solution and will be available till the end of the FIBRE project. \uf0b7 POX controller: this is the SDN controller which runs on top of the experimenter slice. It utilizes the OF Interface to control the slice resources. The controller application is hosted over python DJANGO framework. The DJANGO framework consists of application called POX_CW which houses the content delivery software and interfaces. The main modules of the controller are as follows.", "snippet_links": [{"key": "content-delivery", "type": "clause", "offset": [4, 20]}, {"key": "main-components", "type": "clause", "offset": [52, 67]}, {"key": "control-framework", "type": "definition", "offset": [77, 94]}, {"key": "provide-the", "type": "clause", "offset": [98, 109]}, {"key": "virtual-machines", "type": "clause", "offset": [180, 196]}, {"key": "host-software", "type": "definition", "offset": [200, 213]}, {"key": "proprietary-solution", "type": "clause", "offset": [278, 298]}, {"key": "to-control", "type": "definition", "offset": [475, 485]}, {"key": "the-controller", "type": "clause", "offset": [507, 521]}], "size": 1, "hash": "54c378a8b13c1e1dd348745534f51d7d", "id": 6}, {"samples": [{"hash": "4pdUeUyEsqi", "uri": "/contracts/4pdUeUyEsqi#software-architecture", "label": "Grant Agreement", "score": 23.0410677618, "published": true}], "snippet": "Control software runs on the central station on the surface of the construction site. Central Computer Figure 24: Detailed of the Robot Hardware modules Central Computer Figure 25: Detailed of the Rover Robot software architecture.", "snippet_links": [{"key": "central-station", "type": "definition", "offset": [29, 44]}, {"key": "construction-site", "type": "clause", "offset": [67, 84]}, {"key": "central-computer", "type": "clause", "offset": [86, 102]}, {"key": "figure-25", "type": "definition", "offset": [170, 179]}], "size": 1, "hash": "1c7f4d7dc18fa201fd712880046847ab", "id": 7}, {"samples": [{"hash": "7UfVpmg09Hp", "uri": "/contracts/7UfVpmg09Hp#software-architecture", "label": "Grant Agreement", "score": 23.2757681602, "published": true}], "snippet": "The Figure 2 gives an overview of the use case architecture and the interfaces between the different modules.", "snippet_links": [{"key": "figure-2", "type": "clause", "offset": [4, 12]}, {"key": "an-overview", "type": "clause", "offset": [19, 30]}, {"key": "use-case", "type": "clause", "offset": [38, 46]}], "size": 1, "hash": "92bbe59219ae0d9546add85865ad00a4", "id": 8}, {"samples": [{"hash": "Qd78Nb3Vpl", "uri": "/contracts/Qd78Nb3Vpl#software-architecture", "label": "Information Technology Services Agreement (Sabre Corp)", "score": 25.1861738535, "published": true}], "snippet": "The Provider\u2019s responsibilities include the following:\n1. Develop and maintain, with Company\u2019s direction and approval, Software architecture. Such architecture will be in accordance with the Long Range IT Plan as described in Exhibit 2.2 (Cross Functional \u2013 Equipment & Software Services) to this Schedule.\n2. Participate in the development, distribution, communication, use, and compliance with Company\u2019s architecture and design guidelines.\n3. Select and apply appropriate Software architecture design.\n4. Certify and maintain audit compliance with design guidelines.", "snippet_links": [{"key": "the-provider", "type": "clause", "offset": [0, 12]}, {"key": "with-company", "type": "clause", "offset": [80, 92]}, {"key": "in-accordance-with", "type": "definition", "offset": [168, 186]}, {"key": "software-services", "type": "clause", "offset": [270, 287]}, {"key": "participate-in", "type": "definition", "offset": [310, 324]}, {"key": "the-development", "type": "clause", "offset": [325, 340]}, {"key": "compliance-with", "type": "definition", "offset": [380, 395]}, {"key": "design-guidelines", "type": "clause", "offset": [423, 440]}, {"key": "architecture-design", "type": "clause", "offset": [483, 502]}, {"key": "audit-compliance", "type": "clause", "offset": [528, 544]}], "size": 1, "hash": "bca00b25813d7334bcf407d25669b1b3", "id": 9}, {"samples": [{"hash": "8YLprWeE14z", "uri": "/contracts/8YLprWeE14z#software-architecture", "label": "Grant Agreement", "score": 26.6098818728, "published": true}], "snippet": "The software consists of a number of threads which are running on the 2 processors, each managing processes with a number of specific performance requirements. Not all the software threads have been implemented inside this project. On the LINK processor [2 in figure 12] a scheduler is managing the processor item allocation and the priorities of each of these processes. This scheduler is interfacing to a K-API [Kernel API]. On the APP processor [1 in figure 12] an OS will be implemented. This OS remains to be selected. An appropriate wireless sensor operating system. Operating system alternatives are RIOT, Contiki, TinyOS, Linux\u2026 The RIOT operating system is a promising recent open source European initiative focused on embedded nodes networks that requires low power and computational resources. Short description of the software components: at networking layer: BTLE Link layer interfacing to an HCI \u2013API. HCI is also accessible as HCI commands on the SPI interface. The BTLE link layer is Bluetooth specification V4.0, V4.1 and V4.2 compliant. 802.15.4 MAC layer interfacing to a proprietary 802.15.4-API. Also accessible on the platform SPI interface. The MAC layer is compliant with the 802.15.4 standard. The ZIGBEE and BTLE thread are based on external solutions. SPI external interface. SPI-based debugger that can survive the deep sleep mode. Problem with JTAG debugger is that they require the JTAG interface to be powered in order to be able to run the debugger. This is an issue in this device, as the goal is to put the device in a sleep state most of the time where the JTAG is not powered. The issue can be resolved by doing a SPI debugger. Application layer on the application processor. Communicates with the LINK processor over a COMs API. Following table summarizes the software memory [program and data] sizes. Link Layer Developed 16 KBYTE 802.15.4 MAC 50% developed 16KBYTE SCHEDULER Developed 15 KBYTE BTLE HOST External 38KBYTE BTLE Profiles External Partner ZIGBEE External 55KBYTE", "snippet_links": [{"key": "number-of", "type": "clause", "offset": [27, 36]}, {"key": "specific-performance-requirements", "type": "clause", "offset": [125, 158]}, {"key": "the-link", "type": "clause", "offset": [235, 243]}, {"key": "figure-12", "type": "definition", "offset": [260, 269]}, {"key": "the-processor", "type": "definition", "offset": [295, 308]}, {"key": "an-appropriate", "type": "clause", "offset": [524, 538]}, {"key": "operating-system", "type": "clause", "offset": [555, 571]}, {"key": "open-source", "type": "definition", "offset": [685, 696]}, {"key": "software-components", "type": "definition", "offset": [830, 849]}, {"key": "the-platform", "type": "clause", "offset": [1136, 1148]}, {"key": "based-on", "type": "clause", "offset": [1250, 1258]}, {"key": "sleep-mode", "type": "definition", "offset": [1348, 1358]}, {"key": "require-the", "type": "clause", "offset": [1400, 1411]}, {"key": "in-order-to", "type": "clause", "offset": [1441, 1452]}, {"key": "the-device", "type": "clause", "offset": [1537, 1547]}, {"key": "the-issue", "type": "clause", "offset": [1613, 1622]}, {"key": "application-processor", "type": "definition", "offset": [1689, 1710]}, {"key": "external-partner", "type": "definition", "offset": [1974, 1990]}], "size": 1, "hash": "b9fe19981ebda421a1a8dcb1131b12a1", "id": 10}], "next_curs": "Cl4SWGoVc35sYXdpbnNpZGVyY29udHJhY3RzcjoLEhZDbGF1c2VTbmlwcGV0R3JvdXBfdjU2Ih5zb2Z0d2FyZS1hcmNoaXRlY3R1cmUjMDAwMDAwMGEMogECZW4YACAA", "clause": {"parents": [["mandatory-requirements", "Mandatory Requirements"], ["prepayment-vending-system", "Prepayment Vending System"], ["confidentiality", "CONFIDENTIALITY"], ["notices", "NOTICES"], ["services-provided-by-contractor", "Services Provided by Contractor"]], "children": [["modules-description", "Modules description"], ["containers", "Containers"], ["specifications", "Specifications"], ["", ""], ["installation-instructions", "Installation instructions"]], "size": 15, "title": "Software Architecture", "id": "software-architecture", "related": [["architecture", "Architecture", "Architecture"], ["network-interconnection-architecture", "Network Interconnection Architecture", "Network Interconnection Architecture"], ["interfaces", "Interfaces", "Interfaces"], ["interface", "Interface", "Interface"], ["hardware-and-software", "Hardware and Software", "Hardware and Software"]], "related_snippets": [], "updated": "2025-07-07T12:36:13+00:00", "also_ask": ["What minimum technical standards should be mandated in a Software Architecture clause?", "How can parties allocate liability for architectural deficiencies or failures?", "What negotiation leverage exists around future scalability and integration requirements?", "How do courts assess enforceability of architectural obligations in software disputes?", "How does this clause compare to industry best practices or regulatory requirements?"], "drafting_tip": "Specify architectural standards and deliverables to ensure clarity; require approval processes to maintain quality; define change procedures to manage risks.", "explanation": "The Software Architecture clause defines the overall structure, design principles, and key components of the software system to be developed or delivered under the agreement. It typically outlines the main modules, their interactions, and the technologies or frameworks to be used, ensuring that both parties have a shared understanding of the system's technical foundation. By establishing these architectural guidelines, the clause helps prevent misunderstandings, aligns expectations, and provides a reference point for evaluating the system's design and future modifications."}, "json": true, "cursor": ""}}