Characteristics and comparison of global state management tools in react applications
This paper analyses and compares four tools for global state management in React applications, namely Context API, Zustand, Redux and MobX. The aim of the comparison was to define the advantages and limitations of each tool in different application scenarios. The Context API is a built-in tool for managing global application state that solves the problem of passing props through components – prop drilling. Other analysed tools need to be added separately to the project, and they were created as a solution to the limitations of the Context API. The results showed that Context API is best suited for smaller and medium-complex projects, Zustand is optimized for all project sizes, while Redux and MobX are more applicable for large and complex applications with complex global state. The Context API can become limiting in complex applications due to performance issues, context losses, or the lack of a solution to directly prevent the Zombie Child problem. Other tested tools have built-in solutions to the mentioned problems. Zustand has proven to be a comprehensive solution with its simple code base applicable to different sizes of applications. The advantage of Redux is its Flux architecture, which increases the boilerplate code, but also makes application development suitable for large teams and projects with high demands for predictability and strictly defined state management. MobX offers a flexible and reactive approach, which simplifies working with complex states, but in certain cases it can be less predictable compared to Redux. In conclusion, this paper contributes to the understanding of the key features of state management tools and offers guidelines for their selection, enabling developers and development teams to make informed decisions about tool selection based on technical and project requirements.
- Conference Article
- 10.1109/parelec.2011.38
- Apr 1, 2011
A new framework for designing evolved program execution control in distributed programs is discussed in the paper. The framework provides an infrastructure for designing distributed program control based on monitoring of global application states. Global control constructs are proposed which logically bind distributed program modules and define the flow of control dependent on the monitoring of global application states. Such control can be organized in programs at the process and thread levels. Special processes and threads called synchronizers collect state information from application modules, construct strongly consistent global states and evaluate control predicates on global states. Based on this evaluation control signals are sent to processes and threads to define inter module flow of control and to influence the internal module behavior. The proposed constructs are incorporated into the framework as a graphical API which is compiled into C/C++ programs with the MPI2, pthreads and Open Mp libraries for communication.
- Research Article
7
- 10.1002/cpe.3431
- Jan 22, 2015
- Concurrency and Computation: Practice and Experience
SummaryThe paper presents basic design decisions taken in the implementation of a novel distributed program design framework Program Execution Governed by Asynchronous SUpervision of States in Distributed Applications (PEGASUS DA). This framework supports application program execution control design based on evolved automated program global states monitoring. The framework provides to a programmer a ready‐to‐use infrastructure for defining and handling local and global application states to be used as the basis for program execution control decisions. The paper presents how the provided infrastructure can be used for automated construction of strongly consistent application global states. Also, the use of global states for graphically supported specification of distributed program execution control is covered for clusters of multicore processors based on multithreading and message passing. Both architecture and implementation solutions applied for PEGASUS DA are discussed. Especially, multivariant algorithms for construction of program strongly consistent global states and methods for their use in the design of distributed program global execution control are shown. The use of PEGASUS DA is illustrated with an example of a traveling salesman problem solved by the branch and bound method. Copyright © 2015 John Wiley & Sons, Ltd.
- Book Chapter
2
- 10.1007/978-3-030-43229-4_24
- Jan 1, 2020
The paper concerns the use of global application states monitoring in distributed programs for advanced graph partitioning optimization. Two strategies for the control design of advanced parallel/distributed graph partitioning algorithms are presented and discussed. In the first one, the parallel algorithm control runs on top of the ready to use basic graph partitioning functions available inside an existing graph partitioning METIS tool. The second control strategy is based on a genetic programing algorithm in which the applied basic graph partitioning primitives and the overall algorithmic parallel/distributed control can be freely designed by the user. In these strategies, the graph partitioning control is executed by processes/threads supervised by the application global states monitoring facilities provided inside a novel distributed program design framework PEGASUS DA. This framework provides system support to construct user-defined strongly consistent global application states and an API to define corresponding execution control. In particular, it concerns computing global control predicates on the constructed global states, the predicates evaluation and asynchronous execution control handling to obtain application global state-driven reactions. Based on such implementation, different features of the graph partitioning optimization strategies have been designed and tested. The experimental results have shown benefits of the new graph partitioning control methods designed with the use of the application global states monitoring.
- Conference Article
- 10.1109/ispdc.2008.20
- Jan 1, 2008
The paper concerns methodology of organizing execution control in parallel and distributed programs based on special control infrastructure provided in the system, which monitors application global states. In such infrastructure, automatic collecting information from parallel processes about their local states and construction global application states can be done on-line without tedious intervention of a programmer. Global predicates can be next evaluated to examine the obtained global states and control decisions on program behaviour can be taken. Application processes can use the information about global predicate fulfillment to control their execution in a way, which is desired from a global point of view. There are many possible ways a process can access the information about the global predicate fulfillment. We discuss them in detail, dividing the described variants into two main groups: synchronous and asynchronous. We present an implementation of an asynchronous variant. Implementation of other variants, which present very interesting perspectives is also discussed.
- Conference Article
13
- 10.1109/ispdc.2011.24
- Jul 1, 2011
A new distributed program graphical design environment is described in the paper. It is oriented towards designing program execution control based on a built-in system infrastructure which enables easy global application states monitoring in systems based on multicore processors. Two aspects of global application control design are covered. First is the global control flow in programs at the level of processes and threads. The second is the asynchronous control of internal process and thread behavior. The proposed control infrastructure is based on structural program elements called synchronizers organized at the process and thread levels to collect state information, evaluate control predicates on global states and send signals to application program threads and processes to stimulate global control actions. The paper presents principles of the application program graphical design and programming methods to implement global control at the level of threads.
- Conference Article
4
- 10.1109/aspdac.2012.6165024
- Jan 1, 2012
The architectural power intent of a design defines the intended global power states of a power-managed integrated circuit. Verification of the implementation of power management logic involves the task of checking whether only the intended power states are reached. Typically, the number of global power states reachable by the global power management strategy is significantly lesser than the possible number of global power states. In this paper, we present a formal method for determining the set of reachable global power states in a power-managed design. Our approach demonstrates how this task can be further constrained as required by the verification engineer. We highlight the efficacy of the proposed methods over several test-cases.
- Research Article
1
- 10.12694/scpe.v13i2.778
- Jul 20, 2012
- Scalable Computing Practice and Experience
The paper concerns designing distributed program execution control based on global application states monitoring in the presence of a dynamic number of processes and threads. Global program execution control is based on application states monitoring at the level of processes/threads in clusters of multi--core processors. A special control infrastructure is proposed based on synchronizers, which collect state information from processes and threads, detect strongly consistent application global states, evaluate control predicates and send respective control signals. An algorithm for detection of strongly consistent global states for a variable number of processes/threads is presented.
- Book Chapter
2
- 10.1007/978-3-642-14403-5_25
- Jan 1, 2010
The paper is concerned with methodology for designing ececution control based on application global states monitoring in parallel and distributed programs. The principles of global state monitoring i parallel programs are recalled. Then new control statement semantics related with the global states monitoring are proposed, including synchronous and asynchronous approach to the maintenance of information used for the global states-control in programs. Proposals of syntactical solutions for designing a control language which accounts for program global states in execution control in parallel/distributed programs are presented.KeywordsGlobal StateParallel ProgramGlobal ControlControl LanguageGlobal ApplicationThese keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
- Conference Article
- 10.1109/pdp.2013.13
- Feb 1, 2013
We present a new approach to the design of parallel genetic algorithms executed in multicore processor systems. To design the algorithms, a programming environment is used with parallel program global control flow functions and asynchronous process/thread internal behaviour control. Global application states monitoring is provided by generalized synchronization processes called synchronizers which collect local states of program elements, construct consistent global states and send control signals to program components based on predicates computed on global states. Such control/synchronization mechanisms are provided as a ready to use program infrastructure which is structurally decoupled from computational code for threads, processes and groups of threads/processes. A parallel genetic algorithm design based on such global control infrastructure is discussed. The algorithm has been used for optimal partitioning of parallel mesh computations represented as a data flow graph for solving a FDTD numerical problem.
- Book Chapter
10
- 10.1007/978-3-642-55224-3_29
- Jan 1, 2014
This paper presents control implementation methods for an original distributed program design framework PEGASUS DA (Program Execution Governed by Asynchronous SUpervision of States in Distributed Applications) which provides automated design of distributed program execution control based on program global states monitoring. The framework includes a built in support for handling local and global application states as well as automatic construction and use of strongly consistent application global states for program execution control. In particular, the paper presents methods used to implement distributed program control inside the PEGASUS DA framework run on clusters of contemporary multicore processors based on multithreading. The program design method is illustrated on a distributed multithreaded application executed with load balancing in a multicore system.KeywordsDistributed program execution controlDistributed program designGlobal application statesStrongly consistent global statesProgram design tools
- Conference Article
7
- 10.1109/ispdc.2007.17
- Jul 1, 2007
We discuss the efficiency of a novel parallel/distributed application control method, based on global state monitoring. Processes report their local states to monitors. The monitors construct global states, analyze them and send control signals to processes when necessary. The addition of a special fast control network, responsible for transferring control information, is proposed in this paper. The efficiency is tested in simulation of sample branch and bound parallel computations. We show, that multicast capability of a network plays an important role in the resulting system efficiency. Other network parameters, such as latency or bandwidth, are significant only under proper conditions. We identify these conditions, demonstrating that 5-9 times speedup can be obtained by addition of a fast control network.
- Single Report
- 10.55271/rp0002
- Apr 2, 2022
The ECPS’s First Annual International Symposium, titled “The Future Course of Populism in the Post-Pandemic Era: The State of Globalization, Multilateral Governance, and Democracy,” was held online in Brussels on February 18, 2022, and brought together scholars from the political, social, and economic sciences, as well as populism experts and civil society audiences, to discuss the impact of populist policies on the national, regional, and global management of the Covid-19 pandemic. In doing so, the symposium aimed at contributing to informed predictions on the post-pandemic international political landscape. This report is the product of these fruitful conversations and is intended to keep the record of the Symposium. It includes brief summaries of the speeches and, also, links to the full videos of presentations.
- Research Article
10
- 10.1145/3592620
- Jun 13, 2023
- ACM Transactions on Computing Education
Project managers tend to confront multiple challenges in Global Software Development (GSD), including misunderstandings about the project requirements, complex estimations of costs, risks, and efforts, along with increases in task allocation and a lack of coordination. “Soft skills” play a fundamental role in solving these challenges, as they are the human or social abilities that facilitate the resolution of conflicts and involve dealing with people and managing projects in their most social and creative dimension. However, developing the soft skills that allow project managers to lead in an effective manner is not an easy task, especially in global or distributed environments, where coordination and control problems are commonplace. One suitable mechanism with which to develop these soft skills is that of serious games, which focus on learning by doing and allow users to simulate real scenarios. The authors of this article are aware of the usefulness of this type of teaching method and have, therefore, developed the serious game described herein. This serious game is denominated as Global Manager and is focused on helping both students and novice project managers to become aware of the factors that may affect GSD projects. Global Manager was evaluated by means of a quasi-experiment based on a pretest-posttest design, which was used to assess whether the game can increase the players’ awareness and knowledge of the factors that a project manager should consider in GSD projects. The results obtained after evaluating the game were quite satisfactory, as the game taught the players to differentiate between global and distributed software projects and to experience situations that may and do occur in these settings. Furthermore, Global Manager helped improve players' perceptions of the importance of different influencing factors in GSD.
- Conference Article
2
- 10.1109/ispdc2018.2018.00021
- Jun 1, 2018
The paper presents how an advanced graph partitioning optimization method was implemented inside a novel distributed program design framework PEGASUS DA which provides system support for automatic global application states monitoring. In PEGASUS DA, execution control design of distributed applications is system-supported by program global state monitoring run-time. This support provides an automatic construction of user-defined relevant strongly consistent global application states, computing global control predicates on the constructed states, evaluation of these predicates and sending asynchronous control signals to application threads and processes to stimulate the desired global state-driven reactions. The presented graph partitioning optimization algorithm is based on user-defined mixed partitioning strategies. It includes a combined use of different graph partitioning methods and different criteria for definition and assessment of produced partitions. It runs on top of basic graph partitioning methods available inside the METIS partitioning tool. The partitioning is executed by distributed processes and threads controlled by global states monitoring provided by the PEGASUS DA framework. Its use allows easy design and testing of different graph optimization strategies, finding graph partitioning optimal methods and algorithm parameters. The graph partitioning methods presented in the paper are illustrated by experiments performed with partitioning of a number of benchmark graphs to show partitioning quality (from 5% to 30% of the improvement has been observed) and execution time assessment of the proposed approach.
- Research Article
1
- 10.1097/01.numa.0000483130.35813.d9
- Jun 1, 2016
- Nursing Management
Project management supports the change process