Software Engine
A Software Engine is a software program that serves as a core computational component of a software system that can process data through metadata models and maintain operational states.
- AKA: Engine (Software), Software Processing Engine.
- Context:
- It can typically process Software Data through software metadata models.
- It can typically maintain Operational State with start mechanisms, stop mechanisms, and idle states.
- It can typically transform Input Data into output states using transformation algorithms.
- It can typically be tuned for Software Performance through configuration parameters.
- It can typically provide Core Functionality that is more complex than ordinary software modules.
- ...
- It can often manage Concurrent Processes through thread management.
- It can often handle Data Streams through continuous processing.
- It can often integrate with External Systems through API interfaces.
- It can often support Plugin Architecture for extensibility.
- ...
- It can range from being a Simple Software Engine to being a Complex Software Engine, depending on its software engine computational complexity.
- It can range from being a Specialized Software Engine to being a General-Purpose Software Engine, depending on its software engine application scope.
- It can range from being a Standalone Software Engine to being an Embedded Software Engine, depending on its software engine deployment model.
- ...
- It can be distinguished from Static Software Modules by its dynamic operational characteristics.
- It can be implemented as Software Library, Software Toolkit, or Software Development Kit (SDK).
- It can be optimized for Real-Time Processing, Batch Processing, or Stream Processing.
- It can be deployed in Cloud Environments, Edge Computing Platforms, or On-Premise Systems.
- ...
- Example(s):
- Database Engines, such as:
- Relational Database Engines, such as:
- NoSQL Database Engines, such as:
- Search Engines, such as:
- Web Search Engines, such as:
- Enterprise Search Engines, such as:
- Rendering Engines, such as:
- Machine Learning Engines, such as:
- Deep Learning Engines, such as:
- ML Inference Engines, such as:
- Workflow Engines, such as:
- Business Process Engines, such as:
- Data Pipeline Engines, such as:
- Script Engines, such as:
- JavaScript Engines, such as:
- Python Script Engines, such as:
- ...
- Database Engines, such as:
- Counter-Example(s):
- Software Applications, which provide end-user functionality rather than core processing capability.
- Software Modules, which remain static until called and lack autonomous operational state.
- Software Frameworks, which provide structural scaffolding rather than active processing.
- Mechanical Engines, which process physical energy rather than digital data.
- Software Services, which provide network-accessible functionality rather than embedded processing.
- See: Computer Program, Software Component, Software Architecture, Data Processing System, Metadata Model, Software Performance Tuning.
References
2019a
- (Wikipedia, 2019) ⇒ https://en.wikipedia.org/wiki/Software_engine Retrieved:2019-4-27.
- A software engine refers to a central part of a computer program. The concept has however taken on slightly different meanings depending on context.
(...)The field of computer science uses the term Engine to provide a mental model of software components an order of magnitude more complex than ordinary modules of software (such as the libraries, SDKs or objects mentioned above). Software modules remain static until called upon by another module. In response to the call, the instruction pointer of the computer begins tracing its way through the code in the called upon module. A software module is a Turing machine, which changes its state based on the algorithms that it contains.
In contrast, the mental model of a software engine is a mechanical engine, which one can start and stop, and which may run idle for periods of time. Examples of software engines include relational database engines, workflow engines, inference engines and search engines. A common characteristic of software engines is metadata that provides models of the real data that the engine processes. Software modules pass data to the engine, and the engine uses its metadata models to transform the data into a different state.
Another characteristic of software engines consistent with their mental model is the ability to tune software engines for optimal performance. In contrast, software modules can be "tuned" only by rewriting them.
API engines like Varnish engine is a high capability API system.
In Data science you could use data serving engines like streaming engines or data transformation engines which transform data which is a requirement of heavy duty applications.
Other examples of engines are Audio, Video, Image heavy processing engines
and specialized proprietary rendering engines in Hollywood films which require lot of visual optimizations.
NMap has a scripting engine & many Nnets also use Decision Engines for their DM Models.
- A software engine refers to a central part of a computer program. The concept has however taken on slightly different meanings depending on context.