Deciding whether to use a full stack framework such as Apache Isis means in large part determining to what extent the applications you need to develop align with the strengths and philosophy of the framework.
This page catalogues a few notable applications that are powered by Apache Isis so you can help make that determination:
If you have written an app in Apache Isis that you’d like to share, please mention it on the mailing list.
Estatio is an estate management application developed for and deployed at Eurocommercial.
Eurocommercial Properties is a Dutch-listed company that owns and operates over 50 shopping centres across Italy, France and Sweden, with income from property of approx. EUR150m per year. Previously the company had used one of the leading software packages for its invoicing; however this had proven on the one hand lacking in key features/functionality for some locales, while overlapping/duplicating the features/capabilities of the general ledger system. It had also been found to be extremely difficult to upgrade to new versions of the product (eg multiple regressions).
The decision was made to develop a bespoke application focused just on invoicing, providing the flexibility to support any of the requirements that might arise in the company’s operating coutries. It would interface but not overlap in functionality with the existing general ledger. It would also be able to expand its scope over time to support more of the company’s operations (eg to support purchase and disposal of shopping centres).
The application developed, and deployed initially in Italy, is called Estatio:
The development team for the original implementation consisted of just two developers (both of whom are Apache Isis committers); the first version of the application was developed over 2 years and 2 man-years effort. Since the initial release - as the scope of the application has grown - the team has expanded to take on a further part-time developer and also some interns.
Much of Apache Isis' recent development has been driven out by the requirements of this application, so you can see for yourself how many of the features in Isis are used in real life. Many of the (non-ASF) Isis Addons also originate from the requirements of Estatio.
Estatio itself is also open source, licensed under Apache Software License and available on github.
The Apache Isis committers are extremely grateful for Eurocommercial’s investment in the framework in order to make Estatio a reality. Our heart-felt thanks.
And to learn a little more about the Estatio domain model itself, take a look at both the source code (of course) and also at this documentation, developed to allow Eurocommercial’s accountants to understand and audit the application.
Case study provided by Jeroen van der Wal, Incode
GESCONSULTOR GRC (currently SandaS GRC) is an IT Governance, Risk and Compliance platform to help companies be compliant with IT-related ISO Standards, laws, regulations and best practices. Its scope includes:
ISO 27001 for Information Security Management Systems,
ISO 22301 for Business Continuity Management Systems,
ISO 20000 for IT Service Management Systems,
PCI-DSS regulation for Information Systems accessing electronic media payment Information,
COBIT standard from ISACA,
Critical Infrastructure Protection laws,
Data Privacy laws of many countries.
With thousands of customers of some of its modules, the application needed to support many business requirements derived from previous requisite sources and also from many Authoritative Sources loaded by users.
In 2011 a major rearchitecting was begun, and Apache Isis was selected as the best solution - among all Java frameworks and platforms evaluated - for supporting those business rules in a domain-focused way.
Following the principles of Domain-Driven Design for the domain layer, and with the infrastructure layer isolated by the Apache Isis framework, the new system started to grow in a highly structured and maintainable way. New modules were created really quickly, with functionality not available on competing solutions.
The application also leveraged the flexibility of the framework, replacing the provided Wicket viewer with a custom viewer. More on this below.
Allows a company to model its Business, IT Assets and their dependencies. The custom viewer in this case exposes a classical form-like interface:
Alternatively, a custom drag-n-drop visual interface can be used:
Allows a company to manage Risk Scenarios through a Risk Register, and execute a full ISO 31000 compliant Risk Assessment. A custom UI visualizes these risks as a heatmap:
Allows users to visually manage their projects and tasks through a KanBan-like interface. Again, the viewer provides drag-n-drop capabilities:
Being a "world-first", the GRC platform’s implementation of the Information Security measurement standard (ISO 27004) allows companies to access real-time information available in the GRC platform and External Systems, associate Decision Criteria to them and create beautiful Dashboards and Indicators.
All the business rules are on a Domain fully implemented in Apache Isis.
The GRC application require a more sophisticating and customizable viewer than is provided "out-of-the-box" by Apache Isis. We chose Wavemaker for implementing the viewer, also leveraging and integrating with various Wavemaker services.
Even so, while GRC does (as the figures above show) include custom views, the majority of the views exposed by GRC are automatically generated from the underlying domain entities; the GRC viewer is a proprietary version of Isis' own Wicket viewer. At the last count more than 400 domain entities, across 6 different Bounded Contexts, are surfaced in the UI in this this way.
Three years after this major refactoring, the GRC platform was acquired by Telefonica to be used as its top-level Security Governance platform; a breakthrough in the Managed Security Services sector.
The original development team currently work on Telefonica offices; the Product Management is co-directed by the GOVERTIS company that originally developed it, and Telefonica.
All this could not have been achieved as quickly nor as effectively without the Apache Isis platform.
Case study provided by Oscar Bou, GOVERTIS
This app originated out of our users' need to quickly look up different employees of Eurocommercial’s. At the same time the app managers would need to be able to easily edit or add to the existing contact information. We decided to create different Contact Groups consisting of multiple Contacts, each with their role within the group.
Because of the requirements of the app - quick and portable access - we decided to create a mobile app for it using the Ionic Framework. For the backend we decided to use Apache Isis since this allowed us to rapidly develop the required backend application and surface a REST API to which the mobile application could connect. We found that it worked together quite well, and with part of the team behind Estatio we were able to create an app that is clear to use and manage.
As our first Apache Isis app making use of mobile technologies it opens the doors for more to follow. Ionic has proven easy to learn and build apps with, and has a helpful community. Meanwhile we’ve used Apache Isis' support for JAXB view models and in particular the simplified REST representations introduced in v1.12.0. The result is code that is easy to follow and enhance.
We expect that the scope of Contact App will expand and new features added, these will (almost certainly) remain open source. Meanwhile we’re now set up nicely to build further mobile apps using this technology stack.
Case study provided by Rosco Kalis, for Incode
CommApp is an application whose domain is that of managing businesses themselves, specifically the commercial aspects of a business. You can get a feel for it from this screenshot:
When making our decision towards a software development framework, we evaluated some few like Spring Framework and Oracle ADF, including a newer semantic framework. At that point we faced we needed to choose between being locked in to a framework using many of their proprietary classes, methods and other features, or having to write a lot of code even to get things as CURD operations, and we would be facing significant differences in the code if using relational databases or the newer so called NonSQL databases.
So we added Apache Isis to our evaluation, and we found it to be open in many aspects, including an open architecture and auto-generated UI viewer, as well as equally open and auto-generated REST/SOA web services, seamlessly support both SQL and NoSQL through an open and standard persistence manager, as well as open security (Apache Shiro, LDAP) and features such as multi-tenancy.
Our main focus in the code is given to the business domain, with business logic treated as a first class citizen. And because our code simply uses non-proprietary Java, we’ve been able to extend it the normal way. Very little code in our application so far can be considered to be framework-specific, the few that is only because we chose to use some of the (non-ASF) Isis Addons that provide our applications with high value, and which are open source also.
When creating our prototype and then subsequent application, we’ve found quite amazing support: most of the time the Isis team provides same day high quality support, with samples and references, which has helped us find the solution to our needs quickly. The framework is growing rapidly as well, keeping its openness and business domain driven focus. The tutorials and documentation is quite comprehensive and very clear. We have found all this hard to find in many other open source frameworks.
Case study provided by Cesar Lugo, R&D Director
TransportPlanner is a demo done by Marintek AS to show a possible 'solution' to a multimodal transport planning problem. It’s a small part of a bigger European funded project.
The domain is that:
some cargo should be transported from a pickup destination to a delivery destination.
A 'client' creates a transport demand
A 'logistics service provider' plans a route from pickup to delivery using a shortest path algorithm.
The route’s waypoints (where cargo is loaded from one providere to another) may be shown on a map.
The costs associated with each leg may be shown as a pie chart
The resource usage, i.e. costs and time for each leg, may be shown as a bar chart.
An event may be generated (e.g. some customs papers are missing, therefore transport execution stops and a replan is necessary).
TransportPlanner allows schedules of journeys to be planned. It uses the (non-ASF) Isis addons' gmap3 wicket extension to provide the map.
TransportPlanner uses (non-ASF) Isis addons' wickedcharts wicket extension to provide custom graphs
Another example of TransportPlanner’s use of (non-ASF) wickedcharts
The author, Christian Steinebach, wrote this demo part-time over the course of a few weeks. He commented:
I did not have too much time to get 'something done' … But although I had a hard time in the beginning with Isis I don’t think I would have made it in time using 'conventional' development with database, GUI etc. using Apache Isis.
Because this is a demo, there is a lot of room for improvement, but it does show how a relatively simple domain model can be brought 'alive'. The source code is available here (note: it was written against a snapshot version of Apache Isis).
Case study provided by Christian Steinebach, Marintech