Technical Architecture

Technology and its need for web based application to Monitoring and manage energy sources and equipments. This application will be used to identify and track potential misalignments of energy needs and energy usage.
Technical Architecture

Technical Architecture

Intellect Apps understands that EXHIBITION CENTRE Technology and its need for web based application to Monitoring and manage energy sources and equipments. This application will be used to identify and track potential misalignments of energy needs and energy usage. The web application is expected to have rich user Interface features for usability and improved user experience.

Summary

Intellect Apps understands that EXHIBITION CENTRE Technology and its need for web based application to Monitoring and manage energy sources and equipments. This application will be used to identify and track potential misalignments of energy needs and energy usage. The web application is expected to have rich user Interface features for usability and improved user experience.

For this monitoring and management Web based system, we are proposing integrated hardware and software solution which compresses of Zigbee Convertors and PHP based software solution. Apart from these standard technologies/products, Intellect Apps proposes proven graph frameworks and multiple technology options for bringing in the rich user experience required for the application.

The web based system that we are proposing to implement will provide the key functionalities of the Energy monitoring and management application viz.

Equipment Analysis – Provides an enhanced search feature with type ahead text boxes, type ahead message boxes and wild card search criteria which enables user to view search and view the real time performance of the selected device. Reports – Provides user the option of viewing search results on an aggregated or list basis. Export to Excel Component – Provides exporting results data displayed in grid format into an excel sheet

Solution – in detail

Based on the details given in the meetings by EXHIBITION CENTRE, Intellect Apps proposes a web based solution with PHP and reporting frameworks based UI components, Apache Web Server and MySQL database Server customized to meet the EXHIBITION CENTRE application requirements. The solution and its key components are detailed below.

Technical Architecture

The proposed technical architecture of the Energy Monitoring and Management server side application with its key components is represented in the diagram below

Technical Architecture1

Interface to the system

This system will host the functionalities through a browser based UI. Enterprise PHP technologies will be utilized to build the user interface. Rich UI features like type ahead message boxes and type ahead text boxes required for energy Management application can be built using customized pCache module which is in combination with HTML and XML technologies. The selection of technology to implement rich UI features can be made in discussion with EXHIBITION CENTRE technical team, with an understanding of their preferences and maintenance plans.

UI & App Server Communication

The web server which sits in between the UI components and Application server receives the http requests from the browser and passes that on to the Apache Server which hosts the components of different layers like Presentation layer, Business layer and Persistence layer. The application server receives the request from the web server and passes it on to the appropriate component as directed by the controller of the MVC architecture.

Security

The application server hosts security components which invokes that EXHIBITION CENTRE accepted standard security framework which authenticates and authorizes the logged in user through security gateway.

Service Layer

Service layer contains the business logic for the bulk of the actual “functionality” provided by the application. This layer will be utilized by the MVC framework to interact with the database and read/write data from or to business objects. The business objects are the “domain” objects that are relevant in the application’s business space. The business logic layer will be implemented using POJOs and Various design patterns will be used as part of implementation like Façade, Singleton and Factory patterns. This layer also encompasses the log feature and business exception handling feature.

Persistence Layer

This layer will abstract the access to the database. The service layer components will rely on these objects to access data from the database. This layer resolves the “impedance mismatch” between the relational and the object worlds by converting the relational data into business objects relevant in the application domain. By clearly separating any DB interactions into their own application layer, there is minimal impact on the overall application, should the Database Server Layer ever change. This layer acts as the temporary data storage to store hypothetical scenarios in the application.

Data Transformation and Data Transceiver

This layer will abstract the access to the energy meters. The Data transformation and Data Transceiver layer will receive the data from the wireless devices which is a wireless access card connected to the USB drive of the application server; once the data is received the data is transformed into the application objects and is stored in the database.

Wireless Repeaters

Wireless repeaters bridge the distance gap between the transmitters from the energy meters to the wireless transceiver plugged to the application server. Repeaters enhance the signal strength and ensure reliability of the signals such that there is minimum or no loss of the data packets captured from the energy meters.

Wireless Transceiver on the energy meters

Wireless transceiver on the energy meters captures the signals from the RS485 compatible meters and transmits the signals through the wireless repeaters to the server wireless transceiver. In case the energy meters are non compatible to RS 485 then an adapter is used to transform the non RS 485 signals to the RS 485 compatible signals and is transmitted through the same wireless repeaters to the server wireless transceiver

Architecture Highlights

  • Rich UI Features
  • Asynchronous request support
  • High Reusability & Flexible to changes
  • Clear Distinct layer of Business Objects
  • Clear division of Responsibility
  • Usage of design principles like
    • Single Responsibility Principle
    • Commonality Analysis
    • Delegation
    • Composition
    • Association
  • Aggregation
  • Reliability
  • Security

Environment details

This section will summarize the software components that will form part of different environments

Target Platform

Server M/c Operating System Linux / Windows
Programming Language PHP
Database MySQL
Application Server Apache PHP
Web Server Apache Web server
Development Tools Eclipse
Rich UI Components Custom Reporting framework

Development Environment

The following table summarizes the typical development environment required.

Component Environment
Desktops Windows desktops
OS Windows
Developer IDE Eclipse
Application Server/App Server LAMP / WAMP
Database Server MySQL
Version Control Eclipse based

Phase 2

Technical Architecture2

Development Approach & Methodology

We recommend using a combination of UML and Unified process as the methodology to be followed in development of the commerce application.

  • Unified Modelling Language (UML) - Development notation (Involves Use Cases)
  • Unified Process - (Object Oriented Methodology)

The Rational Unified Process breaks the Software Development Lifecycle into four phases as illustrated below:

Technical Architecture3

Phases & Phase wise Deliverables

Intellect Apps proposes a customized SDLC for this project. The customized SDLC has a phased approach which can be described as follows:

Requirements Gathering or Inception phase of the project, includes the understanding the Energy Monitoring and Management project’s mission, vision, priorities and values in detail. Understanding the desired functionality in detail, its business values, clarify questions out of Functional Specifications supplied during RFP and gather data points for the given requirements.

Design or Elaboration phase of the project will create a tiered architecture which will be developed based on the functional and non-functional requirements that are identified in the Inception Phase. After completion of above activities the rest of the phases of the project can follow a standard RUP methodology for construction and transition phases.

The above implies that the Inception and Elaboration Phases are done as a modified waterfall approach, with an overlap between the two phases. The rest of the project will be done in an incremental and iterative fashion as suggested by RUP.

A schedule of major deliverables will be set up in agreement with EXHIBITION CENTRE, with checkpoints to ensure that no major obstacles will be present upon delivery. The following are the phases which have been identified of in line with above statements for the execution of this project.

  • Inception / Detail Requirements Gathering
  • Design Phase
  • Construction Phase
  • Transition Phase

DELIVERY MODEL: ONSITE-OFFSHORE

Intellect Apps has in-depth experience in servicing clients in multi-dimensional, multi-value projects. Intellect Apps is large enough to bring in tremendous resources to support projects of any size, but flexible enough to move quickly with proven exemplary client satisfaction. The Intellect Apps suite of delivery capabilities provide pure capacity and 5/8 support, which reduces cost and improves speed to market. Intellect Apps teams are committed to quality and are made up of highly skilled professionals encompassing a broad range of technology disciplines. Our teams are motivated, dedicated and are driven to achieve and excel, allowing Intellect Apps clients to experience continued state-of-the-art IT services for decades to come.

Roles & Responsibility

Steering Committee

It is recommended that a steering committee be setup for this engagement consisting of EXHIBITION CENTRE and Intellect Apps leadership. From Intellect Apps the steering committee would include the Client Partner who provides delivery oversight to the engagement, the relationship manager responsible for the account. The Steering Committee will meet once a Week on a scheduled basis, or on escalation to provide leadership and guidance to the project and to resolve any issues escalated to the committee by either the EXHIBITION CENTRE Project Manager/Management or by the Intellect Apps Project Manager. The Steering Committee will also monitor the status of the project on an ongoing basis from a cost, scope and delivery perspective and may also be called into approve or reject Change Control issues that are escalated from the project management level.

Intellect Apps Project Manager is responsible for the following activities

  • Maintain project communications with the EXHIBITION CENTRE Project Manager and executive leadership.
  • Establish documentation and procedural standards for project deliverables.
  • Prepare and maintain a detailed project plan for performance of this project that defines and controls the activities, tasks, responsibilities, milestones, estimate-to-complete, project budget, and estimated schedule.
  • Measure, evaluate, and report progress against the project plan with the EXHIBITION CENTRE Project Manager.
  • Conduct weekly project status meetings.
  • Prepare and submit status reports weekly to the EXHIBITION CENTRE Project Manager.
  • Support administration of the Change Control Process with the EXHIBITION CENTRE Project Manager.
  • Coordinate and manage the activities of the project personnel.
  • Escalate any major issues to Steering Committee.
  • Identify and mitigate project risks.

Intellect Apps Technical Architect is responsible for the following activities

  • Define architecture strategy architectural prototypes.
  • Define the development/testing environment specifications (hardware, software, network, development tools).
  • Define specifications for all interfaces.
  • Support all development and test activities.
  • Ensure design and coding standards are met.
  • Provide assistance in deployment of application.
  • Conduct Performance Testing at client environment

Intellect Apps Business Analyst

  • Analysis of the business requirements
  • Provide expertise on business functions
  • Provide guidance on preparing test cases for functional testing
  • Participate in the establishment of standards, determination of the system architecture, design and development of system support functions, and training of technical and business staff

Intellect Apps Developers

  • Analysis of the business requirements
  • Design of technical solutions
  • Develop and test the resulting application components
  • Develop code based on requirement and design.
  • Perform Unit Testing.
  • Update design documents

Intellect Apps UI Designer

  • Develop Design Strategy
    • Gather Data fro Project Sponsors, Marketing/product departments
    • Perform Expert Review of current applications
    • Deliver Design Strategy and Current State Assessment Report
    • User Analysis - Planning, Persona and Profiling
    • Data Gathering / User Interviews
  • Content Evaluation (Early Information Architecture). Evaluate and gather existing content / content check list
  • Develop Information Architecture and Design / Wireframes
  • Design Iterations and Usability Test Result Reporting
  • Develop Style Guides, Style Sheets, Templates
  • Documentation/Delivery of UI

Intellect Apps QA/Testing Team

  • Write system and integration test plans and test scripts
  • Conduct system and integration testing
  • Prepare load test plan
  • Takes care of Test procedures, overall sequence and timeframes for implementing test activities
  • Preparations needed to create the test environment and initiation activities.
  • Manage Testing Phase of projects
  • Create test scripts and test plans based on determined test cases
  • Perform system, regression, and acceptance level testing
  • Identify, Plan and Execute process improvement measures

Testing Methodology

Here we will describe out typical testing methodology that is proven and is being followed in our development projects

Testing Types and Activities

Component/Unit testing

Component testing searches for defects in, and verifies the functioning of, software (e.g. modules, programs, objects, classes, etc.) that are separately testable. It may be done in isolation from the rest of the system, depending on the context of the development life cycle and the system. Stubs, drivers and simulators may be used.

Component testing may include testing of functionality and specific non-functional characteristics, such as resource-behaviour (e.g. memory leaks) or robustness testing, as well as structural testing (e.g. branch coverage). Test cases are derived from work products such as a specification of the component, the software design or the data model.

Typically, component testing occurs with access to the code being tested and with the support of the development environment, such as a unit test framework or debugging tool, and, in practice, usually involves the programmer who wrote the code. Defects are typically fixed as soon as they are found, without formally recording incidents.

Integration testing

Integration testing tests interfaces between components, interactions to different parts of a system, such as the operating system, file system, hardware or interfaces between systems.

There may be more than one level of integration testing and it may be carried out on test objects of varying size. For example:

Component integration testing tests the interactions between software components and is done after component testing; System integration testing tests the interactions between different systems and may be done after system testing.

System testing

System testing is concerned with the behavior of a whole system/product as defined by the scope of a development project or program. In system testing, the test environment should correspond to the final target or production environment as much as possible in order to minimize the risk of environment-specific failures not being found in testing.

System testing may include tests based on risks and/or on requirements specifications, business processes, use cases, or other high level descriptions of system behavior, interactions with the operating system, and system resources. System testing investigates both functional and non-functional requirements of the system.

User Acceptance testing

Acceptance testing is often the responsibility of the customers or users of a system; other stakeholders may be involved as well. The goal in acceptance testing is to establish confidence in the system, parts of the system or specific non-functional characteristics of the system. Finding defects is not the main focus in acceptance testing. Acceptance testing may assess the system’s readiness for deployment and use, although it is not necessarily the final level of testing. For example, a large-scale system integration test may come after the acceptance test for a system.

Alpha and beta (or field) testing

Alpha testing is performed at the developing organization’s site.

Beta testing, or field testing, is performed by people at their own locations. Both are performed by potential customers, not the developers of the product.

Non-functional testing

  • Performance testing
  • Load testing
  • Stress testing,
  • Usability testing
  • Interoperability testing
  • Maintainability testing
  • Reliability testing
  • Portability testing

Regression testing

Regression testing is the repeated testing of an already tested program, after modification, to discover any defects introduced or uncovered as a result of the change(s). These defects may be either in the software being tested, or in another related or unrelated software component. It is performed when the software, or its environment, is changed. The extent of regression testing is based on the risk of not finding defects in software that was working previously.

The test artefacts delivered to the client are as follows: -

  • Test Plan
  • Test Strategy
  • Test Cases
  • Test Results
  • Test Scripts
  • Traceability Matrix

Dashboards

  • Defect Logs
  • Test Summary Report