IBM Notes/Domino

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

IBM Notes/Domino je softwarový produkt společnosti IBM, který se orientuje do oblasti groupware. Spíše než výsledný produkt, by se IBM Notes/Domino dal označit jako platforma pro vývoj groupware aplikací.

Architektura[editovat | editovat zdroj]

IBM Notes/Domino je technologie typu klient server, kde aplikace je obvykle umístěna na serveru a klient komunikuje s touto aplikací. Přístup k aplikaci je nativním protokolem nebo internetovým protokolem. Nativní komunikační protokol NRPC (Notes Remote Procedure Call) je použit pro komunikaci mezi serverem Domino a klientem Notes a vzájemně mezi Domino servery. Serverová část se nazývá IBM Domino a klientská část IBM Notes.

Server IBM Domino[editovat | editovat zdroj]

IBM Domino server je robustní aplikační/databázový server. Na tomto serveru jsou umístěny aplikace, jejichž služeb využívají uživatelé prostřednictvím IBM Notes klienta (popř. webového klienta). Aplikace na IBM Domino serveru jsou aktivními databázemi. Prostředí IBM Domino je distribuovaným systémem, tzn. že aplikace může být umístěna na více než jednom serveru. Synchronizace mezi servery je zabezpečována službou zvanou replikace. Domino je zároveň serverem pro celou řadu dalších internetových služeb, např. POP3, IMAP, LDAP, MAPI, HTTP, NNTP a podporuje mnoho otevřených standardů, např. HTML/XHTML, XML, Java.

Klient IBM Notes[editovat | editovat zdroj]

Primární funkcí klienta IBM Notes je e-mail a další odvozené korporátní služby, jako adresář, kalendář, plánovač, rezervace zdrojů apod. Ovšem hlavní výhodou IBM Notes je možnost rozšíření základní množiny databází o další aplikace.

Administrace[editovat | editovat zdroj]

Server IBM Domino se administruje pomocí čtvrtého klienta - Administrator. Zde se dají spravovat uživatelé, skupiny, jednotlivé servery, či serverové clustery, opravovat poškozené databáze, přidávat, či odebírat práva apod. Klient Administrator je plně grafický a zároveň obsahuje příkazovou konzoli. Komplikovanější správa se provádí pomocí takzvaného administračního procesu, kdy se definují kritéria, co se má udělat a tuto definici následně administrační proces, který běží v pravidelných intervalech, provede.

Hlavní atributy[editovat | editovat zdroj]

Hlavními atributy platformy IBM Notes/Domino jsou vysoká míra zabezpečení dat, replikace, snadná rozšiřitelnost, rychlý vývoj a snadná aplikace business procesů formou workflow.

Bezpečnost[editovat | editovat zdroj]

Bezpečnost Notes je založena na existenci tzv. ID souborů. V těchto souborech jsou uloženy certifikáty, digitální podpisy, šifrovací a dešifrovací klíče a další citlivé informace. IBM Notes/Domino používá RSA (Rivest-Shamir-Adleman) šifrování veřejným klíčem k zajištění čtyř základních úrovní bezpečnosti: ověření totožnosti a oprávnění přístupu (X.509 certifikáty), šifrování zpráv a digitální podpisy. Každý uživatel má svůj jedinečný ID soubor. Díky tomuto ID a architektuře se dají data zabezpečit na mnoha úrovních, které připomínají trychtýř, ve kterém je na každé úrovni menší síto, než na úrovni předchozí.

Úrovně zabezpečení[editovat | editovat zdroj]

  1. První úroveň je samotný přístup na server. Server musí obsahovat certifikát organizace, do které uživatel patří. Bez platného certifikátu se uživatel na server nedostane. V případě serveru, který neobsahuje certifikát dané organizace konkrétního uživatele, se dá vytvořit křížový certifikát buď pro tu danou konkrétní osobu, anebo pro celou organizaci.
  2. V případě platného přístupu na server se uživatel dostává do druhé úrovně zabezpečení, a to na úroveň jednotlivých datových kontejnerů. I když má uživatel platný přístup na server, nemusí mít přístup k žádným datům, pokud není nějakým způsobem uveden v seznamu přístupových práv k aplikaci (tzv. ACL – Access Control List).
  3. Pro přidělování přístupů má správce aplikace možnost definovat více úrovní. Každému uživateli může určit, zda bude Správce aplikace, Vývojář, Editor, Autor bez možnosti úpravy dat, Čtenář bez možnosti zapisovat, Zapisovatel bez práva číst, anebo mu úplně zakázat přístup. Zároveň může úzce specifikovat další práva, zakazovat uživatelům mazat dokumenty, spouštět akce, vytvářet složky apod.
  4. Další úroveň se týká jednotlivých záznamů (dokumentů). Pomocí přístupových polí se dají nastavit editoři, nebo i čtenáři. Pokud má dokument například specifikovanou množinu uživatelů s právy čtenáře dokumentu, tak není vidět nikým jiným, než uživateli z této skupiny, tudíž ani správcem aplikace, nebo administrátorem.
  5. Předposlední úroveň je zabezpečení částí dat jednotlivých záznamů pomocí tzv. chráněných sekcí. Do sekce se umístí množina dat a specifikují se práva pro přístup k těmto datům.
  6. Poslední úrovní je zabezpečení citlivých dat na úrovni jednotlivých datových položek (polí) pomocí šifrování, nebo jednosměrného hash hodnoty pole.

K zašifrování dat se používá privátní klíč, který se připojí k ID uživatele. Šifrování může být násobné, s použitím více klíčů. ID soubor se dá kopírovat a s každou kopií se uživatel dostane k běžným datům. Pokud však k jedné kopii připojí privátní klíč, kterým zašifruje část dat, dostane se k těmto datům pouze s použitím této konkrétní kopie ID souboru. Hashování pomocí MD5 technologie slouží zejména k uchovávání hesel, či jiných autentizačních údajů.

Replikace[editovat | editovat zdroj]

Replikace dat je datová výměna mezi databázemi a jejich replikami (skupina databází, které mají stejné identifikační číslo databáze, tzv. „Replica ID“). Repliky databází bývají zpravidla rozmístěny na různých serverech. Replikace je realizována manuálním spuštěním nebo stejnojmennou automatickou úlohou serveru. Replikace je realizována buď oboustranně, anebo jen jednostranně, a to buď metodou push, nebo metodou pull. Dále lze realizovat takzvanou výběrovou replikaci, při které se replikují pouze některé části databáze (vybraná data, části designu apod.).

Informační obsah je replikován vždy na základě pravých bezpečnostních rysů technologie IBM Notes/Domino a tedy seznamu přístupových práv a práv čtenářů k jednotlivým datovým záznamům – elektronickým dokumentů. I v tomto případě se každý server chová stejně jako uživatel – tedy může přistupovat k datům pouze pokud k nim má nastavena práva.

Cílem replikace je udržovat obsah databází aktuální na všech serverech nebo u klientů (na klientském PC je taky možné mít repliku).

Rychlý vývoj[editovat | editovat zdroj]

IBM Notes spadají do oblasti RAD - Rapid Application Development (Rychlý vývoj aplikací). Pro vývoj databázových aplikací slouží třetí klient - Designer.

Základem IBM Notes/Domino je dokumentová databáze, tedy na rozdíl od relačních databází je základní datovou jednotkou databáze takzvaný dokument. Dokument má specifické vlastnosti a variabilní počet polí. Dva dokumenty stejného druhu mohou mít tedy různá pole. Dokumenty se promítají přes formuláře v pohledech. Každý pohled má index a zobrazuje výběr dokumentů definovaný takzvanou výběrovou (SELECT) funkcí. Vývoj je dále podpořen sadou jednoduchých @funkcí, možností skriptování, nebo možností použití jazyka Java, a to jak ve formě vložených appletů, nebo ve formě výkonných agentů.

@Funkce[editovat | editovat zdroj]

@Funkce, neboli jednoduchý makro jazyk se dělí na dvě části:

  • @Functions - slouží k úpravám textu, formátování, konverzím, nebo výběrovým kritériím.
  • @Commands - výkonné funkce. Slouží k vykonávání příkazů - otevření databáze, uložení dokumentu apod. Od @Functions se odlišují příkazem @Command, kterým vždy začínají, a za který se vkládají parametry. Všechny uzavřené bloky funkcí se oddělují středníkem.

Příklady @Funkcí

Odstranění prázdných míst (whitespaces):

@Trim("  Ahoj světe!  ")

Vypsání data vytvoření dokumentu a jména autora:

"Vytvořil " + @Name([CN]; @UserName) + " dne " + @Text(@Created)

Zapsání výběrové funkce v pohledu pro výběr všech dokumentů:

SELECT @All

Příklady @Commands

Vytvoření nového dokumentu s názvem User:

@Command([Compose]; "User")

Typický příkaz pro akci Uložit a Zavřít:

@Command([FileSave]);
@Command([FileCloseWindow])

Lotus Script[editovat | editovat zdroj]

Lotus script je interpretovaný skriptovací jazyk, poprvé implementovaný ve verzi Lotus Notes 4.6. Byl vyvinut pro podporu vývoje složitější aplikační logiky. V omezené míře podporuje objektově orientované programování. IBM Notes obsahují sadu nativních tříd pro obsluhu objektů IBM Notes, které se však nedají dále rozšiřovat. Zápis Lotus Scriptu je podobný zápisu jazyka VBS, ze kterého vychází.

Příklad zápisu - vypsání názvu databáze do stavového řádku

Sub Initialize
  Dim Sess as New NotesSession
  Dim cDb as NotesDatabase

  Set cDb = Sess.CurrentDatabase
  MsgBox cDb.Title
End Sub

Java pro IBM IBM Notes/Domino[editovat | editovat zdroj]

Java pro použití v IBM Notes/Domino v zatím poslední verzi 7 je omezena na verzi 1.4.2 (pro IBM Notes/Domino 6.5 Java verze 1.3.1). Stejně jako pro Lotus Script má IBM Notes/Domino sadu vlastních tříd i pro jazyk Java. Tyto třídy jsou obsaženy v balíku lotus.domino.*.

Příklad zápisu - vypsání názvu databáze do konzole

import lotus.domino.*;
public class JavaAgent extends AgentBase {
  public void NotesMain() {
    try {
      Session session = getSession();
      AgentContext agentContext = session.getAgentContext();
      Database db = agentContext.getCurrentDatabase();
      System.out.println(db.getTitle());
    } catch(Exception e) {
      e.printStackTrace();
    }
  }
}

Workflow[editovat | editovat zdroj]

Workflow automatizuje procesy, podporuje tok dokumentů, informací a úkolů od jednoho účastníka ke druhému. Vše, co se týká schvalování, připomínkování, nebo postupování je součástí workflow. Typickou ukázkou workflow je rozdělovník dokumentu, který určuje, komu se dokument má dostat do ruky a co s ním dotyčný má dělat. Toto všechno IBM Notes díky své architektuře umožňují. Dokumenty mají svá přístupová práva, která se mění, závisle na definici workflow a organizační struktuře, uživate jsou notifikováni pomocí e-mail a díky tomu můžou na dokumentu spolupracovat.

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]