Building Next-Generation Government Applications Using Open Source Technologies
Governments the world over are trying to provide citizen-centric services. Our own country has taken the ‘Smart City’ initiative. The idea is to provide better governance, which can be achieved by the digitisation of services. Open source software can bring such services to the citizen accurately, speedily, securely and in a user friendly manner.
The success of digital governance depends on the ability to enable multiple government agencies and departments to communicate with each other. All the work that has been done earlier should be interoperable with all the new initiatives to be implemented in the near future. In addition, the focus is on enabling the best citizen experience, making available the relevant information and being responsive by leveraging the latest technology trends (like analytics). This is the key to digital governance, as it ensures smooth communication between departments to make the citizen the centre of all service delivery, bringing about better governance and higher accountability.
The adoption of open source software (OSS) in the government sector has increased worldwide and has led to innovations in the implementation of ICT solutions across the public and private domains. The use of OSS in the key domains of ICT implementation (like application development, Internet connectivity, infrastructure, data centres and the mobile) has helped in the widespread adoption of open source technologies by various customers across the world.
In India, the Centre has notified the guidelines for adopting open source software by government organisations. These organisations are encouraged to adopt OSS in all e-governance systems rather than closed source software (CSS). In addition, the Indian government has made OSS mandatory for all new e-governance applications as well as new versions of legacy and existing systems.
Many governments across the globe like Australia, the states of British Columbia and Quebec in Canada, France, India, Italy, the United Kingdom and the United States have published OSS policies that cover information and communications technology procurement processes, the adoption of OSS solutions, etc.
Fortune 500 businesses are using OSS to build enterprise applications. According to Gartner and Forrester, open source has acquired a greater share of the global enterprise software market while proprietary software adoption is reducing significantly.
The cloud, Big Data, content management systems, responsive Web design, mobility, databases, operating systems, infrastructure components, enterprise integration, development tools and analytics are the major OSS technologies being adopted successfully in the e-governance space.
In this context, let us explore the high-level architecture and related infrastructure of a comprehensive software platform
that can deploy an open source digital government framework
(OSDGF). We will also explore appropriate ways to map open source technologies to the various architecture layers.
Strategic concerns of OSS in e-governance
Figure 1 depicts the drivers, services from stakeholders and the architecture in the context of the strategic considerations of OSS. The drivers are flexibility, cost savings, security, freedom to reuse, etc, which contribute to a government’s economic growth.
Flexibility: Government agencies can tailor open source products, adding to or modifying the code to fit their specific needs. These modifications can include security patching for critical vulnerabilities, which can be completed in hours.
Savings: Open source software is usually available at a much lower price point than commercial products. And valuable support options are available for popular packages.
Freedom to use and reuse: Open source licences do not limit or restrict who can use the software, the type of user, or the areas of business in which the software is used.
Security: It is very critical to implement proper security features in e-governance initiatives to eliminate and minimise the fraud in various schemes and policies that will be implemented across the country. Open source software can be used to implement security quickly and more transparently.
Innovation: The cloud, Big Data, cyber security and
API management are seeing a much faster cycle of churn with respect to technology choices for the next generation of government initiatives. And it is open source that is providing most of the required capabilities, much faster and cheaper then commercial vendors.
High quality: Support from a good developer community assures the government of high quality software.
Skills development: Using OSS allows the government to unlock a wider base of prospective IT talent in the open source space.
Classification of the stakeholders
Listed below are the key stakeholders in the open source domain:
1. Collaborators (different communities of the government)
2. Consumers and contributors (citizens, government
servants and social media 3. Users and contributors (developers, citizens, businesses, and industry)
4. Users and maintainers (operations)
Opportunities for the use of OSS lie in Software as a Service, Platform as a Service and Infrastructure as a Service.
The characteristics of OSS that make it ideal for e-governance
With OSS, governments can avoid vendor lock-in and ensure seamless integration of disparate applications, products and systems that have been developed and deployed by different organisations and vendors.
The source code is available to the community, the adapters and the end user to study and modify the software and to redistribute copies of either the original or the modified versions. In the case of OSS, the source code is free from any royalty.
There is no vendor monopoly when using free and open standards. With data transferability and open data formats, there are greater opportunities to share data across interoperable platforms. The adoption of OSS enhances interoperability with other e-governance solutions because of the reuse of recommended software stacks, libraries and components.
Figure 2 depicts the high-level characteristics of OSS.
The philosophy behind adopting OSS for digital governance
OSS based e-governance architecture should create an environment that provides the following:
A self-healing application architecture that ensures an automated response in the event of a failure or a traffic surge. This is due to the business process manager, which automates actions with minimal or no manual intervention. A microservices based horizontal scaling approach, which creates a larger application functionality than a monolithic application block. This ensures that only parts of the application to be scaled can get additional capacity for growth.
Standardised platforms to rationalise skills and technologies. This ensures that there is uniformity in approach and readily available skillsets without
any duplication. Figure 3 depicts the high-level architecture for e-governance.
The adoption of new technology trends like cloud computing, IoT and mobility should also be considered while developing open source based government applications.
Open source software governments can benefit from
The following sections briefly describe the new technologies governments can adopt, and the open source software and products they can use to do that.
The cloud: Cloud based open source technology enables governments to accelerate innovation, creating and deploying applications with speed and consistency. For example, OpenStack is a set of tools that allows users to create, automate and manage both public and private clouds at minimal expense. With OpenStack, governments can set up their own cloud to hold data they do not want in a public cloud.
Application platforms handle complex connectivity issues behind the scenes (including automatic documentation), letting users concentrate on creating the right workflows and business logic, but also making it easier and more cost-effective for organisations to manage frequent change. It is imperative to make sure that the integration solution is optimised to connect the new applications in the cloud environments with older applications, systems, services and databases, no matter where they are located.
Open application programming interfaces (APIs):
The application architecture should use open APIs to enable quick and transparent integration with other e-governance applications and systems implemented by various government organisations, thereby providing access to data and services, as well as promoting citizen/developer participation for the benefit of the community.
API management includes the full API management life cycle, i.e., integration with diverse applications and appliances to support the management, monitoring and tracking of all your API activities. It also helps to do the following:
Enable mobile strategies
Develop a customer or partner ecosystem
Multiply the reach of the content, data and technology Create new business models
Foster internal innovation
Large complex systems in e-governance follow an APIcentric approach, exposing services for integration with multiple third party solutions. The APIs are RESTful, XML based, and stateless services. All APIs are accessible via the HTTPS protocol.
Service discoverability: This is the process of the client application querying the central registry to learn the location of services. Service discoverability ensures that metadata attached to a service describes the overall purpose of the service and its functionality, which makes the services easily discoverable. A repository of re-usable business logic components needs to be maintained and made available as part of service discoverability.
Consul, Apache Zookeeper, Etcd, Netflix Eureka, etc, are the widely used open source service discovery tools.
Platform and database agnostic: Applications should be forward and backward compatible and be deployable on any technology platform. They should be able to communicate with any data store.
For example, Jenkins is a continuous delivery tool that builds and tests software after every change. Jenkins can deploy new code to production, which helps in no down time in making the upgraded product available to constituents.
PostGreSQL, MySQL, MongoDB and CouchBase are the widely used open source databases.
Microservices: The design of the business and information services layer of the e-governance application is developed using the microservices architecture principles and cross-channel capabilities. Microservices architecture (MSA) allows the creation of services that are loosely coupled and have a different programming language base. They are scalable, have a quicker delivery time, etc. New e-governance applications need to be developed as reusable microservices based on open standards and which expose the standard recommended integration interfaces.
This will ensure independent scaling of individual services within an application with better resource utilisation.
Application life cycle automation tools like Ansible help in tracking, deploying and measuring the changes/ enhancements in microservices.
Mozilla, Jboss, AngularJS and Bootstrap are the frequently used open source development tools used today. Other popular open source tools are Joomla, Jetty, OpenSSO, SOLR, Chef, Spring and WordPress.
Deployment architecture: The deployment platform chosen should be one that reduces the overall deployment complexity and supports open source based architectures.
The suggestion is to consider using the dynamic component system for Java (e.g., OSGi). Component architectures enable a development model, whereby applications are dynamically composed of many different reusable components. These components hide their internals from other components and communicate through well-defined services.
Components can be installed, started, stopped, updated and uninstalled without bringing down the whole system. This can significantly reduce deployment times.
Integration: The value of a strong integration system lies in its ability to connect to a wide range of backend systems. It provides mediation, transformation, protocols and routing capabilities, apart from acting as a gateway to integrate with core back-end systems. It also provides aggregation and broker communications. Therefore, it is important to consider an integration solutions vendor that has the ability to connect with other databases, frameworks, applications and endpoints in a predictable manner.
It is important to go with open standards and open interfaces while choosing the integration backend as it should be free from vendor specific modifications and proprietary hooks. Mule, JBoSS and WS02 are the famous integration products that can be used to establish the connected government.
Security: Effective security is the need of the hour. Security ensures that all the components of the cloud infrastructure are guarded against fast evolving threats. Applications and endpoints need to be protected and users granted access to applications as per the eligibility configured as part of the RBAC or role based access control.
Oauth2 and OpenID are a few of the open source security tools.
Customer experience: The customer experience is the product of an interaction between an organisation and a customer over the duration of their relationship. A good customer experience means that the individual’s experience during all points of contact matches the individual’s expectations. While building applications, it should be ensured that customer expectations are met through all interactions.
Analytics: A connected government may apply analytics to improve citizen services. Government decision management that is based on predictive analytics helps its services to be data driven.
Scikit-learn and Tensorflow are two popular open source machine learning tools.
SaaS: SaaS is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. This model provides services without any requirement for customisation. It follows the twelve factors methodology to be portable and standardised. It is readily available and quick to take onboard.
Salesforce, AWS, etc, are popular open source SaaS. PaaS: This is a category of cloud computing services that provides a platform allowing customers to develop, run and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an application. This is the core platform on which cloud native applications and supporting systems are based.
Cloud Foundry, Cloudify and OpenShift are a few open source platforms.
By adopting OSS, governments become digital and more connected than ever before. They become FAST (flat, agile, streamlined and tech-savvy). OSS helps to drive public sector transformation and realise connected governance resulting in an enhanced quality of life.
OSS based next generation technologies enable the government to move from transaction-based services to relationship-based services. This also paves the way for new digital government services to be rapidly built, changed, enhanced and deployed, so that new ideas can be tried and refitted if needed. It also makes government data available openly, so that external parties can build services with adequate visibility of the government’s functioning.
Figure 2: The characteristics of OSS
Figure 1: Examples of the strategic considerations of OSS
Figure 3: Overview of the digital architecture for e-governance
Figure 4: OSS adoption for e-governance