Unser Team hat eine mobile Unternehmensanwendung zum Empfangen von Zahlungen im Rahmen eines Zahlungssystems für einen Großkunden entwickelt und unterstützt. Jetzt wird es von Kundenmitarbeitern auf Geräten mit dem Betriebssystem Aurora (ehemals Sailfish Mobile OS RUS) in 37 russischen Regionen verwendet. In diesem Beitrag werde ich kurz auf dieses Projekt und genauer auf das Betriebssystem selbst eingehen.
Hintergrund
Unsere Firma
NORBIT hat für einen Großkunden ein Bezahlsystem entwickelt. Das System umfasst den Serverteil und mehrere Clients: Desktop-, Web- und Mobilanwendung auf dem Android-Betriebssystem. Anfänglich wurde das System in mehreren Regionen der Russischen Föderation implementiert. 2016 hat der Kunde beschlossen, die regionale Präsenz auszubauen. Derzeit ist das System in 37 Regionen implementiert und erfolgreich in Betrieb.
Im Jahr 2017 entschied sich der Kunde, die Geräte für inländische Software zu verwenden, und kaufte mehrere Tausend INOI R7-Geräte mit dem Aurora-Betriebssystem (Sailfish Mobile OS RUS). Unser Team wurde mit der Erstellung eines weiteren Kunden für mobile Zahlungssysteme beauftragt.
Die Entwicklung dauerte nur wenige Monate. Es war eine interessante Herausforderung, da alle Arbeiten von Grund auf neu organisiert werden mussten. Wir mussten ein Team zusammenstellen, einen Prozess der Entwicklung, des Testens und der regelmäßigen Veröffentlichung neuer Versionen aufbauen. Ich werde kurz auf diese Phasen eingehen.
Wie war das Projekt?
Zunächst war es notwendig zu verstehen, welche Kräfte dies alles umsetzen sollten. Ich brauchte ein Team, aber es gab einfach keine vorgefertigten Spezialisten auf dem Aurora OS-Markt.
Hier müssen wir der Plattform selbst Tribut zollen. Die Entwicklung unter dem Betriebssystem Aurora erfolgt mit dem Qt-Framework. Und um einfache Anwendungen zu schreiben, können Sie die deklarative Sprache QML verwenden, mit der Sie in den meisten Fällen nicht auf einfache Programmierung in C ++ zurückgreifen können. Die Aufgabe bestand daher darin, nach vernünftigen Entwicklern für Qt zu suchen, die im Großen und Ganzen ausreichen.
Ok, das Team ist gebildet, wir müssen den Rest der Kunden in Sachen Funktionalität einholen. Die Fristen waren kurz - wir hatten nur ein paar Monate Zeit, um die vorhandenen Funktionen zu aktualisieren und neue Funktionen zu implementieren. Neben der Auseinandersetzung mit der Geschäftslogik wartete vor allem eine Auseinandersetzung mit der Plattform auf uns. Viele Fragen mussten gelöst werden, aber wir hatten keine vorgefertigten Antworten darauf. Mit stackoverflow können Sie die Lösung nicht schnell kopieren, da die Richtung neu ist und wir eine der ersten waren. Hier sind nur einige davon.
Bluetooth-Verbindung mit KKM
Das Projekt erforderte die Unterstützung von Registrierkassen (KKM) von ATOL und Shtrikh. Beide KKM-Hersteller stellen Produkte her, die über Bluetooth verbunden werden können. Beispiele für die Arbeit mit Bluetooth finden Sie
auf der Qt-Website .
"Barcode" liefert den Treiber für die Arbeit mit KKM in Form von Quellcode, der über
den Link heruntergeladen werden kann. Es gibt auch ein Projektbeispiel für die Verwendung des Treibers.
Der Treiber für ATOL kann
von der Website mit den Schlüsselwörtern für die Suche "Treiber für kommerzielle Geräte" heruntergeladen werden. In unserem Projekt haben wir die achte Version des Treibers verwendet.
Zu Beginn des Projekts gab es KKM sowohl mit Unterstützung von 54-Euro, als auch ohne. Daher war Unterstützung für vier Arten von Registrierkassen erforderlich (ATOL / Barcode mit 54-54 / ohne 54-).
Arbeiten Sie mit umfangreichen Datenbankaktualisierungen
Jeden Morgen aktualisieren die Mitarbeiter des Kunden die Referenzinformationen ihrer Gegenparteien auf ihren Telefonen. Da es eine ganze Reihe von Auftragnehmern gibt (mehrere Tausend, je nach Region), dauerte die Aktualisierung der Verzeichnisse bis zu 1 Minute. Zu Beginn wurden nach dem Einfügen jeder Gegenpartei Commits durchgeführt. Nachdem nach dem Einfügen aller Hilfeinformationen ein Commit ausgeführt wurde, wurde die Zeit zum Aktualisieren der Verzeichnisse halbiert (ein großes Commit).
Optimierung der Anwendungserstellung
Zu Beginn wurden im Projekt „Kinderfehler“ gemacht - einschließlich Header-Dateien in Header-Dateien. Durch den Übergang zur Forward-Deklaration konnte die Erstellungszeit des Projekts erheblich verkürzt werden. Das Erstellen und Installieren eines Projekts zum Erstellen eines RPM-Pakets nimmt außerdem viel Zeit in Anspruch. Wenn Sie den Installationstyp "Binärdateien kopieren" auswählen, wird das Projekt beim Debuggen in wenigen Sekunden neu zusammengesetzt, installiert und gestartet. Für eine schnellere Assemblierung im Emulator können Sie auch die Assemblierung von Klassen für die Arbeit mit Barcodes und Registrierkassen deaktivieren. Die Nicht-RPM-Installationsoption ist möglicherweise gefährlich, da Abhängigkeiten nicht berücksichtigt werden.
Automatisierte Build-Anwendung
Sie können die Anwendungsassembly organisieren, ohne die Entwicklungsumgebung zu starten. Wenn Sie aus der Entwicklungsumgebung erstellen, werden in der Assemblykonsole die ausgeführten Befehle angezeigt. Dieselben Befehle können über Bash oder Batch ausgeführt werden.
Trotz aller Schwierigkeiten haben wir die vom Kunden gestellten Aufgaben erfüllt. Am 31. Dezember 2017 wurde der Antrag erfolgreich gestartet und die ersten Zahlungen wurden akzeptiert. Derzeit läuft die Anwendung auf mehreren tausend Mobilgeräten mit Aurora OS.
OS Aurora
Lassen Sie uns nun mehr über das Betriebssystem und seine Funktionen sprechen.
Aurora OS (ehemals
Sailfish Mobile OS RUS ) ist ein vertrauenswürdiges Betriebssystem für mobile Geräte (Smartphones und Tablets). Es wird von der
Open Mobile Platform entwickelt. Das System basiert auf der
Sailfish OS-Plattform und ist für Unternehmensanwender und Regierungsunternehmen konzipiert.
Im Jahr 2018 erwarb Rostelecom 75% der Open Mobile Platform und eine Mehrheitsbeteiligung an dem finnischen Projekt. Gleichzeitig wurde beschlossen, den Namen Sailfish Mobile OS Rus durch das Betriebssystem Aurora zu ersetzen. Dies ist besser für den heimischen Markt geeignet und entspricht nach Auffassung der Autoren den Zielen des Produkts und führt auch zu positiven Assoziationen sowohl in Russland als auch im Ausland.
Das Wort „vertrauenswürdig“ bedeutet, dass eine Organisation, die ihren Mitarbeitern Geräte auf dem Aurora-Betriebssystem zur Verfügung stellt, die volle Kontrolle über die Geräte selbst und die von ihnen verwendeten Daten hat. Die Sicherheit der Datenspeicherung und -übertragung wird durch Verschlüsselungsalgorithmen nach GOST gewährleistet und durch
Zertifikate des FSB und des FSTEC bestätigt .
Zur Verwaltung mobiler Geräte wird das Produkt SF Cloud auch von der Open Mobile Platform entwickelt. Dies ist eine Serverlösung, die auf den Geräten der Kundenorganisation bereitgestellt werden kann und es Ihnen ermöglicht, den Status der mobilen Geräte der Mitarbeiter jederzeit zu überwachen, Anwendungen auf Geräten zu installieren, zu aktualisieren und zu löschen, Betriebssystemaktualisierungen zu verwalten, den Zugriff auf das Gerät zu blockieren und Daten sicher zu löschen (Bereinigen) )
Ein vollständiger Entwicklungszyklus des Aurora OS findet in Russland statt. Dies ermöglichte es ihr
, in das einheitliche Register russischer Computerprogramme und Datenbanken
einzutreten . Im Moment ist dies das einzige mobile Betriebssystem mit diesem Status. Daher ist die Kompatibilität damit
eine Voraussetzung für mobile Anwendungen aus der Registrierung.
Unter der Haube verfügt das Aurora-Betriebssystem über eine POSIX-kompatible Umgebung. Das heißt, es ist vollwertiges Linux für mobile Geräte. Im Gegensatz zu Android sind beispielsweise systemd, D-Bus, ssh und andere Dienste und Dienstprogramme verfügbar, die „großen“ Distributionen auf einem PC vertraut sind. Gleichzeitig enthält das System die
libhybris- Komponente, mit der Treiber aus der Bionic-Umgebung auf POSIX-kompatiblen Systemen verwendet werden können. Auf diese Weise
können Sie das Aurora-Betriebssystem auf Geräten
ausführen, die ursprünglich für Android entwickelt wurden. Darunter gibt es
offiziellen Support für das Sony Xperia X und das Sony Xperia XA2.
Fast alle erforderlichen APIs werden mit dem
Qt-Framework und darauf basierenden zusätzlichen Bibliotheken bereitgestellt, die auch zur Implementierung von Systemanwendungen und -diensten verwendet werden.
Mit der Qt-Lizenz können Sie sowohl offene als auch proprietäre Anwendungen schreiben. Im zweiten Fall ist die Einhaltung der LGPL-Regeln eine wesentliche Anforderung. Bei kommerzieller Verwendung von Qt-Bibliotheken ist diese Anforderung jedoch optional.
Das Sailfish SDK
ist öffentlich verfügbar und auch Qt-orientiert. Es enthält die folgenden Komponenten.
Qt Creator ist eine vom Qt-Projekt entwickelte IDE, die eine umfassende Integration und Tools für die komfortable Arbeit mit Qt-Bibliotheken bietet. Die RUS-Unterstützung für Sailfish Mobile OS wird durch ein Plugin erreicht, das die entsprechenden Build-Kits für die ARM- und x86-Architekturen sowie die Build- und Emulationssteuerelemente konfiguriert.
Die Build-Umgebung ist eine Linux-Umgebung mit einer Reihe von
Tools und Zielen , die in einer virtuellen Maschine für VirtualBox enthalten sind. Durch die Verteilung in diesem Format können Sie unabhängig vom Betriebssystem des Entwicklers dieselben Build-Tools verwenden - Linux, Windows und MacOS werden unterstützt, es gibt jedoch auch eine Reihe von Einschränkungen. Beispielsweise müssen Projekte für das Betriebssystem Aurora in bestimmten Verzeichnissen abgelegt werden, die für die virtuelle Maschine sichtbar sind: im Basisverzeichnis des Benutzers oder in einem alternativen Verzeichnis, das bei der Installation des SDK angegeben wurde.
Emulator ist eine virtuelle Maschine für VirtualBox, die ein für x86 kompiliertes Sailfish OS-Image enthält. Tatsächlich handelt es sich hierbei um eine vollständige Zusammenstellung des Betriebssystems, mit der Sie viele Aspekte der Anwendung überprüfen können. Gleichzeitig ist es jedoch zweckmäßig, physische Geräte zu verwenden, um beispielsweise die Verwendung von Sensoren zu überprüfen.
Qt QML Live ist ein Tool, mit dem Sie die grafische Anwendungsoberfläche im Handumdrehen ändern können, wenn Sie Änderungen an den QML-Dateien des Projekts vornehmen, ohne das Installationspaket neu erstellen zu müssen. Dieser Ansatz kann die Entwicklung der Benutzeroberfläche erheblich beschleunigen.
Die Dokumentation besteht aus einer Reihe von Referenzartikeln, die sowohl die Beschreibung der von Qt bereitgestellten APIs als auch die für das Aurora-Betriebssystem spezifischen Komponenten enthalten, z. B. die Sailfish Silica-Dokumentation. Die Dokumentation steht sowohl zum separaten Lesen als auch im Kontext-Hilfe-Format für das im Quellcode-Editor ausgewählte Element zur Verfügung.
Um Anwendungen für Aurora OS zu entwickeln, können Sie nicht nur die Dokumentation lesen, sondern auch Schulungen absolvieren. Auf
der Stepik-Plattform gibt es einen öffentlichen Einführungskurs, der die ersten Schritte und die wichtigsten Aspekte der Entwicklung beschreibt. Mitarbeiter der Partner des Open Mobile Platform-Unternehmens können auf Anfrage unter
edu@omprussia.ru Zugang zu einem umfassenderen Schulungskurs erhalten, einschließlich Lektionen zum Umgang mit Sensoren, Navigation, Multimedia usw.
Das Ergebnis der Anwendungsentwicklung ist das RPM-Installationspaket. Bevor er auf die Gerätemitarbeiter des Kundenunternehmens gelangt, muss er die folgenden Schritte durchlaufen.
1. Mit einem gültigen Entwicklerzertifikat signiert. Tatsächlich ist diese Phase ein integraler Bestandteil der Installationspaket-Assembly, da nicht nur die rpm-Datei signiert ist, sondern auch die in ihrer Zusammensetzung enthaltenen Dateien. Mithilfe der Verfügbarkeit können Sie den Ursprung des Installationspakets sowie die Integrität seiner Struktur überprüfen. Zum Signieren benötigen Sie die Tools zur Schlüsselgenerierung und ein Entwicklerzertifikat. Hierzu können die Partner des Open Mobile Platform-Unternehmens die entsprechenden Anfragen an
dev-support@omprussia.ru senden .
2. Übertragen Sie das Installationspaket an den SF Cloud-Administrator. Abhängig von der Organisation des Workflows kann diese Phase auf verschiedene Arten implementiert werden. Daher muss das Paket in das SF Cloud-Repository heruntergeladen werden und über das Control Panel für die Verteilung an Geräte verfügbar sein. Gleichzeitig wird beim Herunterladen in das Repository nicht nur die Paketsignatur überprüft, sondern auch die Korrektheit der RPM-Dateistruktur, die einer Reihe von Anforderungen unterliegt (sowohl aufgrund der Standardisierung des Speicherorts der Anwendungskomponenten als auch der Sicherheitsanforderungen). Zum Beispiel:
- Die zum Erstellen des Pakets verwendete Spezifikationsdatei sollte nicht die Abschnitte% pre,% post,% preun,% postun,% verifyscript enthalten.
- Skripte in der Spezifikationsdatei des Anwendungspakets sollten vorhandene Dateien nicht ändern oder löschen.
- Der Name der ausführbaren Anwendungsdatei und der Anfang des Anwendungspaketnamens sind identisch und enthalten nur Kleinbuchstaben, Zahlen und Bindestriche.
- Die ausführbare Datei befindet sich im Pfad / usr / bin / {Projektname}.
- Die Desktop-Datei befindet sich im Pfad /usr/share/applications/{project_name►.desktop.
- Die Symbole befinden sich in den Pfaden / usr / share / icons / hicolor / {resolution} / apps / {project name} .png.
- Weitere von der Anwendung verwendete Dateien befinden sich im Verzeichnis / usr / share / {Projektname}.

Verwenden Sie das rpm-validator-Skript, um die Überprüfung solcher Anforderungen zu automatisieren. Eine ähnliche Prüfung ist im SDK verfügbar und kann von der IDE im Build Engine Control Center aufgerufen werden. Es ist wichtig zu klären, dass die Einstellungen des RPM-Validatorskripts möglicherweise von der Zielplattform und den Kundenanforderungen abhängen. Auf Anfrage an
dev-support@omprussia.ru können Sie rpm-validator für zertifizierte Aurora OS-Builds in der "Open Mobile Platform"
erhalten .
3. Verteilung auf Geräte von Mitarbeitern über das Administrationspanel SF Cloud. In dieser Phase werden in der Regel technische und funktionale Tests an einer kleinen Gruppe von Geräten durchgeführt. Bei der Installation einer rpm-Datei auf Geräten mit einem zertifizierten Build des Aurora-Betriebssystems werden auch Signatur und Struktur überprüft. Entwickler können an der Behebung von Fehlern beteiligt sein, die auftreten, bevor alle Mitarbeiter auf Geräte heruntergeladen werden.
Aurora OS bleibt das einzige mobile Betriebssystem, das die Anforderungen von FSB und FSTEC erfüllt.
Wir sind bereit, in den Kommentaren die Merkmale der Entwicklung mobiler Anwendungen auf dem Aurora-Betriebssystem zu erörtern.
Dieser Artikel wurde mit Unterstützung der Open Mobile Platform erstellt