It has not been that long ago when computers were rarely used for more than typing up a report, calculating numbers in a spreadsheet, and may be sending a file one bit at a time. Today, every Enterprise, from small businesses to large, geographically distributed organizations, rely on computing to get just about everything done. In response to this, software developers flooded the marketplace with products that address every need. However helpful these are, business principals now face new challenges: which of these products fill our needs today and can grow with us tomorrow? Can we configure this software for a better fit, do we adjust our business process, or are we better off just building our own? How do we implement a complex software systems and stay focused on the day to day business? How do we get one software package, say our sales system which we bought from one vendor, to talk to another, say accounting, which came from a different vendor? And how do we make these systems accessible to a more mobile workforce yet keep them secure and protected from intrusion and hackers?