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. Much of the (non-ASF) Incode Platform 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:
This is implemented with the Dojo javascript library, interfacing to Apache Isis-managed domain objects.
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.
At the Domain level, we also extensively use the domain events functionality available in Apache Isis, along with many of the (non-ASF) Incode Platform (such as audit, security and excel modules).
The GRC platform currently has more than 5600 automated tests, about 2000 being BDD tests and 3600 integration tests, all leveraging Apache Isis' extensive testing capabilities.
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
The Contact App is a contact management application (like Estatio) developed for and deployed at Eurocommercial.
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.
and:
and:
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
CQNZ™ (pronounced "sequence") is a thematic social network that:
enables people like you and me to express our lives and experiences in the form of stories, streams or CQNZs, sharing the most exciting, thrilling and contemplative moments using photographs as the core element of interaction with others.
With regard to the underlying technology, CQNZ™ is a mobile application served by a web application using RESTful web services. The core, the CQNZ application server, is built on Apache Isis framework, which is hosted on a cloud service provider, configured for high availability, load balancing and fail-over with highly elastic scalability, prepared to scale from 1 server to tens, hundreds or even thousands of application servers running on Apache Isis. The client is a cross-platform mobile application now available on Apple Store and Google Play in the US, Mexico and Europe.
The main benefits we have got from leveraging the Apache Isis framework are the automated RESTful web services generation and automated user interface, which allowed us to cut development work by 4 to 6 times vs traditional frameworks. Also, we were able to focus on our domain model instead of UI or application layers. Multi-tenancy add-ons allowed us a high degree of control over access control, and security and monitoring add ons provided us with out-of-the-box auditing. The fact that Apache Isis also automates the persistence layer using JDO allow us to combine SQL with NoSQL, which is a critical next feature we will implement for a very high scalability distributed environment. A great feature is the Apache Isis x-ro-follow-links
feature, which allowed to cut the mobile client code by 70% in many cases, because it allows you to combine multiple RESTful calls into a single one, similar to what a SQL statement provides to a database, but at the web services level, improving http requests response time by two, three and up to four times.
We’d like to thank the Apache Isis support team who provides great support, which includes multiple tutorials, detailed documentation and screencasts, so most of the learning was very straightforward. The quick, detailed and clear response on support helped us a great deal when facing issues and while learning. This is also one of the many reasons we choose Apache Isis over Spring Framework, Oracle ADF, and other frameworks we also evaluated when making our decision.
For further information, please see our facebook page or visit cqnz.rocks. All images and trademarks property of their respective owners.
Case study provided by Cesar Lugo, Research and Development Director, Vortech IT.
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) Incode Platform's gmap3 wicket component to provide the map. |
|
TransportPlanner uses the (non-ASF) Incode Platform's wickedcharts wicket extension to provide custom graphs |
|
Another example of TransportPlanner’s use of (non-ASF) Incode Platform's wickedcharts component. |
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