Mobility Solutions for Field Data Capture in Mining / Manufacturing Industries:
During the several Mining/Manufacturing operations, typically data is captured on a piece of paper, which is then propagated to the ledgers or system later. Tracking of valuable goods transportation/ vehicle itself done through phone calls or messaging. This is inherently because a Desktop cannot be made available at the places where the data is captured. No GPS system is in place to enable runtime tracking of the vehicles. With the emergence of new portable mobile devices, it is prudent that this practice is replaced with a more efficient way where the redundancies can be eliminated and the accuracy of data capture and tracking can be improved.
Major challenges in the Field Data capture and reporting are
- Data Capture and Synchronization back to system for records.
- Preventive maintenance planning, schedule and notifications.
- Vehicle monitoring/Tracking.
To address the challenges in mining/manufacturing industries to capture data on the field and to track vehicles for various purposes VIT has developed VITMobile™ framework. Framework would become one point solution and would help organization in following solutions
- VITMobile™ consists of out-of-the box Mobile solutions that can be integrated with the legacy software system to increase the efficiency of the mobile workers and reduce the redundancies in Field Data Capture and Reporting. Helps in capture of data at the point of occurrence.
- GPS based Fleet Management product can be used to monitor/track the Vehicles and alerts.
- Preventive maintenance plan can be scheduled and assigned to respective service department and Check list for maintenance is recorded in a smart & efficient way using mobile devices. Alerts are sent prior to maintenance and maintenance details and outcomes can be recorded and sync back to the system as required.
- Record Vehicle check-in and check-out information. Can manage internal and external vehicle list. Helps in capturing details of driver, goods carrying, and more details as per requirements.
Business Process Management for Automobile Industry: Case Studies
A customer of VIT who is Automobile major having deployed a legacy SharePoint application was looking to integrate an external BPM solution to enhance the functionality of the deployed application. This enhancement had to respect the existing user experience and integrate seamlessly by continuing to honor the existing SharePoint workflow functionality (e.g., Initiating on Demand and Canceling).
Some of the major constraints placed on this solution were as follows:
- The custom workflow in SharePoint should integrate with the external BPMS workflow in a seamless way.
- The solution has to respect existing user experience.
- Security Trimming: Needs to regard user access rights to either see or initiate actions/task.
- Configuration information can be stored in SharePoint, but some specific fields need to be encrypted.
- Proposed Solution must adhere to Microsoft SharePoint Customization Policy - Gold Service Level.
To ensure a seamless integration of the external BPMS product into SharePoint infrastructure, the following design decisions/goals were charted out by VIT:
- Solution was developed using SharePoint web services and designed to not limit the solution using the SharePoint object model.
- Designed a custom SharePoint workflow that can be used against any SharePoint object.
- Built a custom workflow activity to enable integration into the external workflow solution.
- The user interface associated with the custom workflow had to be based on a SharePoint master page so as to retain the existing user experience
- A two-way integration between the external workflow solution and the SharePoint workflow was built to enable cancellation, initiation and other common operations using SharePoint enabled web services.
In order to provide users with an ability to work with the external BPMS solution from within SharePoint, we designed a Task Management Web Part with following Design considerations:
- A dashboard like user experience for End Users to perform actions on the external BPMS workflow.
- Provided support paging, Sorting and other grid operations.
- Provided security trimming to ensure that the Web Part shows only actions to the appropriate user
- Created a reusable Web Part in an ASP.NET application.
SharePoint custom list was created to stores the configuration information for the following design considerations:
- Encryption/Decryption of the protected information (e.g., passwords) must be seamless and shouldn't involve any extra administrative effort.
- System must respect the existing user experience.
Custom SharePoint Workflow Solution
- Implemented a Windows Workflow Foundation activity to take care of integration with external BPMS solution
- Implemented a status page to provide an in-detail view of the BPMS process from within the SharePoint framework.
Task Management Web Part
- Implemented custom ASP.NET pages for the common actions like Approve, Reject, Reassign, etc.
- Deployed the pages to the layouts folder to enable integration with Web Part
- Used AJAX to ensure that the actions are decided dynamically based on logged in user.
VIT used the SharePoint standard Solution/Feature deployment architecture to package the various components as a solution. Developed a wizard based installation utility to undertake large scale deployment across multiple web applications. The deployment methodology was formulated considering more complex environments which may involve multi-server farms and NLB based SharePoint farm topologies. Additionally, options were provided to allow manual installation of solution through easy steps.
- External strong BPM within SharePoint gives more robust environment for business process requirements
- Handy deployment tools
- Utilization of SharePoint Service models extensively to ensure that the infrastructure costs are kept down
- User experience will not change even after adapting external BPM
Return on Investments
- No additional cost in managing two different solutions for content, documents and BPM
- Increases productivity by providing user friendly environment
- Enables continuous process improvement capability and integration capabilities with other LOB systems.
GPS based solution for Municipal Solid Waste Management: Case Studies
An Environment major, based in India required an end-to-end system for managing the solid waste management operations. This includes managing the flow of solid waste from the community bins to the central processing center/ composting plant, GPS based Fleet Management system for the garbage collection trucks, management of the personnel and the assets involved in the operations etc.
Some of the major constraints placed on this solution were as follows:
- Locating Waste to be collected.
- Communicating to the truck driver who is already on duty.
- Reporting details of waste collected and disposed.
The solution was built using VIT's GPS Based Fleet Management and VITMobile framework. There are two different Mobile applications one for Ward Supervisor and another for driver of the garbage collection truck were built using the VITMobile framework. The Truck Driver uses the mobile application to receive the list of Community Bins from where the solid waste needs to be picked up and also update the status of the pickup back to the server. The mobile application periodically transmits the GPS coordinates of the truck to the server which tracks the locations of all the trucks. The Ward Supervisor uses the mobile application to track and report the status of the community bins in his ward to the server and also report the attendance of the Community Workers. VIT GPS Application has been configured to trigger a workflow when a Community Bin is reported full, which creates a task for the Operator at the central processing station to process the pickup of that Community Bin. The Operator uses the GPS Web application to track a garbage collection truck near to the Community Bin and assign the pickup job to it. This is immediately notified to the corresponding Truck Driver's mobile application, so that the Truck Driver can act on it. Similarly another workflow is triggered, when the Ward Supervisor reports a wear and tear of the Community Bin, which creates the tasks for the maintenance personnel for the maintenance of the Community Bin.
VIT provided hand held devices along with the application deployed on the mobile devices. Mobile application can also be deployed on different hand held devices that has pre-requisites for the application. Web application will be host on server system. Both server and mobile devices required to have internet connectivity to be communicated with each other.
Android based Mobile-server application for integrated chronic disease management system: Case Studies
A Health-care provider required an easy to use disease management system for managing patients at risk of congestive heart failures. The Doctors can remotely monitor the vital statistics of these patients continuously and suggest remedies / precautions or even advise them to visit him, whenever they notice any anomaly and wherever the patient is located.
The solution consists of a web application and an Android based mobile application. The Doctor(s) can use the web application to configure the vital statistics that are required to be sent by each patient. The patient then uses the mobile application to record these vital statistics periodically and send to the server. The Doctor can monitor the vital statistics of the patient using the web application and send the health instructions to the patient when necessary. The mobile application periodically pulls these instructions from the server and alerts the patient accordingly. The mobile application implements a SOAP based web service client for accessing the web application. The UI of the mobile application is designed with high usability, so that it can be operated easily by the patients who are mostly Senior citizens and might have problems seeing things clearly and operating.
LAMP (Linux, Apache, MySQL and PHP) for server, Android SDK for mobile application, Eclipse
Firmware Upload Utility & Diagnostic tool for Removable eSATA Hard Disk Drives: Case Studies
The world's leading provider of removable data storage products designed to help customers create, protect and retrieve valuable digital assets. They have more than 50 years of data storage leadership, beginning with the development of the world's first computer tape.
The eSATA Removable Hard Disk Storage System replaces the older AT Attachment standard offering several advantages over the older interface. eSATA devices comes with reduced cable size and cost (seven conductors instead of 40), native hot swapping, faster data transfer through higher signaling rates, and more efficient transfer through an (optional) I/O queuing protocol. The system is designed to help small offices and home offices meet the escalating challenges of data protection by providing fast backup, accurate restores and full disaster recovery with minimal effort. The system is ideal for a wide range of data storage environments, including high-security storage applications, replacing tape for entry-level backup, or anywhere large volumes of data need to be stored quickly and securely and accessed rapidly. The new system utilizes a rugged, reliable disk cartridge that backs up like a tape drive and features the performance advantages of a disk-to-disk system. The docking station runs the firmware which controls the operation of the entire system. The firmware will be periodically updated by our client in order to fix the reported issues and/or enhancing the capabilities or functionalities. The updated firmware could be uploaded to the docking station using the Firmware Upload Utility.
Challenges & Requirements
The eSATA RHDD accepts cartridges built with a SATA 2.5" or SSD Hard Disk Drives. The product has two primary components, docking station (dock) and cartridge (enclosure over a SATA HDD). The dock has an external SATA connector enabling connection to a PC SATA/ESATE port. The dock has a controller/bridge chip that interfaces with the PC SATA host controller as well as the SATA HDD cartridge. The microcontroller sitting inside this RHDD needs a firmware which drives the RHDD. This firmware sits on the flash available as part of this microcontroller. The firmware uploading utility is capable of re-flashing the micro-controller with the firmware binary provided by the end user. The firmware uploading utility scans for all eSATA devices which matches the vendor and product ID of our client and displays the list of connected devices in the front end UI. User could select the RHDD drive and also provide the new firmware binary file. Typically, the firmware uploading utility will be used to upgrade the existing firmware with the new version of the firmware. The firmware uploading utility front end is developed in Java which communicated with the utility's back end using JNI. The back end communicates with the underlying SATA device driver for the microcontroller for re-flashing the micro-controller. The utility communicates with the underlying device driver through the utility's native libraries developed for both Windows and Linux environment which in turn sends corresponding SCSI commands with appropriate page code and CDB data using native IOCTL APIs to perform requested operations on the device. The front end UI extracted the details of the dock and cartridge of each connected device such as current firmware version, dock and cartridge's vendor ID, product ID, Serial Number, OEM, cartridge capacity, etc. The utility also allows user to perform diagnostics tests on the device to monitor overall device status (check status of LED, Sensors, Dock, Cartridge, etc). The utility targeted to be used by three levels of users: End user, Manufacturer and the Engineering team each of them having access to only those features that were provided for their level. Since, the device was still in the manufacturing process, the utility was developed using Altera FPGA board that needed to be configured with the actual firmware which will be used in the final device.
VIT played following roles during the development of Firmware Upload Utility and Diagnostics tool
- Architected and Developed the front end UI for the Firmware Upload Utility using Java programming language
- Analysis of Device I/O using SCSI IOCTL commands with device specific page codes (sent as CDB data) to extract particular information or to perform specific operation on the device on both Windows and Linux OS. Also, parsed the byte array returned from executing the IOCTL command and extracted required information from the returned array using the specification provided for the page code. This information was sent back to the front end
- Developed native libraries for Windows and Linux to execute IOCTL commands with proper CDB data for each read/write operation on the device. The native library was responsible to extract the required information (dock and cartridge information that was dispersed across various page codes) from the bye array returned from executing the IOCTL command. It also performed Firmware upgrade and send diagnostics command to the device to monitor its status.
- Developed JNI for communication between Java front end and native back end
- Developed installer to install the utility on both Windows and Linux OS
- Added logging capability in the utility to log events in the utility
- Developed command line version of the utility
- Performed in depth testing of the utility for any issues
- Create separate packages for different levels of users: End user, Manufacturer and Engineering team Benefits Well
- Well documented code, adhering to development guidelines has made the maintenance of product easy.
- Incorporated Agile testing (both installation and functional) that ensures the quality of the application during the development process
- Good understanding of the SATA Device Drivers for Removable Hard Disk Drive Systems.
- Good understanding of working model of Removable Hard Disk Drive. Good understanding of programming native device IOCTL commands using provided page codes on both Windows and Linux environment and also parsing the returned byte array from the command execution.
Continuous Integration with Build and Test Automation: Case Studies
Customer's product management team had major constraints in accomplishing the quality assurance of the release due to short release cycle and the volume of data were increasing drastically. The automation process used by the QA team was outdated and was not in a shape to work with current environment. The critical section of the quality process was the web application front-end and regression testing, it was mostly done with manual test scenarios and needs a dedicated team to handle it. Also, growing demand of mobile support has added more load to manual testing of web applications on mobile platform. VIT signed up a long-term relationship with the customer to provide technical assistance on these constraints and also future developments.
A team of QA experts brainstormed on the major constraints and came up with the technical requirements which are as follows:
- Adopt suitable open source continuous integration system
- A robust and flexible test automation framework to automate front-end and regression testing. It requires flexibility in adding new clients to test suite at any point of time without much changes to framework.
- Extend the test coverage to mobile devices (android and iOS)
- Automate cloud environment to run daily buil0064
Based on the requirements framed by QA experts, VIT's technical team spends some time in understanding the functional and technical scope of the customer's products and chart out the following design decision/goals:
- Jenkins as the open source continuous integration system.
- Selenium as the test automation framework.
- Appium as the mobile test automation framework.
- An object-oriented layer around Selenium Webdriver to support cross-browser test objects and extend its support to mobile test automation framework.
- Page Object pattern to be used to develop the test objects. A Page Object simply models the test as objects within the test code. This reduces the amount of duplicated code which means that if the UI changes, the fix need only be applied in one place.
- RightScale API wrapper to automate Amazon cloud environment. Using API wrapper cloud system can be launched, terminated and can be customized when it is active.
Jenkins build automation provides more relief when it comes to automating the build process. It focuses on automating the pre and post steps around the calling of the build scripts and go beyond the pre and post build script processing and also streamline the actual compile and linker calls without much manual scripting. The build script is developed using Linux shell scripting and Perl language. It is designed to call, in a series, the needed compile and link steps to build a web application and its internal modules.
The front-end automation testing was developed with a robust and flexible object oriented wrapper around Selenium framework. The object oriented wrapper was developed using Object Oriented Perl. It has two major components, CustomWebDriver and PageObjects. CustomWebDriver extends the Selenium Perl language binding which internally uses JSONWireProtocol to communicate with the Selenium server. It also provide object that encapsulate browser specific implementation internally to help developer to have one test object implementation for different browsers on desktop and mobile platforms. The Page Object pattern represents the screens of the web application as a series of objects and encapsulates the features represented by a page. It allows us to model the UI in our tests. It serves as an interface to a page of your AUT (Application under test).
The Regression automation framework was developed internally using Object Oriented Perl and XML. It is designed to interact with Product's internal APIs and database. Regression testing ensures the enhancements and patches doesn't introduce new faults in the products. Regression test cases are written in XML and it is executed on development environment to make sure the latest code changes doesn't create new bugs.
The RightScale API Wrapper was developed using Perl and RightScale Rest API. RightScale Cloud Portfolio Management enables enterprises to manage applications across public and private clouds and virtualized environments. RightScale API Wrapper provides features to launch, terminate and run scripts. The RightScale API Wrapper is implemented in Jenkins platform to automate the cloud environment which will be used by daily build.
- Good understanding of Continuous Integration with build and test automation
- Developed using open source technologies which are economical and offers the potential for a more flexible technology and quicker innovation
- Agile development process had helped Customer's QA team to adopt test automation in an incremental approach
- Front-end test automation supports testing the products on IE, Firefox, Chrome, Safari, Chrome (Android) and Safari (iOS) which was almost impossible to do it manually in every release.
- Regression test automation supports testing the internal APIs and databases which was not done before
- Good use of cloud environment for daily build and it doesn't have to be active at all times.