Under CopyrightBürkle, A.A.BürkleCrowley, J.J.CrowleyCurin, J.J.CurinEdlund, J.J.EdlundFleury, P.P.FleuryKleindienst, H.H.KleindienstMoßgraber, J.J.MoßgraberMüller, W.W.MüllerOkon, M.M.OkonPaar, A.A.PaarPfirrmann, U.U.PfirrmannReuter, J.J.ReuterSoldatos, J.J.SoldatosSzeder, G.G.SzederThomas, M.M.Thomas2022-03-0702.03.20052004https://publica.fraunhofer.de/handle/publica/29227710.24406/publica-fhg-2922770 Preface S.8 1 Introduction S.10 2 General Design Principles S.14 - 2.1 Keywords S.14 - 2.2 Configuration and Dependencies S.14 - 2.3 Interoperability and Extensibility S.15 - 2.4 Levels of Portability S.17 - 2.5 Device Ontology S.18 - 2.6 Levels of Commitment S.18 - 2.7 Design Rules S.19 - 2.8 Design Principles S.23 - 2.9 Security Considerations S.25 - 2.10 Documentation Guidelines S.25 - 2.11 External Documentation S.25 - 2.11.1 API Documentation S.26 - 2.11.2 Programmer's manual S.26 - 2.11.3 Programmer's tutorial S.26 - 2.12 Internal Documentation S.26 - 2.12.1 ChangeLog S.26 - 2.13 Bug Tracking S.27 - 2.14 Revision Control S.27 - 2.15 Software Engineering for a cognitive CHIL software environment S.27 3 System Architecture S.29 - 3.1 System Structure S.29 - 3.2 Hardware (sensors, devices) S.29 - 3.3 Software (low-level drivers, perceptual interfaces, services) S.30 - 3.4 SW-Architecture (middleware) S.31 - 3.4.1 CHIL agent based global architecture (high level) S.31 - 3.4.2 CHIL Layer model S.33 - 3.4.2.1 User front-end S.33 - 3.4.2.2 Service access and control S.34 - 3.4.2.3 Services S.35 - 3.4.2.4 Situation modelling S.35 - 3.4.2.5 Perceptual components S.37 - 3.4.2.6 Logical sensors/actuators S.38 - 3.4.2.7 Control/Metadata S.38 - 3.4.2.8 Low-level distributed data transfer S.39 - 3.4.2.9 CHIL utilities S.39 - 3.4.2.10 Ontology S.40 - 3.4.3 Functional components mapping S.42 - 3.4.4 Use cases S.43 4 Mapping the Requirements to the Architecture Framework Layers Model S.44 - 4.1 Requirements for the "Low-Level Distributed Data Transfer (LDT)"-Layer S.47 - 4.2 Requirements for the "Metadata (MD)"-Layer S.48 - 4.3 Requirements for the "Control (C)"-Layer S.49 - 4.4 Requirements for the "Logical Sensors/Actuators (LSA)"-Layer S.50 - 4.5 Requirements for the "Perceptual Components (PC)"-Layer S.51 - 4.6 Requirements for the "Situation Modelling (SM)"-Layer S.52 - 4.7 Requirements for the "Services (S)"-Layer S.53 - 4.8 Requirements for the "Service Access and Control (SAC)"-Layer S.54 - 4.9 Requirements for the "User Front-End (UFE)"-Layer S.55 - 4.10 Requirements for the "CHIL Utility (U)"-Layer S.56 5 Interface Design S.57 - 5.1 Overview S.57 - 5.2 Sequence Diagrams for Use Cases S.59 - 5.2.1 Use case NotificationAboutAttentionLoss S.59 - 5.2.2 Use case BrowseContextInformation S.60 6 Detailed SW-Architecture S.61 - 6.1 Upper Layers S.61 - 6.1.1 Use case NotificationAboutAttentionLoss S.62 - 6.1.2 Use case BrowseContextInformation S.64 - 6.1.3 Use case UserIdentification S.66 - 6.1.4 User Front End S.69 - 6.1.5 Service Access and Control Layer S.71 - 6.1.5.1 CHILAgentManager S.72 - 6.1.5.2 OntologyAccessAgent S.72 - 6.1.5.3 ServiceAgents (MemoryJogAgent, ProfileHandlerAgent, InformationRetrievalAgent, AttentionCockpitAgent, ConnectorAgent) S.72 - 6.2 Services Layer S.72 - 6.2.1 User Profile Specification S.76 - 6.2.2 ProfileHandler Service S.77 - 6.2.3 InformationRetrieval Service S.77 - 6.2.4 DeviceIntegration Service S.77 - 6.2.5 UserIdentification Service S.78 - 6.3 Situation Modelling Layer S.79 - 6.3.1 Overview of layer architecture S.80 - 6.3.2 Eventing and polling S.83 - 6.3.3 Extensibility S.84 - 6.3.4 History Tracking S.84 - 6.3.5 Start-up of system S.85 - 6.4 Perceptual Components Layer S.85 - 6.4.1 Class Architecture S.85 - 6.4.2 Proposed Perceptual Components S.87 - 6.4.3 Perceptual Component APIs S.88 - 6.5 Logical Sensors and Actuators Layer S.88 - 6.5.1 Logical Sensors S.88 - 6.5.2 Logical Actuators S.90 - 6.6 Control/Metadata layer S.90 - 6.6.1 Data and Control Abstraction: Interface to LDTL and LSAL S.90 - 6.6.2 Resource Limitation Aspects S.92 - 6.6.3 Exception Event Abstraction: Impact of Hardware Device Failures S.92 - 6.7 Low-Level Distributed Data Transfer layer S.92 - 6.7.1 NIST Smart Flow System S.93 - 6.7.1.1 NSFS Components S.93 - 6.7.1.2 C++ interface to the Smart Flow library S.94 - 6.7.1.3 Messaging S.94 - 6.7.1.4 Synchronized Flow between Clients S.97 - 6.7.2 NIST Data Flow System Version 2 S.97 - 6.7.2.1 NDFS-II components S.97 - 6.7.2.2 Host and Application Servers S.98 - 6.7.2.3 Clients S.100 - 6.7.2.4 Data Flows S.102 - 6.7.2.5 Security S.103 - 6.8 CHIL Utilities S.103 - 6.8.1 Global timing S.103 - 6.9 Ontology S.104 7 Open Issues S.106 - 7.1 General Issues S.106 - 7.2 Special Issues S.108 8 Annex S.110 - 8.1 References S.110 - 8.2 Table list S.112 - 8.3 Figure list S.113en004Functional Requirements & CHIL Cooperative Information System Software Designstudy