Sign In

Communications of the ACM

Research highlights

Technical Perspective: The Chemistry of Software-Defined Batteries

About four decades ago, the widespread availability of low-cost, general-purpose microprocessors allowed them to be incorporated into many real-world systems, where they replaced analog or purpose-built digital controls. For instance, small microprocessors are embedded in systems as diverse as laser printers, DVD players, and digital watches. However, these microprocessors are incapable of hosting a general-purpose operating system, so programming them has required specialized technically adept programmers. In recent years, with the advent of low-cost multi-GHz microprocessors that can host a general-purpose operating system, such as Linux or Android, even naïve programmers can use a sophisticated high-level development environment to engage with the physical world. Under the broad banner of cyber-physical systems, this has allowed computation to make inroads into areas as diverse as the electrical grid, water distribution systems, building heating, ventilation and air conditioning systems, and electric vehicles.

How should such systems be designed? A time-tested principle in computer systems design is to use an interface to separate an abstraction from its implementations.a This separation allows independent evolution of each component and for complex policies to be layered over underlying simple mechanisms, which in turn could be composed from yet simpler ones. A remarkable success of this design philosophy is the architecture of the Internet, where each layer of abstraction adds a limited level of additional complexity, and the top level of the layered protocol stack allows even naïve programmers to access the entire power of the Internet: a novice Python programmer can, in a few lines of code, obtain a reliable, byte-ordered, end-to-end connection from any Internet endpoint to any other endpoint, a task that requires a considerable amount of complex protocol machinery to accomplish.


No entries found

Log in to Read the Full Article

Sign In

Sign in using your ACM Web Account username and password to access premium content if you are an ACM member, Communications subscriber or Digital Library subscriber.

Need Access?

Please select one of the options below for access to premium content and features.

Create a Web Account

If you are already an ACM member, Communications subscriber, or Digital Library subscriber, please set up a web account to access premium content on this site.

Join the ACM

Become a member to take full advantage of ACM's outstanding computing information resources, networking opportunities, and other benefits.

Subscribe to Communications of the ACM Magazine

Get full access to 50+ years of CACM content and receive the print version of the magazine monthly.

Purchase the Article

Non-members can purchase this article or a copy of the magazine in which it appears.