"This would have saved me 6 months of my life." (Irena Shaigorodsky, Principle Software Engineer at TripAdvisor)
(PRWEB) May 26, 2016
Thinking Software, Inc (TSI) is introducing ARM-CM - Application Reliability Monitoring via Collaborating Machines.
ARM-CM consists of both, a product and a service.
The product, Race Catcher™, is a state-of-the-art dynamic code analyzer, diagnosing every experienced race condition with 0% false-positive precision and small overhead, allowing for its use everywhere, where bytecode applications live, in test and in production. Its unique User Interface maps the issues analyzed in the bytecode into the corresponding source code and explains the issues to programmers with unprecedented ease and clarity.
The service provides the ability to monitor multiple Race Catcher™ enabled machines, independent of their geolocation, from Race Catcher™ Workstation.
ARM-CM is about utilizing ‘common interests’ of multiple machines running the same applications side-by-side, via the use of a sophisticated dynamic code analysis.
The word “quantum” is very appropriate here. It is defined as “a discrete quantity of energy proportional in magnitude to the frequency of radiation it represents.“
In the case of ARM-CM, the extracted knowledge (read “energy”) is proportional to the number of collaborating machines.
Today most businesses and public agencies move their computing to the cloud to upgrade their speed, agility, and security.
Only a few years ago, the arguments coming from the Cloud opponents at the time, were related to potential loss in Security and Visibility. The arguments coming from the Cloud champions were about winning in operational costs and productivity.
However, none of the sides argued about the reliability of computational results.
This is because both fronts: cloud based applications vs local datacenter or personal computer applications, suffered the uncertainty in the reliability of computational results. It is not about monitoring software security, or monitoring an application performance speed (via APM - Application Performance Monitoring - tools). It is about applications results being inconsistent given the same stream of input data.
APM tools say applications are running "happily" …
But can their results be always trusted ?
It is about the best kept secret, not shared with average software users, and quite often not even shared by programming staff with their managers, because nothing could be done to effectively help there.
Why? Because, due to the complexity of the analysis of multithreading contentions, there were no tools to deal with these issues effectively.
Searching for “race condition” on the site http://stackoverflow.com will return a constantly growing number of posted questions (presently 12,364), each of them having multiple answers.
A long time ago, when the first computer program was born, it was single threaded.
The only uncertainties it posessed at the time were related to untested inputs from often unlimited input space. The uncertainty increased to a new level when threads scheduling components of contemporary operating systems, started to deal with multiple threads. Now, even absolutely the same sets of input events, can still produce different results.
If one is to play absolutely safe and lock out every other thread, the application will go back in time to a single threaded mode, and all the advantages in power provided by multiple CPU processors will disappear. The trick is about providing exclusive access to specific memory by specific code segments only where it is absolutely necessary.
Prior dynamic analysis technologies were for the most degree unusable due to the combination of the following: false positive diagnosis (wrong diagnosis); missing the actual cases of race conditions; prohibiting the use, high overhead; and huge complexity of sorting out and understanding the results of the analysis (often measured in days.)
Static code analysis technologies suffer from all of the above outside of run-time overhead. However, instead, they are even more guilty when it comes to programmers time overhead, having an even higher degree of false positives and, due to the law of ‘states explosion’, false negatives (missing the cases of race conditions).
Luckily, Race Catcher™ from Thinking Software is free from all of the above limitations.
“Mind is a terrible thing to waste”
But what about thoughts encoded in a computer program?
Physical bodies, those that have physical mass, observe the laws of conservation and transformation of energy. Heated water is transformed into steam, which can move turbines. Burning fuel is transformed into gas moving pistons in combustion engines, and so on.
A computer program is a man-made entity. The energy it possesses is intellectual energy. To produce results, it is being applied to the other form of energy, the physical entity of transistors, able to keep and change their physical state by consuming yet another form of energy - electromagnetic energy.
Why not transform the intellectual energy released during a software process execution into yet another state - being able to test and understand itself.
That is what Thinking Software is working on.
Why 'Thinking Software'?
According to Alfred North Whitehead: (1861-1947) “Civilization advances by extending the number of important operations which we can perform without thinking about them”
It would be logical to add here that those important operations are entrusted to machines.
If software could talk, instead of “Cogito Ergo SUM” or “I think therefore I am” it may have said, “I run therefore I am”. And if one would consider that while executing algorithms and resolving their cause-effect relationships the software is actually performing cognitive tasks encoded in it, one may consider it saying, “I think therefore I am”.
Thinking Software Inc. (TSI) is a dynamic code analysis company that believes that any software process that runs is 'alive'. It radiates intellectual energy that was encoded in its creation and it has a right to understand itself. TSI's flagship product, Software Understanding Machine (SUM), was built for that purpose, and the phrase by Rene Descartes Cogito Ergo SUM, 'I think, therefore I am' (1644), can now be applied to the software processes.
New type of social network. ARM-CM is a social network of machines having common interests - running the same applications and being ‘concerned’ about their reliability.
Race Catcher(™) Workstation receives centralized and encrypted analysis of multithreading issues experienced on the VMs running on specific AWS account.
HOW TO GET LICENSES:
Download Race Catcher Workstation
From the installed Race Catcher Workstation, go to Account → Licenses. From there one can obtain licenses for Race Catcher enabled Workstations, Local Agents, and Cloud VMs.
One can run Race Catcher(™) enabled VMs from the AMIs (Amazon Machine Images) of the following Linux flavors: Amazon Linux, Ubuntu, Red Hat, SUSE.
These AMIs are founded by going to “EC2” → “Launch Instance” → “Community AMIs” then searching for “RaceCatcher-11.0”.