Information Technology world lives and breathes buzzwords. No doubt there is innovation happening but the over hype-fication by crafty marketing teams almost borders the snake-oil experience. For example, here is what Google says about Cloud Computing –
The practice of using a network of remote servers hosted on the internet to store, manage and process data, rather than a local server or a personal computer.
By that definition, my Yahoo email account and first website on Geocities (circa 199x) were made possible by cloud computing. But where were all the cloud certification courses, cloud strategy consultants, private cloud platforms, cloud this and cloud that? The term cloud computing started buzz-ing only in the past 10 years. Lipstick on a pig and tadaaa!!
hosted services Cloud Computing!
Type “Software Defined” in a search engine and the first few pages are filled with results for “Software Defined Networks” and “Software Defined Storage”. Software defined concepts are not new.
Software Defined Software
When code written in C/C++ or any other high level language is compiled, it results in machine executable instructions being generated.
That is “software defining software”.
High level languages make software development easier and accessible to the general public, who otherwise would not fare well dealing with assembly language. Also, the pace of progress would very slow. With libraries and modules being built to make life easier for future generation of programmers, these layers are simply put – software defining software that defines software.
Software Defined Hardware
Emulation and Virtualization.
Hardware Emulation translates functions of one type of hardware on other hardware platforms. Unicorn CPU emulator is a good example. Emulation is very useful in prototyping and is also used to implement portable code. One of the tools popular with hardware product teams are FPGAs. These generic programmable logic boards have become a key part of hardware design processes and they also end up being used for the final product. Here is a cool Nintendo emulator implementation on FPGA.
Hardware Virtualization has become a huge part of IT solutions. Primary selling points were consolidation and efficient resource usage. But virtualization has expended into several other use cases as well. In the past 10 years, virtualization has completely transformed IT infrastructure architectures, both hardware and software. The next wave is containerization for next generation “Cloud Computing” implementations. Everyone wants to be Google!
Software Defined Sound and Light
With entertainment systems going digital, content digitization added a whole new set of capabilities. Sound waves (voice/music) and light (photo/video) are sampled by hardware sensors thousands of times a second and a binary representation is created. More frequent samples-per-second create higher resolution data.
This digital representation is then used to recreate the original content on a screen. Music and video data defines what the re-playing software does to pixels on the screen.
That is? Software defined sound and light!
This completely revolutionized entertainment as we know it. Content can be copied, filtered and processed with special effects on the fly, all in software. New filters and processing techniques can be added as new algorithms are developed. This massively improved computer gaming user experience.
Remember .MOD and .STM files? MIDI? DosBox (Dos Emulator) works very well. Inertia Player, STM player. Fun!
Software Defined Control Systems
Fly by wire?
- Pilots move a physical cockpit control (yoke or joystick)
- Hardware sensors read that movement and convert it to digital sensor data
- Airplane control system software computes an appropriate control surface response
- Software then controls hydraulic actuators to move airplane control surfaces (aileron, elevator, flaps)
- Combine this with a flight management system that has GPS location data, airspace information and software can pretty much fly the airplane from takeoff to landing
By defining control surface movements in software, a computer can help pilots fly with more precision and automation. As more data from newer sensors is made available, software changes can add newer flight tools in the cockpit.
Software Defined Radio
I have always believed that radio geeks are geekier than IT geeks. SDRs allow IT and Radio geekery to be combined into super geeks. SDRs simplify radio hardware devices and allow them to be coupled with powerful and flexible software. This combination completely blows away roadblocks in the way of radio technology innovation.
Amateur radio and other hobbyists now have a rich toolset to experiment with and build on top of the basic hardware / software combination. Take a look at this excellent introduction to SDRs by a very bright ~10 yrs old –
Not everything is snake-oil in the recent wave of software defined technology updates. Its just that the marketing hype needs to be sifted through to really understand where real innovation is happening.
That is a topic for a future post.