getUS ROI
home site map print this page email us at mark.fralick@getusroi.com

MOCA Trivia - See How Much You Know

by Mark C. Fralick


MOCA is 20 years old this year. In late March of 1993, I gave the first demo of the system that evolved into what now is called MOCA. Yes, way back in the March of 1993, when PCs were not generally connected to a network, VB was an also-ran development tool, and Java was not yet even on the radar - a few of us at Software Architects Inc (SAI), had a better idea. We thought that we were doing it all wrong and came up with a new way that automation software 'could' be built. The idea was to have a set of intelligent services (for which we coined the name Intrinsics) that knew how to do the work, and the clients applications would just make requests to these service components. Sounds familiar now, but in 1993 there was nothing like it.


comma

In late March of 1993, I gave the first demo of the system that evolved into what now is called MOCA.

comma

In March 1993, when I traveled to Holland to help with the automation of Compaq's European distribution center, I brought with me a demo of the architecture Jim Hoefflin and I conceived several months before.  My goal was to show the other partners in SAI (Jim Hoefflin, Mike Verdeyen and Curt Harmatys) how the concept might work in reality.  Less than one year later it went into production at a site for Compaq in Houston.  This became the first widely available Services Oriented Application that I am aware of.   While it has matured a lot in 20 years - it hasn't gotten 'old'.  Very creative and capable developers have moved it forward and kept it fresh.


So, here are some bits of trivia for you (some history and some things you may just not know).  How much do you know (answers below)?

 

  1. The Original idea for MOCA as documented how:
    1. Using Word Perfect and presented to Compaq as a design?
    2. Using VI on an SCO unix box?
    3. Written the back of a Sprecker Amber beer coaster on Jim Hoefflin's deck.
  2. What do the letters MOCA mean?
    1. Nothing really, it is a take-off on Java.
    2. Mchugh Open Component Architecture.
    3. Monitor, Orchestrate, Control and Arrange.
  3. What was this Architecture called prior to selling it and our business to McHugh/RedPrairie?
    1. Soca (SAI Open Component Architecture).
    2. The Distribution Server.
    3. The SAI Server.
  4. The idea happened how?
    1. Exhaustive design sessions where all the current architectures are were vetted away?
    2. In an inspired moment watching pallets being dropped into conveyor P&Ds and how they interacted with the WMS, Mark Fralick realized we were doing this all wrong.
    3. The idea came from a book one of us was reading.
  5. What was the first OS platform supported?
    1. Novell
    2. SCO Unix
    3. Linux
    4. Windows
  6. In the very first iteration of the architecture, the SQLLIB (database abstraction) supported what platform?
    1. Sybase
    2. Oracle
    3. Ingress
    4. Sql Server
  7. Prior to the first production systems, we switched DB support to what database?
    1. Sybase
    2. Oracle
    3. Ingress
    4. Sql Server
  8. What is MOCA's Secret Weapon - the thing that makes MOCA different?
    1. Simplicity
    2. Context
    3. Opportunistic Statelessness
  9. Back thru about the mid-1990's windows did not come with an IP stack or TCP/IP software. We had to source out our own vendor for an IP stack and write a specific API. Which vendor did we start use from 1993 until Windows for work groups came out?
    1. Netmanage Chameleon
    2. Spry
    3. Trumpet Winsock
  10. By the end of 1995, WMS installs with this architecture were shipping about how many dollars of product?
    1. $500M
    2. $1B
    3. $4B
  11. Why was the idea of context first added to the architecture
    1. Because it was all part of the grand plan for the architecture.
    2. Because Fralick wanted to create the concept of pipes to create a Unix style stdin sort of command line interface.
    3. To support Jim Hoeffin's idea of command-level triggers.
  12. You cannot do an unqualified update or delete in MOCA because?
    1. It is a pretty unsafe idea
    2. We worked with a guy that accidently wiped out the entire pick table for a 500,000 sq ft running DC (twice in about 2 hours) with an unqualified delete. We did not want to suffer the same harassment he did.
    3. It is a violation of SQL standards
  13. Why were there 3 service namespaces (int/var/usr) created from the very beginning of this architecture.
    1. We adopted these from CORBA
    2. SAI originally sold the WMS via Value Added Reseller (VARs). It was one of the override-able component levels.
    3. It was really just in alphabetical order, not significant.
  14. We wrestled for a great while with the idea of Pre-Triggers. What was the evolution of this concept?
    1. We first used the concept of pre-conditions to create context to the component then create context based on these pre-conditions.
    2. We allowed you to put the component in at one level and directly reference that same component in another level.
    3. Fralick always had hard time visualizing this due to the implications of pre-conditions, so it wasn't until Derek Inksetter took over development of the architecture that we got this straightened out.
    4. We used direct override until Dave Erickson corrected this to make it more architecturally accurate.
  15. What concept did we have to create in order to correctly do MOCA remoting?
    1. RPCs.
    2. Context Normalization.
    3. SQL Normalization.
  16. What was the client framework that proceeded MCS called?
    1. SAIMC
    2. MOCA-Connect
    3. SASI Client Library

 



 

IMPORTANT NOTE:   We sold SAI and this Architecture to McHugh/RedPrairie in 1998.  I claim no current ownership of it - just that I created the concept and was the original author of it.  MOCA, owned now in full by JDA,  exists now as a fantastic architecture because of the hard work of a lot of different people that care a great deal about what they do.  I have a huge amount of respect and admiration for those people that have made MOCA what it is today.   I am continually in awe sometimes of just how powerful the architecture continues to be given its humble beginnings - being scratched out on a beer coaster on Jim Hoefflin's deck. 

 

Answers:

  1. The Original idea for MOCA as documented how:
    1. Written the back of a Sprecker Amber beer coaster  on Jim Hoefflin's deck.   Okay, this is the stuff of legend - but in this case happens to be true.  I diagrammed it out on the coaster and we coined the term Intrinsics that night.
  2. What do the letters MOCA mean?
    1. Mchugh Open Component Architecture.  RedPrairie's former name is Mchugh Software, named after the great Jim McHugh.  I came up with the name, pitched it to Jim Hoefflin, and it took.  There have been a lot of attempts to rename it (Controller and things like that) - but most people still call it MOCA.
  3. What was this Architecture called prior to selling it and our business to McHugh/RedPrairie?
    1. The Distribution Server.   That night on Hoefflin's deck, we came up with the concept that we called the 'Distribution Server'.  Derek Inksetter pulled any last entanglements to the WMS out of MOCA to make it independent when we sold to McHugh/RedPrairie.  He and Mike Lange are really the guys that took my ragged initial versions of this architecture and turned it into what is really the modern day version of MOCA.
  4. The idea happened how?
    1. In an inspired moment watching pallets being dropped into conveyor P&Ds and how they interacted with the WMS, Mark Fralick realized we were doing this all wrong.   It was an 'AH HA!' moment. We WERE doing it all wrong.  I envisaged a system where you could program the functionality in a series of events and actions. This was always my goal with this architecture.   I published a paper on this design in a Material Handling Journal in 1995 and later presented this concept at DC Expo in Chicago.

  5. What was the first OS platform supported?
    1. SCO Unix.  SCO was an awesome platform at the time. The current set of commercial LINUX variants owe a lot to SCO I think.  We had done Compaq's European distribution center on SCO and we wanted to be on PC servers (while others were on what was called Mini Computers back then). Most of our experience was on this platform.
  6. In the very first iteration of the architecture, the SQLLIB (database abstraction) supported what platform?
    1. Sybase.  We did a couple systems with Sybase.  Although it only had page-level locking at the time, there were ways to deal with that - and it was fast (at the time).  Since Microsoft took a cut of Sybase and created SQL Server out of it, they eventually created more reasonable locking granularity.
  7. Prior to the first production systems, we switched DB support to what database?
    1. Oracle.  While at the time it was not clear who would come out on top as far as DB servers, we loved Oracle's approach to lock granularity.    Our first systems went live with Oracle 7.
  8. What is MOCA's Secret Weapon - the thing that makes MOCA different?
    1. Context.  Context is a concept that provides State to Stateless components and permits things like pipes and triggers. I had the idea while in Europe on an install with Hoefflin, Verdeyen and Harmatys.  Curt Harmatys and I fleshed out the idea while I was there and  I created the design for it on a 6 hour caffeine induced flurry on my plane ride home.  I coded the first version of context in the 2 weeks that followed.    
  9. Back thru about the mid-1990's windows did not come with an IP stack or TCP/IP software. We had to source out our own vendor for an IP stack and write a specific API. Which vendor did we start use from 1993 until Windows for work groups came out?
    1. Netmanage  Chameleon.   As the winsock standard was developed, via our relationship with Netmanage, we beta'd the winsock APIs thru about early-1995.
  10. By the end of 1995, WMS installs with this architecture were shipping about how many dollars of product?
    1. About $4B.   By this time, we were shipping most of Compaq's PCs in the Americas.  At the time they were the largest PC manufacturer in the world by volume.   While we had other customers by this time, Compaq's increasing volumes pushed our yearly dollars shipped over the $4B range.  I was working with someone from RP marketing last year to quantify the total dollars shipped between 1994 and now, and he calculated it at as much as $750 Billion to 1 Trillion dollars.

  11. Why was the idea of context first added to the architecture
    1. Because Fralick wanted to create the concept of pipes to create a Unix style stdin sort of command line interface.   I wanted a sort of seamless connection between data and components, and pipes allowed this. My first target was piping data to the Move component. This command: [select lodnum from invlod where stoloc = 'RECV']|move inventory where dstloc = 'STG01' worked in 1993 in SCO/Sybase and would still work today  - but on a variety of modern platforms.   By creating the idea of Context, we created an incredibly powerful set of capabilities.  Hoefflin's inspired concept of component level triggers   became a simple incremental step once we had context. Though I am still mad that he thought of that before I did.
  12. You cannot do an unqualified update or delete in MOCA because?
    1. It is a pretty unsafe idea
    2. We worked with a guy that accidently wiped out the entire pick table for a 500,000 sq ft running DC (twice in about 2 hours) with an unqualified delete.  We did not want to suffer the same harassment he did.

      Probably A and B are correct although it is mostly due to B.  A particularly pompous project team member  seized up a huge DC with an unqualified delete statement.  While we loved to see this bothersome person squirm, it just created a big mess.  So, when we built the SQL abstraction layer, Mike Verdeyen added this.
  13. Why were there 3 service namespaces (int/var/usr) created from the very beginning of this architecture.
    1. SAI originally sold the WMS via Value Added Reseller (VARs).  The design called for a series of override-able components there was a User level, the VARs had a level and SAI Intrinsics had a level.  Actually,  the initial version of the prototype I took to Holland to demo had this capability in it. It is the original concept of dynamic service substitution.  While MOCA now supports an infinite number of component levels - these  original 3 component levels are in every implementation of the WMS.

  14. We wrestled for a great while with the idea of Pre-Triggers. What was the evolution of this concept?
    1. We first used the concept of pre-conditions to create context to the component then create context based on these pre-conditions.
    2. We allowed you to put the component in at one level and directly reference that same component in another level.
    3. Fralick always had hard time visualizing this due to the implicatins of pre-conditions, so it wasn't until Derek Inksetter took over development of the architecture that we got this straightened out.
    4. We used direct override until Dave Erickson corrected this to make it more architecturally accurate.
      All of the above
  15. What concept did we have to create in order to correctly do MOCA remoting?
    1. Context Normalization.   The idea of a 'normalized context' is a concept developed by Dave Erickson, Derek Inksetter and me specifically to support remote MOCA calls.  It allows us to create a sort of compressed rectangular dataset out of context and pass it to another instance of MOCA.
  16. What was the client framework that proceeded MCS called?
    1. SASI Client Library.  The SASI (pronounced 'Sassy') library was first started by Curt Harmatys and then passed on to Scott Ehlke.  It handled all the GUI client interactions.  Scott really made it into a solid offering.  After we sold to McHugh/Redprairie, he and Terry Casper were the guys who really drove MCS.