Achieves integration through several different types of software that sit between and provide connectivity for two or more software applications and translate information between disparate (separate) _________ systems.