Skip to main content
Log in

Non-local configuration of component interfaces by constraint satisfaction

  • Published:
Constraints Aims and scope Submit manuscript

Abstract

Service-oriented computing is the paradigm that utilises services as fundamental elements for developing applications. Service composition, where data consistency becomes especially important, is still a key challenge for service-oriented computing. We maintain that there is one aspect of Web service communication on the data conformance side that has so far escaped the researchers attention. Aggregation of networked services gives rise to long pipelines, or quasi-pipeline structures, where there is a profitable form of inheritance called flow inheritance. In its presence, interface reconciliation ceases to be a local procedure, and hence it requires distributed constraint satisfaction of a special kind. We propose a constraint language for this, and present a solver which implements it. In addition, our approach provides a binding between the language and C++, whereby the assignment to the variables found by the solver is automatically translated into a transformation of C++ code. This makes the C++ Web service context compliant without any further communication. Besides, it uniquely permits a very high degree of flexibility of a C++ coded Web service without making public any part of its source code.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17

Similar content being viewed by others

Notes

  1. A language used for formal specification of constraints in SMT solvers (such as Z3, for instance [17]).

  2. We use “subtyping” to refer to a relation on algebraic terms, where covariance is a feature which allows to substitute a subtype with supertype, and contravariance is a feature which allows to substitute a supertype with subtype. More details on covariance and contravariance can be found, for example, in [13].

  3. Such elements are often used in data-flow algorithms. One of the examples is the algorithm for constraint propagation, which is presented in [10].

  4. Recall that nil denotes the empty record { }; and none denotes the empty choice (: :) as it was defined in Section 4.2. That is, nil is the maximum element for down-coerced terms, and none is the minimal element for up-coerced terms.

  5. See, for example, [34].

  6. This example is used in Caffe tutorial: http://caffe.berkeleyvision.org/tutorial/forward_backward.html.

  7. In this example, “,” is replaced by the COMMA macro due to limitations of the C preprocessor

  8. Generation of such preprocessing function has not been done as part of this work though.

  9. The existing implementation of the configuration mechanism lacks such integration.

References

  1. Allam, D., Grall, H., & Royer, J.-C. (2013). From object-oriented programming to service-oriented computing: how to improve interoperability by preserving subtyping. In WEBIST 2013-9th international conference on web information systems and technologies (pp. 169–173). SciTePress Digital Library.

  2. Andrikopoulos, V., Benbernou, S., & Papazoglou, M. P. (2012). On the evolution of services. IEEE Transactions on Software Engineering, 38(3), 609–628.

    Article  Google Scholar 

  3. Apache. (2011). Apache Thrift. https://thrift.apache.org/.

  4. Barrett, C., Fontaine, P., & Tinelli, C. (2010). . The SMT-LIB standard—version, 2, 5.

    Google Scholar 

  5. Bodirsky, M. (2012). Complexity classification in infinite-domain constraint satisfaction. CoRR, arXiv:1201.0856.

  6. Bodirsky, M., Macpherson, H. D., & Thapper, J. (2013). Constraint satisfaction tractability from semi-lattice operations on infinite sets. ACM Transactions on Computational Logic, 14(4), 30:1–30:19.

    Article  MathSciNet  Google Scholar 

  7. Bono, V., Bugliesi, M., Dezani-Ciancaglini, M., & Liquori, L. (1997). Subtyping constraints for incomplete objects (extended abstract). In TAPSOFT’97: theory and practice of software development 7th international joint conference CAAP/FASE, Lille, France, April 14–18, 1997. Proceedings (pp. 465–477).

  8. Bulatov, A.A. (2006). A dichotomy theorem for constraint satisfaction problems on a 3-element set. Journal of ACM, 53(1), 66–120.

    Article  MathSciNet  Google Scholar 

  9. Bulatov, A. A. (2019). Constraint satisfaction problems over semilattice block mal’tsev algebras. Information and Computation 268.

  10. Callahan, D., Cooper, K.D., Kennedy, K., & Torczon, L. (1986). Interprocedural constant propagation. In ACM SIGPLAN notices (Vol. 21, pp. 152–161). ACM.

  11. Carbone, M., Honda, K., & Yoshida, N. (2007). Structured communication-centred programming for web services. In Programming languages and systems (pp. 2–17). Berlin: Springer.

  12. Carpineti, S., & Laneve, C. (2006). A basic contract language for web services. In Programming languages and systems (pp. 197–213). Berlin: Springer.

  13. Castagna, G. (2018). Covariance and controvariance: a fresh look at an old issue (a primer in advanced type systems for learning functional programmers). CoRR, arXiv:1809.01427.

  14. Castagna, G., Gesbert, N., & Padovani, L. (2009). A theory of contracts for web services. ACM Transactions on Programming Languages and Systems (TOPLAS), 31(5), 19.

    Article  Google Scholar 

  15. Cohen, D. A., Cooper, M. C., Jeavons, P., & Krokhin, A. A. (2006). The complexity of soft constraint satisfaction. Artificial Intelligence, 170(11), 983–1016.

    Article  MathSciNet  Google Scholar 

  16. Creignou, N., Kolaitis, P. G., & Vollmer, H. (Eds.). (2008). Boolean constraint satisfaction problems: when does post’s lattice help? Berlin: Springer.

    MATH  Google Scholar 

  17. De Moura, L., & Bjørner, N. (2008). Z3: an efficient SMT solver. In Tools and algorithms for the construction and analysis of systems (pp. 337–340). Berlin: Springer.

  18. Dechter, R., & Pearl, J. (1987). Network-based heuristics for constraint-satisfaction problems. Artificial Intelligence, 34(1), 1–38.

    Article  MathSciNet  Google Scholar 

  19. Ferrara, A. (2004). Web services: a process algebra approach. In Service-oriented computing—ICSOC 2004, second international conference, New York, November 15–19, 2004. Proceedings (pp. 242–251).

  20. Fu, L., Kume, T., & Nishino, F. (2009). Web orchestration: customization and sharing tool for web information. In Human centered design, first international conference, HCD 2009, held as part of HCI international 2009, San Diego,, July 19–24, 2009. Proceedings (pp. 689–696).

  21. Google. (2008). Protocol buffers https://developers.google.com/protocol-buffers.

  22. Grelck, C., Scholz, S.-B., & Shafarenko, A. (2008). A gentle introduction to S-Net: typed stream processing and declarative coordination of asynchronous components. Parallel Processing Letters, 18(02), 221–237.

    Article  MathSciNet  Google Scholar 

  23. Grelck, C., Scholz, S. -B., & Shafarenko, A. (2010). Asynchronous stream processing with s-net. International Journal of Parallel Programming, 38 (1), 38–67.

    Article  Google Scholar 

  24. He, K., Zhang, X., Ren, S. h., & Sun, J. (2016). Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 770–778).

  25. Honda, K., Yoshida, N., & Carbone, M. (2008). Multiparty asynchronous session types. SIGPLAN Notices, 43(1), 273–284.

    Article  Google Scholar 

  26. Jeavons, P., Cohen, D. A., & Gyssens, M. (1997). Closure properties of constraints. Journal of ACM, 44(4), 527–548.

    Article  MathSciNet  Google Scholar 

  27. Jia, Y., Shelhamer, E., Donahue, J., Karayev, S., Long, J., Girshick, R., Guadarrama, S., & Darrell, T. (2014). Caffe: convolutional architecture for fast feature embedding. In Proceedings of the 22nd ACM international conference on multimedia (pp. 675–678). ACM.

  28. Kildall, G.A. (1973). A unified approach to global program optimization. In Symposium on principles of programming languages (pp. 194–206). ACM.

  29. Ladkin, P. B., & Maddux, R. D. (1994). On binary constraint problems. Journal of ACM, 41(3), 435–469.

    Article  MathSciNet  Google Scholar 

  30. Lämmel, R., & Meijer, E. (2007). Revealing the X/O impedance mismatch. In Datatype-generic programming (pp. 285–367). Berlin: Springer.

  31. Laneve, C., & Padovani, L. (2007). The must preorder revisited. In International conference on concurrency theory (pp. 212–225). Berlin: Springer.

  32. Lee, T. H. Y., & Cheung, D. W. (2010). Formal models and algorithms for XML data interoperability. Journal of Computing Science and Engineering, 4 (4), 313–349.

    Article  Google Scholar 

  33. Mackworth, A. K. (1977). Consistency in networks of relations. Artificial Intelligence, 8(1), 99–118.

    Article  MathSciNet  Google Scholar 

  34. McKenzie, R. N., McNulty, G. F., & Taylor, W. F. (1987). Algebras, lattices and varieties (Vol. 1). Monterey: Wadsworth and Brooks.

    MATH  Google Scholar 

  35. Mentzas, G. (2009). Semantic enterprise application integration for business processes: service-oriented frameworks. IGI Global.

  36. Montanari, U. (1974). Networks of constraints: fundamental properties and applications to picture processing. Information Science, 7, 95–132.

    Article  MathSciNet  Google Scholar 

  37. Peltz, C. (2003). Web services orchestration and choreography. IEEE Computer, 36(10), 46–52.

    Article  Google Scholar 

  38. Pierce, B. C. (1997). Intersection types and bounded polymorphism. Mathematical Structures in Computer Science, 7(02), 129–193.

    Article  MathSciNet  Google Scholar 

  39. Rossi, F., van Beek, P., & Walsh, T. (Eds.). (2006). Handbook of constraint programming, volume 2 of foundations of artificial intelligence. Elsevier.

  40. Salaün, G., Bordeaux, L., & Schaerf, M. (2006). Describing and reasoning on web services using process algebra. IJBPIM, 1(2), 116–128.

    Article  Google Scholar 

  41. Scholz, S. -B. (2003). Single assignment c: efficient support for high-level array operations in a functional setting. Journal of functional programming, 13 (06), 1005–1059.

    Article  MathSciNet  Google Scholar 

  42. Sheng, Q. Z., Qiao, X., Vasilakos, A. V., Szabo, C., Bourne, S., & Xu, X. (2014). Web services composition: a decade’s overview. Information Sciences, 280, 218–238.

    Article  Google Scholar 

  43. Slee, M., Agarwal, A., & Kwiatkowski, M. (2007). Thrift: scalable cross-language services implementation. Facebook White Paper, 5(8).

  44. Tarski, A. (1941). On the calculus of relations. Journal of Symbolic Logic, 6(3), 73–89.

    Article  MathSciNet  Google Scholar 

  45. Tarski, A. (1955). A lattice-theoretical fixpoint theorem and its applications. Pacific Journal of Mathematics, 5(2), 285–309.

    Article  MathSciNet  Google Scholar 

  46. Verma, A., Pedrosa, L., Korupolu, M., Oppenheimer, D., Tune, E., & Wilkes, J. (2015). Large-scale cluster management at google with borg. In Proceedings of the tenth European conference on computer systems (p. 18). ACM.

  47. Web Services Choreography Working Group, & et al. (2012). Web services choreography description language (WS-CDL). https://www.w3.org/TR/ws-cdl-10/.

  48. Zaichenkov, P., Tveretina, O., & Shafarenko, A. (2016). A constraint satisfaction method for configuring non-local service interfaces. In Integrated formal methods - 12th international conference, IFM 2016, Reykjavik, June 1–5, 2016. Proceedings (pp. 474–488).

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Olga Tveretina.

Additional information

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Tveretina, O., Zaichenkov, P. & Shafarenko, A. Non-local configuration of component interfaces by constraint satisfaction. Constraints 25, 121–159 (2020). https://doi.org/10.1007/s10601-020-09309-y

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10601-020-09309-y

Keywords

Navigation