Od teme v reviji do projektne prakse
Ustrezne strani storitev in tehnični opisi k prispevku
Video-Botschaft
Kombiniranje Delphi namiznih aplikacij in spletnih portalov: arhitektura, vmesniki in modernizacija brez prekinitve
Warum „Portal statt Desktop“ oft scheitert und wie ein gemeinsamer Service-Kern Desktop und Web-Portal konsistent verbindet – mit Fokus auf Betrieb, Rechte und wartbare Schnittstellen.
Video mit KI erstellt
Transkript anzeigen
Guten Tag. Der größte Fehler ist, Portal und Desktop getrennt weiterzuentwickeln.
Im Beitrag „Delphi Desktop und Web-Portale kombinieren: Architektur, Schnittstellen und Modernisierung ohne Bruch“ geht es genau darum. Viele Firmen haben eine stabile Delphi-Desktopanwendung.
Intern läuft damit alles schnell. Aber extern brauchen Kunden und Partner ein Web-Portal – ohne VPN und ohne Client-Rollout.
Wenn man dann nur „Masken im Browser“ nachbaut, entstehen doppelte Regeln. Das merkt man im Betrieb: andere Ergebnisse, mehr Support, schwerere Fehleranalyse.
Die saubere Lösung ist ein gemeinsamer Service-Kern. Also eine zentrale Prozessschicht, die Rechte, Prüfungen und Statuswechsel übernimmt.
Desktop und Portal greifen über definierte Schnittstellen darauf zu. So modernisieren Sie schrittweise, ohne Big-Bang.
Wenn dazu Fragen offen sind, sprechen Sie mich gern an. Wenn Sie dazu Fragen haben oder das Thema auf Ihre eigene Umgebung beziehen moechten, sprechen Sie uns gern an.
V številnih podjetjih se je strokovna „krmilna centra“ skozi leta razvila kot Delphi-namizna aplikacija: VCL-odjemalec, globoko procesno znanje, hitro vnašanje podatkov, poti za tisk in poročanje, specialna strojna oprema in pogosto neposreden dostop do baze podatkov v LAN. Hkrati rastejo pričakovanja po samoopori in zunanjem sodelovanju: stranke želijo preverjati status naročil, izmenjevati dokumente ali vnesti reklamacije – brez VPN, brez uvajanja odjemalcev in brez lokalnih instalacij.
Povezovanje Delphi namizja in spletnih portalov pomeni v praksi združiti ti dve svetovi tako, da ostaneta obvladljiva obratovanje, varnost in konsistentnost podatkov. Ključno ni „ponovno zgrajevanje“ mask v brskalniku, temveč arhitektura, ki loči procese, pravice in poteke podatkov ter omogoča obema frontendom delo po skupnih pravilih. Korist je poti modernizacije brez Big-Bang pristopa: namizje ostane produktivno, medtem ko spletni portal raste kontrolirano.
Prispevek je namenjen IT-vodstvu, administratorjem in tehničnim projektno odgovorim osebam. V ospredju so vplivi na obratovanje, administracijo, vmesnike, varnost, hranjenje podatkov in migracijo – manj podrobnosti o frameworkih. Prejeli boste praktične vzorce, kriterije odločanja in tipične pasti skupaj z nasprotnimi ukrepi.
Zakaj je »portal namesto namizja« redko realno
V B2B-okoljih obstaja veliko razlogov, zakaj je namizni odjemalec še naprej smiselno ohraniti. Administratorji to pogosto doživljajo konkretno: portal je idealen za distribuirane uporabnike, vendar so določene naloge v namizju še vedno učinkovitejše ali sploh možne.
Moči namizja, ki štejejo v vsakdanjem delu
- Kompleksno vnašanje podatkov z zelo gosto zasnovanimi maskami, tipkovniško upravljanje, velikimi preglednicami in hitrim preklapljanjem med zapisi.
- Periferne naprave in lokalne integracije kot so tiskalniki nalepk, čitalniki, serijske naprave ali posebne Windows komponente.
- LAN-blizu zmogljivost, ko se obdelujejo velike količine podatkov ali ko proces zahteva izredno nizko latenco.
- Rastoči delovni procesi z mnogimi izjemami, pri katerih prenos 1:1 v portal sprva prinaša visoka tveganja.
Moči portala, ki zadovoljijo nove zahteve
- Zunanji dostop za stranke, dobavitelje ali partnerje, brez potrebe po nameščanju odjemalca.
- Centrirano upravljanje (verzije, funkcije, pravice) z jasno zunanjo mejo.
- Napravno neodvisnost (brskalnik, mobilna uporaba) za terenski servis in vodstvo.
- Ciljno odpiranje procesov kot so poizvedbe statusov, nalaganje dokumentov, odobritve ali ticket-ti poteki.
Kombinacija prinaša vrednost: namizje ostane power-orodje za interne vloge, portal pa postane kontroliran vhod za zunanje skupine uporabnikov. Da se to ne razcepi v dve paralelni „resničnosti“, potrebujete povezovalno jedro.
Ko kombinirate Delphi namizje in spletne portale: tri ciljne arhitekture
Pri odločitvi arhitekture gre predvsem za pristojnosti: Kje leži strokovno pravilo? Kdo sme spreminjati podatke? Katera plast je „Single Source of Truth“ (torej merodajni vir pravil in stanj)? Za tehnične odločevalce je pomembno: izbira ima neposredne posledice za obratovanje, iskanje napak, upravljanje izdaj in varnost.
Varianta A: portal kot dopolnilo preko REST-API, namizje ostane vodilno
Portal pokriva izbrane use case-e, tipično „branje in sprožanje“: statusi, dokumenti, odobritve, preprosto vnašanje. Za to se uvede Delphi REST-API ali ločen REST-strežnik. Namizna aplikacija lahko sprva še naprej dostopa neposredno do baze podatkov.
Operativna prednost: hiter začetek, majhni posegi v namizje, primerno za prvi portalni dodatek vrednosti.
Tveganje: obstajata dve poti podatkov (Namizje → DB neposredno, Portal → API). Če so poslovna pravila implementirana le v namizju, nastanejo inkonzistence. Kot protiukrep naj portalne funkcije začnejo tam, kjer so pravila enostavna in jih je mogoče strežniško predstaviti (npr. priprava dokumentov, poizvedba statusov, definirane odobritvene akcije).
Varianta B: storitveno jedro kot skupna procesna plast (priporočeno pri soobratovanju)
Tukaj postopoma premestite poslovno logiko iz namizja v storitve. Namizje in portal uporabljata iste končne točke. Namizni odjemalec postane bolj bogat klient (UI, lokalne integracije), pravila in validacije pa so strežniške narave.
Operativna prednost: centralizirano mesto za pravice, audit, logiko statusov in validacije; dosledno vedenje na vseh front-endih.
Skupni napor: več na začetku, ker je treba načrtovati API-standarde, formate napak, verzioniranje, nadzor in deployment. Kasneje pa se obseg dela znatno zmanjša, saj je manj posebnih poti.
Varianta C: portal vodi, namizje ostane kot specializiran klient
Ta varianta je smiselna, če naj bi bil brskalnik strateški standardni dostop (npr. močno distribuirana organizacija), medtem ko namizje za določene vloge z ostalo specialno strojno opremo ali visokozmogljivim vnašanjem ostane. Storitveno jedro mora biti v tem primeru posebej stabilno in skalabilno.
Layer-3 arhitektura kot razumljiva vodila
Ne glede na varianto pomaga Layer-3 arhitektura: (1) predstavitev (namizje/portal), (2) aplikacijska in domena plast (use case-i, pravila), (3) infrastruktura (baza podatkov, shranjevanje datotek, messaging, zunanji sistemi). Za administratorje je to pomembno, ker postanejo meje obratovanja jasne: kaj je „frontend-problem“, kaj je „service-problem“, kaj leži v bazi ali v storage-u? Ta ločitev skrajša iskanje napak in zmanjša stranske učinke pri deploy-ih.
Praktični vidik: kako namizje in portal delita isti proces
Največji izziv redko predstavlja »zgraditi portal«, ampak vprašanje: kako naj si namizje in portal razdelita odgovornosti v istem procesu, brez dvojne implementacije pravil? Tri vzorci so v praksi posebej relevantni.
1) Use-Case-API-ji namesto tabelnih ali CRUD-API-jev
Pogosta slepa ulica je API, ki zgolj preslika podatkovne tabele („Create/Read/Update/Delete“). Potem mora portal ponovno implementirati pravila, namizje pa ostaja pri svoji logiki. Boljši so Use-Case-API-ji: končne točke opisujejo strokovne akcije, kot so „ustvari reklamacijo“, „sprosti naročilo“, „naloži dokument“, „potrdi status dostave“.
Učinek v obratovanju je opazen: validacije potekajo strežniško, napake so reproducibilne, in oba klienta (namizje in portal) sprožita isti potek prek iste logike.
2) Obvladovanje konfliktov in ponovitev
S portalom narašča verjetnost sočasnih sprememb in ponovljenih zahtevkov (npr. zaradi timeout-ov, retries ali dvojnega klika uporabnika). Pri tem pomagajo trije koncepti, brez uvajanja „trajnih zaklepov“:
- Idempotentnost: kritične akcije so zasnovane tako, da ponovitev prinese enak učinek in ne izvede nič dvakrat. Praktično se to pogosto doseže z edinstveno identifikacijo zahtevka (Idempotency Key).
- Optimistic Concurrency: zapis nosi informacijo o verziji (npr. „Row Version“). Pri spremembah servis preveri, ali verzija še ustreza, in konflikte lepo vrne.
- Kratke transakcije: namesto „zakleni vse“ so pisne operacije kratke. Dolga dela (npr. izvozi, report-paketi) tečejo asinhrono.
Za tehnične odločevalce je pomembno: ti mehanizmi zmanjšajo podporni napor, ker so problemi kot „dogodilo se je dvakrat“ ali „moja sprememba je izgubljena“ bistveno redkejši.
3) Jasno modeliranje stanj in predaj
Če namizje obravnava kompleksne primere, portal pa „le“ vložke ali predstopnje, potrebujete definirane prehode stanj. Praktična razdelitev je: portal ustvari ali dopolni zadeve v jasno omejenih statusnih območjih (npr. „oddano“), namizje obravnava specialne primere, storitveno jedro odloča in protokolira spremembe statusov. Tako preprečite, da bi portalni klient posredno „pokvaril“ procese s svojo konfiguracijo.
Podatki in dokumenti: pogosto podcenjeno področje integracij
Skoraj vsak portal vključuje delo z datotekami: nalaganja, dokazila, dobavnica, slike, PDF-izvozi. Za administratorje je to ključno področje, saj vpliva na backup, pravice, pregledovanje virusov, stroške shranjevanja in zmogljivost.
Kje so shranjene datoteke: baza, datotečni share ali objektni storage?
Obstajajo tri pogoste možnosti hrambe, ki vsaka prinese drugo operativno realnost:
- Baza podatkov (BLOB): primerno, če morajo biti transakcije strogo povezane in če naj backup/restore zajame vse kot eno enoto. Slabosti so pogosteje večje baze in daljša backup-okna.
- Datotečni sistem/Share: tipično On-Prem, dobro vgradljivo v obstoječe backup-koncepte. Pomembne so jasne pravice in API-plast, ki nadzoruje dostop.
- Objektni Storage: smiseln pri skaliranju, pravilih življenjskega cikla ali če želite tehnično čiste zunanje dostope. Zahteva premišljen model ključev in pravic.
Ne glede na lokacijo hrambe velja: portal ne bi smel datotek „direktno“ nalagati s share-a. Bolje je nadzorovani prenos prek servisnih končnih točk z preverjanjem pravic, protokoliranjem in po potrebi časovno omejenim URL-jem za prenos.
PDF-ji in poročila: strežniška generacija namesto dvojne implementacije
Delphi namizne aplikacije pogosto vsebujejo razvite poti za tisk in poročanje. Portali pogosto potrebujejo enake vsebine kot PDF. Namesto vzdrževanja dveh implementacij se izplača centralizirana generacija dokumentov v storitvenem jedru: predloge, verzioniranje in izhodni format so strežniško upravljani; namizje in portal porabljata rezultat. Za obratovanje to prinaša jasne prednosti: sledljivi izpisi, enotno shranjevanje in manj odvisnosti od namiznih instalacij.
REST-strežniki in storitve: Delphi, C# ali mešana arhitektura
Pri odločitvi „Delphi ali C#“ gre za podjetja manj za ideologijo kot za sposobnost ekip, obratovalno okolje in vzdržnost. V mnogih okoljih je realistična mešana arhitektura, dokler so pristojnosti jasno razmejene.
Delphi kot storitvena platforma: smiselno pri obstoječi strokovni logiki
Če sta strokovna logika in dostop do podatkov že dobro implementirana v Delphi, je Delphi-osnovan REST-strežnik lahko učinkovit. Za administratorje in odločevalce je pomembno: strežniško delovanje ni „namizje v nenehnem teku“. Producentna storitev potrebuje jasno konfiguracijo, urejene timeoute, strukturirane loge, health-checke in reproducibilen deployment.
Tudi povezava z bazo podatkov naj bo modernizirana, če se še uporabljajo stari gonilniki ali BDE. BDE-ablösung in prehod na sodobne podatkovne dostope zmanjšata motnje v obratovanju in olajšata deployment, ker je treba manj vzdrževati legacy komponent.
C# storitve v portalnem ekosistemu: pogosto zaradi hostinga in identity
Če portal nastaja v .NET-dominantnem okolju, so C# storitve pogosto logična izbira – tudi zaradi integracije identity, obstoječih operativnih standardov in hostinga za Microsoft IIS ali v kontejniranih platformah. Ključno je, da se izognete dvojni implementaciji: bodisi ostane jedro poslovne logike v Delphi-storitevah in C# prevzame robne teme (npr. portal-specifično orkestracijo), ali pa načrtujete kontrolirano migracijo logike v .NET – vendar z jasnimi mejami družbenih področij.
API-Gateway: element reda, vendar ni obvezen
API-Gateway lahko združi centralne funkcije (routing, rate-limits, logging, avtentikacija). Za manjše začetne arhitekture pogosto zadošča konsistenten API z enotnimi standardi. Ko pa obstaja več storitev in skupin uporabnikov, pomaga gateway ohraniti zunanjo mejo stabilno in centralno izvajati politike.
Avtentikacija in pravice: od internega namizja k zunanjemu portalu
Z uvedbo portala se spremeni pokrajina uporabnikov: poleg internih uporabnikov pridejo zunanji računi, vloge in najemniki. To ustvarja zahteve po identity, pravicah in auditu. Za administratorje je to relevantno, saj so identity-sistemi in model vloga kasneje težko spreminjati.
SSO s SAML 2.0 ali OIDC: manj administracije, boljši nadzor
V B2B-nastavitvah je SAML 2.0 (Single Sign-on preko Identity Providera) razširjen, ker podjetja želijo uporabiti obstoječe identitete. OIDC (OpenID Connect) je prav tako pogost, zlasti na sodobnih platformah. Klasični uporabniški/geselni prijavni postopki so možni, vendar pomenijo dodaten napor pri politiki gesel, MFA, procesih za ponastavitev in supportu.
Arhitekturno je pomembno: avtentikacija (kdo si?) in avtorizacija (kaj smeš?) morata biti preverjena strežniško – ne v portalnem front-endu.
Multi-tenantnost in model vlog: ne dodajajte „pozneje“
Kundenportal zahteva praktično vedno ločevanje najemnikov: stranka vidi le svoje podatke. To mora biti upodobljeno v storitvenem jedru, idealno preko:
- Claims v tokenu (npr. Tenant-ID, vloge, pogodbeni kontekst), da lahko storitve sprejemajo odločitve.
- Preverjanja na ravni zapisa (Row-Level-Checks v poslovni logiki), ne le „skrij meni“.
- Audit-traili za pomembne akcije (kdo, kaj, kdaj), plus korelacija preko Request-ID za analizo napak.
Namizje lahko – če želite – prav tako uporablja tokene proti istemu identity-stacku. To zmanjša posebne poti in olajša sledljivost sprememb, zlasti ko portal in namizje urejata isti zapis.
Modernizacija dostopa do podatkov: FireDAC, PostgreSQL in kontrolirane poti podatkov
Mnoge Delphi namizne rešitve so zgodovinsko rasle z neposrednim DB-dostopom. Ko se doda portal, to postane arhitekturna tema: poti podatkov morajo biti obvladljive, validacije morajo delovati centralno in zmogljivost mora ostati stabilna tudi pri sočasni obremenitvi.
FireDAC kot osnova za vzdržljiv dostop do podatkov
BDE-Ablösung z nativno povezavo je v Delphi okoljih pogost standard za dostop do modernih baz podatkov. Pomembno ni toliko sama komponenta kot poenotenje: parametizirane poizvedbe, čiste transakcijske meje, enotno ravnanje z napakami in merljive izvedbe. Za obratovanje šteje, da so time-out-i in poraba virov planabilni ter da se napake reproducirajo v logih in monitoringu.
PostgreSQL z Delphi: dobro obvladljivo ob jasnem tipnem in migracijskem konceptu
PostgreSQL z Delphi je robusten, če je tipno preslikavanje (npr. UUID, časovni žigi, JSON-polja), indeksi in migracije shem pravilno urejeno. Portali generirajo veliko filtrov in listnih poizvedb. Zato naj se filtriranje, paginacija in urejanje izvajajo strežniško, da se ne prenašajo nepotrebno velike količine podatkov. To zmanjša obremenitev in izboljša uporabniško izkušnjo, ne da bi namizje upočasnilo.
Obratovanje, deployment in monitoring: doseči portalno zrelost za Delphi backende
Portal je običajno stalno dosegljiv in torej operativno intenzivnejši kot sam namizni klient. Za administratorje je to področje, kjer se dobra arhitektura takoj izplača: preko sledljivih deploymentov, jasne opaznosti (logs/metrike) in definiranih vzdrževalnih oken.
Windows-storitev ali Linux-storitev: odločilno je obratovalno ozadje
Delphi storitev se lahko izvaja kot Windows- in Linux-storitev ali kot Linux-daemon. Pomembnejši od OS so standardi, ki naredijo obrat stabilen:
- Health-Checks za monitoring in load balancer (npr. „storitev živi“ in „baza dostopna“).
- Strukturirano beleženje (vključno z Request-ID, uporabnik/najemnik, čas izvršitve, statusnimi kodami), da so support primeri reproducibilni.
- Konfiguracija brez ponovnega builda (npr. okoljske spremenljivke, centralne konfiguracijske datoteke), da so deploy-i avtomatizabilni.
- Možnost rollbacka preko jasnih verzij in migracijsko varnih sprememb v bazi podatkov.
Profil obremenitve: portal je „mnogi kratki zahtevki“ namesto „nekaj dolgih sej“
Uporaba namizja pogosto povzroča daljše delovne seje na uporabnika, medtem ko portali generirajo mnogo kratkih, sočasnih zahtevkov. Tipične tehnične ukrepe so:
- konzistentna paginacija, strežniško filtriranje in omejene velikosti odgovorov
- caching za osnovne podatke in redke poizvedbe
- asinhroni jobi za dolga opravila (izvozi, paketi poročil)
- rate-limiti in zaščitni mehanizmi proti zlorabam
Za odločevalce je tu ključno: zmogljivost ni „fine-tuning na koncu“, temveč del specifikacije API-ja (velikosti odgovorov, timeout-i, ozadinska obdelava).
Modernizacija brez Big-Bang-a: zanesljiva pot v petih korakih
Popolna prenova je redko potrebna in je pogosto tvegana, ker je procesno znanje zakoreninjeno v Delphi klientu. Učinkovit je pristop, kjer je vsaka stopnja produktivno uporabna in ne ogroža obratovanja.
1) Popis stanja: procesi, lastništvo podatkov, integracije
Ne začnite pri maskah, temveč pri use case-ih: kateri procesi naj gredo v portal? Katere podatke sme zunanji uporabnik videti ali spreminjati? Katere vmesnike imate do ERP, DMS ali CRM? Iz tega nastane prioritetni seznam API-jev, ki prinašajo resnično vrednost.
2) Določitev osnov storitev: avtorizacija, format napak, beleženje, verzioniranje
Ta osnova odloča o kasnejši vzdržnosti. Dogovorite se zgodaj o standardih za avtentikacijo/avtorizacijo, konsistentnem formatu napak, korelaciji zahtevkov, verzioniranju API-jev in telemetriji. To zmanjša trenja med portalno, backend in operativno ekipo.
3) Dostaviti prvo portalno pot end-to-end
Izberite proces z jasno ločitvijo (npr. področje dokumentov ali poizvedba statusa). Pomembno je, da je celoten verižni tok pripravljen: prijava, preverjanje pravic, API, UI, beleženje, monitoring, obratovanje. Organizacija tako zgodaj preizkusi, kateri standardi delujejo v praksi.
4) Ciljno povezovanje namizja: kritične pisne poti preko storitev
Ko so storitve stabilne, premaknite izbrane funkcije iz namizja: zlasti spremembe statusov, odobritve ali centralne validacije. Namizje ostane zmogljivo, a pravila postanejo bolj dosledna in neposreden pisni dostop do DB se postopoma zmanjša.
5) Konsolidacija: odpraviti dvojna pravila in posebne poti
S časom sicer nastaneta „dve sistemi“. Načrtujte redne konsolidacije: katera pravila obstajajo dvojno? Kje lahko portal uporabi namizno storitev? Katera poročila naj se ustvarjajo centralno? Cilj je obvladljiva platforma, ne ideološki cilj.
Tipične pasti z vidika obratovanja – in kako se jim izogniti
Pravila se v portalu ponovno implementirajo
To vodi v odstopanja in support primere. Protiukrep: Use-Case-API-ji z validacijami na strežniku, jasne napake in, če je mogoče, skupni strokovni testni scenariji.
Nejasno lastništvo podatkov med namizjem in portalom
Če oba klienta „vse“ urejata, se pojavijo konflikti. Protiukrep: model statusov, definirane pristojnosti in Optimistic Concurrency za sočasne spremembe.
Varnost kot naknadna dopolnitev
Še posebej pri kundenskem portalu sta SSO, najemniške kontrole, varni prenos datotek in audit nujni od začetka. Naknadno uveljavljanje je dražje in poveča tveganje varnostnih vrzeli.
Manjkajoča preglednost v obratovanju
Brez Request-ID-jev, strukturiranih logov in health-checkov iskanje napak postane detektivska naloga. Protiukrep: observability kot obvezna sestavina prvih izdaj storitev.
Zaključek: storitveno jedro poveže moč namizja z dosegom portala
Kombinacija Delphi namizja in spletnega portala je v mnogih podjetjih najrealnejša pot, da ohranite obstoječe jedrne procese in hkrati omogočite zunanjo sodelovanje. Ključno je, da ne upravljate dveh ločenih svetov, temveč ustvarite povezovalno storitveno jedro: Use-Case-API-ji, čiste pravice, sledljiva stanja, kontrolirane poti podatkov in obratovalni model z loggingom, monitoringom in planabilnimi deploy-i.
Tako nastane modernizacija z vmesnimi cilji: namizje ostane produktivno, portal hitro prinaša vrednost, arhitektura pa postane korak za korakom bolj konsistentna in vzdržna.
V strokovnem okolju imajo pomembno vlogo tudi Delphi Modernisierung, kadar je potrebno, da se integracije, podatkovni tokovi in nadaljnji razvoj izvedo brezhibno med seboj.
naslednji korak
Ko iz teme nastane resničen projekt, je treba arhitekturo, obstoječe sisteme in obratovanje zgodaj obravnavati skupaj.
Ne podpiramo le pri posameznih vprašanjih, ampak tudi takrat, ko iz izrezkov izvorne kode, legacy-tem ali idej za portale nastane zanesljiv podjetniški projekt.
- Obstoječe stanje, ciljno stanje in tehnična tveganja se ocenjujejo skupaj.
- REST, dostop do podatkov, portali in Rollout ne bodo prestavljeni v kasnejše faze.
- Že zgodaj vidite, katera pot je ekonomsko in operativno vzdržna.