Explore chapters and articles related to this topic
Project execution
Published in Varun Gupta, Anh Nguyen-Duc, Real-World Software Projects for Computer Science and Engineering Students, 2021
Architectural patterns. An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context (Taylor et al. 2009). Such patterns provide a way of describing good design structures, such that they can be reused in a range of different implementations and can help the team to avoid bad design decisions. Some common patterns include: Client-server pattern: consists of a server and multiple clients. The server component will provide services to multiple client components.Pipe-filter pattern produces and processes a stream of data. Each processing step is enclosed within a filter component. Data to be processed is passed through pipes.Broker pattern: is used to structure distributed systems with decoupled components. These components can interact with each other by remote service invocations. A broker component is responsible for the coordination of communication among components.Model-view-controller (MVC) pattern: divides an interactive application into three parts as (1) model – contains the core functionality and data, (2) view – displays the information to the user (more than one view may be defined), and (3) controller – handles the input from the user
An industrial Internet of things based platform for context-aware information services in manufacturing
Published in International Journal of Computer Integrated Manufacturing, 2018
Kosmas Alexopoulos, Konstantinos Sipsas, Evangelos Xanthakis, Sotiris Makris, Dimitris Mourtzis
The system has been designed following the three-tier architecture pattern that consists of the edge tier, the platform tier and the enterprise tier (see Figure 1). This is a well-established architectural pattern for implementing coherent industrial applications (Industrial Internet Consortium 2017). In the edge tier, raw data are collected in a device-specific manner, through device-specific interfaces, from the edge devices (e.g. sensors, machines), and transformed to low-level information representation in the form of events. The events may be then processed locally in the tier by edge-processing modules and then be transmitted to the platform tier. The platform tier receives data from the edge devices, extracts and aggregates contextual information and provides services to the applications in the enterprise tier. Context awareness is required because users are mobile and maybe at each moment in different parts of the production, e.g. welding different panels on a block. The applications implement business logic and provide interfaces to the end users. In each tier, one or more layers of the context-aware system are being implemented; these layers are as follows: asset, integration and communication, context and information, services and finally business layer. As a result, manufacturing applications, lying at the top level, are independent of the heterogeneous data sources at the bottom level and can be easily reconfigured without requiring an additional development effort.
Design of a speech-enabled 3D marine compass simulation system
Published in Ships and Offshore Structures, 2018
Bin Fu, Hongxiang Ren, Jingjing Liu, Xiaoxi Zhang
The simulation system uses a three-layer architectural pattern: a data layer, a logic layer and a presentation layer (Wong et al. 2016). In the Unity3D engine, encapsulation and object-oriented development were fully utilised. As the modules are independent but can be linked via interface functions and public variables, so the system has high-cohesion but low-coupling. The overall structure is shown in Figure 1. As shown in the figure, the Interface class receives operational messages delivered by the interface program and transmits the results of the operation and data back to the interface program. The Observe class realises the main operations of the simulation system and is responsible for receiving and interacting with the logical control messages transmitted by other classes. Finally, the Distinguished class is primarily used to achieve a graphical user interface (GUI) and the Wheel class is responsible for human–computer interaction control.
A review on big data real-time stream processing and its scheduling techniques
Published in International Journal of Parallel, Emergent and Distributed Systems, 2020
Nicoleta Tantalaki, Stavros Souravlas, Manos Roumeliotis
Flink is an hybrid solution [60]. The need to manage different workloads under a coherent architecture led to several design patterns with the most popular being the ‘Lambda Architecture.’ The complexity of using different batch and streaming architectures paved the way to the ‘Kappa architectural’ pattern that fuses the batch and stream layers together. Flink is a materialisation of the Kappa architecture. Despite the fact that it relies on a streaming execution model, it is possible to process both bounded and unbounded data, with two APIs running on the same distributed streaming execution.