Tuesday, February 16, 2010
Michael Daconta at GCN has posted a brief call to arms for the software industry. Here’s the gist:
Although I am a believer in free markets and the benefits of competition, industry has a responsibility to work together on the foundational layers to build security, quality and reliability from the ground up to advance the professionalism of the field. In essence, the information technology industry must emulate other engineering disciplines, or technological disasters and cybersecurity holes will worsen.
Daconta is uneasy with the number of platforms and methods available to software developers, and sees ever-more options and disruptions in the near future; IPv6 and 64-bit computing seem to trouble him particularly. We’re already balkanized and disorganized, how can we possibly expect to produce reliable and useful software with all this messy innovation happening?
The answer, of course, is control. Lots of it. Specifically, three proposals:
- Licenses for software developers
- A new, reliable, layered software platform developed by the NSF and DARPA
- Treat software like engineering, not art.
Gracious. I barely know where to start. Let’s try to imagine the software development world in five years, with these proposals in place.
Continue reading... (1124 words, estimated 4:30 mins reading time)
Using open source software, the US Navy was able to standardize the shipboard systems on its new destroyers, reducing the complexity of the ship’s systems and their reliance on proprietary real-time software. Wall Street now uses this same technology to execute orders predictably, without relying on vendor-specific hardware and software.
Every ship in the Navy is a floating data center. Computers run the ship, handle navigation, and track inventory. There are mail servers, databases, and everything else you would expect in a corporate data center. Unlike a corporation, though, the Navy also has weapons systems and radars. These systems are unique, since they must perform in a very predictable way: when you pull a trigger, you can’t wait for the computer to send an email. It has to happen right away. This determinism in a computer system is called “real-time” performance.
The Navy has already saved millions by moving to industry-standard computers and commercially available software. This real-time requirement flew in the face of this: the software is very expensive, and often very proprietary. Frequently, real-time systems require specialized hardware and specialized software, which was also expensive. These new systems also meant special training for the operators. So this meant two sets of infrastructure: one to regular applications, one to run the real-time applications. This was expensive and inefficient, especially since a Navy ship is so constrained by the lack of space. It would be much easier to have the regular computers handling the real-time work.
Continue reading... (549 words, estimated 2:12 mins reading time)