Refinement types in Jolie

Jolie is the first language for microservices and it is currently dynamically type checked. This paper considers the opportunity to integrate dynamic and static type checking with the introduction of refinement types, verified via SMT solver. The integration of the two aspects allows a scenario where the static verification of internal services and the dynamic verification of (potentially malicious) external services cooperates in order to reduce testing effort and enhancing security.

[1]  Fabrizio Montesi,et al.  Process-aware web programming with Jolie , 2013, SAC '13.

[2]  Manuel Mazzara,et al.  A pi-calculus based semantics for WS-BPEL , 2007, J. Log. Algebraic Methods Program..

[3]  Stephen N. Freund,et al.  Sage: Unified Hybrid Checking for First-Class Types, General Refinement Types, and Dynamic (Extended Report) , 2007 .

[4]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[5]  Ivan Lanese,et al.  AIOCJ: A Choreographic Framework for Safe Adaptive Distributed Applications , 2014, SLE.

[6]  Frank Pfenning,et al.  Refinement types for ML , 1991, PLDI '91.

[7]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[8]  Roberto Gorrieri,et al.  SOCK : A calculus for service oriented computing , 2006 .

[9]  Cormac Flanagan,et al.  Hybrid type checking , 2006, POPL '06.

[10]  Fabrizio Montesi,et al.  Programming Services with Correlation Sets , 2011, ICSOC.

[11]  Joshua Dunfield,et al.  A unified system of type refinements , 2007 .

[12]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[13]  Manuel Mazzara,et al.  Toward Design, Modelling and Analysis of Dynamic Workflow Reconfigurations - A Process Algebra Perspective , 2011, WS-FM.

[14]  Andrew D. Gordon,et al.  Semantic subtyping with an SMT solver , 2010, ICFP '10.

[15]  David Detlefs,et al.  Simplify: a theorem prover for program checking , 2005, JACM.

[16]  Fabrizio Montesi,et al.  Deadlock-freedom-by-design: multiparty asynchronous global programming , 2013, POPL.

[17]  Gianluigi Zavattaro,et al.  Service-Oriented Programming with Jolie , 2014, Web Services Foundations.

[18]  Andrew D. Gordon,et al.  Refinement Types for Secure Implementations , 2008, 2008 21st IEEE Computer Security Foundations Symposium.

[19]  Ivan Lanese,et al.  Dynamic Error Handling in Service Oriented Applications , 2009, Fundam. Informaticae.

[20]  Fabrizio Montesi,et al.  Data-Driven Workflows for Microservices: Genericity in Jolie , 2015, 2016 IEEE 30th International Conference on Advanced Information Networking and Applications (AINA).