Abstract
We present the Simple Unified Policy Programming Language (Suppl), a domain-neutral language for stating, executing, and analyzing event-condition-action policies. Suppl uses a novel combination of pure logic programming and disciplined imperative programming features to make it easy for non-expert users to express common policy idioms. The language is strongly typed and moded to allow static detection of common programming errors, and it supports a novel logic-based static analysis that can detect internally inconsistent policies. Suppl has been implemented as a compiler to Prolog and used to build several network security applications in a Java framework.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Barrett, C., Conway, C.L., Deters, M., Hadarean, L., Jovanović, D., King, T., Reynolds, A., Tinelli, C.: CVC4. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 171–177. Springer, Heidelberg (2011)
Bobot, F., Conchon, S., Contejean, E., Iguernelala, M., Lescuyer, S., Mebsout, A.: The Alt-Ergo automated theorem prover (2008), http://alt-ergo.lri.fr/
Bobot, F., Conchon, S., Contejean, E., Lescuyer, S.: Implementing Polymorphism in SMT solvers. In: Intl. Workshop on Satisfiability Modulo Theories (SMT). ACM International Conference Proceedings Series, vol. 367, pp. 1–5 (2008)
Bobot, F., Filliâtre, J.C., Marché, C., Paskevich, A.: Why3: Shepherd your herd of provers. In: Boogie 2011: Workshop on Intermediate Verification Languages, Wrocław, Poland, pp. 53–64 (August 2011)
Boyer, J., Mili, H.: Agile Business Rule Development. Springer (2011)
Chomicki, J., Lobo, J., Naqvi, S.: Conflict resolution using logic programming. IEEE Trans. on Knowl. and Data Eng. 15(1), 244–249 (2003)
Clark, K.L.: Negation as failure. In: Logic and Data Bases, pp. 293–322 (1977)
Damianou, N., Dulay, N., Lupu, E., Sloman, M.: The Ponder policy specification language. In: Sloman, M., Lobo, J., Lupu, E.C. (eds.) POLICY 2001. LNCS, vol. 1995, pp. 18–38. Springer, Heidelberg (2001)
DARPA: Safety On Untrusted Network Devices (SOUND) (2011), Mission-oriented Resilient Clouds (MRC) program: DARPA-BAA-11-55
Dayal, U., Hanson, E.N., Wisdom, J.: Active database systems. In: Modern Database Systems. ACM (1994)
Denti, E., Omicini, A., Ricci, A.: Multi-paradigm Java-Prolog integration in tuProlog. Sci. Comput. Program. 57(2), 217–250 (2005)
Dunlop, N., Indulska, J., Raymond, K.: Methods for conflict resolution in policy-based management systems. In: Intl. Conf. on Enterprise Distributed Object Computing. IEEE (2003)
Frazier, G., Duong, Q., Wellman, M.P., Petersen, E.: Incentivizing responsible networking via introduction-based routing. In: McCune, J.M., Balacheff, B., Perrig, A., Sadeghi, A.-R., Sasse, A., Beres, Y. (eds.) TRUST 2011. LNCS, vol. 6740, pp. 277–293. Springer, Heidelberg (2011)
Garcia de la Banda, M., Stuckey, P.J., Harvey, W., Marriott, K.: Mode checking in HAL. In: Lloyd, J. (ed.) CL 2000. LNCS (LNAI), vol. 1861, pp. 1270–1284. Springer, Heidelberg (2000)
Hinrichs, T.L., Gude, N.S., Casado, M., Mitchell, J.C., Shenker, S.: Practical declarative network management. In: Workshop on Research on Enterprise Networking, WREN 2009, pp. 1–10. ACM (2009)
Jajodia, S., Samarati, P., Subrahmanian, V.S.: A logical language for expressing authorizations. In: IEEE Symp. on Security and Privacy. IEEE (1997)
JBoss Drools Team: Drools documentation (2014), http://docs.jboss.org/drools/release/6.1.0.Final/drools-docs/html_single
Kowalski, R., Kuehner, D.: Linear resolution with selection function. Artificial Intelligence 2, 227–260 (1971)
Lobo, J., Bhatia, R., Naqvi, S.: A policy description language. In: AAAI Conf. on Artificial Intelligence. American Association for Artificial Intelligence (1999)
Milner, R.: A theory of type polymorphism in programming. J. Comput. Syst. Sci. 17, 348–375 (1978)
de Moura, L., Bjørner, N.: Z3: An efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)
Somogyi, Z., Henderson, F., Conway, T.: The execution algorithm of Mercury: An efficient purely declarative logic programming language. Journal of Logic Programming 29(1-3), 17–64 (1996)
Trieu, A., Dockins, R., Tolmach, A.: Conflict analysis for Suppl (in preparation, 2014)
Voellmy, A., Kim, H., Feamster, N.: Procera: A language for high-level reactive network control. In: HotSDN (2012)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Dockins, R., Tolmach, A. (2014). Suppl: A Flexible Language for Policies. In: Garrigue, J. (eds) Programming Languages and Systems. APLAS 2014. Lecture Notes in Computer Science, vol 8858. Springer, Cham. https://doi.org/10.1007/978-3-319-12736-1_10
Download citation
DOI: https://doi.org/10.1007/978-3-319-12736-1_10
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-12735-4
Online ISBN: 978-3-319-12736-1
eBook Packages: Computer ScienceComputer Science (R0)