CzechIdM 1.1 czechidm-progdoc

Rozměr: px
Začít zobrazení ze stránky:

Download "CzechIdM 1.1 czechidm-progdoc"

Transkript

1 CzechIdM 1.1 czechidm-progdoc Programátorská dokumentace Jan Gregor Jaromír Mlejnek Jana Moudrá Vojtěch Matocha

2 czechidm-progdoc CzechIdM 1.1 czechidm-progdoc Programátorská dokumentace Vydání 0 Autor Autor Autor Autor Jan Gregor Jaromír Mlejnek Jana Moudrá Vojtěch Matocha 2012 BCV solutions s.r.o.. Red Hat, Red Hat Enterprise Linux, Shadowman logo, JBoss, MetaMatrix, Fedora, Infinity Logo a RHCE jsou ochranné známky Red Hat, Inc. registrované v USA a dalších zemích. Linux je ochranná známka Linuse Trovaldse v USA a dalších zemích. Java je ochranná známka Oracle. 7. května 1168/70 Praha 4 - Chodov, Czech Republic Phone: Tento text vznikl jako programátorská dokumentace Identity Manageru CzechIdM. Obsahuje stručný přehled důležitých součástí CzechIdM a bližší vysvětlení některých komplikovanějších oblastí. Dokumentace by měla sloužit všem vývojářům CzechIdM, kromě obecného modelu obsahuje návody na vytváření workflow, pravidel, ových šablon, testů, konektorů a nových stránek a formulářů. Text napomůže čtenáři proniknout do existujícího kódu CzechIdM a ozřejmí mu vztahy mezi datovou, aplikační a prezentační vrstvou a klíčové metody, jimiž mezi sebou tyto vrstvy komunikují. Dokument není uživatelským manuálem CzechIdM, je určen člověku, který chce aktivně měnit zdrojový kód CzechIdM nebo pochopit souvislosti v kódu již existujícím.

3 Preface ix 1. Hlášení chyb... ix 1. Struktura systému Třívrstvá architektura Moduly a jejich topologie Webové rozhraní Implementační detaily Repository Použité technologie Aplikační vrstva Přihlašování Workflow, pravidla a ové šablony Předávání proměnných mezi procesy Bussiness konstanty Pravidlo getextendedattributesnames Modul Utils Datová vrstva Entity Hierarchie entit View Obecné třídy uchovávající data DTOModifiable <T> DTO DTOModification DTOGroup DTOList<E> DTOLinkedList<E> View GenericView UserView Extended atributy Návrh Třída ExtendedAttribute View handlery Metoda ViewHandler.createEmptyView Metoda ViewHandler.createView Metoda ViewHandler.processViewChanges Třída Data Získání pohledu na existující entitu - metoda Data.checkoutView Získání příslušného managementu Metoda createview v rozhraní ViewHandler Vytvoření pohledu na identitu Získání pohledu pro čtení na existující entitu - metoda Data.getReadOnlyView Získání ořezaného pohledu na existující entitu - metoda Data.checkoutTrimmedView Zpracování změn ve View - metoda Data.checkinView Získání příslušného managementu Metoda saveview Provisioning iii

4 czechidm-progdoc Uvolnění zámku Specifika metody Data.checkinView pro parametr typu UserView Workflow "user.before.checkin" v metodě beforesaveview Metoda processviewchanges na třídě UserViewHandler UserProvisioning Další užitečné metody na třídě Data Data.addRoleWithoutApprovement Data.delete Data.getEntityId Data.getLoggedUserName Data.getSchemaId Data.listIds Data.setUserAccountsEnabled Data.listResourceSchemas Data.deleteAccount Criteria Prezentační vrstva Použité technologie Členění uživatelského rozhraní Třída GenericManagedBean Metoda getpageparameters Metoda processsubmit Metoda processaction Metoda processactionwithnewworkflow JSF šablony Psaní formulářů pomocí JSF a workflow Spuštění nového workflow Propojení JSF šablon a workflow Zobrazení dat workflow v JSF stránce Ovlivnění již běžícího workflow Internacionalizace Workflow Jak vytvořit workflow Úvod Ukázkové workflow Notifikace pomocí u Workflow engine Předdefinované proměnné Metody související s workflow na třídě Application Výstupní hodnota Pravidla Pravidla Ukázkové pravidlo Rule engine Transformační pravidla Pravidla pro výpočet nové hodnoty atributu Korelační pravidla Pravidla pro blokování účtů Pravidla before provisioning a after provisioning iv

5 7. Logování Úvod do logování v CzechIdM Co všechno je logováno? Auditní informace Uživatelské požadavky Identifikátor požadavku Začátek a konec uživatelského požadavku Zápis logu Jak logovat z kódu Schvalování Schvalovací proces Pohled uživatele Pohled administrátora Pohled vývojáře Příklad vytvoření schvalovací úlohy ve workflow Delegace schvalovacích procesů Pohled uživatele Pohled vývojáře Plánování úloh Scheduler a task executer Koncové systémy Definice koncového systému Pravidla spouštěná před a po operaci na systému Nastavení způsobu blokování (a odblokování) účtu Přilinkování uživatelského účtu Vypnutí reálných modifikací systému Aktualizace hodnot atributů účtů na koncových systémech Aktualizace z hlediska identity Aktualizace z hlediska rolí Standardní řešení výpočtu hodnot typu "merge" Identity Connectors Definice konektoru Lokální a vzdálený connector server Funcionalita konektorů Spouštění externích skriptů na koncových systémech Struktura tříd Universal JDBC konektoru Jak použít Universal JDBC Connector Konfigurace konektoru Skript CREATE Skript CREATE Skript UPDATE Skript DELETE Skript LISTALL Skript SCHEMA Skript GET Skript SYNC Skript GET_LAST_SYNC_TOKEN Database Table konektor SSH konektor v

6 czechidm-progdoc Konfigurace konektoru Skript Create Skript Update Skript Delete Skript DisableUser Skript EnableUser Skript ListObjects Skript AttributesSchema Příklad univerzálního skriptu Typické procesy správy životního cyklu identit Závislosti mezi procesy Proces "Příchod zaměstnance" Souhrn Popis procesu "Příchod zaměstnance" Diagram Proces "Přidat oprávnění uživateli" Souhrn Popis procesu "Přidat oprávnění uživateli" Diagram Proces "Odebrat oprávnění uživateli" Souhrn Popis procesu "Odebrat oprávnění uživateli" Diagram Proces "Povolení systémů" Souhrn Popis procesu "Povolení systémů" Diagram Proces "Zakázání systémů" Souhrn Popis procesu "Zakázání systémů" Diagram Proces "Změna popisných dat uživatele" Souhrn Popis procesu "Změna popisných dat uživatele" Diagram Proces "Změna uživatelských atributů" Souhrn Popis procesu "Změna uživatelských atributů" Diagram Proces "Změna pracovní pozice" Souhrn Popis procesu "Změna pracovní pozice" Diagram Proces "Vyjmutí z evidenčního počtu" Souhrn Popis procesu "Vyjmutí z evidenčního počtu" Diagram Proces "Přesun pracovní pozice" Souhrn Popis procesu "Přesun pracovní pozice" Diagram vi

7 Proces "Provedení časované události" Souhrn Popis procesu "Provedení časované události" Diagram Proces "Ukončení PPV" Souhrn Popis procesu "Ukončení PPV" Diagram Proces "Smazání uživatele" Souhrn Popis procesu "Smazání uživatele" Diagram Proces "Vyjmutí z karantény" Souhrn Popis procesu "Vyjmutí z karantény" Diagram Obecné řešení karantény Konfigurace Přehled konfiguračních parametrů Webová služba Návrhový diagram tříd Metoda login Metoda logout Metoda launchworkflowasynchronously Metoda launchworkflowsynchronously Metoda launchworkflowasynchronouslystringvars Metoda launchworkflowsynchronouslystringvars Asynchronní volání metod JAX-WS Zamezení logování WARN [StatelessBeanContext] EJBTHREE Password filter Instalace password filteru na Windows Konfigurace password filteru Vytvoření password filteru Komunikace password filteru s CzechIdM přes webovou službu Synchronizace hesel na straně CzechIdM Zabezpečení přes SSL Rizika a bezpečnostní opatření Užitečné informace pro vývoj a testování Testování Testování kódu Jak napsat jednoduchý test Práce s výjimkami Když záleží na pořadí Psaní testů EJB session bean Psaní testů Seam bean Jak testovat workflow Pokrytí testy Nástroje IdM Uploader vii

8 czechidm-progdoc IdMKeyGenerator JBPMSyntaxCheck A. Revision History 137 Rejstřík 139 viii

9 Preface 1. Hlášení chyb Jestliže naleznete chyby v tomto dokumentu nebo pokud máte nápad jak dokument vylepšit, rádi vás vyslechneme. Prosíme zašlete zprávu na náš info@bcvsolutions.eu ix

10 x

11 Struktura systému 1.1. Třívrstvá architektura Při návrhu systému byla použita třívrstvá architektura. Aplikace se tedy skládá z následujících vrstev: Prezentační vrstvy, která zajišťuje interakci s uživatelem. Systém může implementovat více různých prezentačních vrstev, například v podobě webového rozhraní nebo třeba v podobě Java aplikace. Byly vytvořeny dvě nezávislé implementace webového rozhraní. Jedno rozhraní je určeno administrátorům a druhé je pro obyčejné uživatele. Úplným oddělením těchto dvou rozhraní předcházíme nechtěné situaci, kdy uživatel pracuje z daty, která jsou určena pouze administrátorům. Kromě webového rozhraní poskytuje CzechIdM i webovou službu. Aplikační vrstvy, která implementuje business logiku systému. V této vrstvě se nachází veškerý výkonný kód aplikace, například provisioning, synchronizace, workflows, atd. Aplikační vrstva je z velké části tvořena právě pravidly a workflow, což jsou externí programy napsané v jazyce BeanShell, uchovávané v datovém úložišti. Výhodou tohoto přístupu je jejich snadná údržba; je-li potřeba nějaká změna v běžícím CzechIdM, stačí upravit konkrétní workflow nebo pravidlo, aniž by bylo nutné provádět build na celé řešení. Datové vrstvy, která slouží pro ukládání a načítání dat z a do trvalého úložiště neboli repository. Tato vrstva odstiňuje aplikační vrstvu od použitého datového úložiště. Tím může být libovolná relační databáze. Mezi vrstvami se data předávají v podobě DTO (Data Transfer Object) objektů. Zvažován byt také způsob předávání dat pomocí J2EE Entit. To jsou objekty, se kterými pracuje vrstva datová. Zapouzdřují data jednoho záznamu z nějaké tabulky databáze. Naproti tomu DTO je obyčejný Java objekt obsahující pouze ty atributy, které ostatní vrstvy potřebují. Tento přístup má oproti předávání Entit následující výhody: úplná nezávislost vrstev v DTO nejsou obsažena žádná interní data. Jedinou výjimkou je atribut version obsahující informaci o verzi Entity, ze které byl DTO vytvořen. Ten bude pouze pro čtení a i v případě jeho změny nemůže dojít k nekonzistentnosti. kontrola komunikace s databázi. Nejsou žádná volání databáze z prezentační vrstvy pro "dotažení" dalších objektů. Tím nemůže dojít k jinak velmi časté lazy loading exception. v rámci datové vrstvy se DTO vyskytují pouze v rozhraní, která jsou určena pro komunikaci s vrstvou aplikační. Pro komunikaci mezi jednotlivými moduly uvnitř datové vrstvy mohou být používány přímo Entity. 1

12 Kapitola 1. Struktura systému Obrázek 1.1. Třívrstvá architektura 1.2. Moduly a jejich topologie Každá vrstva popsaná v předchozí kapitole je dále rozdělena na moduly. Moduly jsou navzájem odděleny na úrovni adresářové struktury, v níž každému modulu odpovídá jeden adresář (s případnými podadresáři). Toto rozdělení slouží především k lepší čitelnosti a celkové správě zdrojového kódu. Rozvržení se také promítlo do webového rozhraní, a to v podobě položek v hlavním menu. Moduly prezentační vrstvy obsahují především xhtml, css soubory a obrázky. Dále pak JSF managed beany, které slouží jako action listenery a upravují data do podoby vhodné pro prezentaci ve webovém rozhraní. Kontrolují také navigaci mezi stránkami. Moduly webové (prezentační) vrstvy: Adresář admin/authentication admin/configuration admin/help admin/layout admin/policy admin/report admin/role admin/system admin/task Popis Obsahuje přihlašovací stránku do administračního rozhraní. Zde jsou umístěny stránky konfigurace. Jedná se především o vylistování, zobrazení, editace workflow, pravidel a ových šablon. Adresář pro stránky s nápovědou. Nápověda je v podadresářích s kódem jazyka. Například "cs" a "en". Zde je xhtml pro menu a základní šablona pro vzhled administračního rozhraní. Obsahuje formuláře pro vylistování, zobrazení a editaci politik hesel. Adresář se stránkami pro reporty. Obsahuje formuláře pro vylistování, zobrazení a editaci rolí. Obsahuje formuláře pro vylistování, zobrazení a editaci koncových systémů. Obsahuje formuláře pro vylistování, zobrazení a editaci naplánovaných (pravidelně spouštěných) úloh. 2

13 Moduly a jejich topologie Adresář admin/user admin/usertask admin/workflow img include js stylesheets user/authentication user/help user/layout user/password user/personal user/settings user/usertask Tabulka 1.1. Adresáře Popis Obsahuje formuláře potřebné pro správu uživatelů. Adresář se stránkami pro vylistování a zobrazení detailu uživatelských úkolů (schvalování). Obsahuje stránky na zobrazení seznamu worfklow s možností jejich spuštění. Obsahuje loga, iconky a další obrázky. Obsahuje xhtml, které se vkládají do více různých stránek. Adresář obsahující soubory s javascripty. Zde jsou umístěny kaskádové styly pro stránky i některé komponenty. Adresář s přihlašovací stránkou do uživatelského rozhraní. Adresář pro stránky s nápovědou v uživatelském rozhraní. Nápověda je v podadresářích s kódem jazyka. Například "cs" a "en". Zde je xhtml pro menu a základní šablona pro vzhled uživatelského rozhraní. Obsahuje stránku pro změnu vlastního hesla v uživatelském rozhraní. Obsahuje stránky s přehledem osobních údajů a přidělenách rolí. V tomto adresáři jsou formuláře, na kterých si uživatel může nastavit webové rozhraní. Adresář se stránkami pro vylistování a zobrazení detailu uživatelských úkolů (schvalování). Moduly aplikační vrstvy jsou implementovány pomocí Enterprise Java Beans. Tato vrstva je navržena tak, aby bylo možné budoucí umístění některých jejích modulů na jiný server. Půjde zejména o moduly, u kterých se dá předpokládat velká výpočetní náročnost, například modul synchronizace. Mezi moduly v rámci této vrstvy jsou data předávána v podobě DTO získaných z vrstvy datové. Balíček...app.constant...app.core...app. ...app.i18n...app.page...app.rule...app.security Popis Obsahuje message katalogy pro zprávy které, pochází z aplikační vrstvy - tedy i z workflow a pravidel. Bude přesunuto do balíčku eu.bcvsolutions.idm.app.i18n. Obsahuje třídy pro synchronizaci, provisioning a asynchronní zpracování. V budoucnu bude pravděpodobně rozděleno do samostatných balíků. Zde jsou třídy pro posílání ů (zpracování ové fronty). Obsahuje message katalogy pro zprávy které, pochází z aplikační vrstvy - tedy i z workflow a pravidel. Zde jsou třídy sloužící jako prostředník s vrstvou prezentační. V tomto balíčku jsou třídy pro spouštění pravidel. Jedná se o balíček zajišťující autentizaci a autorizaci. 3

14 Kapitola 1. Struktura systému Balíček...app.scheduler...app.sso...app.user...app.util...app.workflow...app.ws Tabulka 1.2. Balíčky Popis Třída v tomto balíčku zodpovídá za spouštění pravidelných úloh. Obsahuje servlet filter pro zajištění interakce s SSO agentem. Zde je především třída pro provisioning uživatelů na koncové systémy. Ta je využívaná obecnou třídou z "core" balíčku. Pomocné třídy. Třídy rozšiřující a řídící workflow. Balíček tříd pro webovou službu. Následuje přehled modulů datové vrstvy. Jejich funkce jsou využívaný vesměs skrze fasádu v podobě třídy "Data". Balíček...data.audit...data.configurations...data.dto...data. template...data.entity...data.lock...data.logging...data.organisation...data.policy...data.report...data.resource...data.resourcetype...data.role...data.rule...data.security...data.scheduler...data.user...data.usertask...data.util Popis Jsou zde třídy pro získávání auditních informací. Obsahuje třídy pro práci s nastavením CzechIdM uloženým v repository. V tomto balíčku jsou třídy reprezentující DTO. Tedy objekty sloužící pro přenos dat mezi vrstvami. Obsahuje třídy pro správu ových šablon. Zde jsou třídy reprezentující datový model (strukturu repository). Obsahuje třídy, které zajišťují zamykání objektů. Balíček tříd pro logování provozních i auditních záznamů do repository. Obsahuje třídy pro správu organizací (organizačních jednotek). Obsahuje třídy pro správu politik hesel. Obsahuje třídy pro správu reportů. Obsahuje jednak třídy pro správu informací o koncových systémech uložených v repository, ale také i třídy sloužící ke komunikaci s connector frameworkem. Obsahuje třídy pro správu typů systémů. Obsahuje třídy pro správu rolí. Obsahuje třídy pro správu pravidel. Třídy v tomto balíku slouží pro práci a autentizačními a autorizačními informacemi uloženými v repository. Obsahuje třídy, které plánovač využívá pro získávání a ukládání dat o naplánovaných úlohách do repository. Obsahuje třídy pro správu uživatelů a částěčně i jejich účtů. Obsahuje třídy pro správu uživatelských úkolů (požadavků na schválení). Pomocné třídy 4

15 Webové rozhraní Balíček...data.view Popis Obsahuje třídy reprezentující pohledy na různé objekty. Spolu s DTO slouží pro předávání informací mezi vrstvami....data.workflow Tabulka 1.3. Moduly datové vrstvy Obsahuje třídy pro správu workflow Webové rozhraní Uživatelské rozhraní je přístupné pomocí webového prohlížeče. Je vytvořeno pomocí XHTML stránek. Jejich generování zajišťuje standardizovaný framework JSF (Java Server Faces) od firmy Sun Microsystems. Při vývoji prezentační části aplikace jsme vycházeli z Pravidel tvorby přístupného webu. (Tato pravidla byla napsána pro účely novely zákona č. 365/2000 Sb. o informačních systémech veřejné správy, provedenou zákonem č. 81/2006 Sb.) Výhodou přístupu k BCV IdM přes webové rozhraní je zejména to, že je aplikace uživatelům i administrátorům přístupná z libovolného počítače, na kterém je nainstalován webový prohlížeč, který má zapnutý JavaScript. Není tedy nutné na jednotlivé uživatelské stanice instalovat žádný další software. Díky přístupu přes webové rozhraní navíc ani nezáleží na tom, jaký operační systém má uživatel na počítači nainstalován. Uživatelské rozhraní je rozděleno na dvě části na část administrátorskou a na část uživatelskou. Obě části mají podobný vzhled ve svrchní části stránky se nachází vlevo logo zákazníka, vpravo informace o aktuálně přihlášeném uživateli, následuje horizontální menu, ve střední a spodní části stránky je blok se specifickými prvky (např. formuláře či tabulky) pro aktuálně zobrazenou stránku. Tento blok obsahuje mimo jiné i lištu s ovládacími tlačítky, která se nachází ve vrchní i spodní části. V uživatelském rozhraní zobrazuje IdM jen ty položky, na které má aktuálně přihlášený uživatel právo. Uživatelské rozhraní je plně lokalizováno do českého a anglického jazyka. Jazykovou variantu si uživatel zvolí při přihlášení nebo v nastavení svého účtu. Administrátorské rozhraní je lokalizováno do českého jazyka Implementační detaily Webové rozhraní je implementováno pomocí JavaServer Faces s využitím Facelets. Struktura rozhraní je tedy definována sadou xhtml souborů. Většina stránek (ty, které se obejdou bez nějaké speciální funkčnosti či bindigu) je obsluhována jednou obecnou managed beanou GenericManagedBean. Ta je určena ke zpracování požadavků vyvolaných ze stránky. Obsahuje dvě metody: processsubmit - nastaví kontext aktuálního workflow a tomu následně pošle signál pro přesun do dalšího stavu. processevent - provede mapování události na název workflow, nastaví jeho kontext a po té ho spustí. Pro práci s workflow slouží komponenta WorkflowControler. Vizte kapitolu Workflows. Mapování událostí na názvy workflow stejně jako mapování na nazvy formulářu má na starosti komponenta EventsMapping. Existuje ve scope application. Kontext workflow je nastavován podle hodnoty atributu variables komponenty PageParameters. Ta existuje ve scope Page. 5

16 Kapitola 1. Struktura systému Typický proces zobrazení stránky a zpracování na ní umístěném formuláře vypadá následovně: 1. Běžící workflow vyvolá akci ShowPageAction, čímž dojde k jeho pozastavení 2. Je spuštěna metoda ShowPageAction.execute. Ta získá, případně vytvoří komponentu PageParameters a do atributu variables nakopíruje obsah kontextu workflow. Případně může přidat nějaké zprávy různého typu (info, error, warning,...). Poté za pomoci komponenty EventsMapping zjistí název stránky, která se má zobrazit. Pomocí třídy Redirect tuto stránku zobrazí. 3. Uživatel edituje formulář na zobrazené stránce. Hodnoty jsou získávány a nastavovány v komponentě PageParameters (buď přímo nebo prostřednictvím managed beany stránky). Po stisknutí tlačítka pro odeslání formuláře bude obvykle zavolána metoda GenericManagedBean.processSubmit. 4. Metoda processsubmit přetransformuje data a pomocí komponenty WorkflowControler nastaví kontext čekajícího workflow a následně mu pošle signál pro přechod do dalšího stavu Repository Pojmem repository se označuje úložiště interních informací IdM. BCV IdM ukládá svá data do relační databáze, která podporuje JDBC protokol. Mezi interní informace patří především: informace o identitách - v repository je uloženo minimum těchto informací. Většina je ponechána na koncových systémech. Tím je zabráněno zbytečné redundanci a nekonzistentnosti mezi repository a koncovým systémem informace o koncových systémech auditní logy definice workflow a pravidel archivy výsledků reportů, workflow,... konfigurace jbpm informace Pro práci s repositorý je použit ORM framework Hibernate (jedna z implementací JPA). Ten umožnuje pracovat s relačními daty stejným způsobem, jako se pracuje s objekty. Pole jednoho (případně více) záznamu v databázové tabulce jsou tak mapovány na atributy objektu, který se v tomto kontextu nazývá Entita. Některé entity obsahují: podpis - pro kontrolu neoprávněné změny zámek - pro kontrolu konkurenčního přístupu auditní atributy Toto je implementováno pomocí hierarchie tříd SignedEntity - obsahuje atribut sign typu String 6

17 Použité technologie LockableEntity - rozšiřuje třídu SignedEntity o atribut lock typu DateTime AuditedEntity - rozšiřuje třídu LockableEntity o auditní atributy Každá entita, která potřebuje jednu z výše uvedených funkčností, dědí od odpovídající třídy. Existuje několik způsobů, jak lze inheritenci promítnout do struktury databázové tabulky. My používáme způsob InheritanceType.TABLE_PER_CLASS, který atributy předků umístí do stejné tabulky společně s atributy entity. V databázi jsou tabulky, které odpovídají entitám znázorněných v diagramu konceptuálního modelu, a tabulky, které pro svůj běh potřebuje jbpm Použité technologie Systém je postaven na JEE 5.0 technologiích: Komponenta Verze Popis JavaServer Faces (JSF) java.sun.com/javaee/javaserverfaces/ Enterprise Java Beans (EJB) java.sun.com/products/ejb/index.jsp Tabulka 1.4. JEE technologie 1.2 framework od společnosti Sun určený pro vytváření webového rozhraní 3.0 komponentová architektura pro vytváření business vrstvy enterprise aplikací na platformě Java. Je to standardní způsob vytváření distribuovaných, transakčních, bezpečných a přenositelných aplikací. Další používané technologie: Komponenta Verze Popis JBoss Seam Framework seamframework.org/ Integrační framework kombinující především JSF a EJB. JBoss Hibernate 3.x Framework pro Object-relational mapping (ORM). Implementace Java Persistance API JBoss jbpm 3.x Business Process Management (BPM) Suite. Technologie pro vytváření a správu procesů Identity Connectors Framework and Toolkit java.net/ 1.0 Technologie pro používaní a vytváření konektorů, které slouží pro přípojení a komunikaci s externími systémy BeanShell 2.0b4 Interpreter zdrojového kódu Javy s podporou skriptování TestNG Framework určený pro testování aplikace Apache log4j log4j/ 1.2/index.html Tabulka 1.5. Další technologie 1.2 Nástroj pro vytváření logů Komponenta Verze Popis JBoss AS jbossas Aplikační server pro deploy IdM 7

18 Kapitola 1. Struktura systému Komponenta Verze Popis MySQL 5 Databázový server, který bude používán pro uložení repository IdM Tabulka 1.6. Servery 8

19 Aplikační vrstva 2.1. Přihlašování O přihlášení uživatele do CzechIdM se stará klíčová třída Authenticator, v níž dojde k ověření uživatelského jména a hesla. Jméno a zadané heslo je nejprve načteno z credentials a následně je (podle toho, zda se uživatel snaží přihlásit do administrátorského, nebo uživatelského rozhraní) zavolána metoda authenticateidentity na třídě Data s parametrem pro administrátorské nebo běžné uživatelské rozhraní. CzechIdM umožňuje přihlašování přes single sign-on. Tuto možnost je možné povolit nebo zakázat v konfiguračním souboru (viz kapitolu "Konfigurace"). V případě, že sso není používáno, dojde k porovnání hesla třídou SecurityManagementBean CzechIdM umožňuje přihlašování proti heslu v repository, nebo proti heslu na koncovém systému. Obvyklé je přihlašování proti heslu v repository; zde se ovšem neporovnávají plná hesla; z důvodu bezpečnosti jsou v repository uloženy pouze jejich otisky. Je-li tedy v repository nalezena identita s příslušným uživatelským jménem a otiskem hesla, je její totožnost považována za ověřenou a uživateli je umožněn přístup do uživatelského nebo administrátorského rozhraní. V některých situacích může být výhodné ověřovat identitu pomocí hesla v některém koncovém systému, například v centrálním LDAPu. Tuto možnost je třeba před spuštěním aplikačního serveru stanovit v konfiguračním souboru idm_configuration.properties. Konkrétně je zde třeba nastavit properties "auth_resource" na název systému, vůči němuž má proběhnout autentizace, "auth_schema" na schéma na tomto systému a "auth_id_attribute" na název atributu, který obsahuje identifikátor účtu (viz též kapitolu Konfigurace). Jsou-li tyto tři properties korektně nastaveny, probíhá přihlašování automaticky vůči zvolenému koncovému systému metodou authenticate v konektoru. Uživatel se přihlašuje svým běžným uživatelským jménem v CzechIdM. Nejprve proběhne autentizace proti nastavenému koncovému systému. Pokud neproběhne úspěšně, CzechIdM se může pokusit autentizovat uživatele vůči otisku hesla ve své repository. Toto chování je nutné explicitně zapnout nastavením atributu "auth_also_with_repository" na hodnotu "true". To pak umožní přihlášení například identitám - administrátorům CzechIdM, kteří nemají žádné účty na koncových systémech. # Fill in the resource name as defined in CzechIdM (e.g. Unix LDAP) auth_resource=portal # Fill in the schema name as defined in CzechIdM (e.g. default) auth_schema=default # Fill in the name of the attribute, which holds identifier used by connector as Uid (e.g. loginname) auth_id_attribute=loginname #This flag is taken into consideration if and only if a remote system authentication is configured. auth_also_with_repository=true Po technické stránce je autentizace proti koncovému systému realizována v metodě authenticateinremoteresource na třídě Data. Ta volá metodu authenticate na třídě ResourceManagementBean, ve které proběhne samotné ověření proti konektoru. V případě, že konektor po zavolání příslušné metody authenticate vrátí uid daného uživatele, autentizace úspěšně proběhla. 9

20 Kapitola 2. Aplikační vrstva try { if (checkpassword) { Uid uid = connection.connector.authenticate(objectclass.account, name, new GuardedString(password.toCharArray()), null); if (uid!= null) { result = true; else { ConnectorObject accountobj = connection.connector.getobject(objectclass.account, new Uid(name), null); if (accountobj!= null) { result = true; catch (RuntimeException e) { result = false; 2.2. Workflow, pravidla a ové šablony Aplikační vrstva CzechIdM je tvořena kromě několika obecných tříd v aplikačních modulech zejména sadou workflow, pravidel a ových šablon. Workflow a pravidlům jsou v této dokumentaci věnovány zvláštní kapitoly. V nich je popsáno, jak workflow a pravidla fungují a jak je vytvářet. Workflow jsou základním stavebním kamenem aplikační vrstvy, nějaké workflow je spuštěno za každým formulářem, každou zobrazenou stránkou a naprostou většinou akcí nad koncovými systémy, identitami a rolemi Předávání proměnných mezi procesy O spouštění workflow se stará třída eu.bcvsolutions.idm.app.workflow.workflowcontrolerbean. Spuštěné workflow je potom reprezentováno třídou eu.bcvsolutions.idm.app.workflow.workflowinstance. Každé instance této třídy udržuje proměnné v proměnné variables, z ostatních tříd je možné tyto proměnné získat nebo nastavit metodami getvariables() a setvariables(). V běžícím procesu jsou aktuální proměnné drženy v instanci třídy ContextInstance. Třída WorkflowInstance synchronizuje své proměnné právě s proměnnými v instanci ContextInstance, z níž lze proměnné získat metodou getvariables(). Proměnné jsou předávány právě tímto kontextem a lze si je představit jako mapu Map<String,Object>. Nastavení proměnných pro workflow zajišťuje třída WorkflowControllerBean, která ve své metodě createworkflow() na základě definice workflow parsováním xml vytvoří novou instanci WorkflowInstance a nastaví proměnné pomocí statické metody createfromworkflowdefinition na třídě WorkflowInstance. Případné spouštění podprocesu z workflow je podrobně popsáno v kapitole Workflow pomocí metod na třídě Application nebo přímo coby subprocesu definovaného v jpdl. Podobně jako workflow jsou aplikační vrstvou spouštěna pravidla. Správu pravidel má na starost třída RuleControlerBean. Na rozdíl od workflow však při provádění pravidel není na základě definice vytvořena žádná instance reprezentující pravidlo, ale je spuštěn interpreter bsh.interpreter, který provede přímo příkazy uvedené ve zdrojovém souboru. 10

21 Bussiness konstanty 2.3. Bussiness konstanty Chod CzechIdM je možné konfigurovat pomocí takzvaných "bussiness" konstant. Jsou to konstanty definované pro konkrétní nasazení CzechIdM, mohou obsahovat například délku karantény, některé přihlašovací údaje k jednotlivým koncovým systémům nebo názvy specifických extended atributů. Nejde tak o konfiguraci v obvyklém slova smyslu, jde o konstanty, které by v jiném nasazení zpravidla vůbec nebyly definovány. O načítání bussiness konstant se stará pravidlo getbusinessconstants. V něm je vytvořena mapa konstant, do které může zasahovat administrátor. Tyto konstanty jsou poté přes své klíče dostupné ze všech workflow i pravidel. HashMap result = new HashMap(); result.put("role_attr_parent", "parentdirpath"); // Perioda eskalace (bussiness kalendář lze upravit v konfiguračním souboru jbpm.cfg.xml) // Ve workflow a pravidlech lze odted pracovat s konstantou ESCALATION_PERIOD, ma pevnou retezcovou hodnotu "30 days". result.put("escalation_period", "30 days"); 2.4. Pravidlo getextendedattributesnames V pravidle getextendedattributesnames je definována mapa extended atributů a jejich typů. To je výhodné zejména pro zobrazování extended atributů v administrátorském rozhraní. Aplikace pomocí pravidla nalezne typ atributu a je schopna ho přijatelným způsobem formátovat Modul Utils Modul eu.bcvsolutions.idm.app.util obsahuje pomocné metody pro práci v aplikační vrstvě. Konkrétně jde především o samotnou třídu Utils, ve které lze najít sadu užitečných metod pro práci s view, s atributy koncových systémů, s extended atributy nebo některé často používané metody pro formátování. Do této třídy by měly být přidávány všechny metody, které mají pro pravidla a workflow pomocnou funkci a je pravděpodobné, že budou volány z mnoha různých míst v aplikační vrstvě. 11

22 12

23 Datová vrstva 3.1. Entity CzechIdM uchovává informace o identitách, rolích, atributech na účtech, organizacích atd. pomocí technologie Hibernate, která umožňuje mapovat jednotlivé instance objektů přímo na řádky tabulky v databázi. Atributy objektů jsou v kódu označeny příslušnými Hibernate anotacemi, s jejichž pomocí je Hibernate mapuje do hodnot jednotlivých sloupců. Třída, jejíž instance jsou takto uchovávány, se nazývá entita. Příkladem takové entity mohou být naříklad třídy Identity nebo Role. říká, že tato entita bude ukládána do repository, určuje, do které tabulky budou entity ukládány, lze specifikovat některé name = "Role.selectByName", query = "SELECT r FROM Role AS r WHERE r.name = :name" ) ) public class Role extends AbstractRole { Hierarchie entit Všechny entity v CzechIdM dědí od jednoho společného předka IdmEntity. Na něm je definován jedinečný identifikátor entityid, kterým lze odlišit dvě libovolné entity v CzechIdM. Pomocí tohoto identifikátoru jsou také implementovány relační extended atributy. Další důležitou nadtřídou některých entit je třída ViewMainEntity, jejíž potomci jsou ty třídy, na jejichž základě vzniká nějaké view. View je datový objekt, obsahující informace o entitě, který poskytuje datová vrstva vrstvě aplikační. Od této entity dědí právě například Identity nebo Role. Je-li navíc entita potomkem třídy AuditedEntity, jsou u každého záznamu dané entity logovány i informace o tom, kdo ji vytvořil, modifikoval a kdy se tak stalo. Sama tato třída dědí od třídy SignedEntity, která uchovává heš svých atributů, a není tedy možné neoprávněně měnit její atributy. Tím je zajištěna pravost a nepopiratelnost záznamů v auditním logu. Heš je počítána funkcí SHA na třídě SecurityUtils View Rozhraní View slouží k předání informací mezi datovou a aplikační vrstvou. Pohledy implementují návrhový vzor DTO a jsou vytvářeny pro přenos dat určitého typu. Za tímto účelem mohou byt rozšířeny o atributy specifické pro daný typ dat. Jako příklad poslouží nejdůležitější pohled a to UserView. Ten seskupuje nejen informace o identitě dostupné z repository, ale i data z příslušných účtů na koncových systémech. Návíce je UserView rozšířené o atributy, jejichž hodnoty mění způsob zpracování tototo pohledu. Důvodem k použití View je především zjednodušení práce s daty ve workflow a pravidlech. Na pohled se lze totiž dívat jako na jednoduchou mapu, která sdružuje 13

24 Kapitola 3. Datová vrstva informace logicky k sobě náležející. Dalším důvodem je, stejně jako u jiných DTO, bezpečnost. Ke skutečným datům v repository se přistupuje jen z několika tříd v datové vrstvě. Aplikační vrstva smí modifikovat pouze tyto "pohledy", a nemá tak přímý přístup k databázi. Aplikační vrstva má možnost přistupovat k pohledům na identity přes statické metody na třídě Data: metody checkoutview a checkinview. O těchto metodách podrobněji pojednávají další odstavce v této sekci Obecné třídy uchovávající data DTOModifiable <T> Rozhraní představující datovou strukturu, která uchovává informace o změnách v datech. Je parametrizováno typem T, v němž je zachycena informace o změně. Změnu lze získat veřejnou metodou T getmodification(). Jeho potomkem je rozhraní DTO DTO Rozhraní, které představuje modifikovatelnou datovou strukturu, v níž jsou data uchovávána v mapě jako dvojice "klíč - hodnota". Dědí od rozhraní DTOModifiable <Map<String, DTOModification>>, je implementováno třídou DTOGroup. Jednotlivá DTO lze vnořovat, hodnotou pro daný klíč může být opět DTO. V takovém případě je změna ve vnořeném DTO chápána jako změna rodičovského DTO. Z jednotlivých instancí DTO je možné sestavovat složitější stromové struktury. Přístup k jednotlivým hodnotám ve stromové struktuře, jíž je dané DTO kořenem, umožňují metody Serializable get(string[] path) a void put(string[] path, Object value). Parametrem path se rozumí cesta po jednotlivých klíčích do zanořených DTO. Zda taková cesta existuje, lze ověřit metodou boolean containspath(string[] path). V případě, že je zavolána metoda put a zadaná cesta neexistuje, jsou vytvořena nová DTO a chybějící úsek cesty je nově vybudován. Rozhraní DTO je v CzechIdM rodičovským rozhraním pro View, které implementují ostatní view jako například GenericView DTOModification Třída reprezentující jednu změnu v DTO pro konkrétní klíč. Obsahuje tři důležité atributy: Serializable oldvalue - hodnota pro daný klíč před modifikací Serializable newvalue - hodnota pro daný klíč po modifikaci Type type - druh změny, jedná se o výčtový typ, který může nabývat hodnot ADD, REMOVE a CHANGE DTOGroup Třída implementující DTO pomocí hešovací mapy. Zjišťování modifikací dané DTOGroup probíhá v implementacích následujícím způsobem: 1. Vytvoří se nová prázdná výstupní mapa "klíč - modifikace" 2. Zjistí se modifikace pro konkrétní klíče tohoto DTO a zařadí se do výstupní mapy 14

25 DTOList<E> 3. Je-li některá z hodnot implementací DTOModifiable, zjistí se její modifikace metodou getmodification() 4. Pokud je taková hodnota modifikována (getmodification() vrátilo neprázdnou kolekci, neprázdnou mapu nebo jiný objekt, který není null), zařadí se do výstupní mapy pro příslušný klíč modifikaci typu CHANGE 5. Vrátí se výstupní mapa. Změny ve vnořených DTOGroup se tedy nepropagují do rodičovských DTOGroup v okamžiku, kdy k nim dojde, ale zjišťují se teprve v okamžiku, kde je na rodičovské DTOGroup zavolána metoda getmodification(). Není proto efektivní volat tuto metodu opakovaně, pokud je pravděpodobné, že od posledního volání nedošlo k žádné změně. Informace o zaznamenaných modifikacích lze odstranit metodou clearmodification(). V CzechIdM je DTOGroup rodičovskou třídou GenericView, což je abstraktní třída, od níž dědí ostatní view jako například UserView DTOList<E> Rozhraní rozšiřující DTOModifiable<Map<E, Integer>>. Představuje datovou strukturu, v níž jsou data uchovávána ve formě seznamu a je ukládána informace o proběhlých změnách. K metodám z DTOModifiable přidává metody z List a metody List<E> getaddedelements() a List<E> getremovedelements(), kterými lze získat informace o přidaných a odebraných prvcích DTOLinkedList<E> Implementuje DTOList<E> pomocí spojového seznamu. Ve formě DTOLinkedList je v CzechIdM uchováván například seznam rolí dané identity View Rozhraní, které reprezentuje obecný pohled na nějakou entitu v CzechIdM. Poskytuje základní obecné informace o daném pohledu ve formě mapy, která udržuje atributy jako dvojice klíč-hodnota GenericView Abstraktní třída, která implementuje základní metody z rozhraní View. Dědí od ní velká většina ostatních view UserView Třída reprezentující pohled na jednu identitu v CzechIdM. Dědí od třídy GenericView. Atributy o identitě jsou uchovávány jako dvojice "klíč - hodnota", název a popis atributu je v tabulce: name firstname lastname disabled Celé jméno identity. Slouží jako identifikátor. Křestní jméno Příjmení Příznak toho, že je identita zablokována. 15

26 Kapitola 3. Datová vrstva password idmmanager attributes Heslo. Po checkoutu je vždy null. Pokud má po checkinu jinou hodnotu, heslo se změní. Atribut "name" nadřízeného nebo null, pokud uživatel nemá nadřízeného. Mapa entitních extended atributů; klíčem je název atributu, hodnotou je hodnota atributu homeorganisation Název organizace ve tvaru "top:... : nadorganizace:organizace" controledorganisations roles accounts relationattributes Tabulka 3.1. Atributy UserView Seznam názvů kontrolovaných organizací ve formátu "top:... : nadorganizace:organizace" Seznam názvů přidělených rolí Mapa účtů. Klíčem je jméno resource, hodnotou mapa schémat na daném resource. Klíčem v mapě schémat je jméno schématu, hodnotou mapa atributů daného schématu. Mapa relačních extended atributů. Pro přesnou strukturu viz Extended atributy - návrh Extended atributy Do takzvaných "extended" atributů jsou v daném View ukládány informace, které souvisejí pouze s konkrétním nasazením CzechIdM, ne s jeho obecnou podobou. Extended atributy v CzechIdM existují dvojího druhu: "entitní" a "relační". Entitní extended atributy se vztahují přímo k jedné instanci konkrétní entity (například tituly daného uživatele), zatímco relační se vztahují ke dvěma instancím entit, které mohou být různé (například vztah identity k roli). V CzechIdM jsou oba druhy extended atributů reprezentovány třídou ExtendedAttribute Návrh Každý extended atribut je tvořen svým jménem a hodnotou. Tato hodnota musí být objekt implementující rozhraní Serializable. V repository jsou všechny extended atributy uchovávány v jediné tabulce extended_attributes. V ní lze nalézt sloupce popsané v následující tabulce: atr_id name value valueasstring owner_id Jedinečný, automaticky generovaný identifikátor extended atributu Název atributu Hodnota atributu (LOB), může obsahovat libovolný serializovatelný objekt Hodnota atributu převedená na řetězec metodou tostring(). EntityId té entity, které atribut náleží related_id Tabulka 3.2. Sloupce tabulky extended_attributes Entityid té entity, která je cílovou entitou relace. Pokud je tedy atribut čistě entitní, je owner_id a related_id stejné. 16

27 View handlery Zda se jedná o atribut entitní, nebo relační, se rozhoduje na základě porovnání hodnot ve sloupcích "owner_id" a "related_id". Jsou-li stejné, jde o entitní atribut, jinak relační. Do view jsou extended atributy načítány metodou fillextendedattributes na třídě GenericViewHandler. Tato metoda nejprve načte z repository všechny atributy, které se týkají daného view, tedy ty, které se shodují alespon v owner_id s view, do kterého je načítáno. Entitní atributy poté uloží do samostatné DTOGroup pod klíč View.EXTENDED_ATTRIBUTES_ENTITY_KEY_NAME. Zařazení relačních atributů je složitější: pod klíčem View.EXTENDED_ATTRIBUTES_RELATION_KEY_NAME je hodnotou další DTOGroup, v níž jsou klíči entityid identifikátory konkrétních instancí entit. Hodnotou pro daný identifikátor je DTOGroup obsahující ve tvaru "klíč-hodnota" extended atributy konkrétní relace. Veškeré změny v extended atributech jsou po zavolání checkinview propagovány strukturou DTOGroup jako změny celého view, a mohou tedy být zpracovány a pozměněny v repository Třída ExtendedAttribute Třída reprezentující jeden entitní nebo relační extended atribut. Jednotlivé atributy jsou přímo mapovány na sloupce tabulky v repository. Ke zjištění, zda je atribut relační, nebo entitní, slouží metoda boolean isentityextatr(), která vrací true, pokud je atribut entitním atributem. Instance třídy ExtendedAttribute slouží pouze pro ukládání atributů do repository a pro jejich opětovné načítání. V konkrétním view jsou extended atributy uchovávány výše popsaným způsobem pomocí vnořených DTOGroup. K načtení všech extended atributů, které se týkají daného view, slouží metoda List<ExtendedAttribute> getallextendedattributes(entitymanager entitymanager) na třídě GenericView. Sloupec valueasstring se dá použít při vyhledávání entit (uživatelů, organizací) pomocí extended atributů, speciálně relací "Začíná na". Řetězec, který uživatel vyhledává, musí být totiž porovnáván s hodnotou typu String View handlery Vytváření a zpracovávání pohledů obstarávají v datové vrstvě takzvané view handler třídy. Jde o implementace rozhraní ViewHandler. Pro každé konkrétní View (například UserView, RoleView,...) existuje samostatný ViewHandler (UserViewHandler, RoleViewHandler,...). ViewHandlery dědí od GenericViewHandler, který implementuje podpůrné metody využivané jeho potomky. Interface ViewHandler deklaruje následující metody. Uvedené metody jsou implementovány v konkrétních ViewHandlerech (dědících od GenericViewHandleru) Metoda ViewHandler.createEmptyView Vytvoří prázdné view, které má správnou strukturu atributů s výchozími hodnotami. Aplikační vrstva volá tuhle metodu pomocí metody "createemptyview" na třídě "Data" Metoda ViewHandler.createView Metoda, která vytvoří pohled na základě již existujících dat v repository, případně i koncových systémů. Z aplikační vstvy opět voláno přes metody (checkoutview, getreadonlyview,...) třídy "Data". 17

28 Kapitola 3. Datová vrstva Metoda ViewHandler.processViewChanges Metoda, která zpracuje dodané view. To znamená, že upraví nebo vytvoří potřebné entity v repository. Také může připravit hodnoty ve view k jejich propagaci na koncové systémy (samotná změna dat na koncových systémech proběhne v provisioningu) Třída Data Tahle třída zpřístupňuje aplikační vrstvě většinu funkcí vrstvy datové. Všechny metody jsou statické Získání pohledu na existující entitu - metoda Data.checkoutView Aplikační vrstva CzechIdM nepracuje přímo s entitami uloženými v databázi, ale pouze s pohledy (view) na tyto entity. Pohledy jsou v CzechIdM reprezentovány implementacemi rozhraní View. Pro získání pohledu na konkrétní entitu slouží na třídě Data statická metoda checkoutview. Jejím prvním parametrem je typ view, které má být vráceno, druhým parametrem potom identifikátor entity, kterého se view má týkat. Po zavolání checkoutview je příslušná entita uzamčena a není možné na ní provádět změny. Proto je nezbytné po provedení změn na pohledu zámek odstranit buď metodou checkinview, při níž se zpracují i všechny provedené změny, anebo metodou releaseviewlock, která pouze uvolní zámek a změny nezpracuje. Pokud je tedy požadován pohled, na němž nebudou prováděny žádné změny, je výhodnější zavolat metodu, která vrací view pouze pro čtení: getreadonlyview na třídě Data. Další metodou, která vrací pohled na entitu, je metoda checkouttrimmedview. Ta však vrací pouze "ořezaný" pohled, který neobsahuje data nacházející se mimo repository. Její zavolání je rychlé, ale výsledek neobsahuje všechny informace Získání příslušného managementu S různými entitami v CzechIdM mohou pracovat různé implementace rozhraní DataManagement. V úvodu metody je proto na základě typu view získána příslušná implementace (pro UserView je to například UserManagementBean. Obecné metody většiny těchto tříd jsou implementovány již ve společné abstraktní nadtřídě GenericDataManagement. Na získané třídě je poté zavolána metoda retrieveview. Ta je implementována na třídě GenericDataManagement a většina jejích podtříd využívá této obecné implementace. Na začátku metody retrieveview je ověřeno, zda má uživatel práva k získání pohledu. Pokud ano, je pohled získán pomocí třídy implementující rozhraní ViewHandler pro daný typ pohledu (například UserViewHandler, RoleViewHandler,...). Velká část implementací ViewHandler je potomkem obecné abstraktní třídy GenericViewHandler a využívá některé její metody Metoda createview v rozhraní ViewHandler Metoda createview v rozhraní ViewHandler slouží k vytvoření pohledu na entitu zadanou v prvním parametru. Je implementována v třídách pro konkrétní typy pohledů. Příkladem metody bude metoda na třídě UserViewHandler, které se bude věnovat další odstavec Vytvoření pohledu na identitu K získání pohledu na identitu slouží uvnitř datové vrstvy třída UserViewHandler. V tomto odstavci bude popsán průběh vytváření pohledu na již existující identitu: 1. Vytvoření prázdného UserView. 18

29 Získání pohledu pro čtení na existující entitu - metoda Data.getReadOnlyView 2. Načtení domovské organizace a organizací kontrolovaných na základě atributů identity 3. Nastavení atributu hesla v pohledu na null: v databázi jsou uloženy pouze otisky hesla, které nemají pro aplikační vrstvu žádný význam. Bude-li při checkinview v tomto atributu jiné nenulové heslo, proběhne změna hesla. 4. Načtení atributu vedoucího: do atributu je uloženo jméno té identity, která je u identity, na niž je vytvářen pohled, uvedena jako vedoucí. 5. Načtení extended atributů: k načtení extended atributů do View slouží obecná metoda fillextendedattributes na třídě GenericViewHandler. Extended atributům je věnována samostatná sekce v kapitole o datové vrstvě. 6. Načtení přiřazených rolí na základě rolí uvedených u identity 7. Načtení informací o účtech. Struktura informací o jednotlivých účtech je blíže popsána v sekci týkající se UserView Získání pohledu pro čtení na existující entitu - metoda Data.getReadOnlyView Tato metoda má téměř identický průběh jako metoda Data.checkoutView. Rozdíly jsou pouze dva: nastavení příznaku isreadonly na true, což způsobí, že provedené na tomto view nebude možné propagovat zpět do datové vrstvy. Druhým rozdílem je, že identita, na níž je vytvořen pohled tohoto typu, není uzamčena Získání ořezaného pohledu na existující entitu - metoda Data.checkoutTrimmedView Tato metoda má podobný průběh jako metoda Data.checkoutView. Výsledné View však neobsahuje všechny informace, ale pouze ty, které byly dostupné přímo z repository. Její volání je tedy výrazně rychlejší, ale výsledné View je ořezané, a lze tedy použít jen v některých situacích Zpracování změn ve View - metoda Data.checkinView Aplikační vrstva CzechIdM nepracuje přímo s entitami, které jsou ukládány do repository. Pracuje pouze s pohledy na tyto entity podle návrhového vzoru DTO. V CzechIdM jsou pohledy tvořeny implementacemi rozhraní View. V aplikační vrstvě jsou informace o konkrétní entitě získány statickou metodou Data.checkoutView(View.Type viewtype, String id), která navrací pohled na danou entitu (například roli, identitu, organizaci...). Na tomto pohledu mohou být následně prováděny změny: uživateli mohou být například přiřazeny nové role nebo mu může být změněn nadřízený. V okamžiku, kdy je práce s View skončena, musí být změny propagovány do úložiště a případně i na koncové systémy. K tomu slouží statická metoda checkinview(view view) na třídě Data. V následující sekci je podrobně popsán její průběh Získání příslušného managementu S různými entitami v CzechIdM mohou pracovat různé implementace rozhraní DataManagement. V úvodu metody je proto na základě typu view získána příslušná implementace (pro UserView je to například UserManagementBean. Obecné metody většiny těchto tříd jsou implementovány již ve společné abstraktní nadtřídě GenericDataManagement. Na získané třídě je poté zavolána metoda 19

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4 CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................

Více

Elektronická podpora výuky předmětu Komprese dat

Elektronická podpora výuky předmětu Komprese dat Elektronická podpora výuky předmětu Komprese dat Vojtěch Ouška ouskav1@fel.cvut.cz 19. června 2006 Vojtěch Ouška Elektronická podpora výuky předmětu Komprese dat - 1 /15 Co je to SyVyKod? SyVyKod = Systém

Více

Programátorská příručka

Programátorská příručka KAPITOLA 1. PROGRAMÁTORSKÁ PŘÍRUČKA Kapitola 1 Programátorská příručka 1.1 Úvod 1.1.1 Technologie Program je psaný v jazyce Java 1.7. GUI je vytvářeno pomocí knihovny SWT. (http://eclipse.org/swt/) Pro

Více

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Semináˇr Java X J2EE Semináˇr Java X p.1/23 Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,

Více

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy Bc. Petr Pokorný Letní semestr 2009/2010 1 Obsah 1 Úvod... 3 2 Workflow... 3 3 Workflow

Více

Novell Identity Management. Jaromír Látal Datron, a.s.

Novell Identity Management. Jaromír Látal Datron, a.s. Novell Identity Management Jaromír Látal Datron, a.s. 19.4.2012 1 Identity management základní vlastnosti Jednoduché a rychlé poskytování uživatelských účtů Samoobslužné funkce pro uživatele Snadný návrh

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních

Více

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator APS Web Panel Rozšiřující webový modul pro APS Administrator Webové rozhraní pro vybrané funkce programového balíku APS Administrator Instalační a uživatelská příručka 2004 2016,TECH FASS s.r.o., Věštínská

Více

APS Administrator.ST

APS Administrator.ST APS Administrator.ST Rozšiřující webový modul pro APS Administrator Webové rozhraní sledování docházky studentů Instalační a uživatelská příručka 2004 2016,TECH FASS s.r.o., Věštínská 1611/19, Praha, www.techfass.cz,

Více

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011 Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP

Více

Použití databází na Webu

Použití databází na Webu 4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové

Více

Korporátní identita - nejcennější aktivum

Korporátní identita - nejcennější aktivum Korporátní identita - nejcennější aktivum Luděk Šafář Services Team Leader lsafar@novell.cz 03/13/2006 Standardní prostředí IT prostředí je diverzifikované a komplexní Administrativní činnosti jsou manuální

Více

Pravidla a plánování

Pravidla a plánování Administrátorský manuál TTC TELEKOMUNIKACE, s.r.o. Třebohostická 987/5 100 00 Praha 10 tel.: 234 052 111 fax.: 234 052 999 e-mail: ttc@ttc.cz http://www.ttc-telekomunikace.cz Datum vydání: 7. května 2013

Více

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou Administrace Oracle Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou zachyceny a uloženy lokálně před posláním

Více

8.2 Používání a tvorba databází

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Návrh a tvorba WWW stránek 1/14. PHP a databáze Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované

Více

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz

Více

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ MANAGEMENT PROJEKTŮ SPOLEČNOST DECADIC PROJEKT FRAMETRIX SPECIFIKACE POŽADAVKŮ AUTOR DOKUMENTU JIŘÍ JANDA BRNO 15. března 2012 Obsah 1 Úvod........................................

Více

Uživatelský modul. File Uploader

Uživatelský modul. File Uploader Uživatelský modul File Uploader APLIKAC NÍ PR ÍRUC KA POUŽITÉ SYMBOLY Použité symboly Nebezpečí důležité upozornění, které může mít vliv na bezpečí osoby nebo funkčnost přístroje. Pozor upozornění na možné

Více

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11 Obsah Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10 Kapitola 1 Než začneme 11 Dynamické vs. statické stránky 11 Co je a k čemu slouží PHP 12 Instalace potřebného softwarového

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Databázové a informační systémy

Databázové a informační systémy Databázové a informační systémy doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Jak ukládat a efektivně zpracovávat

Více

Sísyfos Systém evidence činností

Sísyfos Systém evidence činností Sísyfos Systém evidence Sísyfos : Evidence pracovních Systém Sísyfos je firemní aplikace zaměřená na sledování pracovních úkonů jednotlivých zaměstnanců firmy. Umožňuje sledovat pracovní činnosti na různých

Více

Příloha č. 1 Verze IS esyco business

Příloha č. 1 Verze IS esyco business Příloha č. 1 Verze IS esyco business 1.10.1.1. Nasazení nové verze IS esyco business 1.10.1.1. proběhne u zákazníků postupně od 23. 4. 2018. V rámci nasazování verze budete kontaktováni konzultantem společnosti

Více

RadioBase 3 Databázový subsystém pro správu dat vysílačů plošného pokrytí

RadioBase 3 Databázový subsystém pro správu dat vysílačů plošného pokrytí Databázový subsystém pro správu dat vysílačů plošného pokrytí RadioBase je datový subsystém pro ukládání a správu dat vysílačů plošného pokrytí zejména pro služby analogové a digitální televize a rozhlasu.

Více

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK Systém WorkWatch je určen pro malé a střední firmy, které se zabývají službami nebo zakázkovou výrobou. Zajistí dokonalý přehled o všech zakázkách a jejich rozpracovanosti.

Více

INFORMAČNÍ SYSTÉMY NA WEBU

INFORMAČNÍ SYSTÉMY NA WEBU INFORMAČNÍ SYSTÉMY NA WEBU Webový informační systém je systém navržený pro provoz v podmínkách Internetu/intranetu, tzn. přístup na takový systém je realizován přes internetový prohlížeč. Použití internetového

Více

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. 2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. GEOVAP, spol. s r. o. Čechovo nábřeží 1790 530 03 Pardubice Česká republika +420 466 024 618 http://www.geovap.cz V dokumentu použité názvy programových

Více

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5

Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5 CRM SYSTÉM KORMORÁN UŽIVATELSKÁ PŘÍRUČKA Obsah 1 Základní práce se systémem 3 1.1 Práce se záznamy................................. 3 1.2 Stránka Dnes.................................... 4 1.3 Kalendář......................................

Více

KIV/PIA 2013 Jan Tichava

KIV/PIA 2013 Jan Tichava KIV/PIA 2013 Jan Tichava Java EE JSF, PrimeFaces Spring JPA, EclipseLink Java Platform, Enterprise Edition Persistence Zobrazovací vrstva Interakce aplikací Deployment Java Persistence API Enterprise

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads

Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads Postup Úvodem Můj úkol při tomto projektu byl vytvořit model pro data, dle návrhového vzoru MVC. Jelikož v poslední době pracuji spíše s návrhovým vzorem HMVC (http://en.wikipedia.org/wiki/hmvc) ve frameworku

Více

Lokality a uživatelé

Lokality a uživatelé Administrátorský manuál TTC TELEKOMUNIKACE, s.r.o. Třebohostická 987/5 100 00 Praha 10 tel.: 234 052 111 fax.: 234 052 999 e-mail: ttc@ttc.cz http://www.ttc-telekomunikace.cz Datum vydání: 15.října 2013

Více

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE 2011 Technická univerzita v Liberci Ing. Přemysl Svoboda ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE V Liberci dne 16. 12. 2011 Obsah Obsah... 1 Úvod... 2 Funkce zařízení... 3 Režim sběru dat s jejich

Více

(Enterprise) JavaBeans. Lekce 7

(Enterprise) JavaBeans. Lekce 7 (Enterprise) JavaBeans Lekce 7 JavaBeans vs. Enterprise JavaBeans (EJB) JavaBeans technologie: jedná se o tzv. komponentní architekturu určenou pro JSE platformu určená pro tvorbu JSE GUI programů pomocí

Více

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze 2.2.0.6

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze 2.2.0.6 APS mini.ed programová nadstavba pro základní vyhodnocení docházky Příručka uživatele verze 2.2.0.6 APS mini.ed Příručka uživatele Obsah Obsah... 2 Instalace a konfigurace programu... 3 Popis programu...

Více

Bc. Martin Majer, AiP Beroun s.r.o.

Bc. Martin Majer, AiP Beroun s.r.o. REGISTR DIGITALIZACE HISTORICKÝCH FONDŮ (RDHF) A DIGITÁLNÍCH KONKORDANCÍ (DK) Návrh uživatelského rozhraní klientských aplikací verze 1.0 Bc. Martin Majer, AiP Beroun s.r.o. 28.11.2016-1 - Obsah 1 Seznam

Více

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9 Začínáme programovat v Ruby on Rails 9 O autorovi 9 Poděkování 9 Úvod 11 Komu je kniha určena 11 Jak je kniha uspořádána 11 Co ke knize potřebujete 12 Konvence 12 Zdrojový kód 13 Poznámka redakce českého

Více

Zabezpečení proti SQL injection

Zabezpečení proti SQL injection Zabezpečení proti SQL injection ESO9 intranet a.s. Zpracoval: Tomáš Urych U Mlýna 2305/22, 141 Praha 4 Záběhlice Dne: 19.9.2012 tel.: +420 585 203 370-2 e-mail: info@eso9.cz Revize: Urych Tomáš www.eso9.cz

Více

Centrální autentizační webový informační systém

Centrální autentizační webový informační systém Centrální autentizační webový informační systém Vypracoval : Jaromír Koníček Datum vypracování: 24..2006 Case nástroj: Enterprise Architekt v. 4.50 Obsah. Úvod... 3.. Použité terminologie... 3 2. Popis

Více

Novinky. Autodesk Vault helpdesk.graitec.cz,

Novinky. Autodesk Vault helpdesk.graitec.cz, Novinky Autodesk Vault 2017 www.graitec.cz www.cadnet.cz, helpdesk.graitec.cz, www.graitec.com Novinky Autodesk Vault 2017 PDF dokument obsahuje přehled novinek produktu Autodesk Vault 2017. Obsah: 1.

Více

Reliance 3 design OBSAH

Reliance 3 design OBSAH Reliance 3 design Obsah OBSAH 1. První kroky... 3 1.1 Úvod... 3 1.2 Založení nového projektu... 4 1.3 Tvorba projektu... 6 1.3.1 Správce stanic definice stanic, proměnných, stavových hlášení a komunikačních

Více

Popis logování v aplikačním serveru

Popis logování v aplikačním serveru Popis logování v aplikačním serveru Zpracoval: Tomáš Urych U Mlýna 2305/22, 141 Praha 4 Záběhlice Dne: 3.10.2011 tel.: +420 585 203 370-2 e-mail: info@eso9.cz Revize: Urych Tomáš www.eso9.cz Dne: 26.3.2018

Více

Systémová administrace portálu Liferay

Systémová administrace portálu Liferay 02 Systémová administrace portálu Liferay 1 Agenda Administrace Instalace lokálního a serverového prostředí Základní práce s uživateli Role a oprávnění Konfigurace portálu 2014 IBA CZ, s. r. o. 2 Portálová

Více

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS

Více

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/ UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok

Více

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE X33EJA Security, Realms Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE 'web.xml' 'glassfish-web.xml' dále nutno nastavit realm v admin. konzoli GF 1

Více

APS Administrator.OP

APS Administrator.OP APS Administrator.OP Rozšiřující webový modul pro APS Administrator Přehled přítomnosti osob v oblastech a místnostech Instalační a uživatelská příručka 2004 2013,TECH FASS s.r.o., Věštínská 1611/19, Praha,

Více

O Apache Derby detailněji. Hynek Mlnařík

O Apache Derby detailněji. Hynek Mlnařík O Apache Derby detailněji Hynek Mlnařík Agenda Historie Vlastnosti Architektura Budoucnost Historie 1997 Cloudscape Inc. - JBMS 1999 Informix Software, Inc. odkoupila Cloudscape, Inc. 2001 IBM odkoupila

Více

1. Podmínky chodu aplikace

1. Podmínky chodu aplikace 1 / 15 1. Podmínky chodu aplikace Licenční instalace určení pro značku, lokální instalace, nebo síťová licencovaná MAS serverem. 1.1. Instalace podpory MicroCat na lokální stanici Na dané stanici musí

Více

KOMPONENTY APLIKACE TreeINFO. Petr Štos ECM Business Consultant

KOMPONENTY APLIKACE TreeINFO. Petr Štos ECM Business Consultant KOMPONENTY APLIKACE TreeINFO Petr Štos ECM Business Consultant CO JE TO APLIKACE TreeINFO Sada komponent Komponenty rozšiřující sloupce Komponenty rozšiřující pohledy na data Aplikační části Využití jednotlivě

Více

Outdoor Expert. Uživatelský manuál. Verze aplikace: OutdoorExpert_Manual.docx 1 /

Outdoor Expert. Uživatelský manuál. Verze aplikace: OutdoorExpert_Manual.docx 1 / Outdoor Expert Uživatelský manuál Verze aplikace: 1.0 28. 12. 2014 OutdoorExpert_Manual.docx 1 / 35 2015-01-01 Obsah 1 ÚVOD... 3 2 POPIS FUNKČNOSTÍ APLIKACE... 3 2.1 SPUŠTĚNÍ APLIKACE... 3 2.2 ZALOŽENÍ

Více

17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/

17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ 17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ Úvod 1 Úvod Nedávno jsem zveřejnil návod na vytvoření návštěvní knihy bez nutnosti použít databázi. To je výhodné tehdy, kdy na serveru

Více

Využití identity managementu v prostředí veřejné správy

Využití identity managementu v prostředí veřejné správy Využití identity managementu v prostředí veřejné správy Tomáš Král Account Technology Strategist, Public Sector Microsoft ČR Realita dneška: Rostoucí počet provozovaných či používaných, často heterogenních

Více

Uživatelská dokumentace

Uživatelská dokumentace Uživatelská dokumentace Verze 14-06 2010 Stahování DTMM (v rámci služby Geodata Distribution) OBSAH OBSAH...2 1. O MAPOVÉM SERVERU...3 2. NASTAVENÍ PROSTŘEDÍ...3 2.1 Hardwarové požadavky...3 2.2 Softwarové

Více

Architektury informačních systémů

Architektury informačních systémů Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to

Více

Architektury informačních systémů

Architektury informačních systémů Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to

Více

IS pro podporu BOZP na FIT ČVUT

IS pro podporu BOZP na FIT ČVUT IS pro podporu BOZP na FIT ČVUT Závěrečná zpráva pro 2. iteraci 21. dubna 2011 Zadavatel: Ing. Jiří Chludil Řešitelský tým: Jiří Kopecký Jan Kratochvíl Milan Matějček Štefan Pinďák Kristýna Streitová Úvod

Více

VComNet uživatelská příručka. VComNet. Uživatelská příručka Úvod. Vlastnosti aplikace. Blokové schéma. «library» MetelCom LAN

VComNet uživatelská příručka. VComNet. Uživatelská příručka Úvod. Vlastnosti aplikace. Blokové schéma. «library» MetelCom LAN VComNet Uživatelská příručka Úvod Aplikace VComNet je určena pro realizaci komunikace aplikací běžících na operačním systému Windows se zařízeními, které jsou připojeny pomocí datové sběrnice RS485 (RS422/RS232)

Více

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15 Platforma Java Objektově relační mapování II Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, 2016 1 / 15 Dotazování vyhledání objektu podle

Více

Student s Life. Návrhová dokumentace (Design) Lukáš Barák, Jakub Ječmínek, Jaroslav Brchel, Jiří Zmeškal 3.12.2010

Student s Life. Návrhová dokumentace (Design) Lukáš Barák, Jakub Ječmínek, Jaroslav Brchel, Jiří Zmeškal 3.12.2010 Student s Life Návrhová dokumentace (Design) Lukáš Barák, Jakub Ječmínek, Jaroslav Brchel, Jiří Zmeškal 3.12.2010 Model Specification Page: 2 Obsah Model architektury... 3 Návrhový model... 3 Bussines

Více

1. Webový server, instalace PHP a MySQL 13

1. Webový server, instalace PHP a MySQL 13 Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

Java a XML. 10/26/09 1/7 Java a XML

Java a XML. 10/26/09 1/7 Java a XML Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis

Více

Nephele systém. Akademie výtvarných umění v Praze. Ústav teorie informace a automatizace AV ČR, v.v.i. Ústav anorganické chemie AV ČR, v.v.i.

Nephele systém. Akademie výtvarných umění v Praze. Ústav teorie informace a automatizace AV ČR, v.v.i. Ústav anorganické chemie AV ČR, v.v.i. Nephele systém Akademie výtvarných umění v Praze Ústav teorie informace a automatizace AV ČR, v.v.i. Ústav anorganické chemie AV ČR, v.v.i. RNDr. Mgr. M. Beneš, RNDr. B. Zitová, PhD., RNDr. J. Hradilová,

Více

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Bridge. Známý jako. Účel. Použitelnost. Handle/Body Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době

Více

Modul Ankety verze 1.11 pro redakční systém Marwel 2.8 a 2.7

Modul Ankety verze 1.11 pro redakční systém Marwel 2.8 a 2.7 Modul Ankety verze 1.11 pro redakční systém Marwel 2.8 a 2.7 postupy a doporučení pro práci redaktorů Ivo Vrána, červen 2011 Podpora: e-mail: podpora@qcm.cz tel.: +420 538 702 705 Obsah Modul Ankety...3

Více

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Webové aplikace Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Harmonogram Dopolední blok 9:00 12:30 Ing. Dostal Úvod, XHTML + CSS Ing. Brada,

Více

Stručný obsah. K2118.indd 3 19.6.2013 9:15:27

Stručný obsah. K2118.indd 3 19.6.2013 9:15:27 Stručný obsah 1. Stručný obsah 3 2. Úvod 11 3. Seznamy a databáze v Excelu 13 4. Excel a externí data 45 5. Vytvoření kontingenční tabulky 65 6. Využití kontingenčních tabulek 81 7. Kontingenční grafy

Více

Nemocnice. Prvotní analýza a plán projektu

Nemocnice. Prvotní analýza a plán projektu Nemocnice Projekt do předmětu AIS Prvotní analýza a plán projektu Lukáš Pohl, xpohll00, xkosti03 Jan Novák, xnovak79 2009/2010 1 Neformální specifikace FN potřebuje informační systém, který bude obsahovat

Více

Postupy práce se šablonami IS MPP

Postupy práce se šablonami IS MPP Postupy práce se šablonami IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Postupy práce se šablonami IS MPP Modul

Více

Administrace Oracle. Práva a role, audit

Administrace Oracle. Práva a role, audit Administrace Oracle Práva a role, audit Filip Řepka 2010 Práva (privileges) Objekty (tabulky, pohledy, procedury,...) jsou v databázi logicky rozděleny do schémat. Každý uživatel má přiděleno svoje schéma

Více

Uživatelská příručka

Uživatelská příručka B2B CENTRUM a.s. 3.2011 Obsah Začínáme... 3 Přihlášení a zapomenuté heslo... 3 Vytvoření uživatele... 3 Editace osobních údajů... 5 Vkládání souborů... 6 Elektronický podpis... 8 Stavební deník... 11 Identifikační

Více

Webové rozhraní TELEFONNÍ STYK POD KONTROLOU NÁSTROJ PRO ŘÍZENÍ CHODU CALL CENTRA A ZPRACOVÁNÍ TELEFONNÍCH HOVORŮ. Funkcionalita

Webové rozhraní TELEFONNÍ STYK POD KONTROLOU NÁSTROJ PRO ŘÍZENÍ CHODU CALL CENTRA A ZPRACOVÁNÍ TELEFONNÍCH HOVORŮ. Funkcionalita TELEFONNÍ STYK POD KONTROLOU NÁSTROJ PRO ŘÍZENÍ CHODU CALL CENTRA A ZPRACOVÁNÍ TELEFONNÍCH HOVORŮ Webové rozhraní Webové rozhraní je určeno k ovládání a konfiguraci komponent SEVIO a k ovládání a konfiguraci

Více

Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server.

Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server. 1 Práce se systémem Tento dokument popíše způsob instalace a základy práce se systémem Joomla!, ve kterém je učebnice jazyka Scratch vytvořena. Podrobný návod k systému Joomla! je popsán v dokumentaci

Více

GPS Loc. Uživatelský manuál. webové rozhraní. pro online přístup do systému GPS Loc přes webové uživatelské rozhraní app.gpsloc.eu

GPS Loc. Uživatelský manuál. webové rozhraní. pro online přístup do systému GPS Loc přes webové uživatelské rozhraní app.gpsloc.eu GPS Loc webové rozhraní Uživatelský manuál pro online přístup do systému GPS Loc přes webové uživatelské rozhraní app.gpsloc.eu Webové rozhraní GPS Loc je virtuální místo na internetu, kde můžete sledovat

Více

APS Administrator.CR

APS Administrator.CR APS Administrator.CR Kreditní manažer v systému APS (Rozšiřuje programový modul pro APS Administrator) Instalační a uživatelská příručka 2004 2015,TECH FASS s.r.o., Věštínská 1611/19, 153 00 Praha, www.techfass.cz,

Více

PRACUJEME S TSRM. Modul Samoobsluha

PRACUJEME S TSRM. Modul Samoobsluha PRACUJEME S TSRM Modul Samoobsluha V této kapitole Tato kapitola obsahuje následující témata: Téma Na straně Přehled kapitoly 6-1 Užití modulu Samoobsluha 6-2 Přihlášení k systému 6-3 Hlavní nabídka TSRM

Více

Olga Rudikova 2. ročník APIN

Olga Rudikova 2. ročník APIN Olga Rudikova 2. ročník APIN Redakční (publikační) systém neboli CMS - content management system (systém pro správu obsahu) je software zajišťující správu dokumentů, nejčastěji webového obsahu. (webová

Více

Stručný úvod pro programátory. Michal Kuchta

Stručný úvod pro programátory. Michal Kuchta Stručný úvod pro programátory Michal Kuchta Alespoň základní znalost PHP Základy klasického OOP a jeho implementaci v PHP Schopnost oprostit se od konvenčního tvoření stránek 2 Framework pro snazší vývoj

Více

Integrace datových služeb vědecko- výukové

Integrace datových služeb vědecko- výukové České vysoké učení technické v Praze Fakulta elektrotechnická Software Engineering & Networking Projekt Fondu rozvoje sdružení CESNET- 513/2014/1 HS: 13144 / 830 / 8301442C Integrace datových služeb vědecko-

Více

APS Web Panel. Rozšiřující webový modul pro APS Administrator

APS Web Panel. Rozšiřující webový modul pro APS Administrator APS Web Panel Rozšiřující webový modul pro APS Administrator Přehled přítomnosti osob v oblastech a místnostech, změna uživatelského hesla a PINu a nastavení časového plánu Instalační a uživatelská příručka

Více

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009 Webové rozhraní pro datové úložiště Obhajoba bakalářské práce Radek Šipka, jaro 2009 Úvod Cílem práce bylo reimplementovat stávající webové rozhraní datového úložiště MU. Obsah prezentace Úložiště nasazené

Více

INISOFT UPDATE - SLUŽBA AUTOMATICKÝCH AKTUALIZACÍ Uživatelská příručka

INISOFT UPDATE - SLUŽBA AUTOMATICKÝCH AKTUALIZACÍ Uživatelská příručka INISOFT UPDATE - SLUŽBA AUTOMATICKÝCH AKTUALIZACÍ Uživatelská příručka Popis funkce Softwarový nástroj INISOFT Update je univerzálním nástrojem pro stahování, údržbu a distribuci programových aktualizací

Více

Vazba ESO9 na MS Outlook a MS Exchange

Vazba ESO9 na MS Outlook a MS Exchange Vazba ESO9 na MS Outlook a MS Exchange Zpracoval: Kočíbová Jana U Mlýna 2305/22, 141 Praha 4 Záběhlice Dne: 24.6.2011 tel.: +420 585 203 370-2 e-mail: info@eso9.cz Revize: Urych Tomáš www.eso9.cz Dne:

Více

Versiondog 3.1.0 Lukáš Rejfek, Pantek (CS) s.r.o. 7/2014

Versiondog 3.1.0 Lukáš Rejfek, Pantek (CS) s.r.o. 7/2014 Versiondog 3.1.0 Lukáš Rejfek, Pantek (CS) s.r.o. 7/2014 Strana 2 Versiondog 3.1.0 Nová verze systému Versiondog 3.1.0 přináší oproti předchozí verzi 3.0.3 celou řadu nových funkčností. Zásadní změnou

Více

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití: Architektura webové aplikace, funkce jednotlivých vrstev, životní cyklus standardizovaných komponent Java EE, Servlety, JSP, frameworky, návrhové vzory 1. Distribuce Javy Distribuce Javy se liší podle

Více

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services 13. Webové služby. K čemu slouží? Popis a vyhledávání služeb. Co je a k čemu slouží orchestrace a choreografie služeb. Technologie pro implementaci služeb 1. Webové služby. K čemu slouží? Definice WS -

Více

Roční periodická zpráva projektu

Roční periodická zpráva projektu WAK-1F44C-2005-2 WAK System Název projektu: Automatizovaná výměna dat mezi informačními systémy krizového řízení v dopravě s jednotným univerzálním a implementovaným rozhraním založeným na standardu webových

Více

Školící dokumentace administrátorů IS KRIZKOM (úroveň ÚSÚ) role ( administrátor )

Školící dokumentace administrátorů IS KRIZKOM (úroveň ÚSÚ) role ( administrátor ) Školící dokumentace administrátorů IS KRIZKOM (úroveň ÚSÚ) role ( administrátor ) DATASYS s.r.o., Jeseniova 2829/20, 130 00 Praha 3 tel.: +420225308111, fax: +420225308110 www.datasys.cz Obsah 1.1 Historie

Více

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB Odborně způsobilá osoba verze 1.0 1 z 19 Obsah 1. Seznam zkratek...3 2. Přehled změn manuálu...3 3. Úvod...4 4. Popis Registru OZO...5 4.1.

Více

1. Integrační koncept

1. Integrační koncept Příloha č. 2: Technický popis integrace 1. Integrační koncept Z hlediska koncepčního budování Smart Administration na Magistrátu města Mostu je možno hovořit o potřebě integrace tří úrovní systémové architektury

Více

Příručka uživatele HELPDESK GEOVAP

Příručka uživatele HELPDESK GEOVAP HELPDESK GEOVAP verze 1.2 11.11.2008 OBSAH 1 REGISTRACE DO HELPDESK...1 2 PŘIHLÁŠENÍ A ODHLÁŠENÍ...1 3 ZÁKLADNÍ OBRAZOVKA HELPDESK...2 4 PŘEHLED HLÁŠENÍ...2 5 ZALOŽENÍ NOVÉHO HLÁŠENÍ...3 6 ZOBRAZENÍ/EDITACE

Více

Synchronizace CRM ESO9 a MS Exchange

Synchronizace CRM ESO9 a MS Exchange Synchronizace CRM ESO9 a MS Exchange Zpracoval: U Mlýna 2305/22, 141 Praha 4 Záběhlice Dne: 1.4.2015 tel.: +420 585 203 370-2 e-mail: info@eso9.cz Revize: Urych Tomáš www.eso9.cz Dne: 23.2.2016 Obsah 1.

Více

Jak efektivně ochránit Informix?

Jak efektivně ochránit Informix? Jak efektivně ochránit Informix? Jan Musil jan_musil@cz.ibm.com Informix CEE Technical Sales Information Management Jsou Vaše data chráněna proti zneužití? 2 Ano, pokud... 3 Nepoužitelné Steve Mandel,

Více

FFUK Uživatelský manuál pro administraci webu Obsah

FFUK Uživatelský manuál pro administraci webu Obsah FFUK Uživatelský manuál pro administraci webu Obsah FFUK Uživatelský manuál pro administraci webu... 1 1 Úvod... 2 2 Po přihlášení... 2 3 Základní nastavení webu... 2 4 Menu... 2 5 Bloky... 5 6 Správa

Více

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty Pokročilé techniky tvorby sestav v Caché ZENové Reporty Úvodem Jednoduché sestavy Pokročilé sestavy Ladění Historie ZEN reporty sdílejí podobný princip definování obsahu jako ZENové stránky Byly uvedeny

Více