OS.bee is based on extensible frameworks, tools and runtime environments for building, deploying and magaging software applications across the lifecycle of business software development. OS.bee allows software factory users to take advantage of built-in 30+ OS frameworks, covering practically all different aspects of engineering business applications: presentation, business logic, security, and data management tasks.
Eclipse ecosystem is building the base for the Open Standard business engineering environment (OS.bee). The Eclipse integrated development environment (IDE) is an open-source, robust, fully featured, commercial-quality industry platform for the development of highly integrated tools and applications. It contains a basic workspace and an extensible plug-in system for customizing the environment.
OS.bee aims to offer modular architecture, based on the Open Service Gateway initiative (OSGi) uniform component model. From the complete set of available OSGi specifications, we selected the ones relevant to the business domain. The chosen composites provide high-level capabilities (packages, services, extenders, etc.) composed by modules upon which business applications can be built.
OS.bee provides the developers with resources necessary to take advantage of OSGi's platform independence and dynamic code-loading capability. This helps to easily develop services for business applications that can be deployed on a large scale.
The Equinox project provides the OSGi-based runtime on which all of Eclipse is based, and allows developers to implement an application as a set of "bundles" using common services and infrastructure.
Technically, Equinox is an implementation of the OSGi core framework specification, a set of bundles that implement various optional OSGi services and other infrastructure for running OSGi-based systems within Eclipse IDE.
The EMF project is a modeling framework and code generation facility for building tools and other applications based on a structured data model. The core EMF framework includes a meta model (Ecore) for describing models and runtime support to produce Java classes for a model. EMF delivers the basis for model-driven software development with OS.bee.
Xtext delivers the basis for model-driven software development with OS.bee. It's an open-source framework for building structural domain-specific languages (DSL), developed as part of the Eclipse Modeling Framework (EMF) Project.
Xtext provides a powerful syntax-driven editor for editing grammars as well as compiler components including such things as the parser, the type-safe abstract syntax tree (AST), the serializer and code formatter, the scoping framework and the linking, compiler checks and static analysis aka validation and last but not least a code generator or interpreter. It comes with Xbase as a library of reusable methods and Xtend as a general-purpose language for the Java Virtual Machine which is built on top of this library.
Vaadin delivers a large collection of UI components for OS.bee. It gives a great experience to users in their desktop browsers as well as on mobile or any other device, increases productivity and the ergonomics of your applications.
Vaadin TouchKit is used to create the mobile UI supporting many special mobile browser features, such as geolocation, context-specific input fields, or offline mode.
Sirius is an Eclipse project which allows to easily create own graphical modeling workbench by leveraging the Eclipse Modeling technologies.
A modeling workbench created with Sirius is composed of a set of Eclipse editors (diagrams, tables and trees) which allow the users to create, edit and visualize EMF models.
The editors are defined by a model which defines the complete structure of the modeling workbench, its behavior and all the edition and navigation tools. This description of a Sirius modeling workbench is dynamically interpreted by a runtime within the Eclipse IDE.
jBPM® is a flexible Business Process Management (BPM) Suite. It makes the bridge between business analysts and developers. A business process allows you to model your business goals by describing the steps that need to be executed to achieve that goal and the order, using a flow chart. This greatly improves the visibility and agility of your business logic, results in higher-level and domain-specific representations that can be understood by business users and is easier to monitor.
The core of jBPM is a light-weight, extensible workflow engine written in pure Java that allows you to execute business processes using the latest BPMN 2.0 specification. Complex business logic can be modeled as a combination of business processes with business rules and complex event processing. In OS.bee, jBPM is used combined with the Drools project to support one unified environment that integrates these paradigms where you model your business logic as a combination of processes, rules and events.
Drools® is a business rule management system (BRMS) with a forward-chaining, inference-based (production) rules engine using an enhanced implementation of the Rete algorithm. The Business Logic Implementation Platform (BLIP) by Drools encodes the real-world business rules that determine how data can be created, displayed, stored, and changed. It describes rules and workflows that focus on improving corporate performance by managing and optimizing a company’s business processes.
Mondrian is an Open Source Business Analytics engine that enables organizations of any size to give business users access to their data for interactive analysis. It allows multidimensional analysis of large and complex amounts of data in real-time.
With Mondrian as Online Analytical Processing (OLAP) engine, OS.bee provides Business Intelligence features, enabling multidimensional queries against business data, using the powerful MDX query language.
Apache Shiro is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography and session management in OS.bee. It enables to quickly and easily secure any application – from the smallest mobile applets to the largest web and enterprise applications.
The Business-Intelligence-and-Reporting-Tools (BIRT) is an open source software project that provides reporting and business-intelligence capabilities for rich-client and Web applications. BIRT is a top-level software project within the Eclipse Foundation, an independent, not-for-profit consortium of software industry vendors and the open-source community. In OS.bee BIRT is used to address a wide range of reporting needs within a typical application, ranging from operational or enterprise reporting to multi-dimensional online analytical processing (OLAP).
The EclipseLink project delivers a comprehensive, open-source Java persistence solution addressing relational, XML and database Web services. The EclipseLink Java Persistence API (JPA) provides support for leading relational databases and Java containers.
Hibernate® is a high-performance Object/Relational persistence and query. Hibernate “sits” between traditional Java objects and database server to handle all the work in persisting those objects based on the appropriate O/R mechanisms and patterns. It not only takes care of the mapping from Java classes to database tables (and from Java data types to SQL data types), but also provides data query and retrieval facilities.
OS.bee utilizes Eclipse Gemini project for modular Java EE implementations. This project is a collection of implementations of some of the OSGi Enterprise specifications. Several sub-projects are used to provide unique functionality.
Gemini Naming Data Sources
Gemini Naming is a subproject of the Gemini project, which provides a suite of enterprise technology modules. The Gemini Naming project implements support for using the Java Naming and Directory Interface™ (JNDI) within an OSGi environment. It provides a common framework for publishing JNDI providers as OSGi services, and then allows JNDI clients to easily consume these providers.
The Gemini JPA project is about modular implementations of Java Persistence API technology. This project currently provides the integration with the EclipseLink JPA provider to support the OSGi JPA specification approach that clients can use to get JPA support in an OSGi framework.
Apache ActiveMQ™ is the most popular and powerful open source messaging and Integration Patterns server, fully implementing Java Message Service (JMS).
It enables distributed communication of application components that is loosely coupled, reliable, and asynchronous. ActiveMQ is fast, supports a variety of cross language clients and protocols, and comes with easy to use enterprise integration patterns and many advanced features.
Smooks is an extensible framework for processing structured data (XML and non XML, such as CSV, EDI, Java, etc). It supports binding of Java Object Models from any data source, message splitting & routing and huge message processing. With Smooks OS.bee provides data interchange functionality in order to extract, transform and load data (ETL).
UOMo adds units of measurement support for IT systems and services both to language and data. With UOMo developers do not need to understand the mathematics of units, how to convert between systems, and how to format and parse string representations of units. It’s all delivered automatically with OS.bee.
TapiJI represents a set of smart tools that integrate OS.bee with the goal to reduce effort of internationalization. This is accomplished by creating a productive environment for building multilingual applications. TapiJI tools, recently contributed to Eclipse Babel project, provide a rich set of smart and context-aware I18N aids in Eclipse, assisting developers in performing internationalization as part of their day-to-day work.
OS.bee comes with the embedded web server and servlet container – Eclipse Jetty. It has been designed to have a small memory footprint, which is an excellent basis for performance and scalability of applications created with OS.bee. Jetty is full-featured and standards-based, it offers support for HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations.
OS.bee development relies on Maven as a build automation tool. Maven provides a uniform build system, quality project information and guidelines for best practices development.
Eclipse Tycho project is a set of Maven plugins and extensions for building Eclipse plugins and OSGi bundles with Maven. Tycho introduce new packaging types and the corresponding lifecycle bindings that allow Maven to use OSGi and Eclipse metadata during a Maven build.
Jenkins provides continuous integration services for the development of OS.bee software factory. We use Jenkins to build and test OS.bee continuously, which enables developers to integrate changes to the project, and making it easier for users to obtain a fresh build.
As an important component of efficient development infrastructure OS.bee utilizes Nexus Repository OSS. It acts as dedicated proxy server for OS.bee Maven repositories and provides repositories as a deployment destination. Sonatype is the world leader in repository management, with more than 120,000 installs of Nexus worldwide.
OS.bee development team uses Git® for version control. It is a widely used distributed revision control system with an emphasis on speed, data integrity, and support for distributed, non-linear workflows.
Gerrit is a free, web-based team code collaboration tool closely integrated with Git. It allows OS.bee software factory development team to review each other's modifications on their source code using a web browser and approve or reject those changes. Gerrit is used to trigger a build after a change is checked in for review and forwards changes to a clean branch for creating a clean build.
The Opal Project delivers new widgets for the SWT API. In OS.bee image selector widget is implemented.
SonarQube is used in OS.bee for continuous inspection of code quality. It offers reports on duplicated code, coding standards, unit tests, code coverage, code complexity, potential bugs, comments and design and architecture.