AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Architekturfrage zur Weiterentwicklung einer Lösung
Thema durchsuchen
Ansicht
Themen-Optionen

Architekturfrage zur Weiterentwicklung einer Lösung

Ein Thema von Cogito · begonnen am 16. Dez 2009 · letzter Beitrag vom 16. Dez 2009
Antwort Antwort
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#1

Architekturfrage zur Weiterentwicklung einer Lösung

  Alt 16. Dez 2009, 14:37
Hallo zusammen,

ich habe eine Anwendung entwickelt, die auf der Basis von selbst erstellbarer Report-Templates recht hochwertige Reports in verschiedenste Formate konvertiert und auch mehrsprachig ausgeben kann. Das ganze ist bisher eine reine Client-Server Lösung, wobei die gesamte Konvertierungs- und Drucklogik im Client lag. Dieser Ansatz war für den Anfang ganz praktikabel, erweist sich aber bei steigenden Ansprüchen hinsichtlich Skalierbarkeit und auch Leistungsfähigkeit (hier besonders die Anzahl der erzeugten Reports) als nicht ausreichend. Meine Frage ist, wie könnte man eine solche Lösung von der Architektur und /oder Design besser gestalten (ist eine Delphi-Entwicklung)?
Ich hatte mir schon mal überlegt, die ganzen Druckroutinen in einen Windows Service auf einen Server auszulagern, das Problem scheint mir aber hier zu sein, das ich zur Erzeugung eines Reports relativ viele Komponenten brauche (z.B. sämtliche Zugriffe auf die Datenbank und falls ein Chart verwendet wird die TChart-Komponente usw.). Auch weiß ich nicht wie man dann mit diesem Service auf einem Rechner kommunizieren kann um ihm mitzuteilen wann er was zu erzeugen hat. Andererseits wäre aber auf diese Art das Erstellen der ganzen Drucktemplates von dem Erzeugungsprozess auf dem Server vollkommen getrennt und sollte jemand keinen Server benötigen könnte der Service auch auf der gleichen Maschine wie die GUI laufen. Eine andere Idee war alles von der Architektur zu belassen, aber die einzelnen Druckjobs in jeweils eigene Threads auszulagern.
Hat hier jemand schon mal was vergleichbares entwickelt und kann mir Tipps und Anregungen geben?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Architekturfrage zur Weiterentwicklung einer Lösung

  Alt 16. Dez 2009, 14:48
Hallo,

Zitat:
Dieser Ansatz war für den Anfang ganz praktikabel, erweist sich aber bei steigenden Ansprüchen hinsichtlich Skalierbarkeit und auch Leistungsfähigkeit (hier besonders die Anzahl der erzeugten Reports) als nicht ausreichend.
Mit dem Auslagern der Arbeit von 10 Clients (Bsp.) auf einen Server
wird es sich hinsichtlich der Skalierbarkeit aber eher zum Schlechteren wenden
(1 Rechner macht das, was bis jetzt 10 machen).

Threads sind eine gute Idde,
gerade weil heutzutage jeder mindestens einen Dual-Core hat.

Ich würde aber auch erst mal versuchen, herauszubekommen,
wo der Flaschenhals ist (Profiler).


Heiko
Heiko
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Architekturfrage zur Weiterentwicklung einer Lösung

  Alt 16. Dez 2009, 15:01
Zitat von Cogito:
Hat hier jemand schon mal was vergleichbares entwickelt und kann mir Tipps und Anregungen geben?
Vorteil eines eigenen Printservers: alle Reports können zentral administriert werden. Wenn man mehrere Anwendungen hat, die den gleichen Report drucken können sollen, wird es damit einfacher, neue Layouts zu installieren - es gibt nur eine Stelle, an der das Layout hinterlegt werden muss.

Nachteil eines Printerservers der als Service läuft: wenn man eine neue Version installieren will, muss man den Service stoppen - in dieser Zeit kann keiner den Service ansprechen. Es gibt natürlich jede Menge Lösungsmöglichkeiten, ich will da aber die Kreativität nicht einschränken

Vorteile: der Printserver entlastet die Clients. Man kann kostengünstige Thin Clients verwenden, da die dicke Rechenlast ausgelagert ist. Auch auf einem Terminalserver ist die Last aller Clients insgesamt niedriger. Der Printserver kann mit entsprechend stärkerer Hardware aufgesetzt werden, und bei entsprechendem Design kann bei Bedarf ein zweiter dazugeschaltet werden.

Die Parameterübergabe kann im einfachsten Fall per INI-ähnlicher Datei erfolgen. Rückgabe als PDF - die Weiterverarbeitung (zum Beispiel Druckvorschau, Versand als Mail oder Fax) sollte dann aber wieder innerhalb der aufrufenden Anwendung erfolgen, wenn man maximale Kontrolle dort benötigt.

Viele Grüße,
Michael Justin
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz