Cross platform device drivers

Case Study – Custom, cross-platform device driver development supporting multi-version, multi-OS applications

"Multi-platform (Windows®, Mac® and Linux®) Enhancement and Validation of an Existing Software"

Situation

A leading imaging products company required a development partner for the transition of a large number of software solutions from legacy system to new age system. The solutions, namely printer drivers, scanner drivers, installers and device management utilities, were spread across multiple platforms like Windows, Macintosh and Linux. The scope of the work also included custom feature development, productization of the software for new devices, and ensuring compatibility for various code signing requirements across Windows and Mac platforms.

Celstream’s in-depth expertise in cross-platform development and extensive experience in developing complex solutions convinced the company to choose Celstream as its development partner.

Challenges

  • Large codebase of more than 8 million LOC, including about 6 million LOC of logic and support for several families of devices on Windows, Mac and Linux platforms
  • Understanding of complex build system with custom infrastructure requirements before deploying and creating successful builds
  • Legacy codebase was developed over a span of a decade resulting in fragmented coding and parts of dead code
  • Reconciling the code in multiple branches that were created to fix varying field support issues
  • Large amount of documentation to map the various features sets
  • Studying in details the device protocols like NPAP, SNMP and HTTP to overcome the limitations of documentation
  • The code base and build system was tightly integrated with legacy tools and framework, a few of which were unavailable

Key Highlights

  • Common code base for all products
  • Data driven approach to productize with minimal effort
  • Automated build system to enable faster time-to-market
  • Architected to be an easily scalable platform that supports quick addition of new device models, future device architecture, data communication protocols and advanced features
  • Sandboxing compliant driver package
  • Digitally signed driver and installation packages

Celstream Response

Celstream conducted an onsite workshop with key technical staff of the customer to gather specific and undocumented knowledge of the existing solution including various drivers and utilities, end user workflows, device architectures and communication protocols. The team also gathered necessary information about the infrastructure requirements for setup of build, development and test systems across various platforms. Simultaneously, an extended team of developers were deployed at Celstream facility to investigate and validate the implementation approach.

Based on the workshop and parallel investigations, Celstream setup the build environment at its facilities and resolved all build related issues. Online collaboration and communication tools were used for effective interaction between Celstream’s onsite and offshore teams and customer’s key technical staff in varied locations. The key highlights of the engagement include:

  • Thorough understanding of vast documentation
  • Installation of legacy SDKs, for both Windows and Mac (to build Carbon based drivers), to understand the existing driver feature-set and behavioral pattern
  • Addition of custom features to the legacy code base
  • Custom development of solutions which are compatible with the customer’s new family of devices
  • Comprehensive testing of the solutions to ensure best quality. The Windows drivers were also validated for Windows Hardware Certification (WHQL) and the required submission packages were created for the customer to submit to Microsoft for certification
Benefits to Customer

  • Quick ramp-up assisted by a structured transition approach ensured timely delivery of the releases
  • The initial list of solutions for three different device families was released within 4 months of the start of the engagement. This enabled the customer to add these solutions to an earlier window of product launch and benefit from the early market feedback
  • Architected to be a scalable platform with ability to evolve the solutions with minimal effort to address typical market requirements
  • Support for third party OEM customizations enabled the company to benefit from additional revenue streams
Technology

In developing this solution, Celstream used the following key software tools and technologies:                                    

  • Tools
    • Visual Studio® 6, 2005, 2010, 2012
    • Microsoft® SDKs and DDKs – 2K, XP, Vista, 2003 and Win 7
    • Xcode® 4 with 10.5 SDK Interface Builder
    • PPD Checker
    • WireShark®
    • XSANE
    • ScrumWorks®
  • Technologies
    • Mac printer driver - CUPS, Mac Scanner driver – ICA and TWAIN
    • Cocoa®, Objective C® / C++
    • Windows Printer driver – V3 and V4, GDI, XPS and PCL/XL drivers, Windows Scanner driver – WIA, TWAIN
    • C++, MFC, C#, .NET, WPF, XAML, WDK
    • Linux printer driver - CUPS, Scanner driver - SANE
    • JavaScripts™, Shell and Perl® Scripts
    • SNMP, HTTPS, NPA
  • OS Supported
    • Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1
    • Mac OS® 10.5 – 10.9
    • Linux® - Debian, Ubuntu

Celstream is a registered trademark of Celstream Technologies Private Limited. JavaScript is a trademark or registered trademark of Oracle Corporation. Apple is a registered trademark of Apple, Inc. Android is a trademark of Google Inc. iOS is a registered trademark of Cisco Systems, Inc. SPSS is a registered trademark of IBM Corp. Microsoft, ASP.NET, .NET Framework 4.5, SQL Server 2008, SQL Server 2012 are all registered trademarks or trademarks of Microsoft Corporation. KendoUI is a trademark or registered trademark of Telerik AD. Infragistics and NucliOS are trademarks or registered trademarks of Infragistics, Inc. Confirmit is a trademark or registered trademark of Confirmit Corporation. All other trademarks are the property of their respective owners.