<
Fork me on GitHub



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

Estatio is an estate management application being developed for and deployed at Eurocommercial Properties.

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:

estatio 1

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.

Supporting Open Source

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, http://incode.org

GESCONSULTOR GRC

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.

Key features

Enterprise Architecture

Allows a company to model its Business, IT Assets and their dependencies. The custom viewer in this case exposes a classical form-like interface:

fig 1 custom viewer

Alternatively, a custom drag-n-drop visual interface can be used:

fig 2 custom drag n drop interface

This is implemented with the Dojo javascript library, interfacing to Apache Isis-managed domain objects.

Risk Management

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:

fig 3 custom ui analyzing risk scenarios

Project Management

Allows users to visually manage their projects and tasks through a KanBan-like interface. Again, the viewer provides drag-n-drop capabilities:

fig 4 managing projects

Dashboard and Indicators

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.

Implementation details

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) Isis Addons (such as audit, security and the 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.

Summing up

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

CommApp

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:

screenshot 1

which shows how the app integrates a number of the (non-ASF) Isis Addons (excel, fullcalendar2 and gmap3). The app also uses the (non-ASF) wickedcharts module to generate various charts.

Why Apache Isis?

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

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.

TransportDemand

TransportPlanner uses (non-ASF) Isis addons' wickedcharts wicket extension to provide custom graphs

TPM CostPie

Another example of TransportPlanner’s use of (non-ASF) wickedcharts

Tpm ResourceUsage

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


Copyright © 2010~2015 The Apache Software Foundation, licensed under the Apache License, v2.0.
Apache, the Apache feather logo, Apache Isis, and the Apache Isis project logo are all trademarks of The Apache Software Foundation.