SOA is an approach to developing enterprise systems by loosely coupling interoperable services from separate systems to perform discrete tasks. A crucial aspect of SOA is service orchestration, which is the coordination and arrangement of multiple services to create higher-level business services through message exchange according to a predetermined business logic. Service orchestration works through a central messaging engine like an ESB to route and transform messages between services so that composite applications can run as demanded. Mule ESB offers flexibility for service orchestration by allowing the reuse of any service component and message format both within and outside the enterprise.