DIGIPOLIS is the public non profit IT-organisation for the local authorities in the city of Antwerp (BE): the city administration, the social welfare organisation, the local police, the fire brigade, the municipal education organisation, the care organisation for elderly, the organisation for children day care, the mobility&parking organisation and the estate organisation, a.o. They are autonomous organisations, with their own mission, objectives and management.
Until recently, this strategy had little success: customers agreed in principle, but also emphasized their specialness, and invoked their autonomous status to demand applications tailored to their specific preferences. These specific preferences were often focused on the user interface (look&feel, user experience, branding,..), not on the basic functionality.
2 years ago DIGIPOLIS started ACPaaS (Antwerp City Platform as a Service). Rather than to strive to the reuse of complete applications (including the user interface layer), ACPaaS created a range of small reusable ‘engines’,
- each covering a precise and limited functionality
- approachable as a service via API’s
- without user interface (pure functionality)
The ACPaaS engines serve as building blocks to be used during application development for different customers. ACPaaS combines the best of two worlds: customers get tailor made applications, but under the hood ACPaaS-engines are reused as functional components.
Customers are applying the reuse-principle, but without constraints on their individuality. Applications are more flexible to maintain, cheaper to build, and with a much shorter time to market. More details in the chapter ‘How does your solution help public administrations?’.
Apart from the reuse of engines for application development, there are 3 other strategies supporting reuse of engines on a broader scale:
- Some engines are opened to ‘the outside world’: they can be used by app-builders outside Digipolis (companies, universities, citizens, …). For instance, engines have been used by several contenders of the latest ‘Apps for Antwerp’-contest.
- Creation of engines is subcontracted to start up companies, using a flexible and unbureaucratic procurement process. Agreements on property rights allow the startups to use the engine within projects for other customers.
- ACPaaS engines are preferably open source, or based upon open source, and free of paid license.
As the functionality of the engines is generic, there is a potential for use of the ACPaaS suite beyond the customer base of DIGIPOLIS. Interest has been shown by the Flemish organisation for IT-ers of local authorities (V-ICT-OR), and by the Flemish and Belgian governments. Digipolis is investigating opportunities and limitations concerning the use of ACPaaS by organisations beyond the current customer base.
ACPaaS embraces open standards like OAuth, rest API, Swagger, etc,..
Moreover, because the services of the platform are leveraged through technology agnostic Rest API services, the actual technology in which the engines are built is less important. All suppliers of engines can work with the tools with which they feel the most comfortable and can be the most productive.
.NET, Java, NodeJS, Linux, docker containers, MS Windows server, … are all used to develop ACPaaS-engines.
The architecture has three main layers.
The lower layer comprises the platform engines or the engines important for the functioning of the platform itself: API gateway & API store (for internal and external communication), event handling, logging, etc.
The second layer is the user management. It not only involves the accounts of the end users, but also their profile: the various roles someone can assume, the user’s preferences, etc.... In the user management layer, relevant end user information is stored and managed. Thereby security and privacy are major factors.
The top layer includes the business engines: the notification engine, the engine for dossier management, the engine for digital asset management, for multi-lingualism, for digital signature, etc.
From its architecture, as a toolbox of loosely coupled components, the concept of ACPaaS is extendable in a self-evident way. New engines can (and will) be added without constraints.
As for scalability: ACPaaS has already been applied for organisations of diverse size. In fact, the size or complexity of an organisation is no factor to the use of ACPaaS, since the engines represent functional blocks with limited and generic scope. ACPaaS engines can be used to build simple as well as complex applications.
In addition to these three layers, ACPaaS has on board several data related engines: a search engine (SOLR), GIS, central reference systems with authentic master data, a.o. ACPaaS is governed and managed by DIGIPOLIS.
The ACPaaS program has been formally approved by the Antwerp city council.
The direct involved of the group of Antwerp autonomous local authorities is limited: in principle, the actual ACPaaS-engines remain invisible for them, as they are ‘wrapped up’ by the applications which are made for them. ACPaaS is the ideal strategy to enforce the reuse of software, but without the resistance that it may invoke.
The solution is being used by the fire department zone Antwerp, the municipal school group, the city of Antwerp and Digipolis itself of course. Before the end of year Zorgbedrijf Antwerpen (a municipal care home and assisted living provider) and OCMW (an autonomous organisation linked to the city of Antwerp providing living wages, housing, health care and social assistance) are planned to join them.
Furthermore, through its "user profile engine" the solution is functioning as an Oauth identity provider for different websites in the city, allowing easy access to different sites through one city wide profile, these include: site of the annual mega-fair of Antwerp, Postbuzz, Gate15, Krumb, a site focussing on the best way to get around the city (slim naar Antwerpen) and many more.