{
  "schema_version": "0.6.0",
  "paper_id": "distributed-architecture-for-an-integrated-development-environment-large-trace-analysis-and-visu",
  "page_url": "https://threadslab.org/research-publications/papers/distributed-architecture-for-an-integrated-development-environment-large-trace-analysis-and-visu/",
  "title": "Distributed Architecture for an Integrated Development Environment, Large Trace Analysis, and Visualization",
  "title_variants": [],
  "authors": [
    "Yonni Chen Kuang Piao",
    "Naser Ezzati-Jivan",
    "Michel R. Dagenais"
  ],
  "author_details": [
    {
      "name": "Yonni Chen Kuang Piao",
      "orcid": null,
      "profile_url": "https://dblp.org/pid/300/5925.html"
    },
    {
      "name": "Naser Ezzati-Jivan",
      "orcid": "https://orcid.org/0000-0003-1435-6297",
      "profile_url": "https://threadslab.org/"
    },
    {
      "name": "Michel R. Dagenais",
      "orcid": null,
      "profile_url": "https://dblp.org/pid/60/309.html"
    }
  ],
  "publication": {
    "year": 2021,
    "venue": "Sensors",
    "type": "journal article",
    "publication_date": "2021-08-18",
    "online_date": "2021-08-18",
    "print_date": null,
    "volume": "21",
    "issue": "16",
    "pages": "5560",
    "article_number": null,
    "publisher": "MDPI AG",
    "issn": [
      "1424-8220"
    ],
    "isbn": [],
    "crossref_type": "journal-article"
  },
  "publication_type": "journal article",
  "status": "public_published_full_text",
  "canonical_source_url": "https://doi.org/10.3390/s21165560",
  "source_record_id": "distributed-architecture-for-an-integrated-development-environment-large-trace-analysis-and-visu-42c61cf1e0",
  "identifiers": {
    "doi": "10.3390/s21165560"
  },
  "abstract": "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 to integrate them into the new modular IDEs. In this paper, we propose an efficient modular client-server 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.",
  "abstract_source": "Official Sensors article abstract; CC BY 4.0 open-access article page.",
  "abstract_available": true,
  "scholar_eligibility": {
    "eligible": true,
    "basis": "complete-visible-author-abstract",
    "note": "The page displays the complete verified author abstract."
  },
  "description": "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 to integrate them into the new modular IDEs. In this paper, we propose an efficient modular client-server 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.",
  "evidence_level": "full-text-reviewed",
  "evidence": {
    "source_basis": "full-text-reviewed",
    "coverage": "material paper sections",
    "summary_origin": "AI-assisted catalog editorial summary",
    "review_status": "catalog-reviewed; paper-author approval pending",
    "verified_on": "2026-08-21",
    "sources": [
      {
        "note": "Official Sensors article and abstract: https://www.mdpi.com/1424-8220/21/16/5560"
      },
      {
        "note": "MDPI open-access policy and CC BY reuse terms: https://www.mdpi.com/about/openaccess"
      },
      {
        "note": "Local published-paper PDF hash verified in the working catalog"
      }
    ]
  },
  "summary": {
    "core_contribution": "The paper presents a modular client-server architecture for large-trace storage, analysis, and visualization inside an integrated development environment.",
    "problem": "IDE trace analysis tools are difficult to integrate when trace storage, analysis, and visualization are monolithic, and large traces make browser transfer and rendering expensive.",
    "method": "Use a modular distributed architecture with a Trace Analysis Server, Data Provider, API Gateway/service discovery, TASP REST API, generic Timegraph/XY models, JSON/GZip JSON/Protobuf serialization, and client throttling/caching; TraceScape provides the JavaScript client and PixiJS rendering.",
    "findings": "On a 2.47 GB/approximately 75M-event trace, Protobuf generally reduced transfer and serialization overhead relative to JSON and GZip JSON, while GZip often minimized payload size. PixiJS rendered 25/200 timegraph rows in 6.79/68.67 ms, and the client/server penalty was generally tens of milliseconds rather than trace-scale processing time.",
    "limitations": "The evaluation is local and focuses on selected XY/timegraph queries and browser rendering; small traces may not benefit. REST versus gRPC was not fully evaluated, request-volume stress and broader workloads are limited, and maintainability/flexibility claims are mainly architectural.",
    "future_work": "Link trace views to IDE code problems, evaluate broader workloads and deployments, and compare additional transport/protocol choices such as gRPC."
  },
  "tags": [
    "system-tracing",
    "trace-analysis",
    "observability",
    "performance-optimization",
    "multicore-systems"
  ],
  "keywords": [
    "distributed architecture",
    "Trace Compass",
    "TraceScape",
    "LTTng 2.10.3",
    "Trace Analysis Server Protocol",
    "TASP",
    "Protobuf",
    "GZip JSON",
    "large traces",
    "state models",
    "trace visualization",
    "PixiJS",
    "Chart.js",
    "HighCharts"
  ],
  "versions": [
    {
      "id": "published-version",
      "label": "Published version",
      "relation": "version-of-record",
      "title": "Distributed Architecture for an Integrated Development Environment, Large Trace Analysis, and Visualization",
      "url": "https://doi.org/10.3390/s21165560",
      "pdf_url": null,
      "status": "published",
      "canonical_for_citation": true
    },
    {
      "id": "public-institutional-full-text",
      "label": "Public institutional full text",
      "relation": "version-of-record",
      "title": "Distributed Architecture for an Integrated Development Environment, Large Trace Analysis, and Visualization",
      "url": "https://publications.polymtl.ca/9436/",
      "pdf_url": "https://publications.polymtl.ca/9436/1/2021_Chen%20Kuang%20Piao_Distributed_Architecture_Integrated_Development_Environment.pdf",
      "status": "public_published_full_text",
      "canonical_for_citation": false
    }
  ],
  "access": {
    "status": "public_published_full_text",
    "note": "PolyPublie record identifies this as the published MDPI version and displays CC BY 4.0.",
    "license": "CC BY 4.0"
  },
  "resources": {
    "code": "https://github.com/cheninator/trace-scape",
    "data": null,
    "slides": null,
    "demo": null
  },
  "citation_guidance": {
    "when_to_cite": "Cite this paper when your work uses or compares a modular TASP architecture that separates trace storage, analysis services, APIs, and IDE visualization.",
    "points": [
      "For a modular TASP architecture that separates trace storage, analysis services, APIs, and IDE visualization.",
      "For generic `Timegraph`/`XY` data models plus client throttling/caching for large trace views.",
      "For Protobuf versus JSON/GZip JSON payload and latency trade-offs on a 2.47 GB, approximately 75M-event trace.",
      "For PixiJS-based timegraph rendering measurements at 25 and 200 rows."
    ],
    "canonical_version_id": "published-version"
  },
  "provenance": {
    "metadata_verified_on": "2026-08-21",
    "metadata_source": [
      "Official Sensors article and abstract: https://www.mdpi.com/1424-8220/21/16/5560",
      "MDPI open-access policy and CC BY reuse terms: https://www.mdpi.com/about/openaccess",
      "Local published-paper PDF hash verified in the working catalog"
    ],
    "summary_written_by": "AI-assisted",
    "summary_verified_by": "full-text-grounded catalog review; author approval pending",
    "linked_preprint_record": null,
    "author_order_note": null
  },
  "batch": {
    "phase": 2,
    "batch_label": "expanded forty-paper release",
    "status": "included_in_expanded_catalog",
    "selected_at": "2026-08-28"
  }
}
