Platforms
Our products are designed for Microsoft Windows.
There are no third party products, nor licenses that SELMATIC POS requires in order to function (except the operating system). This significantly reduces the cost of the system.
The database used is Firebird SQL 2.x. (www.firebirdsql.org). Firebird is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, Mac OS and a variety of UNIX platforms. Firebird offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names, since 1981.
The Firebird Project is a commercially independent project of C and C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp on 25 July, 2000.
Online, Offline, Mobile or Cloud
The fundamental concept of the SELMATIC POS design is to operate both online and offline, i.e. without need of constant online connectivity with the central database.
The award winning (two gold medals from the International Technical Fair in Plovdiv, Bulgaria), proprietary data replication technology allows each store to operate independently from the central office and the central database server.
The data replication technology has been produced in-house, as this way it can be custom-built with the specifics and needs of SELMATIC POS in mind. The result is a very fast, very flexible, yet lightweight, database replication technology.,
The data is replicated conditionally, based on organizational units. For example, “Store A” transactional data is replicated to “Store A” and the central database. Any documents that affect more than one store are replicated to the relevant locations. This ensures that local store databases do not grow too fast and also minimizes significantly the system requirements for the store's local database server.
As shown on the diagram, each terminal within the store has access to a local store database via LAN. This allows a virtually unlimited number of workstations in the store.
If required, the store database can communicate directly with third party web services, for example integration with CRM, operator billing or third part bill collection.
In addition to that, a central SELMATIC POS database server is available in the company’s headquarters.
All data in the system can be manipulated in the central database (the access rights being strictly controlled, of course), thus providing centralized management of all master data – from user rights, to items, customers, prices, discounts and central document access. This is also why the central database interfaces with SAP at this central, single point, as per requirement, the master record nomenclatures are maintained in SAP.
The store communicates with the central database via TCP/IP, usually via a VPN over the Internet. All data is heavily encrypted and compressed. SELMATIC POS has demonstrated successful operation even over GSM CSD lines at speeds as low as 9600 bps.
The data replication is triggered by every transaction made, i.e. as soon as any replicable data is saved. That means that any data modifications are transferred wherever needed online and in real-time.
If no connection to the central database is available, all changes are logged and later sent to all parties that need to receive them fully automatically.
This architecture gives the following advantages:
- The system works both online and offline
- Stores can operate independently from the central database when no connection is present with no functional restrictions in the off-line mode
- Any changes in the central database (like master data, prices, user rights and etc.) are automatically sent to all stores in real time
- All transactional data is available in the central office in real time after it has been entered in the stores
- Any transaction which affects more than one store is automatically sent to all parties (for example relocation between shops, or a price change, or new item, etc.)
- Due to the presence of many database servers, the central database server workload is dramatically reduced
- Due to the locally available servers, the POS system operates with great speed
- All data is redundantly stored both in the central database and in store databases
- Increased data security allows recovery of store and central office databases
- The central database server can be shut down for maintenance, repair or backup without this affecting the abilities of the stores to continue their operations
Since hardware footprint of SELMATIC POS is very low, it can work together with many other concurrently running applications on any modern PC. The system allows the end user to work with an unlimited number of windows opened at the same time (documents, reports, nomenclatures) and therefore does not force the user to close any of them. This allows for smooth document and application switching and seamless, parallel integration with third party software.
Another key benefit is the capability to work on tablets with limited or no connectivity to the server - all data is automatically exchanged when connection is established. And last, but not least, the system can be easily hosted in the cloud as well.
Scalability
SELMATIC POS uses database replication technology, which supports both “star” and “linear” topology. This allows the database workload to be distributed among any reasonable number of databases and servers.
Compared to centralized server farms using either application servers and/or terminal services, the offered replication technology has certain distinctive advantages:
- The distributed database provides enormous fault tolerance – the SELMATIC POS systems have not been down ever, not even once (!) since they have gone live in all the projects, described in detail in section B8 bellow.
- The hardware requirements are diminished significantly, as there is no need for a farm of servers to handle the 200+ simultaneously working users (at Cosmote Bulgaria we have over 550 users at the same time!), i.e. the system can be seriously scaled with off the shelf, relatively cheap hardware.
- The central server database can be replicated in full to more than one server, which allows for a redundant central database, or distributed workload for central reporting (which is what is currently being used in the other Cosmote implementations).
Interfacing with other external systems
SELMATIC POS has a powerful bi-directional interfacing engine which supports different data sources - including, but not limited to, XML, database, structured or flat text files with arbitrary metadata schemes and web service based (using SOAP).
The customization of the engine allows for powerful and easy implementation of interfaces with any third party vendor.
The input or output can pass through the scripting engine, too, which allows for complete customization and modification of both imported and exported files and/or data, without changing the core.
The core classes of the engine handle transactions, file saves and deletion, access to the SELMATIC POS database objects, etc.
They also control which interfaces are temporary enabled or disabled by the system administrator.
The interface engine can be configured to run according to any time schedules.
Using the interfacing engine, a number of interfaces have been developed with major systems, including five SAP interfaces using three different approaches, interface with SAP RMCA, interface with Oracle ERP, interface with Atlantis ERP, interface with Singular SEN™, smaller interfaces with popular accounting systems in Bulgaria like Business Navigator™, AjurL™, integration with ePAY™ for bill payments, integration with mobile devices and software.
The most complicated built-in interfaces are the ones with SAP. The interface exchanges information with all major modules like Sales and Distribution, Inventory Management, Warehouse Management, Accounting, Serial Number Tracking and more, interfacing with the SAP SD, MM and FI modules respectively.
Three different approaches are available.
- By to customer request, the first approach is to read and write from/to temporary tables directly in SAP’s Oracle database. From there, a custom application in SAP and another one in SELMATIC POS process the data. This method was used for the implementation at Germanos Telecom Bulgaria, Germanos Telecom Skopje and Globul.
- The second approach is to generate and read standard SAP IDocs. Together with IBM Bulgaria this method was used for the implementation of SELMATIC POS and SAP at 2be Bulgaria (Kimimpex TL) and 2be Mobile Skopje.
- The third approach is to integrate with SAP XI. Interface is done via an intermediate database (our customers required this to be MS SQL Server), in which intermediate tables are defined and the communication is performed via them. This method was used in the SAP integrations at ONE Telecom Macedonia and Public Bulgaria.
Analogically to the above, the same idea was applied in our interface with Altantis ERP at Multirama Bulgaria and Oracle ERP at One Macedonia.
All reports and document detail lines can be easily exported to Excel, CSV, TXT, HTML, RTF (MS Word).
Based on the extensive experience with creating interfaces with altogether different and sometimes much more complicated third party systems, SELMATIC POS is a system proven in practice, capable of transforming and exchanging data using data exchange formats that have become global standards.
Customization capabilities
One of the strongest sides of SELMATIC POS is the proprietary scripting language, which allows almost unlimited customization of the system without the need for an upgrade and without changing the core of the system. Statistically, over 85% of all customization request are being implemented by using the scripting technology, and without changing the core executable.
Scripts are distributed automatically to all locations via database replication. This also means that access to customization is controlled by user defined rights, which is very important, as it allows different customizations to work for different users.
The obvious benefits include:
- Drastically improved system stability, as the risk of introducing bugs related to the change is dramatically decreased
- There is no need for an upgrade procedure
- Testing can be limited to the customization only
- Dramatically faster deployment time
- Lower expenses, due to everything being much easier and faster
Some example customizations are:
- Validation of any document based on specific business rules and user rights
- Custom reports
- Fully functional interfaces with third party software
- Fully customizable import and export from and to: text files, including xml and databases
- New document generation based on external or internal data
- Custom interface with third party hardware
- Integration with web services via SOAP or plain HTTP
- User defined mass modification of data
Our scripting language has the following main features:
- 100% SQL support for any database – both our own SELMATIC POS database and external databases
- Access to the file system and local registry
- Execution of external applications
- Ability to display forms and interact with the user
- Ability to call back SELMATIC POS and display documents and custom reports, which can be printed, exported, filtered, sorted etc.
- Interaction with web services via SOAP or HTTP GET and POST
- Support for regular expressions
- Import and export of text files, including XML,
- Modification of database metadata
Based on special scripts, residing in the customer’s database, all customizations made inside the database itself can be automatically retained during an upgrade with a newer, but standard version of the product. This is very important, as it allows for trouble-free future upgrades.
Another important aspect of the SELMATIC POS customization abilities is the full featured, end-user report designer, which is built into the system.
The report designer allows 100% user definable layout of any document and report. The designer is packed with hundreds of features, including graphical interface, preview and even a proprietary programming language, which allows for additional powerful expansion (for example additional document validation inside the print out itself; for example certain printout may require additional fields to be filled).
SELMATIC POS supports an unlimited number of printable layouts per document type or report, which allows completely different printouts from the same document/report. For example, from the same sale SELMATIC POS could print an invoice, a stock receipt and a warranty card. Thanks to the programming language, the template can even dynamically change company logos based on the invoice data.
We also support standard label printers which allow SELMATIC POS to print custom labels from any data source. The label layout is 100% customizable.
Fiscal devices
The core of the SELMATIC POS products is designed to work independently from the specifics of every fiscal device. The abstract layer is separated from the hardware layer by the use of drivers. The system is designed to be open for the creation of new drivers, hence fully expandable towards support of any new devices.,
So far SELMATIC POS supports over 50 different fiscal printers from various manufactures.
Data conversion
There is a large number of available Firebird compatible tools which can be used for data conversion.
We recommend IBExpert, http://www.ibexpert.com. We believe this is the most feature-rich application for Firebird database maintenance & repair, data conversion, backup, restore, upgrades, etc. ,
Backup/Recovery
All necessary backup and recovery software is built in the Firebird database server, which is installed on every database server – in all stores and on the central database server.
An automatic backup procedure can be scheduled to run as often as required by the client. During the backup the system does not need to be shutdown, i.e. the backup process is transparent and independent of the other running processes.
In the event of database damage, the built in Firebird database repair tools are capable of automatically repairing the damage in 90% of the cases. The most common and simple way to repair a damaged database is to simply backup and restore it. There is a small tool that simplifies this method even further – by pressing just one button.,
Because of the distributed database design, the data is redundant, i.e. available at more than one place. In case of a full system crash and total loss, data can still be recovered from the store databases and/or the central database and/or backups.
In case of a shop database failure, all data since the last successful synchronization is available for immediate recovery from the central database by using a standardized procedure.
In case data has been entered after the last synchronization, data is usually at least partially readable and can still be recovered by semi-automatic means. The software in more than 600 Telco stores since 2006 and not even a single record has been lost – no matter the damage and reason.
Since most of the transactional data is printed right after entry, in the absolute worst case scenario data can still be recovered manually.
Firebird includes ANSI-SQL data integrity mechanisms. The data integrity is guaranteed by the database itself.
Security
SELMATIC POS has a very strong mechanism for defining user rights. User rights are also closely related to product customization. The user right and customization feature in SELMATIC POS is called Group Policy.
Group policies define user rights and product customization based on user groups. User groups are hierarchical.
The technology used to define group policies is designed to be able to be expanded by a programmer, i.e. new group policies can be added if requested.
There are thousands of parameters that can be changed, including but not limited to definition and control of user access to:
- Menus
- Documents and partial document panels
- Certain fields
- Read/write/special access to organizational units (for example, special access is ability to relocate/request goods to/from certain locations only)
- Legal entities
- Report columns
- …and many more
The latest versions of SELMATIC POS also supports full customization of the user interface (forms).
Direct writing to the database is restricted by a username and password requirement. There are no tools inside SELMATIC POS itself, which allow this, i.e. the end user cannot write directly to the database. This is only possible with third party tools and requires in-depth knowledge of the database schema and of course a username and password.
All transactional data is logged by the name of the user who created the transaction, along with the exact date and time of the creation. Furthermore, the name of the last user who modified the data and the exact date and time of the modification is also logged.
It is possible to also log every single transaction. Although available on request, this option is turned off by default, as the transaction log very quickly becomes larger than the transaction data itself.
Also, most clients require SELMATIC POS to be configured so that the documents can’t be modified once closed, which makes the complete transaction log unnecessary, i.e. the four fields (created by, created on, last modified by, last modified on) are completely sufficient.
Testing / development environment
For testing purposes the usual setup is a separate low-end server or a virtual machine, on which a copy of the production database resides. The copy can be made at any time, due to the fact that Firebird databases can be backed up online (see “Backup/Recovery” in “Technical architecture” above). This of course can be also easily automated.
As most customizations/add-ons are done by using the built-in scripting language (see “Customization capabilities” above), usually the testing can be performed just on the new developments, as they rarely influence other modules. After the customization or add-on is tested, its deployment is as easy as loading the customization/add-on script in the central database, from where it is automatically deployed to all workstations via the replication mechanism.
In case the core EXE of the system needs to be altered, testing is again performed in the test environment with the copy of the real world data. A reliable version history tool is used by the manufacturer (http://tortoisesvn.net/), thanks to which a complete version history is available.
The database management tool that’s used (IBExpert, www.ibexpert.net, see also “Data conversion” above) has a metadata versioning tracking feature. Also, the same tool provides an easy way to compare database metadata, which allows structural changes in the database to be easily transferred between databases. In addition to that, SELMATIC POS’s own database upgrade tool provides a completely automatic and safe method for transferring changes in new versions (keeping all the customizations!), preserving the original live database that is being upgraded, so that in case of an upgrade failure the production system can safely and easily be rolled back to the previous version.
The entire methodology and the support software have proven their qualities over the course of the many successful projects of the SELMATIC POS team, implemented in a business environments, which are described in the reference list of projects.