Computer Science - Research and Development

, Volume 33, Issue 1–2, pp 93–103 | Cite as

Automated deserializer generation from CIM ontologies: CIM\({+}{+}\)—an easy-to-use and automated adaptable open-source library for object deserialization in C\({+}{+}\) from documents based on user-specified UML models following the Common Information Model (CIM) standards for the energy sector

  • Lukas RazikEmail author
  • Markus Mirz
  • Daniel Knibbe
  • Stefan Lankes
  • Antonello Monti
Special Issue Paper


The increasing complexity of ICT systems in smart grids requires that all actors improve their interoperability. To this aim, IEC 61970/61968 specify the Common Information Model (CIM) which describes terms in the energy sector and relations between them. One of the key features of CIM is its object-oriented design based on the Unified Modeling Language (UML). This makes CIM easy to maintain and extensible by visual UML editors leading to a continuous standardization process keeping up with new developments. But this means that CIM based software must be kept up-to-date as well. Therefore, this paper presents our Model-Driven Architecture (MDA) based approach with which CIM, as specified by a visual UML editor, can be mapped to a compilable C\({+}{+}\) codebase. Moreover, it shows how this codebase can be used for an automated generation of a C\({+}{+}\) objects deserializer from CIM based documents following the UML specification. All presented approaches are implemented in an open-source project called CIM\({+}{+}\) and evaluated on a real-world use case.


CIM MDA Smart grids Energy Ontology Deserialization 


  1. 1.
    Aho A (2003) Compilers: principles, techniques and tools (for Anna University), 2/e. Pearson, New DelhiGoogle Scholar
  2. 2.
    Alexandrescu A (2001) Modern C\({+}{+}\) design: generic programming and design patterns applied. Addison-Wesley, BostonGoogle Scholar
  3. 3.
    Allemang D, Hendler J (2011) Semantic web for the working ontologist: effective modeling in RDFS and OWL. Elsevier, AmsterdamGoogle Scholar
  4. 4.
    Becker D (2010) Harmonizing the international electrotechnical commission common information model (cim) and 61850. Electric Power Research Institute (EPRI), Tech. Rep 1020098Google Scholar
  5. 5.
    Beckett D, Redland RDF libraries. Accessed 19 May 2017
  6. 6.
    Boulanger JL (2013) Static analysis of software: the abstract interpretation. Wiley, New YorkGoogle Scholar
  7. 7.
    Bray T, Paoli J, Sperberg-McQueen CM, Maler E, Yergeau F (1997) Extensible markup language (XML). World Wide Web J 2(4):27–66Google Scholar
  8. 8.
    Chun W (2001) Core python programming, vol 1. Prentice Hall Professional, Englewood CliffsGoogle Scholar
  9. 9.
    CIM User Group, Home—CIMug. Accessed 19 May 2017
  10. 10.
    Cumming M, libxml\({+}{+}\)—an XML parser for C\({+}{+}\). Accessed 19 May 2017
  11. 11.
    David FS (2003) Model driven architecture: applying MDA to enterprise computingGoogle Scholar
  12. 12.
    Dawes B, Filesystem home— Accessed 19 May 2017
  13. 13.
    Demers FN, Malenfant J (1995) Reflection in logic, functional and object-oriented programming: a short comparative study. Proceedings of the IJCAI 95:29–38Google Scholar
  14. 14.
    Diehl S (2007) Software visualization: visualizing the structure, behaviour, and evolution of software. Springer, BerlinzbMATHGoogle Scholar
  15. 15.
    Duffy EB, Malloy BA, Schaub S (2014) Exploiting the clang AST for analysis of C\({+}{+}\) applications. In: Proceedings of the 52nd annual ACM southeast conferenceGoogle Scholar
  16. 16.
    Dutta P, Kezunovic M (2012) Unified representation of data and model for sparse measurement based fault location. In: Power and energy society general meeting, 2012 IEEE, pp 1–8. IEEEGoogle Scholar
  17. 17.
    Exel L, Felgner F, Frey G (2015) Multi-domain modeling of distributed energy systems—the MOCES approach. In: IEEE international conference on smart grid communications (SmartGridComm), 2015, pp 774–779. IEEEGoogle Scholar
  18. 18.
    FEIN Aachen eV, Doxygen generated webpages of CIM\(++\) Adapted CIM_SINERGIEN Codebase: BatteryStorage Class Reference. Accessed 14 Aug 2017
  19. 19.
    FEIN Aachen eV, Doxygen generated webpapes of CIM\(++\) adapted CIM_SINERGIEN Codebase. Accessed 14 Aug 2017
  20. 20.
    Fousse L, Hanrot G, Lefèvre V, Pélissier P, Zimmermann P, MPFR: a multiple-precision binary floating-point library with correct rounding. In: ACM transactions on mathematical software (TOMS)Google Scholar
  21. 21.
    Fowler M (2002) Patterns of enterprise application architecture. Addison-Wesley Longman Publishing Co., Inc, BostonGoogle Scholar
  22. 22.
    Friesen J (2016) Java XML and JSON. Apress, BerkelyCrossRefGoogle Scholar
  23. 23.
    Fritzson P (2010) Principles of object-oriented modeling and simulation with Modelica 2.1. Wiley, New YorkCrossRefGoogle Scholar
  24. 24.
    Ga D, Djuric D, Deved V et al (2006) Model driven architecture and ontology development. Springer, BerlinGoogle Scholar
  25. 25.
    Haw SC, Rao GRK (2007) A comparative study and benchmarking on XML parsers. In: The 9th international conference on advanced communication technology, vol 1, pp 321–325. IEEEGoogle Scholar
  26. 26.
    Henney K, Chapter 5. Boost.Any. Accessed 19 May 2017
  27. 27.
    Higgins J, Arabica. Accessed 19 May 2017
  28. 28.
    IEC (2006) IEC 61970-501:2006 Energy management system application program interface (EMS-API)—part 501: common information model resource description framework (CIM RDF) schemaGoogle Scholar
  29. 29.
    IEC (2012) IEC 61968-11:2013 Application integration at electric utilities—system interfaces for distribution management—part 11: common information model (CIM) extensions for distributionGoogle Scholar
  30. 30.
    IEC (2012) IEC 61970-301:2012 Energy management system application program interface (EMS-API)—part 301: common information model (CIM) baseGoogle Scholar
  31. 31.
    IEC (2014) IEC 62325-301:2014 Framework for energy market communications—part 301: common information model (CIM) extensions for marketsGoogle Scholar
  32. 32.
    IEC (2016) IEC 61970-552:2016 Energy management system application program interface (EMS-API)—part 552: CIMXML model exchange formatGoogle Scholar
  33. 33.
    IEC (2016) IEC/TR 62357-1:2016 Power systems management and associated information exchange—part 1: reference architectureGoogle Scholar
  34. 34.
    IEC, IEC smart grid—IEC standards. Accessed 19 May 2017
  35. 35.
    IEC (2017) IEC TS 62361-102 ED1 Power systems management and associated information exchange—interoperability in the long term—part 102: CIM—IEC 61850 harmonizationGoogle Scholar
  36. 36.
    ISO (2014) ISO/IEC JTC 1/SC 22/WG 21 N4100 programming languages—C\({+}{+}\)—file system technical specificationGoogle Scholar
  37. 37.
    Jena A, Apache Jena—Home. Accessed 19 May 2017
  38. 38.
    Kastens U, Waite WM, Sloane AM (2007) Generating software from specifications. Jones & Bartlett Learning, BurlingtonGoogle Scholar
  39. 39.
    Kollmann R, Selonen P, Stroulia E, Systa T, Zundorf A (2002) A study on the current state of the art in tool-supported UML-based static reverse engineering. In: Ninth working conference on reverse engineering, 2002. Proceedings, pp 22–32. IEEEGoogle Scholar
  40. 40.
    Kovse J, Härder T (2002) Generic XMI-based UML model transformations. In: Object-oriented information systems, pp 183–190Google Scholar
  41. 41.
    Krüger G, Hansen H (2014) Java-programmierung—Das Handbuch zu Java 8. O’Reilly GermanyGoogle Scholar
  42. 42.
    Kuntschke R, Winter M, Glomb C, Specht M (2016) Message-oriented machine-to-machine communication in smart grids. Comput Sci Res Dev 1–15Google Scholar
  43. 43.
    Lee B, Kim DK (2017) Harmonizing IEC 61850 and CIM for connectivity of substation automation. Comput Stand Interfaces 50:199–208CrossRefGoogle Scholar
  44. 44.
    Lee B, Kim DK, Yang H, Jang H, Hong D, Falk H (2015) Unifying data types of IEC 61850 and CIM. IEEE Trans Power Syst 30(1):448–456CrossRefGoogle Scholar
  45. 45.
    Lincoln R, PyCIM—python implementation of the common information model. Accessed 19 May 2017
  46. 46.
    Maeda K (2012) Performance evaluation of object serialization libraries in XML, JSON and binary formats. In: Second international conference on digital information and communication technology and it’s applications (DICTAP), 2012, pp. 177–182. IEEEGoogle Scholar
  47. 47.
    Mago NV, Moseley JD, Sarma N (2013) A methodology for modeling telemetry in power systems models using iec-61968/61970. In: Innovative smart grid technologies-Asia (ISGT Asia), 2013 IEEE, pp 1–6. IEEEGoogle Scholar
  48. 48.
    McMorran AW (2007) An introduction to IEC 61970–301 & 61968–11: the common information model. Univ Strathclyde 93:124Google Scholar
  49. 49.
    Mercurio A, Di Giorgio A, Cioci P (2009) Open-source implementation of monitoring and controlling services for EMS/SCADA systems by means of web services—IEC 61850 and IEC 61970 standards. IEEE Trans Power Deliv 24(3):1148–1153CrossRefGoogle Scholar
  50. 50.
    Mirz M, Netze L, Monti A (2016) A multi-level approach to power system modelica models. In: 2016 IEEE 17th workshop on control and modeling for power electronics (COMPEL), pp 1–7. IEEEGoogle Scholar
  51. 51.
    Molitor C, Groß S, Zeitz J, Monti A (2014) MESCOS—a multienergy system cosimulator for city district energy systems. IEEE Trans. Ind. Inform. 10(4):2247–2256CrossRefGoogle Scholar
  52. 52.
    Nickel UA, Niere J, Wadsack JP, Zündorf A (2000) Roundtrip engineering with FUJABA. In: Proceedings of the 2nd workshop on software-reengineering (WSR), August. CiteseerGoogle Scholar
  53. 53.
    Pan JZ (2009) Resource description framework. In: Handbook on ontologies, pp 71–90. Springer, BerlinGoogle Scholar
  54. 54.
    Reussner RH, Becke S, Happe J, Heinrich R, Koziolek A, Koziolek H, Kramer M (2016) Modeling and simulating software architectures: the Palladio approach. MIT Press, CambridgeGoogle Scholar
  55. 55.
    Rumbaugh J, Jacobson I, Booch G (2004) Unified modeling language reference manual, 2nd edn. Pearson Higher Education, LondonGoogle Scholar
  56. 56.
    Sadovykh A, Vigier L, Gomez E, Hoffmann A, Grossmann J, Estekhin O (2009) On study results: round trip engineering of space systems. In: European conference on model driven architecture-foundations and applications, pp 265–276. Springer, BerlinGoogle Scholar
  57. 57.
    Santodomingo R, Rodríguez-Mondéjar J, Sanz-Bobi M (2010) Ontology matching approach to the harmonization of CIM and IEC 61850 standards. In: 2010 First IEEE international conference on smart grid communications (SmartGridComm), pp 55–60. IEEEGoogle Scholar
  58. 58.
    Slominski A (2001) Design of a pull and push parser system for streaming XML. Tech. rep., Technical Report TR-550, Indiana UniversityGoogle Scholar
  59. 59.
    Štuikys V, Damaševičius R (2012) Meta-programming and model-driven meta-program development: principles, processes and techniques, vol 5. Springer, BerlinGoogle Scholar
  60. 60.
    Surhone L, Timpledon M, Marseken S (2010) Template processor. Betascript PublishingGoogle Scholar
  61. 61.
    The LLVM Foundation, The LLVM compiler infrastructure project. Accessed 19 May 2017
  62. 62.
    Uslar M, Specht M, Rohjans S, Trefke J, González JM (2012) The common information model CIM: IEC 61968/61970 and 62325—a practical introduction to the CIM. Springer, BerlinCrossRefGoogle Scholar
  63. 63.
    van der Spek O, C\({+}{+}\) CTemplate system. Accessed 19 May 2017
  64. 64.
    van Heesch D, Doxygen: main page. Accessed 19 May 2017
  65. 65.
    Wei S, Xiangnan W, Houji C, Guowei P (2007) Multi-agent architecture of energy management system based on IEC 61970 CIM. In: Power engineering conference, 2007. IPEC 2007. International, pp 1366–1370. IEEEGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany 2017

Authors and Affiliations

  • Lukas Razik
    • 1
    Email author
  • Markus Mirz
    • 1
  • Daniel Knibbe
    • 1
  • Stefan Lankes
    • 1
  • Antonello Monti
    • 1
  1. 1.Institute for Automation of Complex Power SystemsRWTH Aachen UniversityAachenGermany

Personalised recommendations