This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
en:software:cba:unit_management [2018/03/06 10:09] Julian Le created |
en:software:cba:unit_management [2021/07/01 09:52] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | FIXME **This page is not fully translated, yet. Please help completing the translation.** \\ | + | ====== Unit Management====== |
- | //(remove this paragraph once the translation is finished)// | + | |
- | ====== Unit-Verwaltung ====== | + | |
- | === Aufgabe === | + | === Task === |
- | Units sind programmtechnische Einheiten, die dynamisch in das CBA-Framework eingebunden werden. Die Units implementieren Methoden, die die Funktionalität realisieren. Sie stellen neben Konfiguration und deskriptiver Beschreibung den dritten Weg zur Implementierung von Software-Anwendungen dar - die programmtechnische Implementierung. Die CBA-Units sind dabei selbst in hohem Maße parametrierbar, sodass die Implementierung wieder verwendbarer programmtechnischer Einheiten nicht nur möglich, sondern auch sehr gut unterstützt wird. | + | Units are program technical units, which are dynamically integrated into the CBA-Framework. The units implement methods, that realize the functionality. They present besides configuration and descriptive specification the third way for implementation - the program technical implementation. The CBA-Units are to a large extent parameterizable, so that the implementation of reusable program technical unit is not only possible, but also supported in a very good way. |
- | Das Unit-Konzept ist en Kernstück von CBA und wurde auf der Basis eines bewährten Service-Design-Pattern für service-orientierte Anwendungen konzipiert. Seine programmtechnische Umsetzung mit Hilfe des CBA-Frameworks war ein konseqünte Fortführung dieses Gedankens. Ziel ist es, kleine, methodisch sauber entwickelbare und effizient umsetzbare programmtechnische Einheiten zu schaffen, die nach einheitlichen Prinzipien zusammenarbeiten. Hier spielten auch insbesondere Aspekte der Losen Kopplung zwischen programmtechnischen Einheiten eine wichtige Rolle. Die Units selbst werden parametriert und der Informationsfluß zwischen ihnen konfiguriert. | + | The unit concept is a core piece of CBA and was designed on the basis of a proven Service-Design-Pattern for service-oriented applications. Its program technical implementation was with the help of the CBA-Framework a consistent continuation of this aspect. The goal is to create small, methodically clean developable and efficiently feasible units, that work together with uniform principles. Especially aspects of loose coupling between porgramm technical units played an important roll. The Units themselves are parameterised and the information flow between them is configurated. |
- | Das CBA-Unit-Konzept baut auf einem 3-Ebenen-Konzept auf. In jeder Ebene gibt es eine Art programmtechnischer Einheiten mit definierten Interfaces | + | The CBA-Unit-Concept builds on a 3-Layer-Concept. On every layer exists a kind of programm technical units with defined interfaces |
* Data Access Layer | * Data Access Layer | ||
Line 15: | Line 13: | ||
* User Interface Layer | * User Interface Layer | ||
- | Die Unit-Verwaltung kennt die konfigurierten Einheiten und instanziiert die Units dynamisch zu dem Zeitpunkt, zu dem sie das erste mal aufgerufen werden. | + | The Unit Management knows the configurated units and instantiates the Units dynamically at the time they are called for the first time. |
- | <note important>BILD UNIT FEHLT</note> | + | <note important>PICTURE UNIT MISSING</note> |
- | Das CBA-Framework bietet für jede Ebene ebenenspezifische Zugriffsfunktionen, die die richtige Unit ermitteln und die gewünschte Funktion aufrufen. Das CBA-Framework und sein Vorgänger-Produkt ADT, das nach den gleichen Prinzipien arbeitet, haben sich in langjähriger Arbeit und in vielen Projekten bewährt. Es ist stabil und praxiserprobt, ermöglicht aber dennoch jede Art von Erweiterung. Diese Offenheit ermöglicht es, dass vielfältige Applikationen auf der Basis des CBA-Frameworks implementiert werden können. | + | The CBA-Framework offers for every layer layer-specific acces functions, which determine the right Unit and call the right function. The CBA-Framework and its predecessor product ADI, that works with the same principles, have proven themselves in long-standing work and many products. It is stable, tried and tested, but still enables every kind of expansion. This openness enables the implementation of diverse applications on the basis of the CBA-Framework. |
- | Die starke Entkopplung programmtechnischer Einheiten zwingt einerseits zu einer klaren Strukturierung der Software, unterstützt jedoch andererseits den Software-Entwicklungs-Prozess sehr gut methodisch. Durch die Vorgabe von programmtechnischen Design-Pattern ist der Code leicht verständlich. Die verschiedenen Methoden der Einheiten haben wohldefinierte Aufgaben, sodass schon im Entwurf beginnend eine einfache und zugleich eindeutige Beschreibung der Programm-Logik machbar ist. Häufig kann auch ohne eine weitere formale Beschreibung der Code direkt implementiert werden. Diese Eigenschaft ist gewollt und fördert agile Methoden. Alternativ hat sich auch die Beschreibung in Form von Pseudo-Code in den programmtechnischen Rahmen als vorteilhaft erwiesen. Für größere Aufgaben können z.B. Modelle mit UML erstellt und in einem getrennten Schritt implementiert werden. | + | The strong decoupling of programm technical units on the one hand forces a clear software structure, but on the other hand supports the software development process very good methodically. Through the specification of programm technical Design-Pattern the code is easily understandable. The units' different methods have well defined tasks, so that a easy and explicit description of the program logic is already realizable in the design. The code can also often be implemented without a formal description. This feature is intended and enhances agile methods. Alternatively has the description in form of pseudo code also proven to be beneficial in the program technical frames. E.g. For bigger tasks models can be created with UMl and implemented in a seperate step. |
---- | ---- | ||
- | === Architektur === | + | === Architecture === |
- | Das CBA-Framework kennt drei Unit-Typen: | + | The CBA-Framework knows three Unit types: |
* DAU - Data Access Unit | * DAU - Data Access Unit | ||
Line 33: | Line 31: | ||
* UIU - User Interface Unit | * UIU - User Interface Unit | ||
- | Prinzipiell kann die CBA-Unit-Verwaltung auch weitere Unit-Typen verwalten. Das Bild gibt einen Überblick über die Struktur der Interfaces und Klassen. Bei der Implementierung neuer Unit-Typen sind die beschriebenen Architekturprinzipien einzuhalten. | + | In principle the CBA-Unit-Management can also manage more Unit types. The picture gives a overview over the structure of interfaces and classes. When implementing new Unit types the architecture principles are to comply with. |
- | <note important>BILD FEHLT</note> | + | <note important>PICTURE MISSING</note> |
- | Jeder Unit-Typ realisiert ein typspezifisches Interface, das von dem Interface **ICbaUnit** abgeleitet ist.**ICbaUnit** definiert die Funktionen, die für die dynamische Verwaltung der Units notwendig sind. Von dem Interface **ICbaUnit** bzw. der dazu gelieferten Basis-Implementierung **CbaUnit** werden die Interfaces bzw. Implementierungen abgeleitet. Dazu definiert CBA die Interfaces bzw. Basis-Implementierungen | + | Every Unit type realises a type-specific interface, which is derived from the interface **ICbaUnit**. **ICbaUnit** defines the functions, that are necessary for the dynamic management of the units. The interface or implementations are dervied form the interface **ICbaUnit** or the provided base implementation **CbaUnit**. For that CBA defines the interface or the base implementation |
* | * | ||
- | * Data Access Units: **ICbaDau** bzw. **DauBasic** | + | * Data Access Units: **ICbaDau** or **DauBasic** |
- | * Business Logic Unit: **ICbaBlu** bzw. **BluBasic** | + | * Business Logic Unit: **ICbaBlu** or **BluBasic** |
- | * User Interface Unit: **ICbaUiu** bzw. **UiuBasic** | + | * User Interface Unit: **ICbaUiu** or **UiuBasic** |
- | Jede Unit wird durch eine Klasse implementiert. Die Unit-Verwaltung instanziiert Objekte der konfigurierten Klasse. In der Konfiguration der Units wird unter **Assembly** die DLL angegeben, in der die **Klasse** enthalten ist. Die Angaben zu den Assemblies erfolgen ohne die Dateierweiterung *.DLL. Die Klasse wird mit dem Namespace angegeben. | + | Ever Unit is implemented via one class. The Unit-Management instantiates objects of the configurated class. In the configuration of the units the DLL, which containes the **class**, is put under **Assembly**. The statements about the Assemblies take place without the file expansion *.DLL. The class is given with the namespace. |
- | Im CBA-Lieferumfang ist eine Menge von Standard-Implementierungen enthalten. Diese systemseitig angebotenen Units sind jeweils von einer typspezifischen Basisklasse abgeleitet worden. | + | In the CBA scope of delivery is a set of standard implementations present. The from the system offered Units are in each case derived from a type-specific base class. |
---- | ---- | ||
- | === Konfiguration === | + | === Configuration === |
- | Neue Units können folgendermassen implementiert und zu CBA hinzugefügt werden: | + | New Units can be implemented and added to CBA in the following way: |
* | * | ||
- | * Implementierung der gewünschten Funktionen durch Ableitung von der Basisklasse | + | * Implementation of the desired functions by deriving from the base class |
- | * Einfügen eines neün Datensatzes in die Unit-Verwaltung unter Menüpunkt Konfiguration - Einheiten unter Angabe aller erforderlicher Konfigurations-Parameter | + | * Integration of a new data set into the Unit-Management under the menupoint configuration - units under specification of all required configuration parameter |
- | * Upload des Assembly und der Dokumentation | + | * Upload of the Assembly and the documentation |
- | Zu Laufzeit instanziiert die Unit-Verwaltung die Objekte der konfigurierten Klasse als Unit und bindet sie in den Informations- und Steuerfluss dynamisch ein. | + | For the duration the Unit-Management instantiates the objects of the configurated class as a Unit and dynamically integrates them into the information and control flow. |
---- | ---- | ||
- | === Funktionen === | + | === Functions === |
+ | For the Unit-Management the following functions of the CBA-Framework are available: | ||
- | Für Unit-Verwaltung stehen folgende Funktionen des CBA-Frameworks zur Verfügung: | + | * **getUnit:**instantiates the Unit of the given type and the given ID |
+ | * **getDau:**determines or instantiates the configurated DAU for the table . Every DAU is only instantiated once, even if it is configurated for multiple tables. | ||
+ | * **getBlu:**determines or instantiates the configurated BLU for the table . Every BLUis instantiated once for every table | ||
+ | * **getUiu:**determines or instantiates the configurated UIU for the user interface. Every UIU is instantiated once for ever user interface | ||
+ | getUnit is only used for internal needs, but also offer the possibility to manage other Unit types with the CBA-Unit-Management. For this purpose it makes sense to implement similiar functions like getDau, getBlu or getUiu, that can be accessed from the outside. | ||
- | * **getUnit:**instanziiert die Unit des angegeben Typs und der angegebenen ID | + | The functions of the Unit-Management are mainly called from the CBA-Framework. But for the expansion of the Framework they are uselful. |
- | * **getDau:**ermittelt bzw. instanziiert die konfigurierte DAU für die Tabelle. Jede DAU wird nur einmalig instanziiert, auch wenn sie für mehrere Tabellen konfiguriert ist. | + | |
- | * **getBlu:**ermittelt bzw. instanziiert die konfigurierte BLU für die Tabelle. Jede BLU wird pro Tabelle instanziiert. | + | |
- | * **getUiu:**ermittelt bzw. instanziiert die konfigurierte UIU für das User Interface. Jede UIU wird pro User Interface instanziiert. | + | |
- | getUnit wird nur für interne Zwecke genutzt, bietet aber auch die Möglichkeit, andere Unit-Typen mit der CBA Unit-Verwaltung zu verwalten. Zu diesem Zwecke würde sinnvollerweise eine ähnliche Funktion wie getDau, getBlu oder getUiu implementiert werden, die dann von aussen zugegriffen wird. | + | |
- | + | ||
- | Die Funktionen der Unit-Verwaltung werden hauptsächlich aus dem CBA-Framework aufgerufen. Für die Erweiterung des Framework sind sie jedoch sinnvoll. | + | |