# Digital Asset Management System



## Panda9296 (5. Aug 2020)

Hi Leute,
ich möchte mich im Rahmen eines Vorstellungsgesprächs auf das im oben geschrieben Thema vorbereiten und frage mich, womit man so ein System programmiert. 
Es geht um eine spezialisierte Software die mich an Git erinnert^^. 
Jetzt meine Frage: 
Mit welcher Sprache wird sowas programmiert? 
Ist das ein Serverlastiges System oder ist es ein Clientlastiges System?
Ich würde auf Serverlastig tippen und PHP dann wohl nennen müssen... Ich möchte mich aber an dieser Stelle nochmal umfangreich informieren. Hat jemand vielleicht eine gute Informationsquelle?

Das Ding ist, dass ich mit Skriptsprachen so noch gar nichts zu tun hatte was Development angeht. Nur mit dem Design also HTML und CSS...


----------



## kneitzel (5. Aug 2020)

Also die Frage, womit man so eine Asset Verwaltung entwickelt ist so pauschal nicht zu beantworten.

Und ohne Details ist da kaum etwas zu sagen. Das kann Server-Lastig sein, aber ebenso Client-Lastig. Assets kann ich zur Not mit Excel Sheets verwalten. Dann hast Du nicht einmal einen Server. Nur um mal ein extremes Beispiel zu nennen.

Dann kann man es als Web Applikation schreiben (Was Du jetzt etwas im Sinn hattest, wie ich Dich verstanden habe). Aber das besagt dann auch nichts zu der Umsetzung. Das kann auf alle möglichen Wege implementiert werden. Per CGI kann ein Webserver das an eine beliebige Applikation / Script geben. Oder es wird etwas eingesetzt wie PHP. Oder ASP.Net wenn man in C# / VB.net entwickeln möchte. Natürlich ist auch Java denkbar, wobei bei Java dann auch wieder die Frage ist, was man da dann einsetzen möchte (JSP, Servlets, JEE, ...)

Damit hast Du nun schon einiges an Begriffen, die Du recherchieren könntest. Generell wäre aber dann wohl anzuraten, sich erst einmal vor Augen zu führen, auf was für Technologien das basiert. Da wären dann wohl zu nennen:
http -> Das ist das Protokoll, mit dem Web-Clients mit dem Web-Server kommunizieren.
AJAX -> Asynchrones Javascript - damit kann dann eine Webseite sich dann selbst aktualisieren. Das wäre so eine Art Basis für das, was man dann wohl als Single Page Web Application bezeichnen würde ...
Web-Assembly wäre evtl. dann auch etwas, das man recherchieren könnte. Das wäre dann etwas, das man aber auch wieder mit vielen Programmiersprachen entwickeln kann (https://webassembly.org/getting-started/developers-guide/)
...

Also extrem umfangreiches Feld... Viel Spass beim Einlesen. Evtl. hat ja auch noch jemand eine gute Übersicht parat, die den Einstieg einfach macht ...


----------



## Panda9296 (5. Aug 2020)

also Ein Schulkollege hat gerade gemeint, dass er das Unternehmen kennt und meint, dass es in die Richtung c#,c++ geht. Aber warum laden sie mich dann in ein Vorstellungsgespräch mit java-Kenntnissen^^. Geht um das Praktikum im Rahmen meiner Umschulung. Ich versuche zu verstehen, für was ich eingesetzt werden könnte


----------



## MoxxiManagarm (5. Aug 2020)

Panda9296 hat gesagt.:


> Aber warum laden sie mich dann in ein Vorstellungsgespräch mit java-Kenntnissen^^



C# ist Java garnicht soooo unähnlich, und verabschiede dich von dem Gedanken nur Java zu machen. Im Allgemeinen geht man schon davon aus, dass sich ein Entwickler schnell in andere Technologien einarbeiten kann.

Nun zu deiner Frage...

Vielleicht erstmal klären was ein Asset ist. Ein Asset ist mehr oder weniger statischer Content. Das können z.B. Medienformate sein (Bilder, Videos...), statische html Pages/Stylesheets/Font oder auch einfach nur js Dateien. Solche Assets werden typischer Weise von Client-Applikationen (z.B. Webseiten) geladen. Bleiben wir im Beispiel Webseiten, warum man nun unter Umständen ein solches Management System benötigt. Das hat aus meiner Sicht 2 Hauptgründe:
1. Die Webseite wird ja auch auf einem Webserver deployed, welcher von der Webseiten Url angesprochen wird. Das Laden des Assets erfolgt, sofern die Assets direkt an der Client-Applikation hängen, eben von jenem Webserver. Bei einer erhöhten Zugriffszahl kann das Laden dieser Dateien zu einer kritischen Auslastung führen. Ein solches Asset Management System ist für mich nichts anderes als ein Server, der nur diese Dateien zur Verfügung stellt. Ein solcher Server ist leichter skalierbar.
2. Ein Asset, welches mit dem Client-Projekt selbst ausgeliefert wird, ist eben auch Teil des Client-Projektes. In anderen Worten: Eine Änderung ist eine neue Version des Projektes. Ein solches Asset Management System würde es ermöglichen z.B. ein Bild auszutauschen ohne die Applikation neu deployen zu müssen.


----------



## Panda9296 (5. Aug 2020)

Sehr hilfreich. Bevor ich mich jetzt tiefer vorbereite auf morgen(soweit das halt bis morgen geht), es ist von einem Masterdokument die Rede... ist das ein Dokument wie eine PDF-Datei die aus allen möglichen txt. Speicherungsarten eine kopiergeschützte Version für alle Systeme zur Verfügung stellt( nur dass es auch für andere Bausteine wie Bilder gehen müsste)?


----------



## MoxxiManagarm (5. Aug 2020)

Panda9296 hat gesagt.:


> Masterdokument die Rede... ist das ein Dokument wie eine PDF-Datei die aus allen möglichen txt. Speicherungsarten eine kopiergeschützte Version für alle Systeme zur Verfügung stellt( nur dass es auch für andere Bausteine wie Bilder gehen müsste)?


Ich verstehe nicht was du meinst ^^ Aber ich gehe davon aus, dass es schlicht das aktuelle Dokument ist, betrifft meinen Punkt 2. Ich denke die meisten Asset Management Systeme bieten eine Versionierung - wie du schon meintest - wie git. Vom Client her willst du aber immer nur das Gleiche Dokument ansprechen.

Möglicher Weise ist es aber auch einer eine Art Discovery File. Discovery Files sind mehr oder weniger Dictionaries, welche man initial beim Applikationsstart lädt. In diesem Dictionary können dann verschiedene Sachen drin stehen, welche du für die weitere Programmverwendung dynamisch auslesen musst. Das sind oft Url's zu verschiedenen Dingen, meist Service Endpunkte. So kann es im Fall eines Asset Discovery Files sein, das dein Bild nur einen Namen oder eine Id hat. Diesen Wert suchst du dann in deinem Discovery File, erhältst dort die url zum Bild und lädst dann erst das Bild nach. Für ein DAM finde ich das aber nicht sinnvoll, das kann bei vielen gehosteten Dateien schnell sehr groß werden.


----------



## MoxxiManagarm (5. Aug 2020)

Die obigen 2 Gründe aus #4 für Asset Management sind jetzt auch eher aus Entwicklersicht. Es gibt natürlich auch andere Gründe.

Ein Beispiel:
In vielen Unternehmen gibt es Leute, die sich hauptsächlich mit dem Stil von digitalen Inhalten beschäftigen. Das sind Designer und sie haben eine Designsprache mit der sie sprechen, genauso wie wir mit Code. Die machen sich auch über den Inhalt eines Bildes Gedanken und wie es auf denjenigen wirkt, der es betrachtet. So könnte man mit einem DAM auch ein neues Bild hinzufügen, es in den "Review" geben und das Bild ist erst dann von außen erreichbar, wenn jemand das Bild freigegeben hat. Auch hier wieder viele Ähnlichkeiten zu git, nur eben in einem anderen Umfeld.


----------



## Dukel (5. Aug 2020)

Wikipedia bringt evtl. Hilfreiche Infos.




__





						Digital-Asset-Management – Wikipedia
					






					de.wikipedia.org
				




Du kennst doch den Hersteller (bei dem du dich bewirbst) des Systems. Schaue dir die Webseite / das Produkt an. Evtl. gibt es auch Requirements.


----------



## Panda9296 (5. Aug 2020)

ja es ist wirklich total interessant. Geht um Cavoc ... damit wird die Variante mit CGI immer interessanter für mich. Wenn ich das richtig verstanden habe =)


----------



## kneitzel (5. Aug 2020)

Also auf cavok.pro (ich denke einmal, das meintest Du) habe ich zum Aufbau erst einmal nichts gefunden. CGI (Common Gateway Interface) ist aber etwas, das relativ alt ist und ich würde derzeit bezweifeln, dass dies so in der Form Verwendung findet. Bei CGI selbst ruft der Webserver einen neuen Prozess auf, der dann den Request bekommt und die Ausgabe geht dann zurück an den Client. Das ist prinzipiell recht langsam. Da gibt es dann Ansätze, dies zu beschleunigen - FastCGI wäre da eine Idee. Aber auch mod_perl, mod_python.

Aber das waren mehr so Themen vor 2000 ... Ich möchte nicht ausschließen, dass dies auch heute noch irgendwo verwendet wird, aber die Wahrscheinlichkeit halte ich nicht für sehr hoch. (Und wenn man z.B. mal bei Python schaut, dann findet man da: " CGI ist zwar veraltet, doch wegen des einfachen Aufbaus bietet es einen leichten Einstieg. Jedoch sollte man die ersten Gehversuche nicht zu weit treiben; CGI ist nicht gut für den produktiven Einsatz geeignet. " https://wiki.pythonde.pysv.org/Python und die Webentwicklung

Das nur um es einmal etwas einzuordnen. Es wurde genannt, weil es das halt immer noch gibt. Aber ich habe halt einfach mehrere Dinge aufgezählt in meinem Post ohne eine Bewertung vorzunehmen. Aber CGI würde ich eigentlich als tot bezeichnen ....


----------



## mrBrown (29. Mai 2022)

Lucrylucky hat gesagt.:


> Das System zur Verwaltung digitaler Bestände umfasst: - Struktur der Eingaben; - Struktur der Klassifizierung der Eingaben; - Struktur der Kommentierung der Mediendaten; - Struktur der Informationsspeicherung; - Struktur der Datenabfrage; - System der Verteilung von Fotos, Videos, Musik, Animationen usw.


Du musst unter einem schon längst beerdigten Beitrag nicht Buzzword-Bingo spielen, das kommt meist eher weniger gut an…


----------

