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.





Similar content being viewed by others
References
Aho A (2003) Compilers: principles, techniques and tools (for Anna University), 2/e. Pearson, New Delhi
Alexandrescu A (2001) Modern C\({+}{+}\) design: generic programming and design patterns applied. Addison-Wesley, Boston
Allemang D, Hendler J (2011) Semantic web for the working ontologist: effective modeling in RDFS and OWL. Elsevier, Amsterdam
Becker D (2010) Harmonizing the international electrotechnical commission common information model (cim) and 61850. Electric Power Research Institute (EPRI), Tech. Rep 1020098
Beckett D, Redland RDF libraries. http://librdf.org. Accessed 19 May 2017
Boulanger JL (2013) Static analysis of software: the abstract interpretation. Wiley, New York
Bray T, Paoli J, Sperberg-McQueen CM, Maler E, Yergeau F (1997) Extensible markup language (XML). World Wide Web J 2(4):27–66
Chun W (2001) Core python programming, vol 1. Prentice Hall Professional, Englewood Cliffs
CIM User Group, Home—CIMug. http://cimug.ucaiug.org. Accessed 19 May 2017
Cumming M, libxml\({+}{+}\)—an XML parser for C\({+}{+}\). http://libxmlplusplus.sourceforge.net. Accessed 19 May 2017
David FS (2003) Model driven architecture: applying MDA to enterprise computing
Dawes B, Filesystem home—Boost.org. http://www.boost.org/libs/filesystem. Accessed 19 May 2017
Demers FN, Malenfant J (1995) Reflection in logic, functional and object-oriented programming: a short comparative study. Proceedings of the IJCAI 95:29–38
Diehl S (2007) Software visualization: visualizing the structure, behaviour, and evolution of software. Springer, Berlin
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
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
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
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
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
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)
Fowler M (2002) Patterns of enterprise application architecture. Addison-Wesley Longman Publishing Co., Inc, Boston
Friesen J (2016) Java XML and JSON. Apress, Berkely
Fritzson P (2010) Principles of object-oriented modeling and simulation with Modelica 2.1. Wiley, New York
Ga D, Djuric D, Deved V et al (2006) Model driven architecture and ontology development. Springer, Berlin
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
Henney K, Chapter 5. Boost.Any. http://www.boost.org/doc/libs/release/libs/any. Accessed 19 May 2017
Higgins J, Arabica. https://github.com/RWTH-ACS/arabica. Accessed 19 May 2017
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
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
IEC (2012) IEC 61970-301:2012 Energy management system application program interface (EMS-API)—part 301: common information model (CIM) base
IEC (2014) IEC 62325-301:2014 Framework for energy market communications—part 301: common information model (CIM) extensions for markets
IEC (2016) IEC 61970-552:2016 Energy management system application program interface (EMS-API)—part 552: CIMXML model exchange format
IEC (2016) IEC/TR 62357-1:2016 Power systems management and associated information exchange—part 1: reference architecture
IEC, IEC smart grid—IEC standards. http://www.iec.ch/smartgrid/standards. Accessed 19 May 2017
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
ISO (2014) ISO/IEC JTC 1/SC 22/WG 21 N4100 programming languages—C\({+}{+}\)—file system technical specification
Jena A, Apache Jena—Home. http://jena.apache.org. Accessed 19 May 2017
Kastens U, Waite WM, Sloane AM (2007) Generating software from specifications. Jones & Bartlett Learning, Burlington
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
Kovse J, Härder T (2002) Generic XMI-based UML model transformations. In: Object-oriented information systems, pp 183–190
Krüger G, Hansen H (2014) Java-programmierung—Das Handbuch zu Java 8. O’Reilly Germany
Kuntschke R, Winter M, Glomb C, Specht M (2016) Message-oriented machine-to-machine communication in smart grids. Comput Sci Res Dev 1–15
Lee B, Kim DK (2017) Harmonizing IEC 61850 and CIM for connectivity of substation automation. Comput Stand Interfaces 50:199–208
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
Lincoln R, PyCIM—python implementation of the common information model. https://github.com/rwl/pycim. Accessed 19 May 2017
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
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
McMorran AW (2007) An introduction to IEC 61970–301 & 61968–11: the common information model. Univ Strathclyde 93:124
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
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
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
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
Pan JZ (2009) Resource description framework. In: Handbook on ontologies, pp 71–90. Springer, Berlin
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
Rumbaugh J, Jacobson I, Booch G (2004) Unified modeling language reference manual, 2nd edn. Pearson Higher Education, London
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
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
Slominski A (2001) Design of a pull and push parser system for streaming XML. Tech. rep., Technical Report TR-550, Indiana University
Štuikys V, Damaševičius R (2012) Meta-programming and model-driven meta-program development: principles, processes and techniques, vol 5. Springer, Berlin
Surhone L, Timpledon M, Marseken S (2010) Template processor. Betascript Publishing
The LLVM Foundation, The LLVM compiler infrastructure project.http://www.llvm.org. Accessed 19 May 2017
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
van der Spek O, C\({+}{+}\) CTemplate system. https://github.com/OlafvdSpek/ctemplate. Accessed 19 May 2017
van Heesch D, Doxygen: main page. http://www.doxygen.org. Accessed 19 May 2017
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
Author information
Authors and Affiliations
Corresponding author
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
About this article
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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00450-017-0350-y