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

Abstract

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.

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

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Notes

  1. 1.

    http://fein-aachen.org/projects/cimpp.

References

  1. 1.

    Aho A (2003) Compilers: principles, techniques and tools (for Anna University), 2/e. Pearson, New Delhi

  2. 2.

    Alexandrescu A (2001) Modern C\({+}{+}\) design: generic programming and design patterns applied. Addison-Wesley, Boston

    Google Scholar 

  3. 3.

    Allemang D, Hendler J (2011) Semantic web for the working ontologist: effective modeling in RDFS and OWL. Elsevier, Amsterdam

    Google Scholar 

  4. 4.

    Becker D (2010) Harmonizing the international electrotechnical commission common information model (cim) and 61850. Electric Power Research Institute (EPRI), Tech. Rep 1020098

  5. 5.

    Beckett D, Redland RDF libraries. http://librdf.org. Accessed 19 May 2017

  6. 6.

    Boulanger JL (2013) Static analysis of software: the abstract interpretation. Wiley, New York

    Google 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–66

    Google Scholar 

  8. 8.

    Chun W (2001) Core python programming, vol 1. Prentice Hall Professional, Englewood Cliffs

    Google Scholar 

  9. 9.

    CIM User Group, Home—CIMug. http://cimug.ucaiug.org. Accessed 19 May 2017

  10. 10.

    Cumming M, libxml\({+}{+}\)—an XML parser for C\({+}{+}\). http://libxmlplusplus.sourceforge.net. Accessed 19 May 2017

  11. 11.

    David FS (2003) Model driven architecture: applying MDA to enterprise computing

  12. 12.

    Dawes B, Filesystem home—Boost.org. http://www.boost.org/libs/filesystem. 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–38

    Google Scholar 

  14. 14.

    Diehl S (2007) Software visualization: visualizing the structure, behaviour, and evolution of software. Springer, Berlin

    Google 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 conference

  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. IEEE

  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. IEEE

  18. 18.

    FEIN Aachen eV, Doxygen generated webpages of CIM\(++\) Adapted CIM_SINERGIEN Codebase: BatteryStorage Class Reference. http://fein-aachen.rwth-aachen.de/ict/CIMpp/html/IEC61970_16v29_SINERGIEN_20170324/classSinergien_1_1EnergyGrid_1_1EnergyStorage_1_1BatteryStorage.html. Accessed 14 Aug 2017

  19. 19.

    FEIN Aachen eV, Doxygen generated webpapes of CIM\(++\) adapted CIM_SINERGIEN Codebase. http://fein-aachen.rwth-aachen.de/ict/CIMpp/html/IEC61970_16v29_SINERGIEN_20170324. 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)

  21. 21.

    Fowler M (2002) Patterns of enterprise application architecture. Addison-Wesley Longman Publishing Co., Inc, Boston

    Google Scholar 

  22. 22.

    Friesen J (2016) Java XML and JSON. Apress, Berkely

    Google Scholar 

  23. 23.

    Fritzson P (2010) Principles of object-oriented modeling and simulation with Modelica 2.1. Wiley, New York

    Google Scholar 

  24. 24.

    Ga D, Djuric D, Deved V et al (2006) Model driven architecture and ontology development. Springer, Berlin

    Google 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. IEEE

  26. 26.

    Henney K, Chapter 5. Boost.Any. http://www.boost.org/doc/libs/release/libs/any. Accessed 19 May 2017

  27. 27.

    Higgins J, Arabica. https://github.com/RWTH-ACS/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) schema

  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 distribution

  30. 30.

    IEC (2012) IEC 61970-301:2012 Energy management system application program interface (EMS-API)—part 301: common information model (CIM) base

  31. 31.

    IEC (2014) IEC 62325-301:2014 Framework for energy market communications—part 301: common information model (CIM) extensions for markets

  32. 32.

    IEC (2016) IEC 61970-552:2016 Energy management system application program interface (EMS-API)—part 552: CIMXML model exchange format

  33. 33.

    IEC (2016) IEC/TR 62357-1:2016 Power systems management and associated information exchange—part 1: reference architecture

  34. 34.

    IEC, IEC smart grid—IEC standards. http://www.iec.ch/smartgrid/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 harmonization

  36. 36.

    ISO (2014) ISO/IEC JTC 1/SC 22/WG 21 N4100 programming languages—C\({+}{+}\)—file system technical specification

  37. 37.

    Jena A, Apache Jena—Home. http://jena.apache.org. Accessed 19 May 2017

  38. 38.

    Kastens U, Waite WM, Sloane AM (2007) Generating software from specifications. Jones & Bartlett Learning, Burlington

    Google 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. IEEE

  40. 40.

    Kovse J, Härder T (2002) Generic XMI-based UML model transformations. In: Object-oriented information systems, pp 183–190

  41. 41.

    Krüger G, Hansen H (2014) Java-programmierung—Das Handbuch zu Java 8. O’Reilly Germany

  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–15

  43. 43.

    Lee B, Kim DK (2017) Harmonizing IEC 61850 and CIM for connectivity of substation automation. Comput Stand Interfaces 50:199–208

    Article  Google 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–456

    Article  Google Scholar 

  45. 45.

    Lincoln R, PyCIM—python implementation of the common information model. https://github.com/rwl/pycim. 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. IEEE

  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. IEEE

  48. 48.

    McMorran AW (2007) An introduction to IEC 61970–301 & 61968–11: the common information model. Univ Strathclyde 93:124

    Google 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–1153

    Article  Google 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. IEEE

  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–2256

    Article  Google 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. Citeseer

  53. 53.

    Pan JZ (2009) Resource description framework. In: Handbook on ontologies, pp 71–90. Springer, Berlin

  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, Cambridge

    Google Scholar 

  55. 55.

    Rumbaugh J, Jacobson I, Booch G (2004) Unified modeling language reference manual, 2nd edn. Pearson Higher Education, London

    Google 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, Berlin

  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. IEEE

  58. 58.

    Slominski A (2001) Design of a pull and push parser system for streaming XML. Tech. rep., Technical Report TR-550, Indiana University

  59. 59.

    Štuikys V, Damaševičius R (2012) Meta-programming and model-driven meta-program development: principles, processes and techniques, vol 5. Springer, Berlin

    Google Scholar 

  60. 60.

    Surhone L, Timpledon M, Marseken S (2010) Template processor. Betascript Publishing

  61. 61.

    The LLVM Foundation, The LLVM compiler infrastructure project.http://www.llvm.org. 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, Berlin

    Google Scholar 

  63. 63.

    van der Spek O, C\({+}{+}\) CTemplate system. https://github.com/OlafvdSpek/ctemplate. Accessed 19 May 2017

  64. 64.

    van Heesch D, Doxygen: main page. http://www.doxygen.org. 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. IEEE

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to Lukas Razik.

Additional information

This research was funded by the German Federal Ministry of Education and Research (BMBF) within the SINERGIEN project under funding code 03EK3567B.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Razik, L., Mirz, M., Knibbe, D. et al. 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. Comput Sci Res Dev 33, 93–103 (2018). https://doi.org/10.1007/s00450-017-0350-y

Download citation

Keywords

  • CIM
  • MDA
  • Smart grids
  • Energy
  • Ontology
  • Deserialization