Wiki source code of 04. Technické informace

Version 6.1 by Branislav ŠIŠKA on 2023/06/06 14:38

Show last authors
1 = {{id name="04.Technickéinformace-1.Hardware"/}}1. Hardware =
2
3 (% style="" %)
4 Software Clindata běží na počítačovém clusteru umístěném v Institutu molekulární a translační medicíny (IMTM), Lékařské a stomatologické fakulty, Univerzity Palackého v Olomouci. Zařízení je zabezpečeno a pod dohledem globálního sledování.
5
6 (% style="" %)
7 === {{id name="04.Technickéinformace-Popishardwaru"/}}**Popis hardwaru** ===
8
9 **Servery**
10
11 HPE DL385 Gen10 CTO Mod-X 8SFF Svr
12
13 8x HPE 16GB 2Rx8 PC4-2933Y-R
14
15 2x HPE DL385 Gen10 AMD EPYC 7302
16
17 2x HPE 240GB SATA RI SFF SC DS SSD
18
19 (% style="color: rgb(55,65,81);" %)**Datová úložiště**
20
21 HP 3PAR data storage 700TB.
22
23 HP EML tape library
24
25 (% style="color: rgb(55,65,81);" %)Objektové úložiště
26
27 **Firewall**
28
29 HP F1000-S-EI VPN Firewall
30
31 **~ **
32
33 = {{id name="04.Technickéinformace-2.Software"/}}2. Software =
34
35 === {{id name="04.Technickéinformace-Požadavkynasoftware"/}}(% style="color: rgb(55,65,81);" %)Požadavky na software(%%) ===
36
37 (% style="color: rgb(55,65,81);" %)Jediným požadavkem pro použití softwaru Clindata je webový prohlížeč podporující standard HTML5. Seznam podporovaných prohlížečů:
38
39 * Chrome: ((% style="color: rgb(55,65,81);" %)Aktuální(%%) - 1) a a(% style="color: rgb(55,65,81);" %)ktuální
40 * Edge: ((% style="color: rgb(55,65,81);" %)Aktuální(%%) - 1) a a(% style="color: rgb(55,65,81);" %)ktuální
41 * Firefox: ((% style="color: rgb(55,65,81);" %)Aktuální(%%) - 1) a a(% style="color: rgb(55,65,81);" %)ktuální
42 * Internet Explorer: 11+
43 * Safari: ((% style="color: rgb(55,65,81);" %)Aktuální(%%) - 1) a a(% style="color: rgb(55,65,81);" %)ktuální
44 * Opera: (% style="color: rgb(55,65,81);" %)Aktuální
45
46 (% style="color: rgb(55,65,81);" %)(Aktuální znamená poslední dostupná verze daného prohlížeče)
47
48 (% style="" %)
49 === {{id name="04.Technickéinformace-Programovacíjazyk"/}}Programovací jazyk ===
50
51 (% style="" %)
52 Hlavním programovacím jazykem používaným pro vývoj aplikace Clindata je Java 8. Další technologie používané při vývoji jsou:
53
54 * Spring Framework v5.
55 * HTML, CSS
56 * JavaScript
57 * jQuery
58 * jQuery UI
59 * Bootstrap
60 * MathJS
61 * Datatables
62 * SQL
63 * Oracle database
64
65 (% style="" %)
66 === {{id name="04.Technickéinformace-Operačnísystém"/}}Operační systém ===
67
68 (% style="" %)
69 Operační systém nainstalovaný na produkčních serverech je RedHat Enterprise Linux 7.4.
70
71 (% style="" %)
72 === {{id name="04.Technickéinformace-Proxyserver"/}}Proxy server ===
73
74 (% style="" %)
75 Jako brána z vnějšího světa do vnitřní aplikace běžící na produkčním serveru se používá Apache HTTP Server.
76
77 (% style="" %)
78 === {{id name="04.Technickéinformace-Aplikačníserver"/}}Aplikační server ===
79
80 (% style="" %)
81 Aplikace ClinData běží na Apache Tomcat, což je open-source Java Servlet Container vyvíjený nadací Apache Software Foundation.
82
83 **~ **
84
85 = {{id name="04.Technickéinformace-3.Databáze"/}}3. Databáze =
86
87 === {{id name="04.Technickéinformace-DatabázeClindata"/}}Databáze Clindata ===
88
89 (% style="" %)
90 Databáze používaná pro ukládání dat ze softwaru Clindata je Oracle Database (obvykle označovaná jako Oracle RDBMS), kterou vyvíjí společnost Oracle Corporation. Verze databáze je 12.1. Standard Edition.
91
92 (% style="" %)
93 Oracle databáze běží na odděleném serveru založeném na Linuxu, který je chráněn firewallem před vnější sítí (Internetem). Tento databázový server není přístupný zvenčí organizace, ale pouze ze zapsaných vnitřních serverů (aplikační a záložní servery).
94
95 = {{id name="04.Technickéinformace-4.Zálohy"/}}4. Zálohy =
96
97 (% style="" %)
98 Existují více úrovní archivace dat, které zajišťují bezpečnost dat a rychlé obnovení databáze. Data jsou archivována na úrovni databáze a operačního systému.
99
100 1. Zálohy na úrovni databáze
101 Nástroj **RMAN** je nedílnou součástí Oracle databáze. Vytváří binární kopii celé databáze a ukládá ji do souborového systému. Nástroj RMAN je spuštěn každý týden. Soubory jsou uloženy interně na serveru databáze a jsou zkopírovány na dvě nezávislá záložní místa.
102 **EXPDP/IMPDP** je datová pumpa, která exportuje data do textových záloh. Nástroj EXPDP je spuštěn každé 4 hodiny. Cílem zálohování je stejné jako u RMAN. Data jsou uložena na dvou nezávislých záložních místech.
103 **Redo Logy** jsou každý den archivovány do souborového systému.
104 1. Zálohy na úrovni operačního systému
105 **IBM Tivoli Storage Manager** (TSM Admin) je firemní řešení od společnosti IBM pro zálohy a obnovu fyzických nebo virtuálních serverů. Záloha vytvořená pomocí TSM Admin zahrnuje redo logy, RMAN a EXPDP exporty. Spouští se každý den a záložní data jsou uložena na diskovém poli.
106
107 RMAN konfigurační soubor
108
109 CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
110 CONFIGURE BACKUP OPTIMIZATION OFF; # default
111 CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
112 CONFIGURE CONTROLFILE AUTOBACKUP ON;
113 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
114 CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
115 CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
116 CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
117 CONFIGURE MAXSETSIZE TO UNLIMITED; # default
118 CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
119 CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
120 CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
121 CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
122 CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/../../oracle/12c/dbs/snapcf_imtm.f'; # default
123
124 EXPDP configuration file
125
126 DIRECTORY=dtpump
127 DUMPFILE=registry.dmp
128 LOGFILE=registry.log
129 CONTENT=ALL
130 COMPRESSION=NONE
131 JOB_NAME=registry_migration
132 SCHEMAS=registry,registry_aud
133
134 = {{id name="04.Technickéinformace-05.Bezpečnostpřipojení"/}}05. Bezpečnost připojení =
135
136 === {{id name="04.Technickéinformace-Zabezpečenépřipojení"/}}Zabezpečené připojení ===
137
138 (% style="" %)
139 Jelikož aplikace Clindata je webová aplikace, je nezbytné zajistit zabezpečenou komunikaci mezi serverem a klientovým počítačem. To je dosaženo pomocí komunikačního protokolu HTTPS, který je šifrován pomocí protokolu Transport Layer Security (TLS). Tento protokol je široce používán pro veškeré bezpečné transakce na internetu (platby, e-maily atd.) a je považován za bezpečný a nedekódovatelný. Chrání proti útokům prostředníka. Komunikace bez bezpečnostní vrstvy (HTTP) může být narušena útočníky, kteří ji mohou odposlouchávat nebo měnit.
140
141 (% style="" %)
142 === {{id name="04.Technickéinformace-Přesměrovánízabezpečení"/}}Přesměrování zabezpečení ===
143
144 (% style="" %)
145 Všechny požadavky uživatele přicházející prostřednictvím nezabezpečeného protokolu HTTP jsou automaticky přesměrovány na zabezpečený protokol HTTPS. Veškerá komunikace mezi klientem a serverem je zabezpečena a není možné se připojit k softwaru Clindata prostřednictvím nezabezpečeného spojení.
146
147 (% style="" %)
148 === {{id name="04.Technickéinformace-Certifikát"/}}Certifikát ===
149
150 (% style="" %)
151 Pro zabezpečenou komunikaci je vyžadován certifikát uložený na webovém serveru. Certifikát musí být podepsán důvěryhodnou certifikační autoritou. Server Clindata používá certifikát, který je digitálně podepsán autoritou TERENA.
152
153 = {{id name="04.Technickéinformace-06.Autenzizaceaautorizace"/}}06. Autenzizace a autorizace =
154
155 === {{id name="04.Technickéinformace-Správauživatelů"/}}Správa uživatelů ===
156
157 (% style="" %)
158 Všichni uživatelé používající aplikaci Clindata musí být registrováni před přihlášením. Není možné získat neoprávněný přístup k serveru ani pro demonstrační účely. Existuje specializovaná aplikace pro správu uživatelů - nástroj IMTM Admin.
159
160 (% style="" %)
161 Nástroj Admin je zodpovědný za:
162
163 * Správu institucí, společností, nemocnic a jejich oddělení. Může existovat neomezený počet úrovní organizací, například univerzita může mít strukturu univerzita-fakulta-oddělení-laboratoř. Každá úroveň organizace může získat odlišnou sadu oprávnění a rolí. Správa uživatelů. Každý uživatel je identifikován e-mailovou adresou jako přihlašovacím jménem a heslem.
164 * Uživatelé jsou přiřazeni ke svým organizacím. Uživatelé mohou pracovat na více projektech s různými rolemi. To je umožněno pomocí uživatelských profilů. Počet profilů pro jednoho uživatele není omezen. Každý profil může mít odlišnou sadu oprávnění a rolí.
165 * Správa rolí a profilů.
166
167 (% style="" %)
168 Databáze Admin s uživatelskými údaji je uložena v Oracle databázi jako samostatné schéma. Přístup k tomuto schématu je omezen pouze pro správce. Server s Oracle databází je oddělen firewallem od veřejné sítě a není přístupný z internetu.
169
170 (% style="" %)
171 Nový účet uživatele může být vytvořen pouze administrátorem. Uživatel nemá možnost vytvořit si účet sám.
172
173 (% style="" %)
174 Následující kroky musí být dodrženy při vytváření nového účtu:
175
176 * Nový uživatel požádá vlastníka projektu o vytvoření nového účtu.
177 * Vlastník projektu požádá administrátora o vytvoření nového účtu s určenými oprávněními a rolími.
178 * Administrátor vytvoří nový účet a nastaví požadovaná oprávnění a role.
179 * Vlastník projektu zkontroluje nastavení účtu a schválí ho.
180 * Nový uživatel obdrží přihlašovací údaje a může se přihlásit.
181
182 (% style="" %)
183 === {{id name="04.Technickéinformace-Centrálníautentizačníslužba(CAS)"/}}Centrální autentizační služba (CAS) ===
184
185 (% style="" %)
186 Aplikace Clindata musí být propojena s daty z IMTM Admin k ovládání účtů, rolí a oprávnění. To se provádí integrací technologie CAS do softwaru ClinData. Technologie CAS se skládá z CAS serveru a CAS klienta. CAS server je zodpovědný za ověřování uživatelů a poskytování přístupu k aplikacím. CAS klienti chrání aplikace CAS a získávají identitu povolených uživatelů ze serveru CAS.
187
188 = {{id name="04.Technickéinformace-07.Roleaoprávnění"/}}07. Role a oprávnění =
189
190 (% style="" %)
191 === {{id name="04.Technickéinformace-Omezenípřístupu"/}}Omezení přístupu ===
192
193 (% style="" %)
194 Přístup uživatele může být omezen ve dvou různých oblastech:
195
196 * omezení přístupu k funkcionalitě ClinData
197 * omezení přístupu k datům uloženým v softwaru ClinData
198
199 (% style="" %)
200 Veškerá omezení jsou nastavena v nástroji IMTM Admin.
201
202 (% style="" %)
203 === {{id name="04.Technickéinformace-Omezenífunkcí"/}}Omezení funkcí ===
204
205 (% style="" %)
206 === {{id name="04.Technickéinformace-Oprávnění"/}}Oprávnění ===
207
208 (% style="" %)
209 Oprávnění k přístupu určují, ke kterým objektům v ClinData může uživatel prohlížet nebo je upravovat. Každá funkcionalita v softwaru ClinData je odrážena v odpovídajícím oprávnění, takže přístup ke všem funkcím je kontrolován. Každý uživatel nebo skupina uživatelů může mít přístup k přiděleným nebo omezeným oprávněním.
210
211 (% style="" %)
212 Na obrázku je zobrazeno schéma oprávnění v softwaru ClinData.
213
214 (% style="" %)
215 === {{id name="04.Technickéinformace-Role"/}}Role ===
216
217 (% style="" %)
218 Role jsou virtuální entity, které slouží jako kontejnery pro více oprávnění.
219
220 (% style="" %)
221 Existují předdefinované role a uživatelé nebo skupiny uživatelů mohou být jim přiřazeny. Nejčastěji používané role jsou:
222
223 * admin systému ClinData - plný přístup ke všem funkcím v ClinData, žádná omezení, vytváření nových projektů
224 * projekt admin systému ClinData - plný přístup ke všem funkcím ve vybraném projektu včetně tvorby studií
225 * manažer dat projektu ClinData - přístup ke všem funkcím potřebným pro vkládání nebo aktualizaci dat pacienta
226 * monitor dat projektu ClinData - přístup ke všem funkcím potřebným pro sledování studie, validaci a dokončení CRFs (formuláře pro sběr dat)
227 * prohlížeč dat projektu ClinData - pouze čtení vybraných dat
228
229 (% style="" %)
230 === {{id name="04.Technickéinformace-Omezenídat"/}}Omezení dat ===
231
232 (% style="" %)
233 Výchozí nastavení pro přístup k datům v softwaru ClinData je maximálně omezené. Uživatel vidí pouze data, která sám vložil. Výchozí nastavení neumožňuje vidět žádná data vložená jiným uživatelem. Přístup k ostatním datům musí být explicitně povolen.
234
235 (% style="" %)
236 Tato nastavení lze upravit:
237
238 * uživatel vidí pouze svá data
239 * uživatel vidí data vložená jiným uživatelem nebo skupinou uživatelů
240 * uživatel vidí data spojená s organizací
241 * uživatel vidí všechna data ve studii
242
243 === {{id name="04.Technickéinformace-Osobníúdaje"/}}Osobní údaje ===
244
245 (% style="" %)
246 Studie nebo registry mohou obsahovat osobní údaje. Přístup k těmto údajům může být omezen pomocí speciálního oprávnění.
247
248 (% style="" %)
249 Tato nastavení lze upravit:
250
251 * uživatel vidí osobní údaje
252 * uživatel nevidí osobní údaje
253
254 = {{id name="04.Technickéinformace-8.Logování"/}}8. Logování =
255
256 (% style="" %)
257 Systém ClinData zaznamenává všechny události, které se v systému odehrávají. Administrátor může tyto záznamy procházet v uživatelsky přívětivé formě a analyzovat potenciální problémy, sledovat aktivity uživatelů atd.
258
259 (% style="" %)
260 Existují tři různé typy mechanismů pro zaznamenávání událostí:
261
262 * Záznamy softwaru se provádějí na úrovni programovacího jazyka a jsou velmi podrobné. Soubory se záznamy obsahují údaje o vnitřním stavu celého systému v době události. Tento přístup slouží pro podrobnou analýzu problémů, které se v minulosti vyskytly.
263 * Záznamy přístupu jsou určeny k řízení činnosti uživatelů. Záznam o přístupu obsahuje údaje o tom, kdo provedl akci a kdy. Zaznamenává veškeré akce provedené na objektech v systému. Objektem může být studie, pacient, formulář CRF, soubor. Zaznamenávají se následující akce:
264 ** vytvoření
265 ** otevření
266 ** změna
267 ** přidání
268 ** odebrání
269 ** smazání
270 ** export
271 * Audit je zaměřený na změny provedené ve formulářích CRF. Zaznamenává kompletní historii toho, co bylo uživateli změněno. Jeden záznam obsahuje údaje o:
272 ** kdy byla změna provedena
273 ** kdo změnil data
274 ** co bylo změněno
275 ** jaká je nová hodnota
276
277 (% style="" %)
278 Důležitou informací je, že systém ClinData neodstraňuje žádné záznamy. Každý záznam v databázi má systémový příznak AKTIVNÍ. Smazání řádku pouze nastaví tento příznak AKTIVNÍ na hodnotu false. Neaktivní řádky se nezobrazují ve softwaru ClinData, ale stále jsou uloženy v databázi.
279
280 = {{id name="04.Technickéinformace-9.Vývojsoftwaru"/}}9. Vývoj softwaru =
281
282 (% style="" %)
283 === {{id name="04.Technickéinformace-Sledováníproblémů"/}}Sledování problémů ===
284
285 (% style="" %)
286 Jakýkoli problém nalezený ve softwaru ClinData je zdokumentován a vytvořen jako nový problém v softwaru JIRA. JIRA software je vyvíjen společností Atlassian a slouží jako nástroj pro sledování problémů. Nový problém je analyzován a je mu přiřazena priorita. Seznam problémů je řazen podle priorit a zpracováván vývojáři. Pokud je závažný problém opraven, je publikován ve nové verzi softwaru ClinData. Problém je také uzavřen jako vyřešený v JIRA.
287
288 (% style="" %)
289 === {{id name="04.Technickéinformace-Správazměn"/}}Správa změn ===
290
291 (% style="" %)
292 Všechny požadavky na změny plánované ve softwaru ClinData jsou uloženy v JIRA. Když přichází nový požadavek, je analyzován, provedena časová odhad a přiřazena priorita. Seznam problémů je řazen podle priorit a zpracováván vývojáři.
293
294 (% style="" %)
295 === {{id name="04.Technickéinformace-Verzování"/}}Verzování ===
296
297 (% style="" %)
298 Zdrojový kód softwaru ClinData je uložen v repozitáři GIT, který umožňuje sledování změn v souborech. Je možné procházet historii libovolného souboru se zdrojovým kódem v repozitáři. Každá změna je také zdokumentována, aby bylo snadné pochopit vývojový cyklus.
299
300 (% style="" %)
301 === {{id name="04.Technickéinformace-Revizekódu"/}}Revize kódu ===
302
303 (% style="" %)
304 Jakákoliv změna provedená ve zdrojovém kódu softwaru ClinData musí být zkontrolována jiným vývojářem. Tento proces se nazývá revize kódu. Tento proces minimalizuje počet chyb ve zdrojovém kódu, protože vše je dvojnásobně zkontrolováno. Pro revize kódu se používá software Bitbucket (vyvinutý společností Atlassian). Tento software brání vývojářům v používání neprokázaného kódu ve veřejných verzích softwaru ClinData.
305
306 = {{id name="04.Technickéinformace-10.Zajišteníkvality"/}}10. Zajištení kvality =
307
308 (% style="" %)
309 === {{id name="04.Technickéinformace-Testovacíprostředí"/}}Testovací prostředí ===
310
311 (% style="" %)
312 Všechny nové verze softwaru ClinData musí být otestovány a ověřeny jako funkční a správné před jejich zveřejněním. Existuje zvláštní prostředí, které se používá k testování nové verze před jejím zveřejněním. Testovací prostředí musí být podobné produkčnímu prostředí, aby se předešlo problémům s konfigurací.
313
314 (% style="" %)
315 === {{id name="04.Technickéinformace-Unittestování"/}}Unit testování ===
316
317 (% style="" %)
318 Unit testování je metoda testování softwaru, při které jsou testovány jednotlivé části zdrojového kódu, aby se zjistilo, zda jsou vhodné k použití. Ve zdrojovém kódu softwaru ClinData existuje více než tisíc unit testů. Všechny kritické části zdrojového kódu jsou pokryty unit testem téměř na 100 %. Celkový zdrojový kód je pokryt unit testem více než 85 %. Jakýkoli problém v unit testování je blokující pro zveřejnění verze softwaru.
319
320 (% style="" %)
321 === {{id name="04.Technickéinformace-Testováníaplikace"/}}Testování aplikace ===
322
323 (% style="" %)
324 Celá aplikace je testována prostřednictvím průzkumného testování aplikace před jejím zveřejněním. Testování aplikace se provádí v testovacím prostředí. Jakýkoli problém při testování aplikace je blokující pro zveřejnění verze.
325
326 (% style="" %)
327 === {{id name="04.Technickéinformace-Zveřejnění"/}}Zveřejnění ===
328
329 (% style="" %)
330 Proces zveřejnění znamená, že nová verze softwaru ClinData je uvolněna a zpřístupněna uživatelům. Pro sestavení a zveřejnění nových verzí se používá software Bamboo (vyvinutý společností Atlassian). Jednotkové testování je také součástí procesu zveřejnění nové verze. V případě jakéhokoli problému v jednotkovém testování je celý proces zveřejnění přerušen a zodpovědným osobám je zasláno oznámení emailem.