Eclipse Platform architecture 

Eclipse Platform architecture 

Source publication
Article
Full-text available
Modern n-tier applications are developed using components implemented in many different technologies, including HTML, Java™, JavaServer Pages™ (JSP™), Enterprise JavaBeans™, connectors, COBOL or PL/1 programs, and relational database schemas. Creating an effective integrated development environment (IDE) for use in programming these applications pr...

Context in source publication

Context 1
... Eclipse Platforms principal role is to provide tool providers with mechanisms to use and rules to follow that lead to seamlessly integrated tools. These mechanisms are exposed through well-defined API interfaces, classes, and methods. The platform also provides useful building blocks and frameworks that facilitate developing new tools. Figure 2 shows the major components and APIs of the Eclipse ...

Similar publications

Article
Full-text available
In this paper we propose a quantitative model for evaluation and selection of Integrated Development Environments (IDE's) for Java enterprise applications. Our goal is to determine the extent to which major IDE's satisfy typical software developer requirements. Our evaluation model is based on the Logic Scoring of Preference (LSP) method for system...
Article
Full-text available
This volume contains the extended abstracts of the contributions presented at EclipseIT 2013, the 8th workshop of the Italian Eclipse Community, hosted by the Computer Science Department of the University of Milan (Crema Campus) on September 19-20, 2013. Although Eclipse was initially designed as an integrated development environment (IDE) for obje...

Citations

... CORBA makes it possible to give new life to legacy systems and at the same time quickly integrate new applications into them, giving enterprises a strategic advantage over competitors modifying legacy systems. A more recent example is the freely available integrated development environment Eclipse [18,19]. ...
Article
Full-text available
The article proposes the concept of architectural reliability of software included in the hardware and software complex of request-free measuring stations. This concept is based on previously completed activities to shape the appearance of a complex of hardware and software for the functioning of measuring stations. It is noted that in order to solve problems related to increasing the architectural reliability of software, the security functions and information and logical interaction of the components of the measuring station are essential. Since software architecture is determined by the concept of architectural design, the work presents the stages of designing a complex software system. The description provided includes the basic operations of architectural design, with decomposition necessary to structure and organize system specifications. The final stage lists the main steps that should be taken to enhance the strategic influence of the software architecture on the functionality and reliability of the set of technical means for ensuring the operation of request-free measuring stations.
... Architecture: The facilities for the meta-modeling of YAWL were utilized for UML AD [90,91]. Acceleo is a plug-in for the Eclipse modeling framework that supports model-driven architecture [92][93][94][95][96][97]. Alloy supports relational logic for the model-checking of software systems [39,40]. ...
Article
Full-text available
Because of the competitive economy, organizations today seek to rationalize, innovate, and adapt to changing environments and circumstances as part of business process improvement efforts. The strength of blockchain technology lies in its usage as an apt technology to enhance the efficiency and effectiveness of business processes; furthermore, it prevents the use of erroneous or obsolete data and allows sharing of confidential data securely. The use of superior technology in the execution and automation of business processes brings opportunities to rethink the specific process itself as well. Business processes modeling and verification are essential to control and assure organizational evolution, therefore, the aim of this paper is three-fold: firstly, to provide business process management patterns in finance, based on blockchain, specifically for the loan-application process in the banking industry and claim process in the insurance industry that could be used and customized by companies; secondly, to critically analyze challenges and opportunities from the introduction of such approach for companies, and thirdly, to outline how companies can implement the loan business process as a web service. Partner companies (a bank and an insurance company) formulated the potential requirements for M2P along with the application of blockchain technology. An experimental design framework was established that gave the necessary services to model the requirements, check the models, and operationalize the models. The applied research methodologies are as follows: design science research paradigm and software case study, model-to-programming (M2P) of business processes, and utilization of patterns of workflow and blockchain.
... A minimalistic programming system would consist of a text editor to write Java code and a command line compiler. A more realistic system is Java as embedded in the Eclipse IDE [14]. The programming systems view allows us to see all there is beyond the textual code. ...
Preprint
Full-text available
Programming requires much more than just writing code in a programming language. It is usually done in the context of a stateful environment, by interacting with a system through a graphical user interface. Yet, this wide space of possibilities lacks a common structure for navigation. Work on programming systems fails to form a coherent body of research, making it hard to improve on past work and advance the state of the art. In computer science, much has been said and done to allow comparison of **programming languages**, yet no similar theory exists for *programming systems*; we believe that programming systems deserve a theory too. We present a framework of *technical dimensions* which capture the underlying characteristics of programming systems and provide a means for conceptualizing and comparing them. We identify technical dimensions by examining past influential programming systems and reviewing their design principles, technical capabilities, and styles of user interaction. Technical dimensions capture characteristics that may be studied, compared and advanced independently. This makes it possible to talk about programming systems in a way that can be shared and constructively debated rather than relying solely on personal impressions. Our framework is derived using a qualitative analysis of past programming systems. We outline two concrete ways of using our framework. First, we show how it can analyze a recently developed novel programming system. Then, we use it to identify an interesting unexplored point in the design space of programming systems. Much research effort focuses on building programming systems that are easier to use, accessible to non-experts, moldable and/or powerful, but such efforts are disconnected. They are informal, guided by the personal vision of their authors and thus are only evaluable and comparable on the basis of individual experience using them. By providing foundations for more systematic research, we can help programming systems researchers to stand, at last, on the shoulders of giants.
... A minimalistic programming system would consist of a text editor to write Java code and a command line compiler. A more realistic system is Java as embedded in the Eclipse IDE [14]. The programming systems view allows us to see all there is beyond the textual code. ...
... The framework of "RNASeq" and "VariantSeq" was developed in Java 11 and Desktop, and Cloud versions were created using Eclipse Rich Client Platform 4.22 (RCP) and Eclipse Remote Application Platform 3.22 (RAP), respectively [22]. The implementation of this framework follows a similar approach to the model-view-controller (MVC) pattern [23]. ...
Article
Full-text available
The GPRO suite is an in-progress bioinformatic project for -omics data analysis. As part of the continued growth of this project, we introduce a client- and server-side solution for comparative transcriptomics and analysis of variants. The client-side consists of two Java applications called “RNASeq” and “VariantSeq” to manage pipelines and workflows based on the most common command line interface tools for RNA-seq and Variant-seq analysis, respectively. As such, “RNASeq” and “VariantSeq” are coupled with a Linux server infrastructure (named GPRO Server-Side) that hosts all dependencies of each application (scripts, databases, and command line interface software). Implementation of the Server-Side requires a Linux operating system, PHP, SQL, Python, bash scripting, and third-party software. The GPRO Server-Side can be installed, via a Docker container, in the user’s PC under any operating system or on remote servers, as a cloud solution. “RNASeq” and “VariantSeq” are both available as desktop (RCP compilation) and web (RAP compilation) applications. Each application has two execution modes: a step-by-step mode enables each step of the workflow to be executed independently, and a pipeline mode allows all steps to be run sequentially. “RNASeq” and “VariantSeq” also feature an experimental, online support system called GENIE that consists of a virtual (chatbot) assistant and a pipeline jobs panel coupled with an expert system. The chatbot can troubleshoot issues with the usage of each tool, the pipeline jobs panel provides information about the status of each computational job executed in the GPRO Server-Side, while the expert system provides the user with a potential recommendation to identify or fix failed analyses. Our solution is a ready-to-use topic specific platform that combines the user-friendliness, robustness, and security of desktop software, with the efficiency of cloud/web applications to manage pipelines and workflows based on command line interface software.
... This tool is used in mobile or game development using the programming language Java and Python and provides developers with information throughout the development (Layman et al., 2008)). The reason for using IDE is that it is an effective tool technology in programming applications in support of IDE-based products that provide open application programming interfaces (desRivieres & Wiegand, 2004) that support integration development. Some use JDK or Java Development Kit as a support tool in Java. ...
... To do this correctly, programmers must be able to mentally simulate the mechanism in order to understand the program's control flow and how values change as the program is executed, which is extremely difficult when runtime behaviors of mechanisms are not visible and have limited feedback (Du Boulay et al., 1999;Soloway, 1986). Modern programming environments provide various accessory tools to support the programming task (desRivieres & Wiegand, 2004). Further along the continuum are tools like Simulink (Chaturvedi, 2017) that are used to create simulations using a higher-level language (e.g., block diagrams). ...
Article
Full-text available
Theorists and educators increasingly highlight the importance of computational thinking in STEM education. While various scaffolding strategies describe how to best support this skillset (i.e., paired programming, worked examples), less research has focused on the design and development of these digital tools. One way to support computational thinking and data science is through block coding and other ways that visualize the coding process. However, less is known about the learning experience design of these tools. Based on this gap, this work-in-progress study compared the learning experience design of novices and those with more advanced understanding of computational thinking. Results found differences emerge in the perceived dynamic interaction and scaffolding constructs of learning experience design. Implications for theory and practice are discussed.
... There are other simulators, such as CloudAnalyst [243], GroudSim [244], Eclipse [245], WorkflowSim [233], Matlab [95,96], and so on. Figure 15, shows the percentage of papers that have used these simulation tools for their proposed algorithms. ...
Article
Full-text available
Cloud computing is very popular because of its unique features such as scalability, elasticity, on-demand service, and security. A large number of tasks are performed simultaneously in a cloud system, and an effective task scheduler is needed to achieve better efficiency of the cloud system. Task scheduling algorithm should determine a sequence of execution of tasks to meet the requirements of the user in terms of Quality of Service (QoS) factors (e.g., execution time and cost). The key issue in recent task scheduling is energy efficiency since it reduces cost and satisfies the standard parameter in green computing. The most important aim of this paper is a comparative analysis of 67 scheduling methods in the cloud system to minimize energy consumption during task scheduling. This work allows the reader to choose the right scheduling algorithm that optimizes energy properly, given the existing problems and limitations. In addition, we have divided the algorithms into three categories: heuristic-based task scheduling, meta-heuristic-based task scheduling, and other task scheduling algorithms. The advantages and disadvantages of the proposed algorithms are also described, and finally, future research areas and further developments in this field are presented.
... Similar to individual tools, IDEs can also be language-specific. General-purpose IDEs, such as Eclipse [33] or Visual Studio [112], on the other hand, provide comprehensive means for software development across a wide variety of mainstream programming languages. ...
Thesis
Full-text available
Polyglot programming allows developers to use multiple programming languages within the same software project. While it is common to use more than one language in certain programming domains, developers also apply polyglot programming for other purposes such as to re-use software written in other languages. Although established approaches to polyglot programming come with significant limitations, for example, in terms of performance and tool support, developers still use them to be able to combine languages. Polyglot virtual machines (VMs) such as GraalVM provide a new level of polyglot programming, allowing languages to directly interact with each other. This reduces the amount of glue code needed to combine languages, results in better performance, and enables tools such as debuggers to work across languages. However, only a little research has focused on novel tools that are designed to support developers in building software with polyglot VMs. One reason is that tool-building is often an expensive activity, another one is that polyglot VMs are still a moving target as their use cases and requirements are not yet well understood. In this thesis, we present an approach that builds on existing self-sustaining programming systems such as Squeak/Smalltalk to enable exploratory programming, a practice for exploring and gathering software requirements, and re-use their extensive tool-building capabilities in the context of polyglot VMs. Based on TruffleSqueak, our implementation for the GraalVM, we further present five case studies that demonstrate how our approach helps tool developers to design and build tools for polyglot programming. We further show that TruffleSqueak can also be used by application developers to build and evolve polyglot applications at run-time and by language and runtime developers to understand the dynamic behavior of GraalVM languages and internals. Since our platform allows all these developers to apply polyglot programming, it can further help to better understand the advantages, use cases, requirements, and challenges of polyglot VMs. Moreover, we demonstrate that our approach can also be applied to other polyglot VMs and that insights gained through it are transferable to other programming systems. We conclude that our research on tools for polyglot programming is an important step toward making polyglot VMs more approachable for developers in practice. With good tool support, we believe polyglot VMs can make it much more common for developers to take advantage of multiple languages and their ecosystems when building software.
... The Eclipse BPMN modeller is a plug-in of the Eclipse Integrated Development Environment (IDE) [18]. One advantage of using Eclipse IDE is because it has an extensible plug-in system which enables the customization of the environment for different developments using several programming languages or standards [9,44]. ...
Preprint
Full-text available
Business organizations maintain business processes with multiple variants because of varied business requirements of which the support of these multiple business process variants constitutes a big challenge. BPPLE tool demonstration presents an extension of Eclipse BPMN modeller to cope with the modelling, and customization of business processes at build time and run time to compose the business process variants it may have. BPPLE tool is based on the Business Process Product Line Engineering (BPPLE) approach, our proposed approach for managing a family of business process variants. We have applied BPPLE in the scenarios such as the student registration in a higher education institution. Tests carried out showed that BPPLE tool enables the customization of business process models or instances to compose business process variant models or instances, respectively.