- Tytuł:
- Extensible, fast and secure scala expression evaluation engine
- Autorzy:
-
Janik, A.
Janusz, R. - Powiązania:
- https://bibliotekanauki.pl/articles/385003.pdf
- Data publikacji:
- 2017
- Wydawca:
- Sieć Badawcza Łukasiewicz - Przemysłowy Instytut Automatyki i Pomiarów
- Tematy:
-
expression evaluation engine
Scala - Opis:
- Scripting and expression evaluation engines are popular tools in the Java software ecosystem which is understood as any environment using Java Virtual Machine (JVM) to execute code (which does not have to be generated from Java language). With the current, wide-spread popularity of Java and Java byte code compliant languages it means that both: traditional, stand-alone Java programs as well as enterprise systems run on application servers or even systems deployed in microservices architecture can be considered. Expression evaluation engines are often used for purposes like defining document templates, enhancing various static configuration formats with dynamically evaluated snippets or defining data binding for user interfaces. However, most of these solutions employ dynamically typed languages and suffer from limited performance and lack of any concern for security. This effectively makes it impossible to use expression language as a feature exposed to end users. This paper presents a new approach to implementing an expression engine. It uses Scala as the expression language and leverages its static type system as well as its rich feature set to create an expression evaluation engine with expressive and concise language, high evaluation performance and fine grained security control. In the paper we present use case built for the domain of telecommunication networks. In large telecommunication networks one can find hundreds of devices for which configuration has to be updated either periodically or on-demand when a given event occurs. Contents of configuration files may have to be generated dynamically (based on some data associated with a given device). On top of that, since communicatinon networks are heterogeneous environments with hardware delivered by different providers, exact form of each config file may vary depending on a type of a device and its manufacturer. Moreover, as structure and size of telecommunication networks evolve as new devices are added, there is a need to dynamically and remotely support completely new types of devices with a completely new format of configuration. This paper presents how the problem can be solved by using configuration file templates with placeholders that would be filled by some data associated with a given device. Each template is an expression that evaluates to exact configuration file. Performance is crucial (due to size of network) and so is security: the solution should allow to control what kind of configuration and by whom may be applied to devices while still allowing network operators to use a Graphical User Interface to define (or redefine) configuration file templates.
- Źródło:
-
Journal of Automation Mobile Robotics and Intelligent Systems; 2017, 11, 3; 30-44
1897-8649
2080-2145 - Pojawia się w:
- Journal of Automation Mobile Robotics and Intelligent Systems
- Dostawca treści:
- Biblioteka Nauki