During the last months, my development team is getting the requirement to provide means to sells product groups with a special real-time calculation of the price, the offer of additional services or definition of the components of the article in each order. Because these features are expensive to develop on our legacy e-shop, Hybris can't offer these features out-of-the-box, developers with Hybris experience are scarce and it takes around seven months for a Java developer to fully understand the limitations of Hybris' persistence layer, I am looking for alternatives to implement these requirements using Java frameworks and tools which are common in the IT market.
While we are using Spring Boot, Tymeleaf and JQuery for the frontend, I am looking now for a framework for the administration of the system (backend) which offers the same features as HMC with the same or less development effort for Java developers
Comparison between Hybris' HMC and Cockpit framework and Rapid Application Development Frameworks
This is still work in progress but I invested 10,5 hours during my holidays to analyse Apache ISIS and these are my first conclusions. I also started learning Grails but I still don't have any conclusions because I had problems with the plug-ins showing date fields.
The expected use of the frameworks is the development of an administration backend with
- Create, Read, Update and Delete (CRUD) editors including the GUI
- User rights, group and users
- Auditing of every change in the configuration
- Integration with our LDAP authentication servers or Single Sign On integration
- The data will be accessed from a frontend Spring Boot application
|Criteria||Maximum number of points (Importance)||Hybris HMC or cockpits||Apache ISIS|
|Can a Java developer without experience create a CRUD of 3 objects with relations in less than 10 hours?||5||5||5|
|Uses Java as the programming language?||5||5||5|
|Are no developers with an expensive hourly rate required?||5||0||5|
|Has out-of-the-box auditing of every change in the objects?||5||5||5|
|Provides out-of-the-box user rights, definition of roles and users?||5||5||5|
|Can be used for Domain Driven Design?||5||5||5|
|Can it easily be integrated with LDAP authentication servers or Single Sign On serves like KeyCloak?||5||5||5|
|Has an extensive documentation?||5||2, the documentation was improved in the last years||5|
|Is it continuously improved and supports the latest Java features?||5||3||5, supports Java's LocalDate out-of-the-box in the fields|
|Uses the framework internally known and proven technologies? This makes the framework transparent and developers can do troubleshooting||5||3, it uses Spring Core and MVC and JSP but the persistence layer is opaque||5, all used technologies are mature and open|
|Was it already used in production by big companies?||5||5||5, source|
|Has the internal code of the framework a good structure? This helps the developer understand the framework||5||0||5|
|Is the format of the data stored in the database open and accessible by other applications?*||5||0, Hybris uses a propietary format||5, Hibernate is used|
|Is possible to localize the text shown on the GUI in different languages?||5||5||5|
|Provides a mechanism to run tasks in the background regularly or only once?||5||5||5|
|Provides a messaging mechanisms for the integration of web services (Event Bus)?||2||1, with Spring Integration||2|
|Provides mechanisms to update the structure of the database and migrate old tables?||2||2, essential and project data and Areco deployment manager||2, patch system|
|Is it possible to extend the components of the GUI?||2||2||2|
|Has our development team experience with the frontend technology used on the GUI?||5||3, partial experience with the cockpit framework but not with ZK||0, No experience with Apache Wicket|
|Can you change the frontend technology used on the GUI?||2||0||2|
|Has the GUI a responsive design?||1||0||1|
|Provides out-of-the-box access to the objects using REST?||3||3, with platform web services||3|
|Is it possible to change the persistence technology?||1||0||1|
|Can you store the data in NoSQL databases?||1||0||1|
* The integration of applications using the same database generates a tight coupling and a change on one application may impact on another one. But for small systems developed by the same team in the same domain, it is a good integration strategy and allows frontend systems like shops to directly access the data on the database.
I don't include the cost of the commercial licenses in the comparison because all of the big companies I worked for, already have an unlimited Hybris SAP license and the use of Hybris in new systems don't generate any additional costs.
i don't include the cost of the vendor lock-in because these backend systems are small and I expect low migration costs, when these systems are replaced by new ones.
This article only addresses the suitability of the Hybris SAP E-Commerce Suite for a project with the given requirements. If Hybris SAP is suitable for your own project depends on many factors like:
- Goals of the project
- Constraints like
- Experience of the development team
- Integration with existent systems like ERPs, Content Management Systemen (CMS), Produkt Information Systems (PIM)
After identifying the main goals, requirements and constraints, you should seek technical advise to determine the suitability of the Hybris SAP E-Commerce Suite for your project.
Based on Hybris 6.6