background

Softwareentwicklung

Unter dem Sammelbegriff Software verbirgt sich eine enorme Anzahl von Programmier- und Markup-Sprachen sowie eine unzählige Menge an darauf basierenden Frameworks. [1][2] Daher gilt es beim Begriff Software-Entwicklung zunächst immer den konkreten Anwendungsbereich sowie die zu verwendenden Technologien abzuwägen und zu definieren.

Mobilbetriebssysteme

Android / iOS

Plattform­unabhängiges Scripting

zur Prozess-Automatisierung

Datenbank-Design

sowie -Migration, -Trigger

Build Systeme / Continuous Integration

Webbasierte Software-Entwicklung

Webanwendungen & Webportale

Ein Schwerpunkt unserer Entwicklung bildet die webbasierte Entwicklung oder Webentwicklung. Der Einsatz der hierbei verwendeten modernen und zukunftssicheren Technologien bietet vielerlei Möglichkeiten.

Webbasierte Softwareentwicklung, Webandwendungen, Webportale | emfITs GmbH

Von der Wiedergabe multimedialer Inhalte, über die mobiloptimierte (responsive) Darstellung auf Smartphones und Tablets bis zur Anbindung externer Systeme über Webservices - dieser Technologie gehört die Zukunft.

Wir setzen u.a. das PHP Framework Laravel ein, um durch bewährte Strukturen und Konzepte leicht nachvollziehbaren und modular erweiterbaren Quellcode zu erstellen. Durch den dynamischen Einsatz von Middleware können beispielsweise zugriffsspezifische Berechtigungs- und Authentifizierungsmechanismen eingebunden werden.

Durch die Verwendung von CSS Frameworks wie Bootstrap kann eine einheitliche, responsive, browserübergreifende Darstellung weitgehend gewährleistet werden. Durch den Einsatz von nativem JavaScript (und JS Bibliotheken wie jQuery) lassen sich aufgrund der Ausführung von browserseitigem Code sehr dynamische Projekte und Portale erstellen

Haben wir Ihr Interesse geweckt?

Dann lassen Sie uns jetzt mit Ihrem Projekt durchstarten!

Webbasierte Entwicklung, Webentwicklung, Wortwolke | emfITs GmbH

Der Begriff Webentwicklung dient zur Klassifizierung von Software, die webbasierte Technologien einsetzt und generell in einem regulären Webbrowser ausgeführt werden kann. Neben dem Vorteil der Plattformunabhängigkeit kann die größte Infrastruktur der Welt, das Internet, dazu verwendet werden, Informationen bereitzustellen und bearbeiten zu können. Genauso können webbasierte Technologien auch in lokalen Netzen eingesetzt werden, um Zugriffe von außen zu beschränken und eine Anbindung an netzinterne Dienste, wie z.B. eine Domänen-Authentifizierung, einzusetzen.

Durch die in der Webentwicklung eingesetzte Client-Server-Architektur ist des Weiteren eine gemeinsame und parallele Bearbeitung von Inhalten möglich. Die Daten werden meist in einer zentralen Datenbank abgelegt, die über einen Webserver ausgelesen, aufbereitet und an den Client, z.B. einen Webbrowser, ausgeliefert werden. Neben der Auslieferung von HTML-Inhalten können über den Webserver auch Webservices (WSDL/SOAP/REST) bereitgestellt und angebunden werden, sodass Daten zwischen mehreren Systemen ausgetauscht werden können.

Verwendete Technologien

Wir möchten Ihnen einen kleinen Überblick über Plattformen, Sprachen, Controller und Bussysteme geben, welche wir regelmäßig einsetzen.

Sprachen/Formate Frameworks/IDEs Plattformen Protokolle/Technologien
Webbasierte Technologien PHP | HTML | Javascript | CSS | Python Laravel | Bootstrap | jQuery Apache | nginx | Docker | Electron HTTPS | Sockets | REST | SOAP | OAUTH2
Hardwarenah C | C++ | C# Mbed OS | FreeRTOS | Eclipse | Mbed Studio | Arduino IDE STMicroelectronics STM32 | Espressif ESP32 | Atmel AVR/ATtiny I2C | SPI | CAN | WiFi | Bluetooth | Ethernet | Touch | Vibration (ERM/LRA)
Mobil Dart | Java Android SDK | XCode | Flutter iOS | Android Bluetooth | WLAN | GPRS | UMTS | LTE | Kamera | Laser Barcode-Scanner | AirPrint
Datenbanken SQL | PL/SQL | Trigger MySQL | MariaDB | PostgreSQL | sqLite | MSSQL
Export/Import XML | JSON | CSV | XLSX | DOCX | PDF FPDF | PHPOffice | EPPlus | Apache FOP XSL/T

Webbasierte Technologien

Sprachen/Formate PHP | HTML | Javascript | CSS | Pytdon
Frameworks/IDEs Laravel | Bootstrap | jQuery
Plattformen Apache | nginx | Docker | Electron
Protokolle/­Technologien HTTPS | Sockets | REST | SOAP | OAUTH2

Hardwarenah

Sprachen/Formate C | C++ | C#
Frameworks/IDEs Mbe4 OS | FreeRTOS | Eclipse | Mbe4 Studio | Arduino IDE
Plattformen STMicroelectronics STM32 | Espressif ESP32 | Atmel AVR/ATtiny
Protokolle/­Technologien I2C | SPI | CAN | WiFi | Bluetooth | Ethernet | Touch | Vibration (ERM/LRA)

Mobil

Sprachen/Formate Dart | Java
Frameworks/IDEs Android SDK | XCode | Flutter
Plattformen iOS | Android
Protokolle/­Technologien Bluetooth | WLAN | GPRS | UMTS | LTE | Kamera | Laser Barcode-Scanner | AirPrint

Datenbanken

Sprachen/Formate SQL | PL/SQL | Trigger
Frameworks/IDEs MySQL | MariaDB | PostgreSQL | sqLite | MSSQL

Export/Import

Sprachen/Formate XML | JSON | CSV | XLSX | DOCX | PDF
Frameworks/IDEs FPDF | PHPOffice | EPPlus | Apache FOP XSL/T

Weiteres

Betriebssysteme Windows | Linux | macOS/iOS | Android
Paket- und Versionsverwaltung GIT | Subversion | Perforce | NPM | Maven
CI und Buildsysteme Jenkins | qmake | nmake | cmake

Alles aus einer Hand? Gerne entwickeln wir auch Ihre Elektronik/Hardware!
Weitere Infos dazu unter:


Elektronik-/ Hardwareentwicklung

Hardwarenahe Software-Entwicklung

Die hardwarenahe oder embedded Entwicklung kommt zum Einsatz, sobald eigenständige Systeme mit beschränkten Ressourcen eingesetzt oder echtzeitkritische Anwendungen realisiert werden müssen.

Softwareentwicklung - Beispiel Software-Threads | emfITs GmbH

Echtzeitsysteme

Multithreading und Schutz von Datenstrukturen

Abhängig von der Komplexität und Aufgabe des Systems ist oft die Verwendung von schlanken Echtzeit-Betriebssystemen (RTOS) sinnvoll, um die "parallele" Abarbeitung von Prozessen sicherstellen zu können (Multithreading).

Diese Anforderung setzt den Einsatz von Verfahren zum wechselseitigen Schutz von Speicherstrukturen und Ressourcen voraus (Mutexe, Semaphore), die durch eine Thread-Synchronisation zur Sicherstellung der Datenintegrität dienen.

Softwareentwicklung - Anbindung von Busssystemen und Schnittstellen | emfITs GmbH

Anbindung an System-Busse und Schnittstellen

Die Ansteuerung lokaler System-Busse wie I2C und SPI gehört genauso zur hardwarenahen Entwicklung wie die Anbindung externer Schnittstellen wie CAN und Ethernet oder Funkschnittstellen wie WiFi-, Bluetooth- und GSM/GPRS.

Bei der Inverkehrbringung von Funkmodulen ist allerdings die Konformität zur RED-Richtlinie (Radio Equipment Directive) sicherzustellen.

Haben Sie weitere Fragen?

Dann zögern Sie bitte nicht uns anzusprechen!

Hardwarenahe Softwareentwicklung - Firmware | emfITs GmbH

Aktualisierbarkeit im laufenden System

Over-the-Air Firmware-Updates und Updates über Bootloader

Durch den Einsatz systemspezifischer Bootloader und Update-Funktionen kann die Übertragung von Firmware-Updates "im laufenden System" z.B. über den CAN-Bus oder WiFi ermöglicht werden.

Softwareentwicklung - Prozessorspezifische Optimierungen - NEON | emfTIs GmbH Skalarmultiplikation in NEON Registern

Prozessorspezifische Optimierungen

SIMD Performance durch Intrinsics

Für rechenintensive Operationen in der Signalverarbeitung, wie z.B. FFT-Berechnungen mit Millisekunden-Fensterung, bietet sich die Verwendung von plattform­spezifischen SIMD Optimierungen wie z.B. NEON oder VFPv3 an.

Durch den Einsatz von Intrinsics kann prozessorspezifischer Assembler Code dafür eingesetzt werden, um beispielsweise Vektoropera­tionen wie Matrixmulti­plikationen in speziellen, hochperfor­manten Registern zu berechnen.

IT-Infrastruktur

Netzwerk & Server

Bei der Anbindung unserer Soft- und Hardware-Lösungen an bestehende Infrastrukturen finden wir aufgrund der langjährigen Erfahrung und des breit gefächerten IT-Wissens unseres Teams stets eine passende Lösung.

IT-System-Administration

ActiveDirectory, DNS, Mail/Exchange, NAS/SAN, Virtualisierung, Datei- und Datenbanksysteme, USV, Windows-, Linux-, Reverse-Proxy- und Webserver

Netzwerk-Administration

OSI Layer >= 2, VPN, Firewall, Content-Filter, Routing, QoS

Software-Anbindung

API-Anbindungen, REST, JSON, WSDL, OAUth2, XML, CSV