The software engine: concept, types and comparison

Lecture



Software engine (Software engine)- refers to the central part of a computer program . However, this notion has acquired several different meanings depending on the context.

Engine ( from English Software engine ) - in programming - the core of a computer program that implements a specific application task, in order to distinguish it from the content and appearance of a particular program. An engine can take the form of a program, part of a program, a suite of programs, or a library , depending on the task and implementation. As a rule, an Engine is separated out from the program for use in several projects and / or for separate development / testing .

Using a ready-made Engine when developing a program, website , video game, or other product reduces development time, and allows more time to be spent developing other subsystems, for example the user interface or the informational content of a site. Products made using Engines , inherit their capabilities and power, but, along with that, also their bugs and security problems .

Software Engine as a Marketing Metaphor

The term Engine, when used to describe a piece of software, is often used by developers when addressing a broader, non-technical audience, to describe what they would otherwise call a library , an SDK, or an object , to denote an encapsulated unit of functionality.

This term is often found in marketing materials that are meant to describe the internal workings of software, as well as in product names .

This use of the term is metaphorical and marketing-oriented.

Software Engine as Used in Computer Science

In computer science, the term Engine is used to denote a mental model of software components that are an order of magnitude more complex than ordinary software modules (for example, the libraries , SDKs, or objects mentioned above). Software modules remain static until called by another module. In response to a call, the computer's instruction pointer begins tracing its path through the code in the called module. A software module is a Turing machine , which changes its state based on the algorithms it contains.

In contrast, the mental model of a software engine is a mechanical engine that can be started and stopped and that can idle for certain periods of time. Examples of software systems include relational database engines, workflow engines , inference engines and search engines . A common characteristic of software mechanisms is metadata, which provides models of the real data processed by the mechanism. Software modules pass data to the mechanism, and the mechanism uses its metadata models to transform the data into another state.

Another characteristic of software engines, consistent with their mental model, is the ability to tune software engines to achieve optimal performance. In contrast, software modules can only be “tuned” by rewriting them.

In data science, it is possible to use data-serving engines , such as streaming engines or data transformation engines , transforming data which is a requirement under heavy operating conditions.

Other examples of engines are audio, video, and image processing engines, and specialized proprietary rendering engines in Hollywood films, which require extensive visual optimization.

NMap has a scripting engine, and many networks also use decision-making engines for their DM models.

Types of Software Engines

Common examples of engines are

  • Search engine ( from English Search engine ) - the basis of search systems . Different search systems can run on the same engine.
  • a site engine is often used to refer to a site's content management system
    • In particular, a wiki engine is a program used to convert wiki markup into a human-readable representation, most often into HTML format
    • A forum engine is a program (a set of scripts ) for running web forums , providing a certain set of functionality for the participants of these internet services
  • A browser engine is a program for converting a site's HTML markup into a user-friendly representation in a web browser (for example, the text “ The software engine: concept, types and comparison” will be converted by the browser engine into “ italic ”). The best-known browser engines are: Gecko , Microsoft Trident , Presto ( Opera ), KHTML , WebKit .
  • JavaScript engine - an implementation of the functionality of the JavaScript scripting language in a browser or in a server-side runtime
  • Graphics engine - a system for displaying the application environment (for example, a windowing interface [en] or a rendering engine for a 3D scene)
  • Voice engine (text-to-speech engine; TTS ) - a program that takes text as input and synthesizes pronunciation as output. The best-known voice engines are Lernout & Hauspie , Digalo, IBM ViaVoice TTS, eSpeak, Festival.
  • Physics engine - a system responsible for simulating the physics of a real body.
  • Game engine - a complex that supports the gameplay situation of a computer game , which includes object support, the procedures of the game strategy of computer characters, its visual and audio accompaniment, and so on. A game engine can use specialized engines to implement individual tasks .
  • database engine ( English Database engine or English Storage engine ) - the data storage core of a DBMS

Comparison

A software mechanism is usually used by application code , which may even be written in a different language (for example, a combination of C # or python with underlying mechanisms written in C ++ ).

See Also

  • Search engine (computing)
  • Game engine
  • Sound engine
  • Browser engine (Layout engine, Browser engine)
  • Chess engine
  • Inference engine
  • Software framework
  • SDK (Software development kit)
  • CMS (Content management system)
  • Application programming interface ( API )
  • Graphical user interface ( GUI )
  • Operating system kernel
  • Program library

Comments

To leave a comment

If you have any suggestion, idea, thanks or comment, feel free to write. We really value feedback and are glad to hear your opinion.
To reply

Lectures and tutorial on "Famworks"

Terms: Famworks