klst
  • Introduction
  • Einleitung ADempiere
  • de-mpiere
  • Benutzerhandbuch
    • Geschäftsprozesse
    • Vertriebsprozess
    • Beschaffungsprozess/Einkauf
    • Warenwirtschaft/Logistik
    • Produktion
    • Rechnungswesen/Buchführung
    • Personal und Gehaltsabrechnung
    • Systemadministration Voreinstellungen
    • Geschäftsbeziehungen
    • Aufbau der Fenster
    • Koexistenz mit DATEV
    • Datenaustausch mittels openTRANS
  • Administratorhandbuch
    • Installation
    • Kontenplan
    • Buchführungsschema
    • Banken
    • Übersetzungen
    • UI Anpassung
    • Referenzen/Datentypen
  • Entwicklerhandbuch
    • Architektur vs Anatomie
    • Entwurfsmuster
    • Entwicklungsumgebung
    • Eclipse IDE
    • swing Client
    • Swing vs SwingX
    • Look and Feel
    • Grid Modell
    • Infofenster
    • Bäume
    • openTRANS Anbindung
    • Administrationswerkzeuge
    • Referenzdaten Banken
    • gitbook-test
  • GLOSSAR
Powered by GitBook
On this page
  • Client-Server-Architektur
  • Datenbank-Schicht
  • Applikationsschicht
  • Präsentationsschicht
  • Fehlentwicklungen
  1. Entwicklerhandbuch

Architektur vs Anatomie

PreviousEntwicklerhandbuchNextEntwurfsmuster

Last updated 3 months ago

In der Informatik gibt es den Bergiff der . Der Begriff Anatomie ist im Softwarekontext nicht gebräuchlich. Dabei ist die heute verfügbare Software oft schlecht dokumentiert und die ursprünglichen Architekturentscheidungen nicht mehr im Detail nachvollzielbar. Das gilt insbesondere für reifere -Systeme wie ADempiere. Reifere Systeme sind in einem evolutionären Prozess über mehrere Generationen gewachsen.

Wenn hier die Architektur dokumentiert wird, dann sind es meist nicht Ergebnisse von Entwurfsentscheidungen, sondern die anatomischen Entdeckungen, die bei der Pflege und Weiterentwicklung des Systems angefallen sind.

Anatomie
Software Architetktur

Client-Server-Architektur

ADempiere ist als aufgebaut, bestehend aus zwei bzw. drei Schichten. Siehe auch .

Wie viele -Systeme ist ADempiere als aufgebaut. Bei der klassischen 3-Schichten-Architektur (im Bild oben am Beispiel ) gibt es diese Schichten:

  • Präsentation: auf Client-Seite gibt es mehrere UI Varianten

  • Applikationsserver

  • DBMS oder Datenbank-Schicht

Zur 3-tier-Architektur bei ADempiere gab es diese .

Datenbank-Schicht

http://www.adempiere.com/Table_Prefix, bzw. https://wiki.idempiere.org/en/Table_Prefix

Applikationsschicht

Serverschicht/Base

Präsentationsschicht

zwei Clients

  • Swing

  • WEB

Fehlentwicklungen

Im Zuge der Evolution entstehen Fehlentwicklungen. Auch Softwaresysteme sind davon nicht ausgenommen. Hier eine Liste, die meiner Ansicht nach Fehlentwincklungen in Adempiere sind:

  • Postleitzahlen und tel.Vorwahl, postal und areacode als Attribute von City: große Orte mit mehreren PLZ-en lassen sich nicht korrekt abbilden

  • Umsatzsteuer, Abhängigkeit vom Land des Käufers nicht vorgesehen: Steuersystem der EU nicht abbildbar

  • adempiere als Ganzes ist ein project, die git-subdirs ebenfalls

  • keine klare Trennung zwischen base und client project: packege org.compiere.swing in (base) ist deplaziert

mit Locale führt zur Redundanzen in Übersetzungen: es gibt keine deutsche Übersetzung, sondern eine de_DE und de_AT und de_CH

zyklische Abhängigkeiten in Unterprojekten

Softwarearchitektur
Open Source
Client-Server-System
Schichtenarchitekturen nach Anzahl der Schichten
ERP
verteiltes 3-Schichten System
SAP ERP
Überlegungen
Internationalisierung
siehe Circular Dependencies