Proposals

Eclipse DataGrid

Wednesday, May 21, 2025 - 11:20 by Florian Habermann

The Eclipse DataGrid project delivers a high-performance, distributed, in-memory data processing layer for Java applications. Built upon the robust foundation of EclipseStore, Eclipse DataGrid extends its capabilities to enable seamless replication and distribution of native Java object graphs across multiple JVMs in a cluster. This innovative approach empowers developers to leverage the full potential of the Java language and JVM, eliminating the impedance mismatch and performance bottlenecks associated with traditional data solutions.

Eclipse DataGrid can also be seamlessly integrated into existing database application infrastructures, acting as an in-memory caching, searching and data processing layer to significantly improve performance, reduce the load on primary databases, and lower overall database infrastructure costs, including potential savings on database license fees. Target group are both, Java enterprise and cloud-native application builders.

 

1. Project Goals

  • Provide Java-Native In-Memory Data Processing: To offer a distributed Java in-memory data processing layer, that is deeply integrated with the Java language, utilizing core Java features and the native Java object model.
  • Eliminate Impedance Mismatch: To remove the need for complex and inefficient mappings between Java objects and external data formats or structures.
  • Use JVM Performance for In-Memory Data Processing: To enable applications to achieve microsecond-level look-up, response, and query times by leveraging the performance of the JVM’s runtime, memory management, and JIT compiler.
  • Simplify Distributed Java Development: To provide a straightforward way for Java developers to work with distributed Java object graphs, data and clusters, using familiar Java concepts and tools.
  • Offer ACID Compliance in a Distributed Environment: To ensure data consistency and reliability in clustered deployments by using EclipseStore's ACID properties.
  • Optimize Database Performance and Costs: To enable the use of Eclipse DataGrid as a caching, searching, and processing layer, reducing the load on underlying databases and lowering infrastructure expenses.
  • Support of any Programming Language: A REST interface enables access Eclipse DataGrid with any program language.

 

 

2. How the Project Works

Eclipse DataGrid comprises several key components that work together to provide a distributed Java in-memory data processing solution:

  • Java Object Graph Model: Unlike traditional key-value-based data grids, Eclipse DataGrid preserves Java’s object-oriented paradigm, enabling developers to work with complex object graphs without sacrificing performance or simplicity. Eclipse DataGrid replicates this graph across the cluster, allowing distributed access to the data. The Java object graph is used as an in-memory data storage system at runtime that enables execution of CRUD operations and a rollback mechanism.
  • Java Streams API and Lucene: Eclipse DataGrid leverages Java's Streams API for efficient data searching, filtering, and manipulation. It will also integrate Lucene for advanced full-text search capabilities.
  • Indexing: A special HashMap enables indexing and fully-automated lazy-loading to minimize I/O traffic.
  • EclipseStore Integration: The integration of EclipseStore provides ACID-compliant persistence to all Eclipse DataGrid nodes.
  • Replicate Java Object Graphs: Eclipse DataGrid extends EclipseStore by providing a specific storage function that can distribute the storage process of an object graph across multiple JVMs within a cluster via event streaming. The standard consistency model is eventual consistency. In a later version, a configurable strong consistency model is provided.
  • Kubernetes Integration: A dedicated Helm chart will be provided to facilitate the creation, setup, and provisioning of a cluster environment on Kubernetes. This streamlines the deployment and management of Eclipse DataGrid in modern, cloud-native environments.
  • Management GUI: A Java application with a graphical user interface will be developed to simplify cluster operations. This GUI will enable users to:
    • Provision and set up Eclipse DataGrid clusters.
    • Perform ongoing maintenance of the cluster.
    • Monitor cluster health and performance using observability tools (e.g. Grafana, Prometheus)
    • Troubleshoot issues that may arise.

 

3. Project Components and Features

Eclipse DataGrid will provide the following key components and features:

  • Distributed Store Function: A core extension to EclipseStore that enables the distribution of data across multiple JVMs in a cluster.
  • Eventual Consistency: The standard consistency model is eventual consistency.
  • Kubernetes Cluster Management: Helm chart for automated cluster provisioning and management on Kubernetes.
  • Graphical Management Interface: A user-friendly Java application for cluster setup, maintenance, monitoring, and troubleshooting.
  • Native Java Object Graph Replication: The ability to replicate and distribute native Java object graphs across a cluster.
  • ACID Compliance: Distributed transactions and data consistency, building upon EclipseStore's ACID properties.
  • High-Performance Data Access: Microsecond-level read and write access to distributed data.
  • Java Streams API Integration: Seamless integration with Java's Streams API for efficient data manipulation.
  • Lucene Integration: Full-text search capabilities for complex data querying.
  • Secure Serialization: Protection against deserialization attacks through the use of Eclipse Serializer.
  • Flexible Data Modeling: Users can define their data structures using any Java class, allowing for a fully customized and domain-driven approach.
  • In-Memory Performance: Leveraging JVM memory management for optimal speed.
  • JIT Compiler Optimization: Benefiting from the JVM's JIT compiler for runtime performance enhancements.
  • Database Optimization: Ability to serve as an in-memory caching, searching and processing layer for existing database applications.

 

 

4. Core Java Features Utilized

Eclipse DataGrid is designed to exploit the full power of the Java language and the JVM. It leverages these core Java features:

  • Java Object Model: The project works directly with Java's native object model, eliminating the need for object-relational mapping (ORM) or other impedance-matching techniques.
  • Java Memory Management: Eclipse DataGrid relies on the JVM's efficient memory management, including garbage collection, to handle large volumes of in-memory data.
  • Java Streams API: The project utilizes the Java Streams API for efficient and expressive data manipulation, including filtering, mapping, and aggregation.
  • Concurrency Utilities: Java's concurrency utilities will be used to manage distributed operations, ensuring thread safety and optimal performance.
  • JVM Internals: The project is designed to work efficiently with the JVM, taking advantage of its architecture and optimizations such as Virtual Threads.

 

5. Use Cases

Eclipse DataGrid is ideal for a wide range of use cases where high-performance, low-latency, and scalable data access is critical:

  • High-Performance Caching: Dramatically improve application performance by caching frequently accessed data in a distributed in-memory grid, reducing the load on the primary database.
  • Real-Time Analytics: Enable real-time data analysis and decision-making by providing microsecond-level access to data for complex queries and aggregations.
  • Scalable Web Applications: Build highly scalable and responsive web applications by distributing session data and application state across a cluster.
  • Microservices Architectures: Facilitate the development of microservices-based applications by providing a shared, distributed data layer that can be accessed by multiple services.
  • Complex Event Processing: Process and analyze high-velocity data streams in real-time for applications such as fraud detection, algorithmic trading, and IoT data analysis.
  • Distributed Graph Processing: Efficiently store and process graph data for applications such as social network analysis, recommendation engines, and knowledge graphs.
  • Online Gaming: Power real-time, multiplayer online games with low-latency data access and distributed state management.
  • E-commerce Applications: Handle high-volume transactions, personalize shopping experiences, and manage product catalogs with extreme speed and scalability.
  • Financial Services: Support high-frequency trading, risk management, and fraud detection with real-time data access and processing.
  • Healthcare Applications: Enable fast access to patient data, support real-time monitoring, and facilitate data-intensive research.
  • Database Optimization and Cost Reduction: Offload data processing from primary databases, reducing their workload and enabling the consolidation of multiple database types, leading to lower infrastructure costs and license fees.

  

6. Benefits

Eclipse DataGrid offers numerous benefits to Java developers:

  • Unparalleled Performance: Microsecond-level data access for demanding, high-performance applications.
  • Simplified Development: Develop distributed applications using familiar Java concepts and the native Java object model.
  • Reduced Complexity: Eliminate the need for complex data mapping and integration with external data stores.
  • Increased Scalability: Easily scale applications horizontally by adding more nodes to the cluster.
  • Improved Reliability: Ensure data consistency and availability with ACID-compliant distributed transactions.
  • Lower Infrastructure Costs: Optimize resource utilization and potentially reduce the need for multiple specialized databases.
  • Faster Time to Market: Accelerate application development by providing a ready-to-use, high-performance data grid solution.
  • Full Java Power: Ability to implement any complex business logic.
  • Unified Data Layer: Handle various data needs (key-value, documents, graph-like structures) within a single, consistent system.
  • Database Efficiency: Improved performance and reduced load on primary databases.

 

7. Conclusion

Eclipse DataGrid represents a significant advancement in Java application development, providing a powerful and intuitive way to build high-performance, distributed, in-memory data solutions. By leveraging the core strengths of Java and the JVM, Eclipse DataGrid empowers developers to create a new generation of data-intensive applications with unparalleled performance, scalability, and reliability. We believe that Eclipse DataGrid will become a valuable asset within the Eclipse ecosystem, driving innovation and growth in the Java community, and invite the Eclipse community to collaborate on shaping Eclipse DataGrid into a cornerstone of modern data processing with Java.

Eclipse Piranha Cloud

Monday, May 19, 2025 - 16:28 by Arjan Tijms

Traditional Jakarta EE implementations are application servers; which are software products mostly intended to be installed. They have the ability to deploy and undeploy one or more applications on them, and typically contain support for monitoring, clustering and many additional features. GlassFish is one example of such implementation.

Eclipse Piranha Cloud intends to provide an implementation of Jakarta EE without being an application server. It focuses on being highly composable, both in regards to the Jakarta EE implementation components being used, as with regard to some of the features that are provided. 

A special focus is on embedded use, where a runtime composition can be used that commits functionality not necessarily used for embedded use. E.g. Eclipse Piranha Cloud could be used to just render a Jakarta Faces page into a String, so such composition would not need an HTTP server. The code embedding such Eclipse Piranha Cloud instance would only include the Mojarra lib and the embedding code would programmatically create and pass an object representing an HTTPServletRequest in.

 

Jakarta Portlet Bridge

Monday, March 24, 2025 - 16:06 by Neil Griffin

The Jakarta Portlet Bridge project is responsible for defining the Specification and API, which enables the development of Jakarta Faces web applications that can be deployed within a portlet container running inside a Jakarta EE servlet container or application server. The Portlet Bridge Specification defines requirements for mapping the portlet lifecycle (HEADER_PHASE, EVENT_PHASE, ACTION_PHASE, RESOURCE_PHASE, and RENDER_PHASE) to the Faces lifecycle (RESTORE_VIEW, APPLY_REQUEST_VALUES, PROCESS_VALIDATIONS, UPDATE_MODEL_VALUES, INVOKE_APPLICATION, and RENDER_RESPONSE). The goal is to provide Jakarta Faces developers with the ability to deploy their web applications in a portlet container with little-to-no-modification.

Jakarta Portlet

Monday, March 24, 2025 - 12:46 by Neil Griffin

The Jakarta Portlet project is responsible for defining the Specification and API, which enables the development of modular, server-side components that can be deployed within a portlet container running inside a Jakarta EE servlet container or application server. 

The Portlet Specification defines requirements for the portlet container, including an execution lifecycle and phases such as HEADER_PHASE, EVENT_PHASE, ACTION_PHASE, RESOURCE_PHASE, and RENDER_PHASE. The portlet lifecycle follows a request/response design similar to the servlet lifecycle, where each portlet has the opportunity to participate in the lifecycle and contribute output to the response. The Specification also specifies requirements for a client-side JavaScript API, including a client-side facility called the Portlet Hub. The Portlet Java API, Javadoc, and JSDoc define the contract for a portlet application to interact with the portlet container. A portlet application consists of one or more portlets that are packaged within a single Jakarta EE Web Application Archive (WAR) artifact.

The Specification also defines minimal requirements for a portal, which is a related technology responsible for aggregating output from a portlet container into a cohesive view, typically a complete HTML document rendered in a browser. Portals typically provide other features, such as page definition, portlet location on pages, and user management.

Eclipse Disco

Tuesday, February 18, 2025 - 01:09 by Christian Wege

Eclipse Disco focuses on consuming SBOMs and the resulting actions based on their assessment. It is not meant to produce SBOMs from source code since that is well-supported already by other projects. SBOMs might be created by combining imported SBOMs though. Eclipse Disco comes with a license and policy database that helps a project owner to assess FOSS licenses based on self-configured use cases and understand the resulting license obligations. The content of this license and policy database is out of scope of Eclipse Disco (hence it will be empty except for some examples) since this relies on the local legal interpretation of FOSS licenses.

Eclipse Readability Studio

Sunday, February 9, 2025 - 09:55 by Blake Madden

Eclipse Readability Studio is a desktop applications which provides:

  • over 50 readability formulas
  • grammar checking features
  • ability to analyze individual documents
  • ability to analyze batches of documents at once
  • support for English, Spanish, and German documents
  • support for MS Word, OpenDocument, RTF, HTML, PostScript, and text files

Eclipse SDV-LVL

Wednesday, January 29, 2025 - 08:46 by Moritz Neukirchner

Just as the SAE Levels of Autonomy helped to level-set discussion on autonomous driving, the Eclipse SDV-LVL defines a common terminology/taxonomy for capabilities of SDV. In the field of highly automated driving the industry has converged to a concise language, where there is a universal understanding of what constitutes a Level 3 function. This project defines a comparable language.

To support industry-wide adoption, all descriptions and visuals developed in this project are made accessible and usable for day-to-day communication.

As a consequence of the primary goal (definition of taxonomy and stable language), Eclipse SDV-LVL maintains stability in the structure and semantics of its levels. When adaptations are necessary, the focus is on extensions and clarifications rather than altering fundamental meanings. Meanwhile, the perspective on enablers and key characteristics of software-defined vehicles will evolve over time to keep pace with technological and organizational advancements.

Furthermore, the project favors brevity and conciseness over completeness. Any taxonomy will exhibit grey areas which are expected. Rather than expanding the levels to cover a multitude of “shades of grey”, simplicity is favored. This also holds true to the section of enablers where a complete and unequivocal list is impossible to create. 

Eclipse Trustable Software Framework

Wednesday, January 22, 2025 - 17:31 by John Ellis

The Eclipse Trustable Software Framework project's focus is practical approaches to understanding risks in software engineering.

Describing and quantifying these risks requires a scalable framework that can be applicable for systems of varying degrees of complexity. Complex systems involving software, hardware, safety, and security properties can greatly benefit from continuous quantitative analysis to inform decision-making.

A single generalised system cannot address all domains effectively, so Eclipse Trustable Software Framework aims to evolve into an ecosystem built around a unified methodology in the longer term. The first step in this journey is the Trustable Software Framework (TSF) and its set of Tenets and Assertions: short statements (propositions that could be either true or false) identifying what objectives software projects must consider in order to be considered Trustable. 

TSF specifies how metadata about a software project is stored and managed in a git repository, alongside the software's source code and documentation. This involves systematically tracking a set of statements that specify the software project, which form a directed acyclic graph (DAG) and provide metrics for continuous analysis and iteration.

These statements document claims about the software or the project, identify evidence that supports these, or specify requests that must be satisfied by another claim - or by something or someone external to the project. The graph describes how high-level or external goals for the software project (Expectations) are supported by more specific objectives (Assertions) and ultimately Evidence. The latter must necessarily reference artifacts: files in a git repository, or the result of automated processes operating on such files.

This approach is intended to replace traditional techniques that rely on office tools like MS Word or Excel to author documentation, and specialised commercial tooling to manage system specifications and requirements, and trace these to implemented software and tests. Such approaches frequently fail to maintain integrity in complex, continuously evolving systems, because they are not closely integrated with the software that they describe.

Eclipse OSCAT

Thursday, January 16, 2025 - 05:02 by Franz Höpfinger

Advantages of Transferring OSCAT to the Eclipse Foundation

Introduction to OSCAT

The Open Source Community for Automation Technology (OSCAT) is a well-established initiative that provides a suite of software packages designed to enhance automation technology. OSCAT consists of three main packages: OSCAT-Basic, OSCAT-Network, and OSCAT-Building. These packages are compatible with various platforms, including CODESYS 2.3, CODESYS 3.5, Siemens S7, and PC Worx (All other brand names and trademarks are the property of their respective owners and are used for descriptive purposes only). OSCAT's mission is to offer open-source solutions that facilitate automation in industrial and building environments, promoting innovation and accessibility in the field.

Benefits to OSCAT

  1. Enhanced Governance and Structure:
    • Vendor-Neutral Governance: The Eclipse Foundation offers a vendor-neutral governance model that ensures fair and transparent decision-making processes. This structure can help OSCAT maintain its integrity and independence, avoiding potential conflicts of interest.
    • Intellectual Property Management: The Eclipse Foundation has established processes for managing intellectual property, which can protect OSCAT's assets and ensure compliance with legal standards.
  2. Increased Visibility and Adoption:
    • Global Recognition: Being part of the Eclipse Foundation can significantly boost OSCAT's visibility within the global open-source community. The Eclipse brand is well-respected and widely recognized, which can attract more users and contributors.
    • Community Engagement: The Eclipse Foundation's extensive network can facilitate greater community engagement, fostering collaboration and innovation. This can lead to more rapid development and improvement of OSCAT.
  3. Access to Resources and Infrastructure:
    • Technical Infrastructure: OSCAT can benefit from the Eclipse Foundation's advanced technical infrastructure, including build systems, code repositories, and continuous integration tools. This can streamline development processes and improve software quality.
    • Funding and Support: The Eclipse Foundation can provide financial support and resources for marketing, events, and other activities that promote OSCAT. This can help sustain and grow the project over time.

Benefits to the Eclipse Foundation

  1. Expansion of Project Portfolio:
    • Diverse Ecosystem: Integrating OSCAT into the Eclipse Foundation's portfolio can diversify its ecosystem, attracting new contributors and users from different domains. This can enhance the Foundation's overall impact and reach.
    • Innovation and Collaboration: OSCAT's unique features and capabilities can inspire new projects and collaborations within the Eclipse community, driving innovation and technological advancement.
  2. Strengthening Open-Source Standards:
    • Standardization Efforts: The Eclipse Foundation's collaboration with standards organizations can benefit from OSCAT's inclusion. OSCAT can contribute to the development of open-source standards, promoting interoperability and best practices.
    • Compliance and Security: By adhering to the Eclipse Foundation's rigorous development processes, OSCAT can enhance its compliance with industry standards and improve its security posture.
  3. Community and Ecosystem Growth:
    • Broader Community: The addition of OSCAT can attract a broader community of developers, users, and stakeholders to the Eclipse Foundation. This can lead to a more vibrant and diverse ecosystem, fostering greater collaboration and knowledge sharing.
    • Ecosystem Synergies: OSCAT can create synergies with other Eclipse projects, enabling the development of integrated solutions and expanding the Foundation's capabilities in various technological areas.

Special Focus on Home and Building Automation

The Eclipse Foundation has ongoing activities and projects focused on home and building automation. By integrating OSCAT, which includes the OSCAT-Building package, the Eclipse Foundation can strengthen its position in this domain. OSCAT's expertise and solutions can complement existing Eclipse projects, leading to more comprehensive and innovative automation solutions for smart homes and buildings.

Industrial Automation

OSCAT is widely used in Industrial Automation, which widens the Scope of the above mentioned Activities into a wider Field of Applications, giving multiple synergy effects in reusability and stability of control Software.

Conclusion

The transfer of OSCAT to the Eclipse Foundation as Eclipse OSCAT offers substantial advantages for both parties. OSCAT can benefit from enhanced governance, increased visibility, and access to resources, while the Eclipse Foundation can expand its project portfolio, strengthen open-source standards, and grow its community. This strategic move can ultimately lead to a more robust, innovative, and collaborative open-source ecosystem, particularly in the field of home and building automation.

Eclipse SEALMAN

Tuesday, January 14, 2025 - 09:26 by Jos Zenner

Eclipse SEALMAN is an open-source project born from the collaboration of machine builders, offering a comprehensive suite of building blocks for intelligent machines. At its core, Eclipse SEALMAN empowers machine builders to seamlessly integrate edge computing, robust device management, seamless cloud connectivity, and efficient remote maintenance capabilities into their solutions. With a strong emphasis on cyber security, Eclipse SEALMAN provides a secure architecture that safeguards machines from the edge to the cloud, ensuring the integrity and confidentiality of data throughout the entire lifecycle.