{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,12]],"date-time":"2025-10-12T02:14:52Z","timestamp":1760235292103,"version":"build-2065373602"},"reference-count":32,"publisher":"MDPI AG","issue":"16","license":[{"start":{"date-parts":[[2021,8,18]],"date-time":"2021-08-18T00:00:00Z","timestamp":1629244800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Sensors"],"abstract":"<jats:p>Integrated development environments (IDEs) provide many useful tools such as a code editor, a compiler, and a debugger for creating software. These tools are highly sophisticated, and their development requires a significant effort. Traditionally, an IDE supports different programming languages via plugins that are not usually reusable in other IDEs. Given the high complexity and constant evolution of popular programming languages, such as C++ and even Java, the effort to update those plugins has become unbearable. Thus, recent work aims to modularize IDEs and reuse the existing parser implementation directly in compilers. However, when IDE debugging tools are insufficient at detecting performance defects in large and multithreaded systems, developers must use tracing and trace visualization tools in their software development process. Those tools are often standalone applications and do not interoperate with the new modular IDEs, thus losing the power and the benefits of many features provided by the IDE. The structure and use cases of tracing tools, with the potentially massive execution traces, significantly differ from the other tools in IDEs. Thus, it is a considerable challenge, one which has not been addressed previously, to integrate them into the new modular IDEs. In this paper, we propose an efficient modular client\u2013server architecture for trace analysis and visualization that solves those problems. The proposed architecture is well suited for performance analysis on Internet of Things (IoT) devices, where resource limitations often prohibit data collection, processing, and visualization all on the same device. The experimental evaluation demonstrated that our proposed flexible and reusable solution is scalable and has a small acceptable performance overhead compared to the standalone approach.<\/jats:p>","DOI":"10.3390\/s21165560","type":"journal-article","created":{"date-parts":[[2021,8,18]],"date-time":"2021-08-18T22:51:00Z","timestamp":1629327060000},"page":"5560","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":2,"title":["Distributed Architecture for an Integrated Development Environment, Large Trace Analysis, and Visualization"],"prefix":"10.3390","volume":"21","author":[{"given":"Yonni","family":"Chen Kuang Piao","sequence":"first","affiliation":[{"name":"Computer Engineering and Software Engineering Department, Ecole Polytechnique Montreal, Montreal, QC h3t 1j4, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1435-6297","authenticated-orcid":false,"given":"Naser","family":"Ezzati-jivan","sequence":"additional","affiliation":[{"name":"Computer Science Department, Brock University, St. Catharines, ON l22 3a1, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Michel R.","family":"Dagenais","sequence":"additional","affiliation":[{"name":"Computer Engineering and Software Engineering Department, Ecole Polytechnique Montreal, Montreal, QC h3t 1j4, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"1968","published-online":{"date-parts":[[2021,8,18]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","unstructured":"Keidel, S., Pfeiffer, W., and Erdweg, S. (2016). The IDE portability problem and its solution in Monto. Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, ACM.","DOI":"10.1145\/2997364.2997368"},{"key":"ref_2","unstructured":"Efftinge, S., and Kosyakov, A. (2021, February 10). Theia-One IDE Framework For Desktop & Cloud. In EclipseCon France 2017; Toulouse, France 2017. Available online: https:\/\/www.typefox.io\/blog\/theia-one-ide-for-desktop-cloud."},{"key":"ref_3","unstructured":"(2021, February 10). Microsoft Visual Studio Code. Available online: https:\/\/github.com\/Microsoft\/vscode."},{"key":"ref_4","doi-asserted-by":"crossref","first-page":"e4069","DOI":"10.1002\/cpe.4069","article-title":"Hardware-assisted software event tracing","volume":"29","author":"Dagenais","year":"2017","journal-title":"Concurr. Comput. Pract. Exp."},{"key":"ref_5","doi-asserted-by":"crossref","first-page":"62","DOI":"10.1186\/s13677-020-00206-6","article-title":"Multi-level host-based intrusion detection system for Internet of things","volume":"9","author":"Gassais","year":"2020","journal-title":"J. Cloud Comput."},{"key":"ref_6","unstructured":"Hogan, L.C. (2014). Designing for Performance: Weighing Aesthetics and Speed, O\u2019Reilly Media, Inc."},{"key":"ref_7","doi-asserted-by":"crossref","first-page":"3","DOI":"10.1145\/3170472.3133842","article-title":"A concurrency-agnostic protocol for multi-paradigm concurrent debugging tools","volume":"Volume 52","author":"Marr","year":"2017","journal-title":"ACM SIGPLAN Notice"},{"key":"ref_8","unstructured":"Gregg, B., and Mauro, J. (2011). DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD, Prentice Hall Press. [1st ed.]."},{"key":"ref_9","doi-asserted-by":"crossref","first-page":"55","DOI":"10.1016\/j.jss.2017.09.023","article-title":"R-SHT: A state history tree with R-Tree properties for analysis and visualization of highly parallel system traces","volume":"135","author":"Beamonte","year":"2018","journal-title":"J. Syst. Softw."},{"key":"ref_10","doi-asserted-by":"crossref","unstructured":"Breitenbacher, D., Homoliak, I., Aung, Y.L., Tippenhauer, N.O., and Elovici, Y. (2019, January 9\u201312). HADES-IoT: A Practical Host-Based Anomaly Detection System for IoT Devices. Proceedings of the 2019 ACM Asia Conference on Computer and Communications Security, Asia CCS\u201919, Auckland, New Zealand.","DOI":"10.1145\/3321705.3329847"},{"key":"ref_11","doi-asserted-by":"crossref","first-page":"e4068","DOI":"10.1002\/cpe.4068","article-title":"Multi-scale navigation of large trace data: A survey","volume":"29","author":"Dagenais","year":"2017","journal-title":"Concurr. Comput. Pract. Exp."},{"key":"ref_12","unstructured":"Project, T.L. (2021, February 10). LTTng Scope. Available online: https:\/\/github.com\/lttng\/lttng-scope."},{"key":"ref_13","unstructured":"Desnoyers, M. (2021, February 10). Common trace format (CTF) specification (v1. 8.2). Common Trace Format GIT Repos., Available online: https:\/\/diamon.org\/ctf\/."},{"key":"ref_14","unstructured":"Desnoyers, M., and Dagenais, M.R. (2006). The LTTng tracer: A low impact performance and behavior monitor for GNU\/Linux. Ott. Linux Symp., 209\u2013224."},{"key":"ref_15","unstructured":"Kouam\u00e9, K.G. (2015). Langage d\u00e9di\u00e9 et Analyse Automatis\u00e9e Pour la D\u00e9tection de Patrons au Sein de Traces D\u2019ex\u00e9cution. [Master\u2019s Thesis, \u00c9cole Polytechnique de Montr\u00e9al]."},{"key":"ref_16","unstructured":"Duca, N., and Sinclair, D. (2021, February 10). Trace Event Format. 23 January 2017. Available online: https:\/\/docs.google.com\/document\/d\/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU\/preview."},{"key":"ref_17","unstructured":"Strubel, H. (2017). Monitoring Distributed Traces with Kieker. [Master\u2019s Thesis, Institut f\u00fcr Informatik]."},{"key":"ref_18","unstructured":"Technologies, U. (2021, February 10). Jaeger\u2014A Distributed Tracing System. Available online: https:\/\/github.com\/jaegertracing\/jaeger."},{"key":"ref_19","unstructured":"Richardson, C. (2021, February 10). Pattern: API Gateway\/Backend for Front-End. Available online: https:\/\/microservices.io\/patterns\/apigateway.html."},{"key":"ref_20","unstructured":"Richardson, C. (2021, February 10). Pattern: Server-Side Service Discovery. Available online: https:\/\/microservices.io\/patterns\/server-side-discovery.html."},{"key":"ref_21","doi-asserted-by":"crossref","first-page":"201","DOI":"10.1007\/s11219-016-9311-0","article-title":"A declarative framework for stateful analysis of execution traces","volume":"25","author":"Wininger","year":"2017","journal-title":"Softw. Qual. J."},{"key":"ref_22","doi-asserted-by":"crossref","unstructured":"Montplaisir, A., Ezzati-Jivan, N., Wininger, F., and Dagenais, M. (2013). Efficient model to query and visualize the system states extracted from trace data. Runtime Verification, Springer.","DOI":"10.1007\/978-3-642-40787-1_13"},{"key":"ref_23","doi-asserted-by":"crossref","unstructured":"Prieur-Drevon, L., Beamonte, R., Ezzati-Jivan, N., and Dagenais, M.R. (July, January 27). Enhanced State History Tree (eSHT): A Stateful Data Structure for Analysis of Highly Parallel System Traces. Proceedings of the 2016 IEEE International Congress on Big Data (BigData Congress), San Francisco, CA, USA.","DOI":"10.1109\/BigDataCongress.2016.19"},{"key":"ref_24","doi-asserted-by":"crossref","unstructured":"Valipour, M.H., AmirZafari, B., Maleki, K.N., and Daneshpour, N. (2009, January 8\u201311). A brief survey of software architecture concepts and service oriented architecture. Proceedings of the 2009 2nd IEEE International Conference on Computer Science and Information Technology, Beijing, China.","DOI":"10.1109\/ICCSIT.2009.5235004"},{"key":"ref_25","doi-asserted-by":"crossref","unstructured":"Wileden, J.C., and Kaplan, A. (1999). Software Interoperability: Principles and Practice. Proceedings of the 21st International Conference on Software Engineering, ACM. ICSE \u201999.","DOI":"10.1145\/302405.302952"},{"key":"ref_26","unstructured":"(Json-RPC 2.0 Specification, 2013). JSON-RPC-Working-Group, Json-RPC 2.0 Specification."},{"key":"ref_27","doi-asserted-by":"crossref","unstructured":"Sumaray, A., and Makki, S.K. (2012). A comparison of data serialization formats for optimal efficiency on a mobile platform. Proceedings of the 6th International Conference on Ubiquitous Information Management and Communication, ACM. ICUIMC\u201912.","DOI":"10.1145\/2184751.2184810"},{"key":"ref_28","unstructured":"Google (2021, February 10). Protocol Buffers Are a Language-Neutral, Platform-Neutral Extensible Mechanism for Serializing Structured Data. Available online: https:\/\/developers.google.com\/protocol-buffers."},{"key":"ref_29","unstructured":"Masse, M. (2011). REST API Design Rulebook: Designing Consistent RESTful Web Service Interfaces, O\u2019Reilly Media, Inc."},{"key":"ref_30","unstructured":"Ericsson (2021, February 10). Trace Analysis Server Protocol. Available online: https:\/\/theia-ide.github.io\/trace-server-protocol."},{"key":"ref_31","unstructured":"Homer, A., Sharp, J., Brader, L., Narumoto, M., and Swanson, T. (2014). Cloud Design Patterns, Microsoft."},{"key":"ref_32","unstructured":"Google (2021, February 10). About gRPC. Available online: https:\/\/grpc.io\/about\/."}],"container-title":["Sensors"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/1424-8220\/21\/16\/5560\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,11]],"date-time":"2025-10-11T06:46:34Z","timestamp":1760165194000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/1424-8220\/21\/16\/5560"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,8,18]]},"references-count":32,"journal-issue":{"issue":"16","published-online":{"date-parts":[[2021,8]]}},"alternative-id":["s21165560"],"URL":"https:\/\/doi.org\/10.3390\/s21165560","relation":{},"ISSN":["1424-8220"],"issn-type":[{"type":"electronic","value":"1424-8220"}],"subject":[],"published":{"date-parts":[[2021,8,18]]}}}