Back to TopBack to Top
 

5.4.2 Software Engineering Best Practices

 

June 28, 2009

This is section 5.4.2 of a series of blog entries creating a Government IFMIS Technology Evaluation Guide. This includes information to assist in evaluating IFMIS options and the technology requirements for FreeBalance IFMIS implementations. These series will be combined with feedback to produce a comprehensive Technology Evaluation Guide to be published on our web site.

Software engineering practices advance as technology modernizes. Many commercial software applications in use today were engineered based on obsolete practices. A fundamental requirement for the FreeBalance Accountability Platform was to support the most modern best practices in software architecture including:

  1. Service-Oriented Architectures
  2. N-Tier Design
  3. Pure Web
  4. Cloud Computing support
  5. Flexible deployment
  6. Web 2.0
  7. Open Systems

Development using a Service Oriented Architecture

Service-Oriented Architecture (SOA) is an established best practice in the development of new software. The techniques used to elaborate these components are based on a proven SOA architecture modeling tool. This maximizes the useful life of the software. Most commercial applications that support integration standards do not follow the best practice of component-based SOA where functionality is provided in small components. The component approach enables assembly, replacement and integration of components to form a complete application set. This differs from the approach of connectors on a monolithic application.

FreeBalance determined the high-level business components needed for an Integrated Financial Management Information System for national and sub-national governments in developing and developed nations. The results have enabled FreeBalance to:

  1. Architect a ‘service-oriented architecture’ through service identification and definition into ‘business components’.
  2. Determine the entire scope of the current and future FreeBalance product portfolio based on domain requirements.
  3. Identify the relative value of any component through the use of a ‘component business map’, ‘business competencies’ and ‘heat map’. This allows FreeBalance to exceed typical COTS capabilities for components that are important for governments.
  4. Identify reusable components and support extensibility to enable FreeBalance to support emerging government needs faster.
  5.  Provide a technical approach that meets the high technical standards of the Governments of Canada the United States and many other countries that require a robust SOA approach.

N-Tier Design

Most government IT departments want software with 3-tier or n-tier architectures, which allows these applications to be scaled easier. Functionality can be extended to different devices. The FreeBalance Accountability Platform utilizes an n-tier architecture that includes the following:

  • Separation of presentation, business logic and data layers. These three layers support extensibility including migrating to different display devices. It assists in identifying software problems and upgrading to new technology.
  • Multiple business logic layers. The business logic layers of “entities”, “functions” and “applications” in the FreeBalance Accountability Platform can be viewed as multiple tiers.
  • Scalability. Each tier can be scaled separately enabling governments to add equipment to meet added capacity. Vertical and horizontal scaling is supported.

Pure Web

Web-based systems provide many organizational benefits including simplicity and reducing administration costs. Most business software available today for financial management is not purely web-based. These software applications often have client/server functionality at its core. The functionality is presented on the web via a browser and appears to be fully web-based, but is not. A significant portion of the “business layer” is in client/server. Many aspects of the ‘business layer” are often expressed in the “data layer” with proprietary database calls or stored procedures. These characteristics reduce the each of use and administrative costs. The FreeBalance Accountability Platform is “pure web” technology supporting:

  • Web Browsers. Displays information to users in web browsers using industry standards including HTML, W3C and CSS. Ease of use supported through Java Server Faces. Does not require special plug-ins to operate.
  • Web Server. Data sent from servers in standard web format using web servers.
  • Application Server. Java-based application server follows industry standards and contains business logic.
  • Databases. Supports different relational databases. Does not generate proprietary database instructions or use stored procedures.

Cloud Computing

Many organizations are acquiring software on-line without using their data centers. This is often called Software-as-a-Service (SaaS), on-demand, or cloud computing. Some governments are prepared to have financial applications hosted by third parties. Many governments wish to consolidate data centres by providing shared services. Shared services enable a government entity to provide software on demand to many government organizations. The FreeBalance Accountability Platform supports cloud computing deployment by supporting multiple instances to run different configurations on the same server or group of servers.

Flexible Government Deployment

Many governments implement financial software across all government tiers. The national political structure of countries ranges from highly centralized unitary governments to highly decentralized federal governments. Many countries are decentralized where government entities require some degree of financial autonomy. Some government organizations operate in areas without reliable access to computer networks. The integration of government functions among tiers of governments differs in scope. Most commercial financial software designed for the private sector assumes always-on and highly reliable computer networks. These systems also assume tight hierarchical control from the head office that may not apply in government.

The FreeBalance Accountability Platform has been designed for deployment options encountered in multi-tiered governments. It has also been designed to enable centralized and decentralized deployments and synchronization. The FreeBalance Accountability Platform supports the following deployment options:

  • Centralized Web-Based Deployment. Support the traditional method for the deployment of pure web-based solutions is through a centralized structure.
  • Decentralized and Developed Deployment. Support decentralized deployment of PFM functionality and multi-tiered synchronization for federal political systems or in situations where there is insufficient or non-existent network connectivity. This approach deploys simple government financial management functionality to sub-national governments with data synchronization (budget allocations from the central government and outturns from the sub-national government) when bandwidth is available or through the physical transfer of data.
  • Hybrid Centralized and Decentralized. Support a combined approach that can include regional centres.

Web 2.0

Web 2.0 technology provides rich user interfaces to the web. These interfaces can be as functional and rich as traditional client/server. The FreeBalance Accountability Platform supports rich Web 2.0 interfaces to improve usability through:

  • Rich User Interfaces. Support of Java Server Faces (JSF) and Asynchronous JavaScript and XML (AJAX).
  • Content Management Integration. Support of web content and document management including rich text editors and adaptable help.
  • Notation. Support of notation, narrative and threads to enhance collaboration.

Open Systems

Governments want technology choices. Some large software companies attempt to lock customers into proprietary technology. This enables software companies to charge more for support and additional software. The FreeBalance Accountability Platform is a standards-based open system providing choice to government through:

  • Java Enterprise Edition. Support the broadest range of open source and commercial operating systems. Java software operates on all major computer brands.
  • Web Services Support: Support standards to enable more effective integration among government systems.
  • Open Source Support: Support open source and commercial database management, application and web server technologies to give governments the broadest choices.
The following two tabs change content below.
Doug Hadden

Doug Hadden

Executive Vice President, Innovation at FreeBalance
Doug is responsible for identifying new global markets, new technologies and trends, and new and enhanced internal processes. Doug leads a cross-functional international team that is responsible for developing product prototypes and innovative go-to-market strategies.

Leave a Reply