Categories
Tech

Towards Systems Integration

Google. Apple. Amazon. Facebook. Microsoft. They all market directly to consumers. However, their consumer products, especially when free of cost, can be supported by high-value business models for enterprises. For example, AWS is a major cash cow for Amazon, and in general, businesses pay big money for enterprise tech for later payoffs due to the increased efficiency. Additionally, innovation in enterprise tech has a positive developmental feedback effect on consumer tech, whereby production processes can be improved and form compounding sequences of “improving improvements”. Enterprise tech thus produces fundamental value for enterprises and consumers alike.

Within enterprise tech, specific problems abound that affect the ways enterprises, and by extension consumers, work today. For example, with the advance of different, incompatible mobile platforms, building an app entails writing similar functionality multiple times, in multiple languages: Objective-C/Swift for iOS, Java for Android, HTML/CSS/JavaScript for the browser. Of course, with DRY, common logic can be implemented in a single consistent stack while the different client platforms render their views. But every time a new language needs to be used somewhere in the development process, issues with communication and synchronization of data, along with interoperability in the codebase, become annoying, thorny, and difficult obstacles.

Furthermore, at an ideological level, not being able to interoperate between technological stacks represents a gap between consumer perception of technology and the reality of developing that technology. For example, users who switch web browsers generally would not expect that websites’ functionalities should change. In reality, common tasks that pages have to perform are different JavaScript quirks that developers must address. The “threshold progression” view of innovation, assumed by users and tech optimists alike, plays on the idea that humanity continually advances by passing certain “thresholds”, and the unstated implication is that as soon as a threshold is reached, everyone can easily port over and jump onto that innovation, no cross-compatibility layer nonsense necessary. For example, with input user interfaces, people would generally talk about the progression — “humanity invented the typewriter, then the computer keyboard, then the mouse, then touch” — without regard to all the different languages and platforms involved along the way. This view of innovation is complicated and hindered by the multiplicative work required in getting the different implementations of each step to work with those of every other step in the progressive ladder.

This is, of course, an instance of the general problem of systems integration: being able to switch out different implementation components of a system and allow the whole to fulfill its purpose. From an ideological perspective, the view of a system humming along, with constant innovation not necessary — “Oh, it worked before!” — is undermined by the complexity of managing changing standards from different providers efficiently. In development, systems engineers must deal with integration on a normal basis, because for any type of system, even after all the components are independently developed, they must work together for the combination to function.

Given how important the task is, it is not surprising that organizations have been developing methods to improve the process. For example, headaches in app development are mitigated by the open web standard, including the mobile web, and by web frameworks such as Facebook’s React Native and Microsoft’s Xamarin. Cross-compatibility between languages is addressed by IDLs such as Google’s Protocol Buffers and Apache Thrift, or even by general compilation layers and container/VM-like constructions. Operating system incompatibility between Windows and Linux is addressed by the Windows Subsystem for Linux, where new versions of Windows can now expose their files to Linux apps and bash.

Solutions along such lines are in constant development, and they will continue to abound and advance as enterprises progress in the coming years and decades. And, just as with other problems in enterprise tech, but even more so with such a fundamental task as systems integration, the potential payoffs for improvements will be enormous across business sectors and companies, including the companies integral to consumers’ everyday lives.

One reply on “Towards Systems Integration”

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.