http://stratos.cs.wisc.edu/docs/stratos_technical_report.pdf
service composition and provisioning … efficiently compose and provision in-the-cloud middleboxes … Stratos, an orchestration layer for virtual middleboxes
Stratos ensures efficient and scalble provisioning by combining middlebox-specific traffic engineering placement, and horizontal scaling strategies
MBox composition (also referred to as service chaining [42]local post)
… the stateful nature of MBoxes coupled with the complexity of packet mangling operations they perform (e.g., NATs rewrite headers and proxies terminate sessions) make it difficult to ensure forwarding correctness and efficiency.
In contrast to prior SDN solutions that require expensive and potentially inaccurate in-controller correlation or changes to MBoxes [26, 41], Stratos engineers a simpler solution by marginally over-provisioning an MBox chain to explicitly avoid potential steering ambiguity in the presence of mangling MBoxes (§4).
We have implemented a fully featured Stratos prototype (≈12K lines of Java code), including a forwarding controller written as a FloodLight module [5] and a stand-alone resource controller. We evaluate this prototype in a 36 machine testbed using a variety of MBox chains and synthetic request workloads. We also simulate Stratos to understand its properties at larger scale. We find that our composition mechanisms impose a 1ms overhead on the completion time per flow for each mangling MBox included in a chain. By construction, Stratos always maintains correct composition, whereas state-of-the-art techniques have ≈19% error rate in the presence of mangling and dynamic provisioning [41].