| Software-defined network (SDN) offers an excellent solution tonetwork load balancing for its programmability. However existing networkprogramming languages (e.g., Frenetic, Procera and Flog) for SDN are allbased on event-stream model, and lay emphasis on describing the casualrelationship between event occurrence and action execution rather than theway actions are executed, which fails to reflect the essence ofload-balancing policies: executing actions based on selections, and thus notsuitable for expressing load-balancing policies.Based on this situation, this paper presents a network programminglanguage LOBA to naturally express load-balancing policies, whichintroduces selectors beside predicates and actions in traditional languages.Selections can be made based on flows described by predicates and thenused in action execution. This paper also designs and implements anapplication framework called LOBAFX as the developing and runningplatform for LOBA applications.The main features of LOBA include:(I) enabling high-levelexpression of load-balancing policies without understanding the low-leveldetails;(II) modular and compositional program construction;(III)extensibility while keeping the consistency in grammars.The primary work of this paper include:(I) design of LOBA andseveral built-in network primitives;(II) design of the overall architectureof LOBAFX and its components;(III) implementation of both LOBA andLOBAFX.Finally through several realistic experiments, this paper proves that:(I)the research work of this paper has practical value;(II) the design of LOBA is scientific as a complex load-balancing case only involves lessthan15lines of code;(III) LOBAFX is efficient as the system latency onlyincreases by no more than10%compared with the implementationsdirectly based on network operating systems. |