Using Artificial Intelligence to Make Software 1000x Faster to build in Order to Keep Up with Evolving Threat
Abstract
Software makes it possible for analysts to analyze vastly greater amounts of data than they could without it. However, the threats we face and the kinds of data we have are changing faster than our ability to create and adapt software to analyze them. Thus, the great cost and complexity of developing software is an impediment to addressing the evolving threat. While the threat and our data about change weekly or monthly, it often takes months or years to produce new versions of software to address these changes. The reason for this is that software is very complex to produce. Even relatively simple pieces of software have dozens of components. For example, as figure 1 illustrates a web-based data analysis tool would need to integrate: a web server (e.g., Node.js), a database (e.g., P ostgrese), a text index (e.g., Elastic Search), web interface components (written using, e.g., HTML, CSS, JavaScript, React.js, and Handlebars), data visualizations (author using, e.g., d3.js). The developer team would need to use tools for editing code (e.g., Webstorm), managing code versions (e.g., git), and build management (e.g., Jenkins). To scale and secure the app they would need a caching system (e.g., Memcache) and a load balancer (e.g., Elastic Beanstalk), and various security and encryption tools. Each of these components involves learning a different set of skills and often a different programming language.
Document Details
- Document Type
- DoD Grant Award
- Publication Date
- Sep 30, 2019
- Source ID
- N000141912524
Entities
People
- Nicholas Cassimatis
Organizations
- Office of Naval Research
- United States Navy