The process-oriented event-driven transaction systems (POETS) architecture introduced by Henglein et al. is a novel software architecture for enterprise resource planning (ERP) systems. POETS employs a pragmatic separation between (i) transactional data, that is, what has happened; (ii) reports, that is, what can be derived from the transactional data; and (iii) contracts, that is, which transactions are expected in the future.Moreover, POETS applies domain-specific languages (DSLs) for specifying reports and contracts, in order to enable succinct declarative specifications as well as rapid adaptability and customisation. In this paper we present an implementation of a generalised and extended variant of the POETS architecture. The extensions amount to a customisable data model based on nominal subtyping; support for run-time changes to the data model, reports and contracts, while retaining full auditability; and support for referable data that may evolve over time, also while retaining full auditability as well as referential integrity. Besides the revised architecture, we present the DSLs used to specify data definitions, reports, and contracts respectively. Finally, we illustrate a use case scenario, which we implemented in a trial for a small business.


Enterprise System Record Type Enterprise Resource Planning Enterprise Resource Planning System Rule Engine 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Andersen, J., Elsborg, E., Henglein, F., Simonsen, J.G., Stefansen, C.: Compositional specification of commercial contracts. International Journal on Software Tools for Technology Transfer (STTT) 8(6), 485–516 (2006)CrossRefGoogle Scholar
  2. 2.
    Bahr, P., Hvitved, T.: Compositional data types. In: Proc. 7th ACM SIGPLAN Workshop on Generic Programming (WGP), pp. 83–94. ACM (2011)Google Scholar
  3. 3.
    Bahr, P., Hvitved, T.: Parametric compositional data types. In: Proc. Mathematically Structured Functional Programming, MSFP (2012)Google Scholar
  4. 4.
    Bernstein, A.J., Kifer, M.: Databases and Transaction Processing: An Application-Oriented Approach, 1st edn. Addison-Wesley Longman Publishing Co., Inc., Boston (2001)Google Scholar
  5. 5.
    Fuchs, N.E., Kaljurand, K., Kuhn, T.: Attempto Controlled English for Knowledge Representation. In: Baroglio, C., Bonatti, P.A., Małuszyński, J., Marchiori, M., Polleres, A., Schaffert, S. (eds.) Reasoning Web. LNCS, vol. 5224, pp. 104–124. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  6. 6.
    Henglein, F., Larsen, K.F., Simonsen, J.G., Stefansen, C.: POETS: Process-oriented event-driven transaction systems. Journal of Logic and Algebraic Programming 78(5), 381–401 (2009)CrossRefzbMATHGoogle Scholar
  7. 7.
    Hvitved, T.: A survey of formal languages for contracts. In: Fourth Workshop on Formal Languages and Analysis of Contract–Oriented Software (FLACOS 2010), pp. 29–32 (2010)Google Scholar
  8. 8.
    Hvitved, T.: Contract Formalisation and Modular Implementation of Domain-Specific Languages. PhD thesis, Department of Computer Science, University of Copenhagen (DIKU) (November 2011)Google Scholar
  9. 9.
    Hvitved, T., Klaedtke, F., Zălinescu, E.: A trace-based model for multiparty contracts. The Journal of Logic and Algebraic Programming 81(2), 72–98 (2012); Preliminary version presented at 4th Workshop on Formal Languages and Analysis of Contract-Oriented Software (FLACOS 2010) (2010)Google Scholar
  10. 10.
    Thomsen, M.J.: Using Controlled Natural Language for specifying ERP Requirements. Master’s thesis, University of Copenhagen, Department of Computer Science (2010)Google Scholar
  11. 11.
    Liu, Y.A.: Efficiency by incrementalization: An introduction. Higher-Order and Symbolic Computation 13(4) (2000)Google Scholar
  12. 12.
    Margaria, T., Steffen, B.: Business process modelling in the jabc: the one-thing-approach. In: Handbook of Research on Business Process Modeling, pp. 1–26. IGI Global (2009)Google Scholar
  13. 13.
    McCarthy, W.E.: The REA Accounting Model: A Generalized Framework for Accounting Systems in a Shared Data Environment. The Accounting Review LVII(3), 554–578 (1982)Google Scholar
  14. 14.
    Murthy, C.: Advanced programming language design in enterprise software: A lambda-calculus theorist wanders into a datacenter. In: Proc. ACM Symp. on Principles of Programming Languages (POPL), ACM SIGPLAN Notices, vol. 42(1), pp. 263–264. ACM (2007)Google Scholar
  15. 15.
    Neubauer, J., Steffen, B.: Plug-and-play higher-order process integration. Computer 46(11), 56–62 (2013)CrossRefGoogle Scholar
  16. 16.
    Neubauer, J., Steffen, B., Frohme, M., Margaria, T.: Prototype-driven development of web applications with dywa. In: These Proceedings (2014)Google Scholar
  17. 17.
    Neubauer, J., Steffen, B., Margaria, T.: Higher-order process modeling: Product-lining, variability modeling and beyond. Electronic Proceedings in Theoretical Computer Science (EPTCS) 129, 259–283 (2013)CrossRefGoogle Scholar
  18. 18.
    Nissen, M.: Reporting technologies. In: 2nd 3gERP Workshop, Frederiksberg, Denmark (2008)Google Scholar
  19. 19.
    Nissen, M., Larsen, K.F.: FunSETL — Functional Reporting for ERP Systems. In: Chitil, O. (ed.) 19th International Symposium on Implementation and Application of Functional Languages, IFL 2007, pp. 268–289 (2007)Google Scholar
  20. 20.
    Ohori, A.: A Polymorphic Record Calculus and Its Compilation. ACM Trans. Program. Lang. Syst. 17, 844–895 (1995)CrossRefGoogle Scholar
  21. 21.
    Paige, R., Koenig, S.: Finite differencing of computable expressions. ACM TOPLAS 4(3), 402–454 (1982)CrossRefzbMATHGoogle Scholar
  22. 22.
    Pierce, B.C.: Types and Programming Languages. The MIT Press (2002)Google Scholar
  23. 23.
    Steffen, B., Margaria, T., Nagel, R., Jörges, S., Kubczak, C.: Model-driven development with the jABC. In: Bin, E., Ziv, A., Ur, S. (eds.) HVC 2006. LNCS, vol. 4383, pp. 92–108. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  24. 24.
    Terry, D., Goldberg, D., Nichols, D., Oki, B.: Continuous queries over append-only databases. In: Proc. SIGMOD Conference, vol. 21(2). ACM (1992)Google Scholar
  25. 25.
    Thomsen, M.J.: Using controlled natural language for specifying ERP requirements. Master’s thesis, Department of Computer Science (DIKU), University of Copenhagen (July 2010)Google Scholar
  26. 26.
    Wadler, P.: Comprehending monads. Mathematical Structures in Computer Science 2(04), 461–493 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  27. 27.
    Ward, M.P.: Language-oriented programming. Software-Concepts and Tools 15(4), 147–161 (1994)Google Scholar
  28. 28.
    Weygandt, J.J., Kieso, D.E., Kimmel, P.D.: Financial Accounting, with Annual Report. Wiley (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  • Jesper Andersen
    • 2
  • Patrick Bahr
    • 1
  • Fritz Henglein
    • 1
  • Tom Hvitved
    • 1
  1. 1.Department of Computer ScienceUniversity of CopenhagenCopenhagenDenmark
  2. 2.Configit A/SCopenhagenDenmark

Personalised recommendations