IntarS

IntarS
IntarS
Entwickler seat-1 Software GmbH
und freiwillige Entwickler
Betriebssystem Windows, Linux
Kategorie Unternehmenssoftware
Lizenz GPL
Deutschsprachig ja
www.intars.de
Screenshot

IntarS ist eine komplett freie (unter der GNU GPL) Unternehmenssoftware (ERP, PPS, Warenwirtschaft) mit Webbrowser-Oberfläche für kleinere bis mittlere Handel-, Fertigungs- und Dienstleistungsunternehmen.

IntarS ist ein kommerzielles Open Source ERP System. Treibende Kraft hinter der Weiterentwicklung sind die seat-1 Software GmbH und die nach einer Schulung zertifizierten IntarS-Partner. Sie bieten kostenpflichtige Professional Services an und betreuen die Community auf SourceForge. Es gibt jedoch keine Unterscheidung zwischen Community- und Professional-Version, der Source ist tagesaktuell identisch.

IntarS richtet sich vor allem an Unternehmen, die individuelle Anforderungen haben und eine in die Jahre gekommene selbstgestrickte Individuallösung (meist auf dBase oder Access) ablösen wollen.

Inhaltsverzeichnis

Geschichte

Die Anfänge von IntarS reichen zurück bis 1996. Für ein datenbankorientiertes Kundenprojekt in ObjectiveC auf OPENSTEP mit häufig wechselnden Anforderungen entwickelte Pirmin Braun ein Modellierungswerkzeug, aus dem die IntarS Workbench entstand. In mehreren Folgeprojekten im Bankensektor und für die damalige BRAIN AG (später Agilisys, jetzt Infor) reifte das Anwendungsframework heran (Version 1).

1999 entstand in Zusammenarbeit mit Ralf Engelhardt die Branchenlösung "Möbel2000" (Version 2).

Im Jahr 2000 gründeten Pirmin Braun und Ralf Engelhardt die seat-1 Software GmbH und entwickelten "Möbel2000" weiter zu den branchenneutralen Produkten "seat-1 ERP" für Fertigung und "seat-1 WaWi" für Handel (Version 3). Als technische Neuerung kamen eine Weboberfläche und die Hybrid-Technik aus kompiliertem Code und Scripting zum Einsatz.

IntarS 4.0 kam Anfang 2004 unter GPL als schlankere Version der seat-1 Warenwirtschaft auf den Markt. Funktionsumfang, Operating, Arbeitsabläufe und Arbeitsteilung wurden auf die Erfordernisse kleinerer und mittlerer Unternehmen abgestimmt.

In 2006 hielt mit IntarS 5.0 eine noch stärkere Orientierung zu Scripting und kundenspezifischen Repositories Einzug. In Folge entstanden Branchenlösungen für Elektro, Automotive, Fahrradhersteller, Verlage. Mit 5.1 wurde der IntarScript Interpreter verbessert.

Mit IntarS 6.0 wurden 2010 unter anderem xhtml und interaktive svg-Grafiken für Dashboards und OLAP, ein vereinfachtes Programmiermodell für Anwendungsentwickler, sowie Installations- und Operating-Werkzeuge eingeführt.

Funktionsbereiche

  • Auftragsverwaltung
  • Angebotserstellung
  • Disposition
  • Lagerwesen, Inventur, Mehrlager
  • Rechnungslegung
  • Projektabwicklung
  • Bestellwesen
  • Arbeitsvorbereitung
  • Content-Management
  • Document-Management
  • Groupware
  • Fertigungsplanung
  • Fertigungssteuerung, Leitstand
  • Prozessteuerung durch Barcode-Scanner
  • CRM
  • Statistik-Auswertungen
  • Datev- und EuroFibu-Schnittstelle
  • Fuhrpark
  • Variantentechnik

Systemvoraussetzungen

IntarS läuft nativ auf 32-bit Windows und Linux (vorzugsweise Debian), als Virtual Appliance auf weiteren Plattformen im Intranet und Internet. Als Datenbank kommt MySQL zum Einsatz. Ein handelsüblicher PC als Server verkraftet 10 Benutzer gleichzeitig. Mit leistungsfähiger Hardware gibt es kein Limit für die Anzahl von Benutzern. Clients greifen über Web-Oberfläche darauf zu, z. B. mit Firefox oder Safari.

Technischnes

Architektur

In IntarS besteht eine Trennung zwischen Geschäftslogik und technischem Grundsystem.

Das Grundsystem ist in Objective-C geschrieben und mit dem gcc kompiliert. Es enthält einen Interpreter für IntarScript und Datenmodell, sowie eine allgemeine Infrastruktur für Datenbank, Druck, Oberflächensteuerung und Navigation, XML, Kommunikation und Betriebssystemzugriffe.

Die Geschäftslogik ist in IntarScript geschrieben (der dynamische Teil) und im Datenmodell definiert (der statische Teil). Die ca. 1000 Skripte und das Datenmodell bilden zusammen mit Moduldefinitionen, Layouteinstellungen, Stylesheet, Hilfedateien und weiteren Ressourcen das Repository.

Zur Laufzeit lädt das Grundsystem das Repository und wird dadurch zur eigentlichen Anwendung. Dies ist vergleichbar mit dem Laden eines Spreadsheets in eine Tabellenkalkulation.

Jeder registrierte Kunde bekommt eine eigene Mandantennummer, unter der sein individuelles (nicht öffentliches) Repository geführt wird. Damit bleibt das kompilierte Grundsystem update- und releasefähig und kann ohne Verletzung von Geschäftsinteressen als Open Source veröffentlicht und weiterentwickelt werden.

Programmierung

Um ein neues Repository zu bauen, wird das freie Standard-Repository 000230 oder das einer Branchenlösung dupliziert. Damit ist schon lauffähiges System vorhanden. Dieses wird nun nach und nach punktuell angepasst und erweitert.

IntarS hat eine flache Struktur von ca. 100 Modulen und 1000 überwiegend voneinander unabhängigen Scripts. Das hat mehrere Vorteile:

  • hat ein Script einen Fehler, sind die Auswirkungen auf dieses eine Script beschränkt (defensive Programmierung)
  • es können mehrere Programmierer parallel unabhängig voneinander daran arbeiten
  • der Programmieraufwand kann gut abgeschätzt werden, da er proportional zur Anzahl der betroffenen Scripts ist
  • die Versionierung und die Rückkehr zu einer bekannten lauffähigen Version kann in kleinen Schritten erfolgen

Alle Änderungen im neuen Repository bleiben privat. Es kann "auf der grünen Wiese" losgelegt werden ohne Rücksicht nehmen zu müssen auf eventuelle unerwünschte Auswirkungen in anderen Projekten. Umgekehrt beeinflusst auch kein anderes Kundenprojekt das eigene.

Die Scripts werden mit einem beliebigen Text-Editor bearbeitet. Für Notepad++ steht eine IntarScript Sprachdefinition mit Syntaxhighlighting und Keyword Completion zur Verfügung. Es wird an der laufenden Anwendung entwickelt, indem nach jedem Editiervorgang die geänderten Scripts neu geladen und gleich getestet werden. Das dauert nur wenige Sekunden und kommt der agilen Softwareentwicklung entgegen. Jedes Modul hat zudem eine interaktive Konsole, in der Scripts vorab ausprobiert und im Trial- und Error-Verfahren verbessert werden können. Ziel dieses Vorgehensmodells ist, möglichst schnell eine genau passende Individuallösung zu erstellen, die zudem noch während der Programmierung lauffähig bleibt und während des Echtbetriebs genauso flexibel kontinuierlich weiterentwickeln werden kann.

Unterstützung

Ein Grundgedanke von Open Source ist, dass man die Software anpassen kann. Dazu bietet IntarS folgende Unterstützung [1]:

  • Workbench zur Verwaltung des Datenmodells
  • Skript-Verwaltung
  • Migrationssuiten für dBase und verschiedene CRM Systeme wie z.B. Cobra Adressmanager oder SugarCRM
  • Modulverwaltung, Layout-Designer, Indexverwaltung
  • das Kapitel "Erweitern und Anpassen" im Hilfesystem
  • Tutorial
  • IntarScript-Referenz
  • Ein universelles Standard-Repository (Nr. 000230) als Anschauungsmaterial für "Programming by Example"

Wiederverwendung

Die Geschichte zeigt [2], dass Geschäftslogik schwer zu abstrahieren ist und sich damit den Wiederverwendungstechniken Vererbung oder aspektorientierter Programmierung entzieht.

Um dennoch das Rad nicht immer neu erfinden zu müssen, propagiert IntarScript die ungeplante oder unscharfe Wiederverwendung: Ist eine neue Individuallösung einige Zeit im Einsatz gereift, wird die Funktionalität informell in ein Wissensmanagementsystem aufgenommen. Kommt nun der Zeitpunkt, da man so etwas noch einmal bräuchte, wird die Funktionalität zwischen den Repositories gemerged. Das geschieht textlich mit WinMerge und der Workbench.

Wird etwas für allgemein interessant gehalten (z.B. Schnittstellen), wird es sogar ins Standard-Repository gemerged.

Die Repository-Struktur bis hin zur IntarScript Syntax ist auf möglichst effizientes Mergen (z.B. mit WinMerge) hin optimiert:

  • von Menschen lesbare Textdateien (UTF-8)
  • zeilenorientiert
  • innerhalb der Zeilen feste Felder
  • nach Möglichkeit sortiert
  • soviel Redundanz, dass eine Zeile für sich betrachtet schon aussagt, wo sie hingehört
  • feste Verzeichnis-Struktur, die vorgibt, an welcher Stelle sich ein File befinden kann und wie es heissen muss.
Mergen eines Layout Information Files

Die Entwicklung der Versionierungswerkzeuge wie subversion oder git in den letzten Jahren mit ihren Branch-, Fork- und Merge-Techniken geht in die gleiche Richtung.

Es sich in der Praxis gezeigt, dass Mergen die Qualität verbessert. Durch das ständige Vergleichen von Files aus unterschiedlichen Repositories werden nebenher Fehler gefunden, weil sie als Unterschied aufleuchten.

IntarScript

Ursprünglich entstand IntarScript 1997 als Interpreter zur Erzeugung von PDF. Im Laufe der Jahr wuchs der Sprachumfang ständig und wurde praxisgetrieben zu einer domänenspezifischen Sprache für die Implementierung von Geschäftslogik. Die Designziele der Entwickler waren:

  • Effizienz, wenig Schreibarbeit
  • DRY (Don’t repeat yourself) Prinzip
  • wenig Overhead
  • leichte Erlernbarkeit
  • Uniformität
  • gut zu versionieren und zu mergen
  • einfacher, performanter, leicht zu erweiternder Interpreter

IntarScript nimmt Anleihen an C, Objective-C, bash, Ruby, Java, Perl, Basic und dBase.

IntarScript enthält Befehle zur:

  • PDF-Erzeugung
  • Feld- und Dialogsteuerung
  • Datenbank-Abstraktion
  • Eingabeverarbeitung
  • Auswertung, Filterung, Suche, Import/Export Schnittstellen
  • Batch-Verarbeitung
  • Mail, Fax, Dokumentenmanagement

Skripte in IntarS sind verhältnismäßig klein. Da Stand-Alone-Skripte erzeugt werden, lässt sich unbeschwert drauflos programmieren. Variablen sind defaultmäßig im Einflussbereich eines Scriptes global, typenlos, und haben kurze Namen. Lokale Variablen und Typprüfungen müssen dagegen explizit deklariert werden.

IntarScript lässt dem Programmierer keinen künstlerischen Freiraum. Es gibt genau ein Statement pro Zeile und Befehle und Operanden werden ausnahmslos mit Komma getrennt. Der Schachtelung von Ausdrücken sind Grenzen gesetzt. Diese restriktive Syntax erleichtert die Versionsverwaltung mit subversion und WinMerge. Namenskonventionen werden forciert durch die Bevorzugung von Konvention vor Konfiguration. Als Folge gehen alle Scripts nach einem Schema, egal, wer sie programmiert hat, was die Übersichtlichkeit und die Zurechtfindung in fremden Scripts erleichtert.

Die Kombination aus kompiliertem Framework und Interpreter ergibt eine Gesamtperformance, die nur wenig hinter der eines komplett kompilierten Systems zurückbleibt. Das liegt daran, dass zum einen beim Systemstart zunächst alle Scripts eingelesen, geparst und in eine Art Bytecode überführt werden. Zum anderen laufen während des Vorgangs des Interpretierens die allermeisten Taktzyklen wieder in kompiliertem Code, weil es sich im Wesentlichen um eine Liste von Funktionsaufrufen handelt. Wäre das Framework dagegen ebenfalls in einer Scriptsprache wie z.B. PHP implementiert (solche ERP Software Systeme gibt es auch), wäre die Performance schlechter.

Es muss bei der Anwendungsentwicklung nichts mehr kompiliert werden.So wird laut Hersteller alles komplizierte, technische des kompilierten Frameworks von dem fachlichen, betriebswirtschaftlichen in den Skripten getrennt. Erweiterungen und Anpassungen erfolgen nahtlos mit derselben Technik, mit der auch der Standard erschaffen wurde.

Weblinks

Quellen, Verweise und Belege

  1. Handbuch
  2. James Carey, Brent Carlson: Framework Process Patterns: Lessons Learned Developing Application Frameworks. Addison-Wesley Professional, 2002 (Originaltitel: Framework Process Patterns: Lessons Learned Developing Application Frameworks), ISBN 0201731320.

Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Intars — Entwickler: seat 1 Software GmbH und freiwillige Entwickler Betriebssystem: Windows, Linux Kategorie: Unternehmenssoftware Lizenz: GPL …   Deutsch Wikipedia

  • Intars Busulis — Datos generales Nacimiento 2 de mayo de 1978 (33 años) …   Wikipedia Español

  • Intars Spalviņš — Nation Lettland …   Deutsch Wikipedia

  • Intars Busulis — Intars Busulis. Intars Busulis (né le 2 mai 1978 à Talsi, Lettonie) est un chanteur letton. Eurovision 2009 Il représentera la Lettonie lors de la seconde demi finale du Concours Eurovision de …   Wikipédia en Français

  • Intars Busulis — (2009) Intars Busulis (* 2. Mai 1978 in Talsi, Lettische SSR) ist ein lettischer Sänger. Beim Eurovision Song Contest 2009 vertrat Busulis Lettland mit dem Lied Probka. Das Lied trat in der Vorentscheidung zunächst auf Lettisch un …   Deutsch Wikipedia

  • Intars Dambis — (born September 3, 1983) is a Latvian bobsledder who has competed since 2002.Career highlights;World Championships::2005 Calgary, 24th at 4 bob with Guts / Dicmanis / Rozitis:2007 St. Moritz, 20th at 2 bob with Mihails Arhipovs:2007 St. Moritz,… …   Wikipedia

  • Бусулис, Интарс — Интарс Бусулис Intars Busulis …   Википедия

  • Bob-Weltcup 2008/2009 — Der Bob Weltcup 2008/2009 begann am 29. November 2008 in Winterberg und endete am 15. Februar 2009 im US amerikanischen Park City. Der Höhepunkt der Saison war die 59. Bob Weltmeisterschaft vom 16. Februar bis zum 1. März 2009 in Lake Placid. Die …   Deutsch Wikipedia

  • Coupe du monde de bobsleigh 2009 — Sport Bobsleigh Organisateur(s) FIBT Date du 29 novembre 2008 au 14 février 2009 …   Wikipédia en Français

  • Coupe du monde de bobsleigh 2008-2009 — Infobox compétition sportive Coupe du monde de bobsleigh 2008 2009 Sport Bobsleigh Organisateur(s) FIBT Date du 29 novembre 2008 au 14 février  …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”