Bmo Mech

last modified: July 12, 2014

The BankOfMontreal Mechanisation system is a home-grown banking system designed to support the on-line banking operations of the Bank Of Montreal. It provided real-time transaction processing, as distinct from memo-post, which is still the mode of the other banks of the Canadian "Big Five", all of whose systems are customized versions of the COLT (Canadian On-Line Teller) package.

This page is the current resut of an initial collaboration effort by PaulMorrison and HansWobbe. Others are welcome to participate, by either adding additional information or posing questions that may help draw out points that are of interest to members of this community.

Possible aspects of BmoMech that also may be of particular interest here at c2:

BmoMech was designed for real-time posting of transactions, directly to the GL. - In the early 1980s, the average Mech transaction had a path length of some 48,000+ AssemblyLanguage instructions.

An important innovation was the idea of making logic "option-driven". RaMcDougall [converted to WikiName format] (usually referred to as the RAM) realized that we would eventually need to have many kinds of hybrid account (e.g. checkable savings, monthly statements vs. passbooks, interest-bearing checking, etc.), and logic should be driven by option switches. In comparison, most banking systems up to that time, including COLT, had different account types: checking, savings, loans, etc., and still have trouble accommodating all the different kinds of offerings available today. I find it interesting that many discussions of OO still treat different account types as subclasses, while the RAM foresaw the problems with this 30 years ago!

How could I forget to mention that almost all of BmoMech's batch processing was built using AMPS, the first implementation of FlowBasedProgramming?! Both AMPS and the application logic were all done in S/360 AssemblyLanguage, as the RAM was concerned about the performance of HighLevelLanguages, and the reliability of compilers - also very prescient! Later, the Bank had a flirtation with PL/I (see PliLanguage), and built a reporting subsystem using it, but, approximately 25 years later, this subsystem has turned out to be a lot harder to maintain than the vastly more powerful AMPS portion of the system. I may add more detail as to why this should be so in this or another page, but maybe readers of this wiki have already figured it out!

Reading the page on TableOrientedProgramming reminded me that Mech is heavily table-driven. Typically, these tables are compiled using table-building macros, so they are fairly easy to maintain. Later in the project's evolution, under the leadership of John A., we tried to give all new tables a normalized relational form. Older tables often had more complex structures, which meant that new programmers had to learn the structure of each such table separately, and they had to have custom-written search code, rather than being able to be accessed using a standard binary search facility.


An important result of the design objectives and the resulting architectural differences between Mech and COLT was that Mech was entirely centralized while COLT used regional processors (three at RBC at the time). This created a real business opportunity that was exploited by Bmo for CashManagement. At the time, the cost of a Mech transaction was thought to be about $0.095, as opposed to RBC's $0.09 or about a 5% disadvantage arising from the fact that local processing within a region could be a bit more cost effective. This insight was exploited by realizing that when a transaction crossed a regional boundary, COLT's costs went to $1.12+, while Mech's stayed at $0.095. It was a genuine pleasure to sell cash management services in competition to RBC, after they stole our thunder by announcing that they too had implemented a cash management system, within 24 hours of the Bmo (the FirstCanadianBank) announcement.


As I understand it, BmoMech can be used for technical detail (and maybe some neat anecdotes) on the Mechanisation system, whereas BankOfMontreal could be used for more general topics (or vice versa, Hans?).

Paul: When Bmo finally converted from the 3330 DASD class disk drives, I was told that this was a most demanding task because in involved replacing a lot of logic that wrote to a physical disk location to achieve better write speeds, rather than using a higher level mapping. Can you confirm this? -- hwo.



To my personal delight, RaMcDougall not only 'found' these pages, but has also expressed his support for expanding their content. Interestingly, his comments reinforced my opinion that the MECH 'project' has a lot more significance than has been generally recognized. This leads to a number of possibilities:

-- HansWobbe

October 14, 2011: I'm considering putting my recollections of MECH history on-line; anyone interested in participating? -- R. A. McDougall (aka RAM) <RAMACD@gmail.com>


ToDo:

what about MECH 2980 format?


Loading...