Medium.net wurde 1998 gegründet, um anfangs die Software
JustChat ,
einen anspruchsvollem Web-Chat-System, zu entwickeln und zu vermarkten.
Im Laufe der Zeit haben sich durch die Kundenwünsche und -anforderungen unter anderem folgende Kompetenzen herausgebildet:
Software-Entwicklung
ist das Kerngeschäft von Medium.net.
Wir entwickeln Software
im Auftrag
in Projektarbeit mit anderen Partnern
in Eigenregie
Unsere Software-Entwicklungs-Schwerpunkte liegen auf
Internet-Server-Software wie
Web-Server: liefern Dokumente an das Netzwerk
Chat-Server: ermöglichen die Echtzeit-Kommunikation zwischen Menschen per Text-Eingabe
Ad-Server: liefert und zählt Werbung für verschiedene Werbekunden einer Web-Site
Application-Server: liefern auf eine Anwendung zugeschnittene, dynamisch generierte Dokumente an das Netzwerk
DNS-Server: übersetzen Internet-Domain-Namen wie www.medium.net in IP-Adressen
RADIUS-Server: erlauben und protokollieren die Einwahl von Internet-Usern
Abrechnungs-Server: zählt den Internet-Traffic und schlüsselt ihn nach Hosts und Ports einzeln auf
Software für mobile Endgeräte (Handys, PDAs, etc.) wie
Kalaha , dem alten aber packenden Spiel, was bereits vor 3500 Jahren existierte
EuroCheck , dem Echtheits-Überprüfer von Euro-Banknoten
anderer Software, die derzeit noch nicht hier näher erwähnt werden darf
Wir entwickeln hauptsächlich in der Programmiersprache Java, jedoch sind Projekte in
C
C++
Pascal|Delphi
JavaScript
Shell-Scripting (wie GNU bash)
PERL
PHP
Intel 80x86 Assembler (Intel und GNU-Stil)
Motorola 680x0 Assembler
durchaus möglich.
Wir entwickeln hauptsächlich für diese Plattformen:
J2SE (Java 2 Standard Edition)
J2EE (Java 2 Enterprise Edition)
J2ME (Java 2 Micro Edition) (auf mobilen Endgeräten)
Linux
Windows
BSD
KDE und Qt (Benutzeroberflächen)
Es sind aber auch andere Plattformen möglich.
Netzwerk-Administration
Manche unserer Software-Kunden benötigen von Zeit zu Zeit Wartung und Pflege der Technologie,
die neben unserer Software hinter ihrem Projekt steht. Obwohl diese andere Technologie nicht unser
Aufgabenbereich war, wandten sich die Kunden dennoch an uns, wenn es Probleme damit gab.
Daraus haben sich System-Administrations-Kompetenzen herausgebildet.
Wir administrieren vorzugsweise Systeme auf Linux- und Windows-Basis, hauptsächlich als Fernadministration
über Telefon und Internet.
Wir loggen uns in die Systeme über eine Fernsteuerung wie z.B.
SSH
Telnet
VNC
pcAnywhere
NetOp
ein und verwalten die Systeme nach Kundenwunsch.
Wenn nötig, führen wir parallel mit dem Kunden ein Telefongespräch.
Ist ein Netzwerkzugang nicht möglich (z.B. weil er erst noch konfiguriert werden muss), weisen wir den Kunden
bzw. einem seiner Mitarbeiter an, entsprechende Handlungen vorzunehmen.
Unter anderem erledigen wir folgende Arbeiten:
Frische Installation von Systemen
Upgrades auf neue Versionen
Hardware-Konfiguration (incl. Netzwerk-Konfiguration)
Kernel-Konfiguration, -Compilierung und -Installation
Konfiguration und Installation von Boot-Managern (z.B. GRUB)
Fehlersuche, wenn etwas nicht funktioniert wie es soll
Reparatur von defekten Festplatten (Ja, das funktioniert in vielen Fällen.)
Unter der Vorraussetzung, dass wir die betroffenen Anwendungen bereits kennen oder schnell kennen lernen können (das können wir meistens):
Installation und Konfiguration von Anwendungen
Fehlersuche bei Anwendungen
Auch konzipieren wir Rechner und Netzwerke entsprechend der Lösung, die der Kunde anfordert. Darunter fallen z.B.
Konzeption eines Netzwerkes
IP-Adressen-Vergabe (z.B. dynamisch per DHCP)
Routing
Verteilung von Resourcen innerhalb des Netzwerkes (Netzwerkgeschwindigkeit, CPU, RAM, Festplattenspeicher)
automatische und manuelle Ausfalltoleranz für Netzwerk-Verbindungen (z.B. durch Backup-Leitungen)
Konzeption von Rechnern
Wahl des Betriebssystems
Wahl des Dateisystems
Verteilung von Resourcen (z.B. Sollen die Festplatten partitionert werden? Wenn ja, wie? )
Wahl des Kernels
Wahl der Architektur (z.B. Wären Mehrprozessorsysteme für meine Lösung notwendig und sinnvoll? )
Arbeitsphilosophie
Unsere Arbeit und ihre Ergebnisse zeichnet sich durch bestimmte Merkmale aus. Dazu zählen u.A.
Plattformunabhängigkeit:
Ihre Systeme ändern sich, unsere Lösungen bleiben und brauchen oft gar keine Anpassungen an
die veränderten Bedingungen.
Skalierbarkeit:
Wachsen die Ansprüche an unsere Produkte, so wachsen unsere Produkte mit.
Schnittstellen:
Damit Komponenten in einem System wachsen können, ohne dass das restliche System dafür angepasst werden muss,
existieren klar definierte, erweiterbare Schnittstellen.
Konzeptbildung:
Bevor wir an eine Sache herangehen, bilden wir ein Konzept entsprechend den Anforderungen,
welches die Struktur der Lösung definiert und gleichzeitig zukünftige Erweiterungen in Betracht
zieht.
Objektorientiertes Denken:
Wir entwickeln unsere Lösungen nicht monolithisch, sondern aus einzelnen Komponenten. Ändern
sich die Anforderungen an die Lösungen, so muss häufig nur ein kleiner Teil der Komponenten
angepasst werden.
Aus dieser Philosophie heraus resultiert, dass unsere Produkte nur geringe Kosten bei Anpassung an geänderte Anforderungen,
geänderte Rechnerarchitekturen, geänderte Betriebssysteme oder geänderte Last haben. Dies ist essentiell für eine langlebige
Lösung, die das Optimum aus den jeweils neuen, aber deswegen vergänglichen Früchten der Informationstechnologie herausholen will.