Build, protect and deploy apps across any platform and mobile device
Leverage a complete UI toolbox for web, mobile and desktop development
Automate UI, load and performance testing for web, desktop and mobile
Rapidly develop, manage and deploy business apps, delivered as SaaS in the cloud
Automate decision processes with a no-code business rules engine
Build mobile apps for iOS, Android and Windows Phone
Deploy automated machine learning to accurately predict machine failures with technology optimized for Industrial IoT.
Optimize data integration with high-performance connectivity
Connect to any cloud or on-premise data source using a standard interface
Build engaging multi-channel web and digital experiences with intuitive web content management
I was flying from Montreal to Boston yesterday and we had a flight delay. Not that unusual, but I did what I always do when that happens - I went to the FAA's website to see what was happening.
I was expecting to see the FAA say it was a weather or volume problem. But, what I saw was "EQ:Automation" as the cause. I dug in, and it turned out that this meant the radar systems had gone down (the applications behind it had crashed).
What's even more interesting is the same problem happened at JFK, Laguardia, and Philadelphia at the same time! Now, since nothing popped up in the news, I'm presuming it wasn't a coordinated terrorist attack on the FAA (if it was, the terrorists did a poor job since the systems were only down for about 90 minutes).
But, assuming it was a software glitch, this is a great example of why reuse isn't always a good thing. Even though they would have had separate instances because they were all running the same software, it behaved the exact same way - and some common condition caused all of them to crash. Had they each been running different radar control systems, at worst, one of these airports would have been shut instead of 4.
Of course, the problem gets even worse when you reuse the same instances of an application as you do in SOA. A condition caused by only one of the consumers can bring down the service for all of them.
The advantage of not reusing services would be that you can never run into these situations. Now, I'm not advocating avoiding reuse altogether - just the contrary - reuse is generally a good thing. But it's also often good to allow for a bit of duplication (maybe 2 to 3 different variations of the same service). Healthy competition generally results in better service for everyone - and you end up with some protection from systemic failures of one common implementation.
If only the FAA had been thinking this way, maybe I and tens of thousands of other passengers wouldn't have been delayed yesterday.
View all posts from dan foody on the Progress blog. Connect with us about all things application development and deployment, data integration and digital business.
Copyright © 2017 Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.
Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.