Application paradigms are changing rapidly. And alongside, the middleware layer that keeps applications and services in sync is also changing. But while new approaches like Reactive programming and asynchronous deployment have made things like the enterprise services bus an unwanted burden from the past, none of the functions that legacy middleware technology performed have become any less important -- and new technologies must address those needs.
Rich Sharples, senior director of product management for middleware at Red Hat, explained that, while new programming paradigms like Reactive are interesting, they do represent a new learning curve for developers used to taking traditional approaches to things like messaging. This holds especially true, he said, as organizations continue to adopt microservices.
"It's very different than reading a message off of a queue and then blocking until you get the message," Sharples said. "We now use features and promises to do that in an asynchronous way. … I think that's going to be a big shift over the next few years."
Sharples also shared his opinion on how the middleware layer is changing, such as the shift away from enterprise service buses (ESBs). The ESB, he said, became a burden in the eyes of many software administrators who saw it as a single "choke point" and potential source of universal failure.
"It became that part of your application code was now embedded within this infrastructure," Sharples said. "So, it didn't provide a good separation of concerns."
Sharples explained that the fundamental functions of an ESB, such as security and policy enforcement, still need to be addressed. However, he said, where and how those things are managed has changed. As such, organizations have adopted new types of proxy or middleware technology like the API gateway to manage policy enforcement and other ESB functions that are still essential.
"You still have to have some kind of proxy to gather that information or enforce policy," Sharples said. "It's common with everything else about middleware: You need the capabilities, but how your application makes use of them is going to change in this new network cloud world."