Technical Stack - IntegratedBreedingPlatform/Documentation GitHub Wiki

The Technical Stack, and the corresponding features that are expressed in these different technologies are shown below. The technologies used in the BMS are listed and explained in the order that they were adopted - to explain the technologies, but also to give a historical view of how the application has evolved.

Tech Stack by War - functionality correlated

Primary Platform

  • Spring Framework https://spring.io/ : The Spring Framework is a comprehensive framework that supplies enterprise server features around a backbone of dependency injection. The extra features Spring offers are numerous - we use a subset and will likely adopt more
    • Dependency Injection
    • Security
    • Mail
    • REST
    • Testing
    • Distributed Transaction Management - Atomikos
  • Hibernate http://hibernate.org/ : Hibernate is a long standing Object-Relational Mapping technology modelled on the Container Managed Beans on EJB 2.0, but lighter, more flexible and more powerful. Hibernate readily couples with the Spring Framework to provide data access management at an enterprise level.

UI

  • Vaadin 6 https://vaadin.com/home
  • Vaadin is a GWT derivative. Vaadin takes Java swing style Java and interprets it to JS HTML. The generated HTML is heavily nested and the layout managers can produce generated HTML that is difficult to read and control from the Java alone.
  • Javascript/JQuery https://jquery.com/
  • JQuery is a long established framework for making it easy for Javascript code to access and manipulate the DOM - the Object Oriented expression of the underlying structure of the HTML page.
  • Thymeleaf http://www.thymeleaf.org/
  • Thymeleaf is a Spring Framework technology for HTML templating. HTML templating is a server side rendering of HTML, that nests data from the DB into the HTML page before sending HTML to the browser. (In contrast, client side rendering occurs when JS and JSON is sent to the browser, and the browser assembles the page by running the Javascript in the browser to create the HTML
  • AngularJS https://angularjs.org/
  • AngularJS is a popular MVC framework for Javascript

//TODO add summaries for..