}w!"#$%&'()+,-./012345<ya

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

Download "}w!"#$%&'()+,-./012345<ya"

Transkript

1 }w!"#$%&'()+,-./012345<ya MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Sdílení dat mezi Microsoft SharePoint a externími zdroji dat DIPLOMOVÁ PRÁCE Bc. Miroslav Lízal Brno, podzim 2012

2 Prohlášení Prohlašuji, že tato diplomová práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Bc. Miroslav Lízal Vedoucí práce: Ing. RNDr. Barbora Bühnová, Ph.D. ii

3 Poděkování Rád bych poděkoval vedoucí této diplomové práce Ing. RNDr. Barboře Bühnové, Ph.D. nejen za cenné rady a připomínky, ale také za ochotu v celém průběhu vypracovávání této diplomové práce. iii

4 Shrnutí Tato diplomová práce se zabývá řešením problému výměny dat mezi platformou Microsoft SharePoint a ostatními systémy, zejména relačními databázemi. Jsou zde popsány existující aplikace sloužící k řešení tohoto nebo podobných problémů. Dále jsou analyzovány a popsány metody přístupu k datům uloženým v obsahových databázích platformy SharePoint. Součástí práce je popis návrhu možného řešení, které se skládá z různých rozšíření pro Microsoft SharePoint. Na základě tohoto návrhu je provedena samotná implementace aplikace umožňující výměnu dat mezi Microsoft SharePoint a relační databází. iv

5 Klíčová slova SharePoint, sdílení dat, relační databáze, plánování úloh, monitorování. v

6 Obsah 1 Úvod Přehled použitých technologií NET, C# Microsoft SharePoint Popis platformy SharePoint Alternativní produkty PowerShell PowerShell konzole Windows PowerShell ISE Microsoft SQL Server Nagios Popis a analýza problému Sdílení dat Automatické spouštění Plánovač úloh SharePoint Timer Monitoring IIS Log SPLog Řešení Přístup k datům uloženým v SharePointu Serverový objektový model Webové služby Klientský objektový model Dostupná existující řešení Data Synchronisation Studio SQL Server Integration Services Microsoft Sync Framework SPLoad Další nalezená řešení a přístupy Logování Přizpůsobení a vývoj aplikací pro SharePoint Popis nástrojů pro správu a práci s platformou Centrální administrace Microsoft SharePoint Designer vi

7 5.1.3 SharePoint Workspace Vývoj vlastních rozšíření Popis hlavních adresářů 12Hive a 14Hive Typy rozšíření Možnosti rozšíření a úpravy Srovnání přístupů z pohledu výkonnosti Návrh a implementace Návrh Sdílení dat Plánování spouštění Logování a monitoring aplikace Architektura aplikace Implementace Projekt Core Projekt CLI Projekt Web Projekt Tests Projekt Utils Projekt PowerShell Monitoring Závěr Literatura A Seznam zkratek B Seznam pojmů C Elektronické přílohy vii

8 1 Úvod V dnešní době vlastní téměř každá firma informační systém, a to i většina malých společností. Jedná se o systémy mzdové, docházkové, fakturační, plánovací, řízení vztahu se zákazníky, katalogy služeb a mnohé další. Proto se často stává, že veškerou agendu nezpracovává pouze jeden systém. V takovém případě, kdy je instalováno více řešení, je třeba zajistit vzájemnou komunikaci jednotlivých systémů. V ideálním případě lze systémy propojit pouze jejich vhodnou konfigurací, například napojením docházkového systému na databázi zaměstnanců. V docházkovém systému poté není nutné duplikovat databázi zaměstnanců. Takovéto napojení nejen že ušetří čas při správě zaměstnanců, ale také zamezuje vzniku chyb a nekonzistence v jednotlivých systémech. Horší situace nastane, pokud jeden systém poskytuje pouze vstupy pro vkládání dat a druhý pouze výstupy pro jejich čerpání. V takovémto případě je třeba zajistit propojení systémů pomocí prostředníka. Tato diplomová práce se zabývá analýzou, návrhem a implementací napojení dnes velmi oblíbené platformy pro sdílení dokumentů a informací Microsoft SharePoint na okolní systémy. Práce je logicky členěna do několika částí, které čtenáře postupně seznámí s problematikou sdílení a výměny dat. V druhé kapitole jsou stručně představeny technologie, které byly při řešení použity, zejména již zmíněný Microsoft SharePoint. V následující třetí kapitole jsou popsány problémy vznikající nehomogenní infrastrukturou informačních systémů s popisem možných řešení. Dále jsou v této kapitole popsány požadavky, které by měly být splněny pro vyřešení problému. Další části předkládané diplomové práce jsou zaměřeny prakticky. Čtvrtá kapitola popisuje možnosti přístupu k datům uloženým v obsahových databázích. Také jsou zde uvedena existující řešení popisovaného problému, a to od komerčních a open-source řešení přes synchronizační framework, až po neveřejné řešení, které by právě výstup této diplomové práce měl nahradit. Kromě problému se syn- 1

9 1. ÚVOD chronizací systémů jsou zde rozebrány i možnosti logování standardního a nestandardního běhu aplikace. Po popisu jednotlivých řešení jsou v dalších kapitolách prezentovány možnosti vývoje pro platformu SharePoint a analyzovány metody přístupu k datům, na základě kterých je následně vybrán jeden z možných dalších postupů. Výsledný návrh a implementace jsou uvedeny v předposlední kapitole, kde se implementace snaží pokrýt celý rozsáhlý problém popsaný v třetí kapitole. V závěru práce jsou shrnuty dosažené výsledky, které byly získány z vlastní implementace, testování a nasazení systému do běžného provozu. Také jsou zde popsána další možná rozšíření aplikace, která vyplývají z prakticky získaných zkušeností při jejím používání. 2

10 2 Přehled použitých technologií Platforma SharePoint je velice rozsáhlá, proto si nejprve představíme hlavní technologie použité v této práci tak, aby byly další části práce co nejvíce srozumitelné. Zmíněna bude platforma.net a na ni navázaný programovací jazyk C# nebo také základní informace o platformě SharePoint. Velmi blízce svázán s frameworkem.net a platformou SharePoint je skriptovací jazyk PowerShell, který umožňuje snadnou a efektivní správu aplikací pro operační systém Windows. Jako úložiště dat používá SharePoint databázový systém Microsoft SQL Server. Pro monitoring běhu systémů se stal téměř standardem nástroj Nagios, který nám zabezpečí, že na případné problémy budeme zavčas upozorněni a budeme je moci řešit dříve, než je pocítí koncoví uživatelé. 2.1.NET, C#.NET je softwarový framework vyvinutý společností Microsoft. Umožňuje vytvořit téměř jakoukoli aplikaci určenou pro operační systém Microsoft Windows, od desktopové aplikace, přes služby Windows, webové stránky a webové služby, až po komponenty distribuovaných aplikací nebo komponenty pro práci s databázemi. Spolu s platformou.net se objevil i nový jazyk C#, který byl od základů navržen tak, aby s technologií.net spolupracoval, a tak využil všechny možnosti vývojových prostředků a konceptů objektově orientovaného programování pro.net. Pro použití tohoto frameworku však není třeba se jazyk C# učit, protože Microsoft rozšířil i existující jazyky jazyk C++, výrazně přepracoval jazyk Visual Basic na Visual Basic.NET, ale vytvořil také další jazyk J# (varianta k jazyku Java). V technologii.net se všechny jazyky překládají do společného mezijazyka (Intermediate Language), konkrétně do CLI (Common Intermediate Language), který byl dříve, před standardizací, nazýván také MSIL (Microsoft Intermediate Language). Díky této vlastnosti lze snadno kombinovat a využívat sestavení (assembly) napsaná i v různých jazycích. 3

11 2. PŘEHLED POUŽITÝCH TECHNOLOGIÍ Hlavní výhody technologie.net (a také jazyka C#): Objektově orientované programování Knihovna základních tříd (Base Class Library) Podpora dynamických stránek ASP.NET Snadný přístup k datům ADO.NET Sdílení kódu mezi aplikacemi koncepce sestavení Dobré zabezpečení podepisování sestavení (strong name) Podpora webových služeb Jádrem platformy.net Framework je běhové prostředí CLR (Common Language Runtime), neboli běhový systém. Kód spuštěný pod kontrolou tohoto modulu se označuje jako řízený kód (managed code). Obrázek 2.1: Struktura.NET (vlevo), grafické znázornění CLR (vpravo) [39]. 4

12 2. PŘEHLED POUŽITÝCH TECHNOLOGIÍ Microsoft vytvořil pro programování pro.net vlastní vývojové prostředí Visual Studio. Téměř pravidelně s novou verzí.net frameworku vychází i nová verze vývojového prostředí. Existují ale i alternativní vývojová prostředí. Jmenujme například SharpDevelop nebo MonoDevelop jako hlavní zástupce open source, která jsou oblíbená při programování v operačním systému Linux. Ve spojení s operačním systémem Linux je dobré vzpomenout i open-source běhové prostředí Mono, které je dostupné i pro jiné operační systémy. 2.2 Microsoft SharePoint Microsoft Sharepoint je platforma pro webové aplikace umožňující pokrýt široký rozsah oblastí využití, a to hlavně pro správu obsahu (CMS content management system) a správu dokumentů (DMS document management system). Sharepoint, tak jak ho známe dnes, se postupně vyvinul z předcházejících produktů společnosti Microsoft Site Server (1996), Comerce server, Web Store, Microsoft SharePoint Portal Server 2001, Microsoft SharePoint Team Services (2002), Windows SharePoint Services 2.0 (zdarma) a komerční verze Microsoft SharePoint 2003, Windows SharePoint Services 3.0 (zdarma) s komerčním rozšířením Microsoft Office SharePoint Server 2007 a konečně aktuální verze Microsoft SharePoint Foundation 2010 (zdarma) s komerčním rozšířením Microsoft SharePoint Server 2010, které je následně možné rozšířit na SharePoint Enterprise V druhé části roku 2012 společnost Microsoft uvolnila SharePoint Foundation 2013 Preview. Jako hlavní jsou u této verze vyzdvihovány především dvě novinky, a to obchod s rozšířeními a také napojení na sociální sítě (zejména Yammer sociální sít pro podniky). Seznam edicí a jejich popis včetně dostupných funkcí je popsán na produktové stránce SharePointu společnosti Microsoft [18] Popis platformy SharePoint Na platformu SharePoint lze nahlížet dvěma způsoby z fyzického a logického pohledu. Fyzický popis udává možnosti instalace na jeden server, na menší nebo větší farmu serverů. Z logického pohledu se jedná o rozdělení aplikační logiky. 5

13 2. PŘEHLED POUŽITÝCH TECHNOLOGIÍ Fyzická struktura Microsoft Sharepoint platforma je postavená na SOA (serviceoriented architecture). Je možné instalovat vše na jeden server (standalone instalace), nebo na farmu serverů. Na té rozlišujeme jejich role webový (front-end), aplikační (application), případně databázový (database) server. I v případě farmové instalace je však možné nainstalovat všechny role na jeden server (vhodné jen pro instalaci vývojového prostředí, není doporučeno pro produkční nasazení). V případě instalace na více serverů může být instalována databáze na aplikačním serveru (vhodné pokud je pouze jeden aplikační server a jeden nebo více webových serverů), nebo na vyhrazeném serveru či databázovém clusteru. Obrázek 2.2: Možnosti instalace [24]. Webový server obstarává komunikaci s klientem pomocí HTTP požadavků (HTTP, HTTPS... ), aplikace je hostována v IIS (Internetová informační služba Internet Information Services). Pro rozložení zátěže může být použito více webových serverů a požadavky na jednotlivé servery pak řídí loadbalancer. Pro loadbalancing je možné využít softwarové řešení obsažené v Microsoft Windows Serveru (nejlevnější, ale omezené škálování), softwarové řešení třetích stran nebo i hardwarové řešení (nejdražší, ale s vysokým výkonem a možnostmi nastavení). Aplikační server obstarává zejména běh služeb, například spouštění naplánovaných nakonfigurovaných úloh (Timer Job service) 6

14 2. PŘEHLED POUŽITÝCH TECHNOLOGIÍ jako je synchronizace údajů o uživatelích z Active Directory nebo spouštění pracovních postupů (workflow). Dále může být na aplikačním serveru spuštěna služba Sharepoint Search pro indexaci obsahu. Jako databázový server je použit Microsoft SQL Server. Veškerá konfigurace, která je v SharePointu prováděna, se ukládá do konfigurační databáze na tomto serveru. Přidání nového serveru do farmy je v rámci farmové instalace velmi jednoduché. Při přiřazení serveru do farmy se na server dle informací v konfigurační databázi automaticky nainstalují všechna rozšíření včetně konfigurace ve stávající farmě. Logická struktura Z pohledu uživatele i programátora je důležité zejména logické členění. Pro instalaci dodatečných rozšíření je možné rozlišit rozsah nasazení právě v rámci tohoto členění. V dalších kapitolách zabývajících se implementací budeme potřebovat i znalost návaznosti jednotlivých logických celků na třídy a jejich instance v objektech [33]. Obrázek 2.3: Logické členění [4]. Farma (Farm) je nejvyšší logický celek, který pod sebou sdružuje všechny webové aplikace a je zastřešen pomocí třídy SPFarm. Po- 7

15 2. PŘEHLED POUŽITÝCH TECHNOLOGIÍ kud tedy nainstalujeme řešení s rozsahem Farm, bude dostupné ve všech aplikacích v rámci farmy. Webová aplikace (Web Application) je přidělena do fondu aplikací (Application Pool), který je z pohledu systému jeden běžící proces (w3wp.exe). Z hlediska IIS se jedná o web (Site) běžící na vlastní adrese (URL), která má přiřazený autentizační mechanizmus. Webová aplikace je reprezentována třídou SPWebApplication a dále se skládá z kolekce webů. Kolekce webů (Site collection) je virtuální kontejner jednotlivých webů. Výhoda tohoto sdružení je například při zálohování, nebot umožňuje zálohovat všechny podřazené weby. SPSite je třída popisující právě kolekci webů. Kolekce webů je také základní jednotka, v rámci které lze spravovat uživatelská oprávnění a sdílet data mezi seznamy. Web (Web) je nejmenší jednotka v rámci hlavní logické struktury, může obsahovat podřízené weby. Obsah je možné v rámci webu jednoduše sdílet. Web je zastřešen třídou SPWeb a obsahuje následně již přímo data uživatelů (ve formě položek) uspořádané v seznamech a knihovnách dokumentů Alternativní produkty Pokud budeme hledat, můžeme najít podobné produkty jako je SharePoint, které ho dokážou více či méně zastoupit. Protože Share- Point je však velmi přizpůsobivé řešení, většina alternativ pokryje jen některou z jeho částí. Oracle WebCenter Spaces Produkt Spaces je jednou z aplikací rodiny Oracle WebCenter. Po technologické stránce je Oracle WebCenter postaven nad frameworkem JSF (JavaServer Faces). Jedná se o software s uzavřeným kódem. Podobně jako SharePoint umožňuje uživatelům vytvářet seznamy, 8

16 2. PŘEHLED POUŽITÝCH TECHNOLOGIÍ stránky a dokumentové knihovny pro podporu spolupráce uživatelů. Oracle WebCenter Spaces je možno do určité míry také modifikovat a rozšiřovat pomocí vlastních řešení. Data jsou ukládána na pozadí do relační databáze. Mimo Oracle databáze jsou podporovány i databáze konkurenční (Microsoft SQL Server nebo IBM DB2) [17, 31]. Open source CMS projekty Pro některá menší intranetová řešení je možné použít i některý z open-source CMS projektů. Jedním z nejznámějších je například Joomla, redakční systém pro publikování informací. Dalšími zástupci jsou například Drupal nebo WordPress. Výhodou těchto produktů je, že jsou poskytovány zdarma, stejně jako veškerý potřebný software nutný pro jejich běh. Většinou se jedná o systémy napsané ve skriptovacím jazyce PHP a data jsou ukládány do MySQL databáze. 2.3 PowerShell Windows PowerShell je skriptovací jazyk navržený zejména pro administrátory systémů. Tento skriptovací jazyk je postaven na.net frameworku a umožňuje zkušeným uživatelům snadno automatizovat administrativní činnosti, zejména správu Windows, ale i aplikací běžících pod tímto operačním systémem. Zabudované PowerShell příkazy se nazývají cmdlety (cmdlets). Existuje velké množství poskytovatelů (providerů) pro přístup k datům. Jsou to například registry, úložiště certifikátů, souborový systém, adresářová služba Active Directory. Na rozdíl od většiny ostatních interpretů příkazů (shell) nejsou vstupy a zejména výstupy pouhé textové řetězce, ale jsou to.net objekty. Výhodou tohoto řešení je následné zpracování výstupu dalšími příkazy v rouře (pipeline) [26]. Kromě zabudovaných cmdletů je možné si přidat další cmdlety ve formě doplňků pomocí příkazu Add-PSSnapIn, at už vytvořené 9

17 2. PŘEHLED POUŽITÝCH TECHNOLOGIÍ třetími stranami, nebo své vlastní. Například snap-in SharePointu přídáme následujícím příkazem: 1 Add-PSSnapin "Microsoft.SharePoint.PowerShell" PowerShell konzole Rozhraní příkazové řádky (CLI Command-line interface) může na první pohled spoustu lidí odrazovat od používání takovýchto nástrojů, a to zejména absencí jakýchkoliv ovládacích prvků, jako jsou menu nebo grafické rozhraní. Dříve než lze provést požadovanou operaci, je proto nutné znát textové příkazy. Ve většině konzolových aplikací je totiž problém se získáváním nápovědy pro aktuální uživatelský kontext. PowerShell včetně konzole se snaží uživateli co nejvíce pomoci, počínaje intuitivním pojmenováním cmdletů, přes doplňování rozepsaných příkazů pomocí klávesy TAB (takzvaný Tab-Completion), vyhledávání v příkazech, až po propracovaný systém nápovědy (ve většině případů i s příklady). Užitečnými příkazy jsou například Get- Command, který vrátí seznam všech cmdletů nebo Get-Help, který zobrazí nápovědu k danému cmdletu [27] Windows PowerShell ISE Kromě rozhraní příkazové řádky máme možnost využít i nástroje Windows PowerShell ISE (Windows PowerShell Integrated Scripting Environment). Toto rozhraní je dostupné v systémech Windows Vista, Windows Server 2008 a novějších. ISE je mnohem příjemnější rozhraní, zejména pro psaní a následné ladění skriptů, než standardní konzole. Umožňuje samozřejmě také spouštění skriptů, nebo jen jejich částí. Dalším vylepšením pro práci je zvýrazňování syntaxe a možnost vkládat zarážky (brakepoint) pro snadnější ladění. Rozhraní je rozděleno do tří hlavních částí: příkazové okno zde je možné provádět příkazy stejně jako v PowerShell konzoli, okno s výstupem zobrazuje výstup po provedení příkazů, 10

18 2. PŘEHLED POUŽITÝCH TECHNOLOGIÍ skriptovací okno umožňuje psát souvislé skripty, ladit je a spouštět. V rámci jedné aplikace je možno spustit několik instancí Power- Shellu a v rámci jedné instance potom i několik skriptovacích oken. Ovládání je možné skrze panel nástrojů, nebo po krátké době snadno zapamatovatelnými klávesovými zkratkami [16]. 2.4 Microsoft SQL Server Microsoft SQL Server je relační databázový systém vyvinutý společností Microsoft. Kromě placené verze je dostupná edice Express, kterou lze získat zdarma, ale její funkčnost je omezena na počet procesorů, maximální využitou pamět a maximální velikost databáze. Express edice je i přes tato omezení využitelná hlavně pro menší podniky. Ve většině případů je pro ně totiž tato edice dostačující. Správa se provádí pomocí aplikace SQL Management Studio. Ta pokrývá většinu administrativních úkonů, od vytvoření databáze, vytvoření uživatelů a nastavení jejich oprávnění, správu dat až po zálohování databáze a vytváření a spouštění údržbových plánů. Součástí SQL Serveru jsou i další nástroje. Pro vývojáře je zajímavý zejména SQL Profiler umožňující zachytávat ze serveru události, které je následně možné analyzovat. Velmi dobře poslouží třeba pro diagnostiku pomalu běžících dotazů. 2.5 Nagios Nagios je oblíbený open-source dohledový systém, který se stal téměř standardem. Umožňuje sledování stavu IT systémů, identifikování a řešení problémů a díky včasnému varování o nestandardním stavu systému problémům předcházet. Hlavními pojmy, s kterými Nagios pracuje, jsou: host zařízení, které je monitorováno, service monitorovaná služba na daném hostu, contact kontakt, který má být informován, pokud dojde k definované události. 11

19 2. PŘEHLED POUŽITÝCH TECHNOLOGIÍ Celý systém je navržen tak, aby byl rozšiřitelný pomocí tzv. pluginů. Pokud tedy narazíme na to, že Nagios sám od sebe neumožňuje monitorovat nějaký prvek v základní instalaci, můžeme doinstalovat rozšíření, které toto bude umožňovat. Pokud takovéto rozšíření neexistuje, je možné napsat si jej i vlastními silami. I když je Nagios open-source projekt, existuje i možnost zajistit si komerční podporu u společnosti Nagion Enterprises [28]. 12

20 3 Popis a analýza problému Platforma SharePoint se stává poslední dobou stále oblíbenější v řadě firem. Úspěch si získává zejména díky snadnému a intuitivnímu ovládání, které je založeno na podobnosti s kancelářským balíkem Microsoft Office, jejich vzájemné integraci a integraci s operačním systémem Windows. Mimo použití jako intranetové, nezřídka i internetové řešení, se nad touto platformou, díky snadné rozšiřitelnosti, budují menší či větší aplikace a z nich i rozsáhlé systémy. Menší úpravy se provádějí pomocí podpůrných nástrojů Share- Point designer (pro úpravy vzhledu, vkládání webových částí... ), nebo MS Office InfoPath pro přizpůsobování standardních formulářů do struktury, která více odpovídá požadavkům koncových uživatelů. Pro větší přizpůsobení se pro vývoj využívá programování rozšíření ve Visual Studiu. Aplikace může být sebelepší, ale bez toho, aby do ní šly snadno nahrát nebo z ní naopak čerpat data, nebude pro uživatele příliš použitelná. Tato práce má za cíl analyzovat, navrhnout a implementovat možnost snadno ukládat data z jiných systémů do platformy Share- Point, ale také je poskytovat a vkládat do dalších systémů. V dnešní době má mnoho platforem různá rozhraní pro výměnu dat. U SharePointu tomu není jinak. Problém však nastane, pokud potřebujeme tyto aplikace propojit. Pokud oba systémy umí data přijímat i poskytovat, narazíme na to, že potřebujeme nějakého prostředníka, který tuto výměnu zajistí. Práce se zabývá co nejobecnějším řešením tohoto problému tak, aby byl její výsledek použitelný pro co nejširší spektrum využití. Samotná výměna dat je pouze jednou z částí řešeného problému. Pro použití v produkčním prostředí je kromě synchronizace třeba zajistit i snadnou ovladatelnost nástroje a možnosti automatického (plánovaného) spouštění. Neméně důležitou vlastností by měla být bezpečnost. V případě problému běhu aplikace by měly být nekorektní stavy aplikace vhodně reportovány a co nejlépe zaznamenány okolnosti, za jakých problém nastal. Informováni bychom ale měli být i o úspěšně dokončených úlohách. 13

21 3. POPIS A ANALÝZA PROBLÉMU 3.1 Sdílení dat Vyřešit problém přístupu a poskytování dat (do cizích systémů z pohledu SharePointu) je možné třemi základními přístupy. První možností je čerpat data přímo z požadovaného systému a změny zapisovat přímo do cílového systému. Druhou možností je používat v externích systémech data uložená v SharePointu a pouze k nim přistupovat a zapisovat změny práce s daty je možná pomocí webových služeb. Poslední možností je zajistit výměnu dat mezi systémy. SharePoint umožňuje od verze 2010 vytvářet externí typy obsahu (external content type). Takto definovaná entita se může na první pohled jevit jako nejjednodušší řešení. Možnosti následné práce jsou bohužel s takovouto entitou velice omezené, například omezená správa oprávnění k jednotlivým položkám. Druhá možnost (číst i zapisovat data) bude v případě již existujícího systému velice často nepoužitelná, nebot i velmi flexibilní systémy nejsou na tyto možnosti ve většině případů připraveny. Tato možnost je tedy dostupná jen pro systémy, které jsou pro tento typ ukládání dat přímo připravovány. Pokud požadujeme mít data interně uložená v SharePointu a zároveň v externí aplikaci, je třeba zajistit jejich výměnu. Tuto interakci lze zajistit zejména následujícími operacemi: import dat z cizích systémů, export dat do cizích systémů, obousměrná výměna dat. Pod pojmem externí aplikace může být myšlen ale i SharePoint. Pokud potřebujeme přistupovat k datům, která nejsou přímo dostupná z dané lokace (webu), může se nám hodit právě takováto výměna dat. Můžeme ale vymyslet i případ, kdy budeme data vyměňovat i v rámci SharePointu v lokacích, kde by to nebylo potřeba řešit. Představme si seznam s informacemi o produktech včetně cen. K tomuto seznamu bychom rádi omezili přístup pouze pro určitou skupinu lidí, ale dále bychom chtěli použít tento seznam jako číselník. Omezení oprávnění lze provádět pouze na úrovni řádků. Řešením 14

22 3. POPIS A ANALÝZA PROBLÉMU by bylo vytvořit nový seznam, který bude dostupný každému, ale bude obsahovat pouze ty sloupce, které mají být přístupné všem uživatelům. Tato data pak budou získávána z kompletního, avšak nepřístupného seznamu. 3.2 Automatické spouštění Při provozu aplikace se setkáme s tím, že bychom ji rádi pravidelně spouštěli a nemuseli tento proces manuálně provádět sami. S automatizací tohoto procesu se omezí požadavky na lidské zdroje a minimalizují se chyby lidského faktoru. Například to, že uživatel zapomene provést požadovanou akci, nebo ji spustí s chybnými vstupy. V případě vývoje pro Sharepoint jsou k dispozici dvě možnosti spouštění Plánovač úloh První možností automatického spouštění procesu je využití systémového plánovače. Ve Windows se o tuto agendu stará Plánovač úloh (Task Scheduler), který je implementován jako služba Windows. Správa se provádí pomocí stejnojmenné aplikace. Plánovač úloh umožňuje naplánovat spuštění libovolného procesu a to v určitý datum a čas, ale i opakovaně denně, týdně, měsíčně. Jako spouštěcí akce nemusí být pouze spuštění v daný čas, ale také navázání na akci v systému. Lze jmenovat například spuštění, přihlášení uživatele, uzamknutí sezení. Výhodou této možnosti je, že se jedná o standardní vlastnost systému a spouštění je plně pod naší kontrolou. Vzniklé problémy, ale i informace o spuštění, jsou zaznamenány do Protokolu událostí (Event Log). Nevýhodou tohoto řešení v případě webové aplikace je potřebný přístup na server, a to většinou pomocí vzdálené plochy (Remote Desktop). Uživatel musí mít zároveň dostatečná oprávnění pro možnost nastavovat potřebné údaje. 15

23 3. POPIS A ANALÝZA PROBLÉMU SharePoint Timer Druhou alternativou je využít možností SharePointu v rámci Úloh časovače (Timer Jobs). Implementace je provedena podobně jako u Plánovače úloh. Stejně jako ten je i Sharepoint 2010 Timer spuštěný jako služba ve Windows. Na rozdíl od Plánovače úloh zde není uživatelské rozhraní pro vytváření úloh, ale spravují se zde pouze existující úkoly v rámci SharePointu. Kromě existujících úloh je možné definovat i vlastní, ale není to tak snadné jako u Plánovače úloh ve Windows. Výhoda použití tohoto řešení pro vlastní rozšíření je zachování principů zavedených v SharePointu. Naopak velkou nevýhodou v některých případech může být to, že nelze definovat, na kterém serveru se úkol spustí v případě farmové instalace spustí se na libovolném serveru, kde běží služba. 3.3 Monitoring Při vývoji aplikací se bez zaznamenávání stavů (logování) neobejdeme, a to ani u malých aplikací. Logování není důležité jen při vývoji, ale oceníme jej hlavně při nasazení aplikace do ostrého provozu, kdy většinou již nemáme k dispozici ladící nástroj (debuger), anebo není úplně snadné jej použít. Hlavní úlohou logování je informování o běhu a událostech aplikace. Log aplikace umožní odhalit chybný běh aplikace a předcházet tak stavům, které by mohly poškodit data nebo jinak narušit správné chování programu. Tyto informace jsou pak velice prospěšné pro nalezení chybného kódu programu a následné ověření, zda opravou této chybné části byl problém vyřešen. Logování není jen o zápisu textových hlášení do nějakého textového souboru nebo databáze. Špatně nastavené logování může způsobit více problémů než užitku. Je třeba se zamyslet nad tím, zda velké množství záznamů neovlivní celkový chod systému. Toto kritérium je třeba zhodnotit ze dvou pohledů, a to z krátkodobého i dlouhodobého. Z krátkodobého hlediska je nutné myslet na to, abychom nelogovali mnoho zbytečných záznamů a neubírali na výkonu samotné aplikaci. Přílišné logování pak může způsobovat i dlouhodobější 16

24 3. POPIS A ANALÝZA PROBLÉMU problémy. Nesmíme totiž zapomenout, že pokud logování aplikace vyprodukuje například 100 MB záznamů za hodinu, za den je to již 2,4 GB a za měsíc dokonce 72 GB. Jestliže víme, že budeme logovat velké objemy záznamů, je vhodné také správně navrhnout, jak se budou záznamy do souborů ukládat. V případě velkých objemů není vhodné logovat vše do jednoho souboru. Denní log velký 2,4 GB z předchozího příkladu by se následně velmi špatně procházel a velmi špatně by se v něm hledaly potřebné informace. Je třeba tedy zhodnotit vhodný interval dělení souborů například 1 den, 1 hodina. Pro velké logy ale nemusí být na škodu například ani 10 minut. Další možností je dělit soubory po určitém množství zaznamenaných řádků. Abychom omezili vliv na výkon, je vhodné ukládat logy na jiný disk než na ten, kde běží systém a aplikace. Důležité je také popřemýšlet nad tím, kam logovat. V případě, že budeme logovat na souborový systém serveru, budeme mít oddělené záznamy pro každý server. Z tohoto pohledu je vhodné na souborový systém logovat zejména informace týkající se dané instalace. Na druhou stranu, logováním do databáze můžeme například centralizovat informace a mít přístup ke všem informacím z jednoho místa. Toto může být vhodné třeba pro aplikaci běžící v clusteru. Pokud logovací záznam obsahuje informaci o jménu nebo o jiném identifikačním údaji serveru, můžeme tak rozlišit místo vzniku jednotlivých záznamů. Další velkou výhodou centralizace logů je snadné a rychlé prohledávání a vytváření různých statistik. V případě webové aplikace máme k dispozici hned několik logů: systémový log zaznamenávání problémů přímo s aplikačním serverem, například problém se spuštěním aplikace, log webového serveru jedná se zejména o záznamy přístupu k jednotlivým souborům, aplikační log logování prováděné přímo aplikací v našem případě je zajištěno přímo platformou SharePoint. Pro vlastní řešení v rámci platformy však lze využít libovolné vlastní metody. 17

25 3. POPIS A ANALÝZA PROBLÉMU IIS Log Záznamy z logu webového serveru obsahují zejména informace o přístupu k jednotlivým požadavkům od klienta. Ve výchozím nastavení je dáno, aby se do logu zapisovaly informace o datu a čase, zdrojová a cílová IP adresa, metoda (GET, POST... ), URL, port, číslo HTTP stavu (jsme schopni zjistit, zda volání neskončilo chybou) a další informace zaslané klientem, například jméno a verze internetového prohlížeče. Na první pohled se může zdát, že z pohledu vývojáře nejsou tyto informace moc zajímavé. V případě výskytu problému, ale mohou velice pomoci. Například tehdy, když uživatel oznámí, že se mu objevila nějaká chyba, ale není přesně schopný říct, kde a jak se chyba vyskytla. Následně můžeme zjistit jeho předchozí pohyb po webu a pokusit se z těchto informací chybu nasimulovat. Správný log najdeme podle Site-ID nápomocný může být opět PowerShell: 1 # vypise vsechny weby vcetne jejich Site-ID 2 Get-WmiObject -NameSpace root\webadministration Site Select Id,Name SPLog SPLog je aplikační log platformy Microsoft SharePoint. Výstupem jsou textové soubory ve výchozím nastavení ukládané do adresáře 14Hive/LOGS. Důležité informace se také zapisují do standardního Protokolu událostí ve Windows. Pokud vyvíjíme vlastní rozšíření, můžeme využít zabudovaný logovací mechanizmus. Konfigurace logování se provádí v centrální administraci v sekci Monitorování Vytváření sestav Konfigurovat protokolování diagnostiky (Monitoring Reporting Configure diagnostic logging). Je možné nastavit minimální úrovně pro logování pro Protokoly události (Event Log) a Protokol trasování (Trace Log). Pro Trace log je možné (a doporučené z výše popsaných důvodů) navíc změnit umístění, maximální počet dní, po které budou záznamy uchovávány, a jejich maximální velikost na disku. Výhodou použití zabudovaného řešení i ve vlastních rozšířeních je konzistence celého systému. V případě problémů vše najdeme pohromadě. Největší nevýhodou je to, že nelze snadno měnit úrovně 18

26 3. POPIS A ANALÝZA PROBLÉMU logování jen pro vlastní rozšíření. Tím jsou omezeny možnosti ladění problémů v produkčním prostředí, protože nemusí být možné nastavit úroveň Podrobná (Verbose), ve které samotný SharePoint začne generovat veliké množství dat a tím negativně ovlivní rychlost zpracování požadavků. 19

27 4 Řešení K řešení problému lze přistoupit několika možnými způsoby. Můžeme se pokusit najít existující aplikaci, která řeší právě tento nebo podobný problém a bylo by možné ji použít. Jinou možností je navrhnout a vytvořit aplikaci vlastní, která bude co nejlépe splňovat naše požadavky. Pro posouzení existující aplikace je třeba si nejprve uvědomit, jaké možnosti máme z pohledu SharePointu v přístupu k datům a dle těchto kritérií následně hodnotit i posuzovanou aplikaci. 4.1 Přístup k datům uloženým v SharePointu Microsoft SharePoint ukládá data do Microsoft SQL Server databáze. Databáze má pevnou strukturu dat. Struktura dat viditelná v seznamech a knihovnách dokumentů je řešena v databázi až pomocí logické struktury. Zjednodušeně řečeno, data jsou ukládána do jedné tabulky a v druhé tabulce jsou metadata popisující jejich strukturu. S daty nelze pracovat přímo na databázové úrovni, ale pomocí definovaného rozhraní. SharePoint 2010 umožňuje práci skrze tři přístupy serverový objektový model, webové služby nebo klientský objektový model. Pro lepší pochopení možností práce s daty v jednotlivých existujících řešeních a následné zhodnocení je dobré předvést jednotlivé metody a popsat jejich výhody a nevýhody. V následujících částech bude ukázáno, jak pomocí popisovaného rozhraní získat data ze seznamu Contacts (vytvořeného ze standardní SharePoint šablony Contacts) z webu Examples, konkrétně adresy kde požadujeme vrátit maximálně 10 kontaktů, respektive jmen a telefonních čísel, kde je název společnosti HP nebo Apple Serverový objektový model Serverový objektový model je známý již ze starších verzí Share- Pointu a v poslední nejnovější verzi 2010 se téměř neliší od star- 20

28 4. ŘEŠENÍ ších verzí zachovává zpětnou kompatibilitu, přidává pouze nové funkce, případně opravuje chyby. Pro přístup k datům se využívá zejména třídy SPList. Ta slouží jak pro přístup k seznamu, tak pro přístup do knihovny dokumentů. Všechna data lze přečíst iterací přes vlastnost Items. Přistupovat takto k datům nemusí být vždy úplně optimální řešení a většinou tomu tak opravdu není. Musí se totiž načíst všechny záznamy z databáze, tím pádem je operace v rozsáhlých seznamech časově i pamět ově velice náročná. Lepší možností pro přístup k datům je využití metody GetItems pro získání záznamů dle omezujících podmínek (filtru) nebo Get- ItemById, pokud požadujeme konkrétní záznam se známým identifikátorem. Metoda GetItems umožňuje získat data dle pohledu (view) nebo filtru. Pro definování filtru se používá speciální jazyk CAML (Collaborative Application Markup Language), který je založen na XML notaci, respektive jeho část pro dotazování. Ta obsahuje binární logické operátory konjunkce (and) a disjunkce (or), unární operátory, například je prázdný (IsNull), začíná (BeginsWith), odpovídá (Eq) atd. [20]. Velkým pomocníkem v začátcích sestavování filtrů může být velmi užitečný nástroj U2U CAML Query Builder. Poslední dostupná verze je sice pro SharePoint 2007, ale jelikož se objektový model nezměnil, je možné jej využít i ve verzi 2010 [37]. Příklad získání dat pomocí serverového objektového modelu: 1 // otevreme kolekci webu (site collection) 2 using (SPSite site = new SPSite(" { 3 // otevreme web 4 using (SPWeb spweb = site.openweb()) { 5 // ziskame seznam s kontakty 6 SPList contactlist = spweb.lists["contacts"]; 7 SPQuery query = new SPQuery(); // vytvorime dotaz / filtr 8 query.query 9 <Or> 10 <Eq><FieldRef Name= Company /><Value Type= Text >HP</Value ></Eq> 11 <Eq><FieldRef Name= Company /><Value Type= Text >Apple</ Value></Eq> 12 </Or> 13 </Where>"; 14 // pokud seznam obsahuje adresare, ziskame data i z podadresaru 15 query.viewattributes = "Scope=\"Recursive\""; 16 // maximalni limit vracenych kontakty bude query.rowlimit = 10; 21

29 4. ŘEŠENÍ 18 // vraceny budou pouze sloupce FullName a CellPhone 19 query.viewfields = "<FieldRef Name= FullName /><FieldRef Name= CellPhone />"; 20 // ziskame polozky ze seznamu dle nastavenych kriterii 21 SPListItemCollection contacts = contactlist.getitems(query); 22 } 23 } Pro načtení dat ze SharePointu budeme potřebovat do referencí přidat pouze sestavení Microsoft.SharePoint. Zde jsou shrnuty výhody a nevýhody serverového objektového modelu. Výhody: nejsnadnější a nejefektivnější přístup k datům možnost práce v kontextu jiného uživatele objektový přístup Nevýhody: dostupný pouze na serveru Webové služby Stejně jako serverový objektový model můžeme rozhraní webových služeb znát již ze starších verzí. Webová služba je způsob komunikace mezi dvěma stranami (klient server) ve většině případů pomocí SOAP (Simple Object Access Protocol), který je brán jako standard. Webové služby poskytují klientům popis svého rozhraní (seznam dostupných metod, typy jejich argumentů a návratových hodnot) pomocí WSDL (Web Services Description Language), které je založeno na XML. V případě webových aplikacích postavených nad platformou.net se jedná zpravidla o soubory *.asmx. O WSDL definici se ASP.NET postará automaticky. Získání WSDL je možné pouhým přidáním parametru wsdl k adrese služby (např. service.asmx?wsdl). SharePoint 2010 na rozdíl od starších verzí blokuje volání SOAP (soubory *.asmx) webových služeb SharePointu. Pro jejich používání je třeba je povolit. Stejně jako u většiny administrativních akcí můžeme provést nastavení dvěma způsoby: 22

30 V centrální administraci: 4. ŘEŠENÍ Application Management - Manage web applications - vybrat aplikaci - Blocked File Types (v ribbonu) - odebrat asmx ze seznamu pomocí PowerShellu: 1 $app = Get-SPWebApplication " 2 $app.blockedfileextensions.remove("asmx") 3 $app.update() Příklad získání dat pomocí webové služby: Adresa: 1 <soapenv:envelope xmlns:soapenv=" xmlns:soap=" 2 <soapenv:header/> 3 <soapenv:body> 4 <soap:getlistitems> 5 <soap:listname>contacts</soap:listname> 6 <soap:viewname></soap:viewname> 7 <soap:query><query><where> 8 <Or> 9 <Eq><FieldRef Name="Company"/><Value Type="Text">HP</Value></Eq> 10 <Eq><FieldRef Name="Company"/><Value Type="Text">Apple</Value></ Eq> 11 </Or> 12 </Where></Query></soap:query> 13 <soap:viewfields> 14 <ViewFields><FieldRef Name="FullName"/><FieldRef Name="CellPhone"/> 15 </ViewFields> 16 </soap:viewfields> 17 <soap:rowlimit>10</soap:rowlimit> 18 <soap:queryoptions> 19 <QueryOptions><ViewAttributes Scope="Recursive" /></QueryOptions> 20 </soap:queryoptions> 21 <soap:webid></soap:webid> 22 </soap:getlistitems> 23 </soapenv:body> 24 </soapenv:envelope> Pro testování webových služeb je vhodná například aplikace SoapUI [35]. Z WSDL služby automaticky vygeneruje šablony SOAP dotazů dostupných metod. Po vyplnění parametrů lze následně tyto dotazy spouštět a kontrolovat výsledky. Mimo standardních webových služeb nabízí SharePoint od verze 2010 i RESTful rozhraní. REST (Representational State Transfer) je architektura rozhraní vhodná pro distribuované systémy a slouží pro přístup ke zdrojům dat. Architektura je navržena jako bezstavová, výsledek dotazu tedy nezávisí na předchozích dotazech. REST 23

31 4. ŘEŠENÍ implementuje čtyři základní metody označované jako CRUD (create vytvoření dat, retrieve získání dat, update aktualizace dat, delete smazání dat). Tyto operace jsou v HTTP protokolu implementovány pomocí odpovídajících metod (POST vytvoření, GET získání, PUT aktualizace, DETELE smazání). Všechny zdroje jsou identifikovány vlastním URI (Uniform Resource Identifier). Příklad získání dat pomocí RESTful rozhraní: 1 Company eq HP ) or (Company eq Apple )&$top=10 Zde jsou vyjmenovány výhody a nevýhody webových služeb. Výhody: možnost přístupu k datům i z libovolného počítače (nejen ze serverů) Nevýhody: složité zpracování dat, data jsou jako řetězce nemožnost přístupu k datům pomocí zvýšených oprávnění (RunWithElevatedPrivileges) Klientský objektový model V předchozích verzích SharePointu bylo možné přistupovat k datům pouze pomocí serverového objektového modelu nebo webových služeb. Objektový model se využíval zejména pro získání dat pro webové části nebo aplikační stránky. Pro systémy mimo Share- Point nebyla jiná možnost, než použít volání webových služeb se všemi omezeními a případnou neefektivitou oproti objektovému modelu. Často se webové služby využívají také v pracovních postupech. SharePoint 2010 mimo obou předchozích možností poskytuje i třetí rozhraní pro přístup k datům. Jedná se o klientský objektový model, který může být z programátorského hlediska v některých případech efektivnější. Lze ho využívat pomocí JavaScriptu, Silverlightu (a to jak běžícího v prohlížeči tak i mimo prohlížeč), ale i pomocí.net kódu programu (C#). Oproti webovým službám přidává podporu i pro některé operace, které tam nebyly dostupné, zejména 24

32 4. ŘEŠENÍ vzhledem k funkčnosti a rozsahu použití webových služeb například práce s webovými částmi. Základem klientského objektového modelu je webová služba Client.svc, která na straně serveru funguje jako rozhraní nad serverovým objektovým modelem. Klient se dotazuje webové služby pomocí XML zpráv (o vytvoření se stará klientský objektový model) a odpověd je vracena v obecném formátu JSON (JavaScript Object Nonation). Ten je dále zpracován opět klientským objektovým modelem pro další práci s výsledkem. Obrázek 4.1: Klientský objektový model [38]. Pro práci s klientským objektovým modelem je navíc třeba přidat reference na sestavení Microsoft.SharePoint.Client a Microsoft.SharePoint.Client.Runtime. Přiklad získání dat pomocí klientského objektového modelu: 1 // pripravime klientsky kontext a ziskame seznam Contacts 2 ClientContext clientctx = new ClientContext(" "); 3 List contactlist = clientctx.web.lists.getbytitle("contacts"); 4 CamlQuery query = new CamlQuery(); // nastavime pozadovane podminky 5 query.viewxml 6 <Or> 7 <Eq><FieldRef Name= Company /><Value Type= Text >HP</Value></Eq> 8 <Eq><FieldRef Name= Company /><Value Type= Text >Apple</Value></Eq> 9 </Or> 25

33 4. ŘEŠENÍ 10 </Where></Query> 11 <RowLimit>10</RowLimit> 12 <ViewFields><FieldRef Name= FullName /><FieldRef Name= CellPhone /></ ViewFields> 13 </View>"; 14 ListItemCollection contacts = contactlist.getitems(query); 15 clientctx.load(contacts); // vytvori se dotaz 16 clientctx.executequery(); // zavola se webova sluzba 17 // nyni je v kolekce contacts nactena a data muzeme libovolne dale zpracovavat Následující výhody a nevýhody jsou kombinací obou předchozích přístupů. Výhody: jednotné rozhraní jak pro standardní aplikace, Silverlight i JavaScript možnost přístupu k datům z libovolného počítače objektový přístup Nevýhody: nejméně efektivní přístup náročné na použití 4.2 Dostupná existující řešení Při řešení libovolného problému je vhodné nejdříve zkusit vyhledat již existující řešení. Je totiž pravděpodobné, že stejný problém již řešil někdo jiný. Je však možné, že ale nenajdeme žádný nástroj, který by plně vyhovoval našim požadavkům. I přesto je dobré znát existující produkty, protože z nich lze při vlastní implementaci vycházet Data Synchronisation Studio Data Synchronisation Studio je produkt společnosti Simego Ltd., který je možné získat na webu ve zkušební (trial) 15 denní verzi [34]. V rámci zkušební verze byla provedena analýza chování programu a zjištěny její kladné i záporné stránky. 26

34 4. ŘEŠENÍ Základní zhodnocení Z informací dostupných o produktu lze vyvodit jeho základní klady i zápory. Hlavní výhodou je, že se jedná o již hotovou aplikaci a díky tomu je možné ji nasadit do produkčního prostředí ve velmi krátkém čase. Neméně důležitou výhodou jsou široké možnosti napojení na další systémy a podpora různých protokolů (MS SQL, MS Access, Excel, ODBC, OleDB, MySQL, Oracle, ale CSV, XML, SOAP), mimo jiné je podporováno i napojení na SharePoint. Je však třeba zvážit i případné problémy. Pokud by produkt přestal z nějakého důvodu stačit, případně by nesplňoval některý z požadavků, bylo by téměř nemožné provést změny chování, protože se jedná o komerční uzavřený produkt. Technické provedení Základní jednotkou, se kterou se v programu pracuje, je projekt. Při vytváření projektu je možné použít jednoduchého průvodce. V prvním kroku je nutné vybrat datový zdroj v našem případě Sharepoint nebo databáze. V případě SharePointu máme na výběr ze tří SharePoint poskytovatelů dat (budou popsány níže). U každého z nich jsou stejné možnosti. Prvním krokem je zadání adresy webu a následně výběr seznamu a pohledu, který chceme použít jako datový zdroj. V průvodci není dále možné nastavit žádné jiné hodnoty. Podrobnější nastavení parametrů je možné až následně ve vlastnostech datového zdroje. Možnosti jsou ale opět relativně omezené, protože lze nastavit pouze pohled, z kterého se budou brát data, a QueryLimit, který nastaví maximální počet vrácených položek. Již tedy není možné jednoduše změnit například seznam. V případě změny seznamu by bylo třeba znovu nakonfigurovat celý datový zdroj. Pokud vybereme databázový datový zdroj, po zadání připojovacího řetězce k databázovému serveru (connection string) jsou zobrazeny databáze a následně tabulky a pohledy. Další možnosti nastavení zdroje jsou opět v jeho vlastnostech. Zde je již možné měnit jak připojovací řetězec, tak tabulku, odkud se čerpají data. V mnoha případech může být vítána i možnost definovat vlastní příkaz pro získání dat, nebo alespoň where a order by klauzule. 27

35 4. ŘEŠENÍ Po vybrání obou datových zdrojů je možné provést mapování zdrojové struktury na cílovou. Po provedení tohoto nastavení je již možné spustit porovnání zdrojů, a to oběma směry, nebo z vybraného zdroje pouze zobrazit data. Takto vytvořený projekt lze následně uložit. Projekt se ukládá do souboru ve formátu XML. S velkou opatrností lze tedy případně měnit parametry i přímo v tomto souboru. Uložený projekt (DS) je možné následně spouštět v Data Synchronisation Studiu nebo v jednodušší aplikaci Data Synchronisation Studio Run Tool. Zde lze načíst více připravených konfigurací a tyto konfigurace následně uložit do Run Tool projektu (DSRun). Jak DS, tak DSRun projekt lze přímo z aplikace naplánovat tak, aby byl pomocí plánovače úloh ve Windows (Task Scheduler) automaticky spouštěn. Dialog s nastavením neumožňuje vybrat libovolný časový interval například každý den v noci, ale následně je možné takto naplánovaný úkol snadno upravit v Plánovači úloh přímo ve Windows. Obrázek 4.2: Naplánování synchronizace. Synchronizace funguje na principu stažení dat z obou zdrojů (A, B) do paměti, kde je aplikace porovná a umožní promítnout změny (zdroj A -> zdroj B nebo zdroj B -> zdroj A) přidat nové záznamy, smazat staré nebo aktualizovat existující ze zdrojového do cílového 28

36 4. ŘEŠENÍ umístění. Informace o změnách jsou uživateli prezentovány v tabulce (gridu), kde jsou zvýrazněny buňky, které budou, po potvrzení uživatelem, změněny. Dalším krokem bylo vytvoření testovací konfigurace, pomocí které bylo cílem zjistit, jak Data Synchronisation Studio pracuje. Obrázek 4.3: Testovací konfigurace DS. Analýzou provedenou pomocí nástroje SQL Server Profiler bylo zjištěno, že dotazy na databázi jsou optimalizovány dle vybraných sloupců k synchronizaci vybrány byly pouze potřebné sloupce. Výsledný dotaz tedy, pro tabulku Table_1 a sloupce ID a Text, vypadá například takto (tabulka navíc obsahuje i další sloupce LongText, SPSID): 1 SELECT [ID], [Text] FROM dbo."table_1" Aplikace je tedy maximálně optimalizována, jak z pamět ového, tak i sít ového hlediska z pohledu klienta (objem požadovaných dat zasílaných po síti z databázového serveru). V případě analýzy čerpání dat ze SharePointu byla situace poněkud složitější. Nebylo možné využít SQL Server Profiler pro zjištění 29

37 4. ŘEŠENÍ dotazu získávajícího data z databáze. Pro zjištění zasílaného dotazu byl použit HTTP proxy server Burp Suite [29]. Zaslaný dotaz je optimalizován jen na potřebné sloupce stejně jako u databáze (při použití datového zdroje, který využívá webové služby): 1 <soap:envelope xmlns:soap=" xmlns :xsi=" xmlns:xsd=" w3.org/2001/xmlschema"> 2 <soap:body> 3 <GetListItems xmlns=" /"> 4 <listname>e18774ad-8f be d0ecb43</listname> 5 <viewname>03bf391d-ff97-460a-9cd4-ce9f8afb28d5</viewname> 6 <query> 7 <Query xmlns="" /> 8 </query> 9 <viewfields> 10 <ViewFields xmlns=""> 11 <FieldRef Name="ID" /> 12 <FieldRef Name="Title" /> 13 </ViewFields> 14 </viewfields> 15 <rowlimit>5000</rowlimit> 16 <queryoptions> 17 <QueryOptions xmlns=""> 18 <DateInUtc>TRUE</DateInUtc> 19 <Paging ListItemCollectionPositionNext="Paged=TRUE& p_id=15000" /> 20 </QueryOptions> 21 </queryoptions> 22 <webid>53222b2c-c401-45c3-ab79-bb b7b</webid> 23 </GetListItems> 24 </soap:body> 25 </soap:envelope> Po důkladné analýze tohoto programu lze kladně hodnotit možnost použití dvou způsobů přístupu k datům v SharePointu. Dva datové zdroje jsou implementovány pomocí webových služeb (jeden z nich je označen jako zastaralý) a jeden pomocí klientského objektového modelu. Nevýhodou je to, že neexistuje datový zdroj, který využívá serverový objektový model pro přístup k datům. Tím pádem nelze provádět operace na většinou nejméně vytížených aplikačních serverech (v obou případech se zatěžují právě nejvíce využívané webové servery). Velkou nevýhodou je však nesnadná práce se sloupci typu vyhledání informace z jiného seznamu (lookup) a typu osoba nebo skupina (user or group). Toto omezení je však dáno metodou 30

38 4. ŘEŠENÍ přístupu k datům. Snadněji a efektivněji by to bylo možné jen v případě použití serverového objektového modelu. V případě, že by nabízená funkčnost postačovala potřebám uživatele, jedná se o dobrý a spolehlivý nástroj. V programu může chybět zejména možnost dělat jen rozdílové aktualizace (synchronizace od posledního spuštění) nebo jen exportovat všechna data ze Share- Pointu (například všechny změněné záznamy za poslední den). Velkou výhodou je možnost vytvoření vlastních poskytovatelů dat SQL Server Integration Services Součástí Microsoft SQL Serveru je SSIS (SQL Server Integration Services). Jedná se o platformu poskytující integraci a transformaci dat vhodnou pro řešení komplexních problémů [21]. SQL Server Integration Services neposkytuje zabudovaný datový zdroj pro SharePoint. Je ale možné přidat poskytovatele dat třetích stran. Pro SharePoint jich existuje několik, zejména komerčních, ale i open-source. Z komerčních jsou dostupné například tyto: Task Factory [30] COZYROC SSIS+ 1.6 Library [2] Dále bude představena konfigurace SSIS vytvořená právě pomocí open-source poskytovatele dat SharePoint ListAdapter [13], respektive jeho komponent SharePoint List Source a SharePoint List Destination. Podobně jako v Data Synchronisation Studiu se konfigurace datového zdroje pro SharePoint provádí zadáním adresy webu, jména seznamu a pohledu. Případně lze navíc nadefinovat vlastní filtr ve formě CAML dotazu. Podobně jako Data Synchronisation Studio používají obě komponenty (zdroj a cíl) pro komunikaci se SharePointem volání webových služeb. Výhodou je však použití jména seznamu a pohledu v konfiguraci. Díky tomu lze jen změnit adresu webu a tím přenést připravenou konfiguraci z vývojového nebo testovacího prostředí na prostředí produkční. 31

39 4. ŘEŠENÍ Obrázek 4.4: Testovací konfigurace SSIS. Při spuštění projektu (konfigurace) je nejprve stažen seznam pohledů, aby se podle nakonfigurovaného jména pohledu zjistilo, jestli v seznamu existuje, a následně se použilo pro další dotazy jeho identifikační číslo: 1 <s:envelope xmlns:s=" 2 <s:body> 3 <GetViewCollection xmlns=" /" 4 xmlns:i=" 5 <listname>list_2</listname> 6 </GetViewCollection> 7 </s:body> 8 </s:envelope> Jakmile je dohledán pohled, stáhne se seznam položek dle konfigurace: 1 <s:envelope xmlns:s=" 2 <s:body> 3 <GetListItems xmlns=" 4 xmlns:i=" 5 <listname>list_2</listname> 6 <viewname>{ df6a-44eb-8824-bf55e7e859e4}</viewname> 7 <query> 8 <Query xmlns=""/> 9 </query> 10 <viewfields> 11 <ViewFields xmlns=""> 32

40 4. ŘEŠENÍ 12 <FieldRef Name="ID"/> 13 <FieldRef Name="User"/> 14 <FieldRef Name="Lookup"/> 15 <FieldRef Name="Attachments"/> 16 <FieldRef Name="LinkTitle"/> 17 <FieldRef Name="Title"/> 18 <FieldRef Name="ContentType"/> 19 <FieldRef Name="Modified"/> 20 <FieldRef Name="Created"/> 21 <FieldRef Name="Author"/> 22 <FieldRef Name="Editor"/> 23 <FieldRef Name="_UIVersionString"/> 24 <FieldRef Name="Edit"/> 25 <FieldRef Name="LinkTitleNoMenu"/> 26 <FieldRef Name="DocIcon"/> 27 <FieldRef Name="ItemChildCount"/> 28 <FieldRef Name="FolderChildCount"/> 29 </ViewFields> 30 </viewfields> 31 <rowlimit>1000</rowlimit> 32 <queryoptions> 33 <QueryOptions xmlns=""> 34 <IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns> 35 <IncludeAttachmentUrls>FALSE</IncludeAttachmentUrls> 36 <Paging ListItemCollectionPositionNext=""/> 37 <ViewAttributes Scope="RecursiveAll"></ViewAttributes> 38 </QueryOptions> 39 </queryoptions> 40 </GetListItems> 41 </s:body> 42 </s:envelope> Pro SSIS je možné vyvíjet dvěma způsoby. V SQL Server Business Intelligence Develpoment Studio, jak již bylo předvedeno, nebo v prostředí vývojového nástroje Visual Studio. V prvním případě se jedná o typ projektu pro Visual Studio 2008 (není však bohužel možné využít Visual Studio 2010 [3]. U SSIS je třeba hlídat, jaké definice sloupců jsou použity. Komponenta zdroje načítá všechny sloupce bez ohledu na to, které jsou následně reálně použity, což může způsobovat problém s rychlostí a dostatkem potřebné pamětí. Pro SSIS lze vyvíjet i vlastní komponenty [36, 6]. Pomocí serverového objektového modelu by tedy bylo možné naprogramovat vlastní zdroj i cíl dat, která nelze získat jednoduše pomocí webových služeb Microsoft Sync Framework Microsoft Sync Framework je obecná synchronizační platforma umožňující spolupráci a běh aplikací, služeb a zařízení v režimu 33

41 4. ŘEŠENÍ offline. Umožňuje snadno vytvářet systémy synchronizující jakákoliv data libovolným sít ovým protokolem. Hlavní předností je, mimo již existujících datových poskytovatelů (databázové, souborové, webové), možnost vytvořit si vlastní. [17] Poskytovatel dat pro SharePoint bohužel není mezi standardními zdroji dat, které Microsoft Sync Framework nabízí. Existuje však aplikace SyncToy [23] pro synchronizaci položek mezi knihovnou dokumentů a souborovým systémem, která využívá právě Microsoft Sync Framework. PK Stažení snapshotu dat na klienta Ne Ne Ne Ne Ne Ne Ne Stažení inkrementálních insertů a updatů na klienta Ano Ano Ano 1 Ne Ne Ne Ne Stažení inkrementálních insertů, updatů a mazání na Ano Ano Ano 1 Ano Ne Ne Ne klienta Nahrání insertů na server Ano Ne Ne Ne Ne Ne 2 Ne Nahrání insertů a updatů na server Ano Ne Ne Ne Ne 2 Ne 2 Ne Nahrání insertů, updatů a mazání na server Ano Ne Ne Ne Ne 2 Ne 2 Ne Obousměrné inserty a updaty s detekcí konfliktů Ano 4 Ano Ano 1 Ne Ano 3 Ano 3 Ne Obousměrné inserty, updaty a mazání s detekcí konfliktů Ano 4 Ano Ano 1 Ano Ano 3 Ano 3 Ano 3 Update stamp Insert stamp Delete stamp ID klienta (updaty) ID klienta (inserty) ID klienta (mazání) Tabulka 4.1: Potřebné informace pro požadovaný typ operace [7]. 1 Vyžadováno, pokud potřebujeme rozlišit inserty a updaty. 2 Vyžadováno, pokud více klientů může změnit řádek a chceme tyto změny rozlišit. 3 Vyžadováno, pokud nechceme změny propagovat zpět na klienta, který je provedl. 4 Primární klíč musí být unikátní. Smazané hodnoty se nesmí znovu používat (vhodné používat GUID) [1]. 34

42 4. ŘEŠENÍ Nevýhodou při použití tohoto frameworku však může být to, že pro možnost provést synchronizaci musí být některé sloupce v datovém zdroji. Ve výše uvedené tabulce 4.1 jsou shrnuty požadavky na informace ve zdrojích v návaznosti na požadovanou operaci. Pro synchronizaci dat ze SharePointu a dat z databáze nemusí být vždy možné získat potřebná data (čas vložení, úpravy nebo smazání) v existujících strukturách. Zejména z pohledu návrhu synchronizace jsou informace kolem Mycrosoft Sync Frameworku vhodné jako zdroj mnoha dalších myšlenek a znalostí SPLoad SPLoad je komerční produkt, veřejně nedostupný, který byl vyvinut pro import dat do SharePointu. Výsledkem této diplomové práce by mělo být právě jeho nahrazení novým produktem, který by řešil některé stávající problémy a omezení. Jedinou výhodou aplikace SPLoad je to, že se jedná o běžící systém, který je vyladěný na úkoly, které provádí již několik let. Aplikace má však spoustu nedostatků, kvůli kterým by měla být nahrazena. Základním problémem je nevhodný přístup k databázi. SQL dotaz do databáze je skládán jako textový řetězec (ne jako parametrizovaný dotaz), u kterého se nyní naráží na maximální délku podporovanou v databázi, a je náchylný k SQL injection. Dalším problémem je jeho složitá konfigurace. Pro nastavení se používají XML soubory, které v atributech používají složité textové kombinace dalšího nastavení, místo jednoduššího rozdělení parametrů do jednotlivých atributů XML elementu. Programu by prospěl také lepší monitoring Další nalezená řešení a přístupy Data Synchronisation Studio není jediným veřejně dostupným komerčním produktem. Za zmínku stojí například i produkt Business Data List Connector společnosti Layer 2 [11]. Konfigurace se provádí přímo v nastavení daného seznamu, není tedy žádný centrální přehled o jednotlivých konfiguracích. Konfigurace také není možné snadno uložit a přenést je na jiný seznam (v rámci farmy nebo z testovacího prostředí na produkční). Na seznamu lze nastavit jen jednu 35

43 4. ŘEŠENÍ konfiguraci, takže se data nedají exportovat do více lokací. Databázový zdroj může být pouze databáze, ne jiný SharePoint seznam. Mimo serverového objektového modelu, webových služeb Share- Pointu a klientského objektového modelu se může použít i CMIS (Content Management Interoperability Services) rozhraní. Jedná se o sadu webových služeb implementující operace standardizované právě v rozhraní CMIS. 4.3 Logování Zaznamenávat stavy aplikace je standardní, mnohokrát řešený problém. V této oblasti není již téměř žádný prostor na vymýšlení nových řešení, zejména pokud jsme nenarazili na nějaký velmi specifický požadavek. Jelikož se jedná o velice obecný problém, který řeší téměř každá aplikace, existuje již mnoho hotových knihoven napříč všemi programovacími jazyky a frameworky. Jelikož nepožadujeme od logování žádné speciální funkce nebo chování, máme na výběr z velkého množství hotových řešení, například Enterprise Library, NLog, log4net a mnoho dalších [5]. Většinou se liší jen v drobných detailech, jako jsou možnosti úrovní nebo podporovaná úložiště. Na základě předchozích dobrých zkušeností bylo rozhodnuto, že v této diplomové práci bude pro logování použita knihovna log4net. Ta vznikla portováním úspěšné knihovny pro logování log4j, která je využívána v Javě. 36

44 5 Přizpůsobení a vývoj aplikací pro Share- Point V první části této kapitoly budou představeny nástroje, které jsou dostupné pro práci s platformou SharePoint a pro její správu. Povědomí o těchto nástrojích by měl mít každý zkušenější uživatel, který má na starosti například údržbu projektového nebo týmového webu. V další části budou uvedeny možnosti vývoje a nasazení rozšíření, zajímavé zejména z pohledu programátora, případně administrátora farmy. Poslední část se bude věnovat porovnání výkonnosti v přístupu k datům uloženým v SharePointu pomocí serverového objektového modelu, webových služeb a klientského objektového modelu tak, aby bylo možné vyvodit závěry z informací získaných analýzou existujících řešení. 5.1 Popis nástrojů pro správu a práci s platformou Pro práci s platformou SharePoint je dostupných několik základních aplikací, které umožňují jeho jednoduché úpravy, používání i správu. Nejdůležitější z nich je webová aplikace Centrální administrace a dále dvě desktopové aplikace Microsoft SharePoint Designer a SharePoint Workspace. Mimo aplikací s grafickým uživatelským rozhraním lze většinu administrativních úkolů provádět i pomocí skriptovacího jazyka PowerShell, pro který je dostupná sada příkazů, nebo pomocí programu STSADM.EXE, který pracuje v režimu příkazového řádku Centrální administrace Jak již z názvu vyplývá, jedná se o nástroj pro administraci. Stejně jako celý SharePoint je i centrální administrace založená na webovém přístupu. Je to první část SharePointu, kterou administrátor po instalaci uvidí. Prvotní konfigurace probíhá totiž právě v průvodci v této části. 37

45 5. PŘIZPŮSOBENÍ A VÝVOJ APLIKACÍ PRO SHAREPOINT V rámci administrace se spravují jednotlivé webové aplikace (tzv. top-level site), nastavuje se mapování adres, definice oprávnění (administrátorské účty, anonymní přístup), ale i systémová nastavení (správa serverů ve farmě, ové a SMS nastavení), sledování (analýza stavu, úlohy časovače, vytváření sestav stavu a využití) a zálohování až po správu upgradů a oprav. Centrální administrace je jednou z několika možností, jak provádět hlavní nastavení. Dalším nástrojem je program STSADM. Jedná se o konzolovou aplikaci určenou pro správce platformy. Tato aplikace je pozůstatek ze starších verzí, ve kterých byla hlavním nástrojem pro administrativní účely. Nejflexibilnější možností je ale využít pro konfiguraci PowerShell, který se po zažití stane i nejefektivnějším přístupem a dokáže nahradit veškeré funkce programu STSADM Microsoft SharePoint Designer 2010 Microsoft SharPoint Designer je aplikace z kancelářského balíku Microsoft Office, která je dostupná ke stažení zdarma. Tento program umožňuje snadný a rychlý vývoj pro SharePoint. Zkušení uživatelé pomocí tohoto nástroje mohou velmi snadno vybudovat i rozsáhlé portály postavené na standardních funkcích poskytovaných platformou. Tato aplikace se postará nejen o editaci stránek, vkládání webových částí a úpravu šablonových stránek (master page), ale umožňuje i vytvářet seznamy, typy obsahu (content type), nebo spravovat uživatelské akce v kontextových menu. Z pokročilejších funkcí nabízí například správu pracovních postupů a definici externích datových zdrojů [19] SharePoint Workspace SharePoint Workspace je součástí kancelářského balíku Microsoft Office Professional Plus 2010 a umožňuje pracovat s obsahem v SharePointu i v offline režimu. Užitečná je tato aplikace zejména v případě, kdy uživatel nemá přístup na server SharePoint (na služební cestě, u zákazníka). Po připojení jsou pak změny automaticky synchronizovány. Připojení do SharePoint Workspace se provádí pomocí pásu karet (ribbon menu) z dokumentové knihovny 38

46 5. PŘIZPŮSOBENÍ A VÝVOJ APLIKACÍ PRO SHAREPOINT nebo seznamu kliknutím na akci Synchronizovat s aplikací Share- Point Workspace. 5.2 Vývoj vlastních rozšíření Největších možností přizpůsobení si SharePointu vlastním potřebám lze však docílit jen s pomocí vývojového nástroje Visual Studio [25] společnosti Microsoft. Tento proces přizpůsobení však klade největší nároky na čas a znalosti uživatele. Ve většině případů je pro tuto činnost třeba, aby se o úpravy postaral programátor mající velmi dobré znalosti ve vývoji aplikací pro framework.net. V případě vizuálních rozšíření, v podobě stránek a webových částí, musí ovládat i ASP.NET. Mimo těchto znalostí je však třeba velmi důkladně pochopit i architekturu, objektový model a některé záludnosti této platformy. Proto zde rozebereme základní informace a principy pro vývoj Popis hlavních adresářů 12Hive a 14Hive Termíny 12Hive a 14Hive jsou označovány kořenové adresáře, kde jsou nainstalovány hlavní součásti platformy SharePoint. Čísla udávají verzi. Od verze 2007 jsou interní čísla verzí shodná s interními čísly kancelářského balíku Microsoft Office 2007 odpovídá internímu číslu 12 a 2010 číslu 14. Oficiální označení kořen (root) pro hlavní adresář instalace (verze 2010) se mezi vývojáři a administrátory neuchytil a na většině blogů a diskusních fór se stále používá termín 14Hive, a to hlavně z důvodu jasné identifikace tohoto adresáře a nezaměnitelnosti s jinými kořenovými adresáři. Pro připravovanou verzi SharePointu 2013 bude interní číslo 15 a hlavní adresář bude alespoň mezi vývojáři opět označován jako 15Hive. Jak již bylo řečeno, jedná se o adresář obsahující hlavní soubory SharePointu binární soubory, konfiguraci, webové stránky, webové kontroly, nápovědu nebo jazykové překlady. Zde je základní popis jednotlivých adresářů [8]: 39

47 5. PŘIZPŮSOBENÍ A VÝVOJ APLIKACÍ PRO SHAREPOINT \ADMINSAPI: Adresář obsahující webové služby volané Centrální administrací (mapovaný do virtuálního adresáře _vti_adm ) \BIN: Adresář obsahující všechny základní binární soubory potřebné pro běh, včetně nástroje STSADM.EXE \CONFIG: Adresář obsahuje zejména konfigurační soubory, ale i překladové soubory \Data: Adresář je používán pro indexační službu. Obsahuje například seznam nevýznamných slov (pro češtinu můžeme v souboru noiseces.txt najít slova jako a, aby, ale, který nebo pro angličtinu v souboru noiseeng.txt např. a, and, is, in) z důvodu menšího indexu a lepší výkonnosti. \ISAPI: Adresář obsahuje všechny standardní webové služby. Každá webová aplikace SharePointu obsahuje virtuální adresář _vti_bin mapovaný na ISAPI adresář. \LOGS: Adresář obsahuje aplikační log SharePointu. Stane se velmi navštěvovaným, pokud budeme vyvíjet rozšíření nebo provádět administraci SharePointu. \Resources: Adresář obsahuje překladové soubory pro nainstalované jazykové lokalizace. \TEMPLATE: Adresář obsahuje hlavní funkční části aplikace jako jsou rozšíření, šablony, obrázky a vzhledy ovládacích prvků. Jeho další podadresáře se mapují do několika dalších důležitých virtuálních adresářů např. _layouts, _layouts/images, _layouts/styles Typy rozšíření Při vývoji vlastních rozšíření můžeme vyvíjet dva základní typy aplikace (konzolové, formulářové) běžící přímo na serveru a využívající objektový model, nebo ASP.NET aplikace instalující se jako rozšíření stávající funkcionality. 40

48 5. PŘIZPŮSOBENÍ A VÝVOJ APLIKACÍ PRO SHAREPOINT Konzolové a formulářové aplikace U standardních aplikací se bude jednat zejména o aplikace usnadňující administrátorům správu, různé exporty a importy dat nebo struktury. Při vývoji ve Visual Studiu se vychází z šablony pro konzolovou aplikaci s následným přidáním reference na sestavení SharePoint. Důležité je nastavit.net Framework na verzi 3.5 a jako cílovou platformu vybrat x64 [15]. Pokud není nastavena cílová platforma na x64, při spuštění programu a pokusu o vytvoření objektu z třídy SPSite dostaneme moc neříkající, až matoucí, chybu: The Web application at <address> could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application. ASP.NET Mnohem zajímavější, zejména z pohledu rozšiřování funkčnosti, je vývoj dalších doplňků dostupných koncovým uživatelům. U těchto rozšíření se jedná zejména o stránky, webové části, ale třeba i vlastní webové služby. SharePoint má vlastní systém instalací rozšíření ve formě takzvaných balíčků řešení (solution package), nazývaných jako WSP balíček nebo WSP soubor (dle přípony souboru *.wsp). Nejedná se o žádný nestandardní formát, ale o CAB (Cabinet) formát komprimovaný archiv. Není tedy problém do tohoto souboru nahlédnout hlouběji a pochopit vlastní strukturu dat. Této možnosti využijeme zejména při řešení potíží s instalací nebo při problémech s vytvořením vlastních instalačních balíčků. Řešení lze rozdělit na dva typy: Farmová řešení (farm solution) nejčastější typ rozšíření, instalaci může provést jen administrátor farmy, Uživatelská řešení (sandbox solution) může být využita pouze velmi omezená funkcionalita pro vytvoření vlastních řešení (například nemožnost vytvořit vizuální komponentu). Pro uživatelská řešení může být použit pouze kód v sestavení, 41

49 5. PŘIZPŮSOBENÍ A VÝVOJ APLIKACÍ PRO SHAREPOINT může je ale instalovat i administrátor kolekce webů. Pro jejich velká omezení se však téměř nepoužívají. Nejdůležitějším souborem je manifext.xml, který obsahuje informace o DLL knihovnách (dynamic-link library dynamicky linkovaná knihovna), seznamu funkcí (feature), webových službách, obrázcích, definicích vzhledu vizuálních komponent a dalších souborech potřebných pro běh rozšíření. Mimo informace o seznamu DLL knihoven a cestě, kam mají být nasazeny, je zde umístěn i seznam bezpečných komponent (safe controls). Všechny vizuální komponenty, které jsou v SharePointu zobrazovány, musí v tomto seznamu být. Při nasazení jsou informace o bezpečných komponentách uloženy do hlavního konfiguračního souboru webové aplikace (web.config). Druhým důležitým souborem je feature.xml. Těchto souborů může být v jednom balíčku i více. Tento soubor obsahuje odkazy na soubory s popisy webových částí (soubory s příponou *.webpart) a další soubory (elements.xml) obsahující informace o součástech rozšíření, jako jsou například události (Event Receivers) nebo definice pro delegované komponenty. Jednotlivá rozšíření lze následně aktivovat a deaktivovat každé zvlášt. Nejsnadněji získáme balíček se všemi potřebnými daty tak, že vývoj budeme provádět ve vývojovém prostředí Visual Studio, které obsahuje přímo v projektu volbu vytvořit balíček. Visual Studio není pro vývoj rozšíření pro SharePoint nezbytné. Pokud budeme mít zkompilován kód (například pomocí IDE SharpDevelop), balíček můžeme připravit i pomocí opensource řešení WSP Builder [9] (při vývoji pro SharePoint 2007 Visual Studio nepodporovalo přímo tvorbu WSP balíčků a tvorba balíčků byla pomocí tohoto nástroje v podstatě standardem). Nic nám však nebrání vytvořit si balíček úplně sami svépomocí, avšak za cenu delší doby přípravy Možnosti rozšíření a úpravy SharePoint díky své variabilitě umožní i pouze jednoduchými uživatelskými nastaveními pokrýt mnoho požadavků a pokud něco není možné upravit uživatelsky, téměř jistě to půjde programově. Tak je 42

50 5. PŘIZPŮSOBENÍ A VÝVOJ APLIKACÍ PRO SHAREPOINT totiž možné udělat jakékoli úpravy vzhledu a chování celého systému. Základními třídami, se kterými budeme pracovat, jsou SPSite a SPWeb. V SharePointu je však využíván i neřízený kód, proto je třeba se starat o uvolňování paměti. Třídy SPSite a SPWeb implementují rozhraní IDisposable, které zajistí uvolnění paměti po již nepotřebných objektech. Při vývoji, zejména v začátcích, než si programátor osvojí správné návyky pro práci s těmito třídami, může pomoci nástroj SharePoint Dispose Checker [10]. Ten prověří kód a upozorní na problematická místa, kde by za běhu objekty nebyly uvolněny, nebo, v opačném případě, kde by uvolněny být neměly. Uvolnění objektů pomocí konstrukce using: 1 using(spsite site = new SPSite(" 2 { 3 using(spweb web = site.openweb()) 4 { 5 // kod vyuzivajici objekty site a web 6 } 7 } Uvolnění objektů pomocí konstrukce try catch finally: 1 try 2 { 3 site = new SPSite(" 4 web = site.openweb(); 5 // kod vyuzivajici objekty site a web 6 } 7 catch(exception e) 8 { 9 // zpracovani vyjimky 10 } 11 finally 12 { 13 if (web!= null) 14 web.dispose(); 15 if (site!= null) 16 site.dispose(); 17 } V dalších ukázkách kódů v této kapitole bude vypuštěno vytvoření objektů web a site a pokud nebude řečeno jinak, bude využit první příklad s konstrukcí using. Sloupec Nejmenší jednotkou v SharePointu je sloupec (column). Ten může být různého typu. Základních typů (field type) je dvanáct. Sloupec 43

51 5. PŘIZPŮSOBENÍ A VÝVOJ APLIKACÍ PRO SHAREPOINT umožňuje uchovávat hodnoty například typu text, datum, uživatel, nebo výběr z hodnot. Podle typu je následně ve formulářích zobrazena komponenta zobrazující nebo umožňující editovat hodnotu. Může to být například textový sloupec pomocí komponenty pro textový vstup, nebo výběr jako zaškrtávací volby. Kromě vytvoření sloupce přímo v seznamu je možné vytvořit definici sloupce přímo na webu (site column) a tento sloupec následně využít ve více seznamech. Použití je na první pohled zřejmé například u sloupce typu výběr. Při přidání nové hodnoty do výběru se hodnota přidá automaticky do všech sloupců v seznamech, kde je tento sloupec použit. Nový textový sloupec lze do seznamu přidat pomocí webového rozhraní, ale i programově pomocí objektového modelu. Následující kód přidá do seznamu DemoList textový sloupec DemoColumn: 1 SPList demolist = web.lists["demolist"]; 2 string fieldname = "DemoColumn"; 3 SPFieldType type = SPFieldType.Text; 4 bool required = false; 5 demolist.fields.add("democolumn", SPFieldType.Text, false); Všechny sloupce jsou děděny ze základní třídy SPField. Všechny názvy typů začínají prefixem SPField. Například u textového sloupce se jedná o třídu SPFieldText nebo u výběru o SPFieldChoice. Pokud se však stane, že bychom z nějakého důvodu potřebovali jiný sloupec, respektive jeho formulářové zobrazení, lze si nadefinovat i sloupec vlastní. Můžeme například implementovat výběr, který bude ve formuláři vypadat jako semafor. Následně je vhodné dodržet jmennou konvenci, pro semafor by tedy jméno třídy mohlo být SPFieldTrafficLights. Typ obsahu Seznam (list) se skládá z uživatelem definovaných sloupců. Můžeme najít případy, kdy by bylo limitující, kdyby všechny položky seznamu musely obsahovat vždy stejné sloupce. Toto omezení naštěstí v SharePointu nehrozí. Pomocí nám v tomto případě jsou typy obsahu (Content Type). Pokud budeme chtít v jednom seznamu uchovávat informace například o vozovém parku, zjistíme, že pro osobní a nákladní au- 44

52 5. PŘIZPŮSOBENÍ A VÝVOJ APLIKACÍ PRO SHAREPOINT tomobily potřebujeme uchovávat různé údaje. Podobně jako v objektovém programování existuje i v SharePointu vlastnost podobná dědičnosti. Můžeme vytvořit typ obsahu auto, nadefinovat na něm základní sloupce, například barva nebo SPZ. Pro osobní automobil vytvoříme nový typ obsahu, který bude vycházet z typu auto, a přidáme například počet míst k sezení. Podobně pro nákladní automobil například typ korby. Při vytváření položky si vybereme požadovaný typ obsahu a formulář zobrazí sloupce pro daný typ. Stejně jako pro sloupce lze typy obsahu definovat přímo na webu a následně je použít v různých seznamech, ale stále je spravovat z jednoho místa. Příklad přidání typu obsahu DemoContentType vycházející ze standardního typu položka (Item): 1 SPContentType ctdemo = null;? 2 string ctname = "DemoContentType"; 3 ctdemo = new SPContentType(web.AvailableContentTypes[SPBuiltInContentTypeId.Item], web.contenttypes, ctname); 4 ctdemo.description = "Typ obsahu vychazejici z typu polozka"; 5 cts.add(ctdemo); 6 ctdemo.update(true); Následně je možné takto vytvořený typ obsahu přidat do seznamu: 1 SPList demolist = web.lists["demolist"]; 2 demolist.contenttypesenabled = true; // povoleni typu obsahu 3 SPContentType ctdemo = web.contenttypes["democontenttype"]; 4 demolist.contenttypes.add(ctdemo); 5 demolist.update(); Šablona seznamu Vytvoření seznamu nemusí být pokaždé zdlouhavou prací, než vytvoříme v seznamu potřebné sloupce a požadované nastavení ze základní šablony Vlastní seznam (Custom List). Můžeme totiž využít některou z již připravených šablon, jako jsou Diskusní vývěska, Kalendář, Kontakty nebo Úkoly. Výhodou šablon je i to, že jsou definované speciální pohledy (View). Například pro kalendář není v pohledu zobrazen seznam položek ve formě seznamu, ale jako kalendář. Vlastní seznam lze uložit jako šablonu a následně na základě této šablony vytvářet další seznamy. Šablonu můžeme také uložit a nahrát do jiné kolekce webů, nejen v rámci jedné farmy. Je tedy možné 45

53 5. PŘIZPŮSOBENÍ A VÝVOJ APLIKACÍ PRO SHAREPOINT připravit si šablonu na vývojové nebo testovací farmě a následně nahrát na produkční prostředí. Událost Události (Event Receiver) v SharePointu lze přirovnat například ke spouštěčům (trigger) v databázích. Umožňují definovat akce (spustit vlastní kód), které se provedou při operaci definované na kolekci webů, webu, seznamu, položce seznamu nebo na pracovním postupu. Události se rozdělují do dvou typů podle typu spuštění na synchronní a asynchronní a dále do dvou typů podle času spuštění na before events (událost vyvolána před provedením akce) a after events (událost vyvolána po provedení akce). Události se většinou vytvářejí ve Visual Studiu pomocí návrháře. Je možné je však vytvářet i programově. Často, zejména při řešení různých problémů, potřebujeme zjistit, zda na seznamu existuje nějaká registrovaná událost. Ve starších verzích SharePointu se pro tyto účely používaly různé utility. Od verze 2010 je však možné snadno získat seznam událostí pomocí PowerShellu: 1 # vypise udalosti na seznamu: 2 $list.eventreceivers Select Name, Type, Synchronization, SequenceNumber, Class Webová část Webová část (Webpart) je vizuální komponenta, která je známá již z ASP.NETu (System.Web.UI.WebControls.WebPart) a která je pro potřeby SharePointu rozšířena o další vlastnosti (Microsoft.SharePoint.WebPartPages.WebPart). Jedná se o základní stavební jednotku pro vytváření stránek a formulářů. Pokud budeme vytvářet rozšíření, ve většině případů se bude jednat právě o vytváření webových částí. Webovou část je možné umístit na libovolnou stránku obsahující komponentu WebPartManager. SharePoint 2010 nově umožňuje pro webovou část vytvořit kontextové menu, které se při výběru webové části zobrazí v menu pásu karet (ribbon menu). 46

54 5. PŘIZPŮSOBENÍ A VÝVOJ APLIKACÍ PRO SHAREPOINT Formulář Formuláře a stránky jsou z pohledu uživatele největší jednotné celky. Existují dva typy stránek. Bud jsou obsažené přímo v SharePointu, nebo vyvinuté vlastní a nasazené pomocí vlastních řešení. Vlastní stránky mohou obsahovat vše, co nám dovolí samotný ASP.NET. Existující stránky v SharePointu lze upravovat vkládáním vlastních webových částí a nastavením hodnot jejich vlastností. Existující stránkou nemusí být pouze stránka v knihovně dokumentů (například wiki stránka), ale třeba i formulář seznamu, který je také možné dále upravovat. Úloha Úloha (Timer Job) umožňuje nezávisle na akci uživatele spouštět (i opakovaně) definovaný kód. Správa úloh se provádí z centrální administrace. Na rozdíl od většiny ostatního kódu není úloha spouštěna v kontextu webové aplikace (w3wp.exe), ale o spuštění se stará proces OWSTimer.exe. Proces OWSTimer.exe je v systému reprezentován jako služba. Úlohy nejsou spouštěny v přesně definovaný čas, ale v definovaném intervalu. Výchozí interval spouštění úloh je 5 minut. Interval je možné upravit v Centrální administraci pomocí příkazu STSADM nebo pomocí PowerShellu. Pomocí úloh je mimo jiné prováděno i nasazení řešení (proto je dobré v případě problémů s nasazením řešení zkontrolovat, zda služba běží), zasílání upozornění a mnoho dalších. Abychom při ladění nemuseli vždy čekat definovaný čas, po kterém se úloha spustí, můžeme si na pomoc vzít opět PowerShell a vynutit spuštění okamžitě: 1 # vynuceni spusteni ulohy "NazevUlohy" v aplikaci s danou URL 2 Get-SPTimerJob "NazevUlohy" -WebApplication "url" Start-SPTimerJob Pracovní postup Pracovní postup (Workflow) umožňuje nad položkami seznamu nebo v rámci webu spouštět definované procesy. Pracovní postup se skládá z jednotlivých aktivit. Aktivita je atomický blok, který defi- 47

55 5. PŘIZPŮSOBENÍ A VÝVOJ APLIKACÍ PRO SHAREPOINT nuje, co se má provést, například vyžádat vstup od uživatele, zaslání u nebo třeba jen rozhodovací blok. Definice pracovního postupu se provádí pomocí SharePoint Designeru nebo Visual Studia. Na rozdíl od ostatních stavebních bloků SharePointu nelze jednoznačně říci, kde pracovní postup běží. Může být hostován ve webové aplikaci, ale i jako úloha v procesu OWSTimer.exe. Existují nástavby třetích stran, které umožňují definovat pracovní postupy přímo na webu. Hlavními zástupci pro práci s pracovními postupy jsou produkty firem Nintex nebo K Srovnání přístupů z pohledu výkonnosti Pro přístup k datům máme několik možností. Tyto možnosti byly rozebrány v kapitole 4.1. Přístup k datům uloženým v SharePointu. Pro srovnání a zhodnocení jednotlivých přístupů, zejména z pohledu rychlosti získání dat, byla vytvořena jednoduchá konzolová aplikace, která umožnila stažení stejných dat pomocí tří metod přístupů, tedy pomocí serverového objektového modelu, klientského objektového modelu a volání webových služeb. Měření proběhlo 3x pro každý přístup a 2x pro různé limity vracených položek (10 položek obrázek 5.1 a položek obrázek 5.2). Seznam obsahoval celkem položek. V každém spuštění proběhlo ve smyčce 10 měření. Z naměřených dat je vidět, že v první iteraci se data načetla do vyrovnávacích pamětí a načetly se také potřebné knihovny. Každý další přístup byl následně již rychlejší a iterace proběhla za přibližně stejnou dobu. Graf zobrazuje pouze čas potřebný pro načtení dat. Při reálné práci s webovými službami by byly časové nároky pro zpracování ještě větší o převedení XML výsledku do podoby, ve které by se s daty dalo dále pracovat. Jako jasný vítěz v tomto porovnání vychází serverový objektový model. 48

56 5. PŘIZPŮSOBENÍ A VÝVOJ APLIKACÍ PRO SHAREPOINT Obrázek 5.1: Srovnání časů přístupů, limit 10 záznamů. Obrázek 5.2: Srovnání časů přístupů, limit záznamů. 49

57 6 Návrh a implementace Analýza rychlosti přístupu k datům uloženým v SharePointu jasně prokázala, že nejrychlejším způsobem je serverový objektový model. Tento přístup bohužel nenabízí žádný výše analyzovaný produkt. Žádný produkt také nenabízí snadnou možnost konfigurace bez potřeby spouštět program na serveru. Z těchto důvodů bylo rozhodnuto implementovat aplikaci, která bude splňovat požadavky na jednoduchou konfiguraci a která bude dostupná přímo z prostředí platformy SharePoint. V této kapitole budou postupně probrány jednotlivé části návrhu a následně implementace daného řešení. Výhodou vlastní implementace je možnost dalšího vývoje, tím i rozšiřování funkcí aplikace a její přizpůsobení i budoucím požadavkům. Nevýhodou implementace nového řešení je však vyšší pracnost pro vytvoření a zprovoznění, než jen konfigurace některého existujícího produktu. Výhody: Plná kontrola nad prováděnými akcemi Možnost rozšiřování dle aktuálních potřeb Možnost rozšiřovat o další poskytovatele dat Na straně SharePointu možnost vypnout události při vkládání, editaci a mazání Nevýhody: Pracnost Nemusí obsahovat tolik možností, jako velké komerční / opensource projekty 6.1 Návrh Z analýzy Microsoft Sync Frameworku vyplynulo, že není plně vhodný pro práci s daty, u kterých nemůžeme zaručit jejich struk- 50

58 6. NÁVRH A IMPLEMENTACE turu, a to zejména existenci potřebných sloupců pro časové hodnoty vytvoření, aktualizace a smazání dat. Na základě těchto informací bylo rozhodnuto implementovat aplikaci od základu, ale tak, aby ji bylo možné dále snadno rozšiřovat. Rozšiřitelností se rozumí snadné přidání dalšího poskytovatele dat, nebo i další synchronizační logiky. Z pohledu návrhu je možné aplikaci rozdělit do několika hlavních celků. Nejdůležitější částí je samotné zajištění sdílení dat datových zdrojů. Dále možnosti spouštění a plánování spouštění, monitoring stavu aplikace, ale i architektonický návrh aplikace Sdílení dat Z pohledu uživatele bude nejmenší jednotkou v rámci aplikace úkol. Dříve než bude možné úkol vůbec provést, je třeba jej definovat. Definicí se rozumí popis vstupních dat a operace nad nimi. Přesunout data z jedné lokace do lokace druhé se může z pohledu uživatele jevit jako snadný úkol. Složitější je tyto informace poskytnout počítači tak, aby byl na základě těchto informací schopen akce správně provést. Aby bylo možné tyto akce provádět opakovaně s minimálními časovými náklady, bylo třeba vyvinout postup, jak zprostředkovat uživateli nastavení, které bude co nejobecnější. Dále bylo třeba vyvinout algoritmus, který na základě nastavení provede potřebné operace s definovanými daty. Nastavení Z pohledu uživatele se bude nastavení provádět pomocí jednoduchého webového uživatelského rozhraní. Uživatel si tedy nebude muset instalovat žádný dodatečný software pro práci s aplikací, bude stačit pouze internetový prohlížeč. Dle zaměření aplikace se předpokládá, že uživatel je obeznámen s ovládáním platformy SharePoint. Proto se bude konfigurace provádět pokud možno co nejvíce podobným způsobem, jakým je na této platformě zvykem pracovat. Pro uložení jednotlivých konfigurací bude využit obecný seznam. V rámci seznamu se jednotlivé konfigurace budou označovat automatickým identifikátorem. Ke kaž- 51

59 6. NÁVRH A IMPLEMENTACE dému nastavení bude možné definovat i popis, kam si uživatel bude moci vkládat své vlastní poznámky. Prvním krokem nastavení bude definice datových zdrojů. Na základě výběru typu datového zdroje se dále zobrazí potřebná vstupní pole pro zadání dodatečných informací. Pro databázi to bude připojovací řetězec a tabulka, pro SharePoint adresa webu a jméno seznamu. Aplikace by se měla snažit uživateli s nastavením co nejvíce pomáhat. Po zadání připojovacího řetězce k databázi sama dále nabídne seznam tabulek, v případě SharePointu potom po zadání adresy webu nabídne dostupné seznamy. Obrázek 6.1: Struktura projektu. Po nadefinování datových zdrojů provede uživatel mapování jednotlivých sloupců ze zdroje na sloupce cílové. V rámci mapování sloupců bude možnost zadat, podle kterého sloupce bude následně probíhat párování jednotlivých řádků mezi zdroji. Návrh algoritmu sdílení dat Uloženou konfiguraci bude následně možné spustit. Aplikace bude pracovat podobně jako analyzované existující aplikace. Po spuštění programu se stáhnou data z obou zdrojů do interních struktur. Následně se spárují jednotlivé řádky z obou zdrojů dle párovacího sloupce. Jakmile se řádky spárují, porovná se, zda jsou hodnoty z obou zdrojů stejné. Pokud stejné nejsou, je potřeba tyto řádky v cílovém datovém zdroji aktualizovat. Řádky, které se nepodaří spárovat, se aktualizují dle následujících pravidel: řádek, který existuje jen ve zdroji, se vloží jako nový řádek do cílového zdroje, 52

60 6. NÁVRH A IMPLEMENTACE pokud existuje řádek pouze v cílovém zdroji dat, je tento řádek smazán. Všechny požadované operace upravující data se při porovnávání budou řadit do fronty a po dokončení kontroly všech záznamů se změny promítnou do cílového datového zdroje. Nutnou podmínkou pro provedení všech operací bude to, že datové zdroje v rámci párovacího sloupce musí obsahovat unikátní hodnoty. Pokud by hodnoty nebyly unikátní, nebylo by možné řádky jednoznačně spárovat Plánování spouštění Jakmile bude vytvořena aplikace umožňující provádět potřebné operace nad datovými zdroji, bude třeba zajistit automatické spouštění. Aplikace bude umožňovat jednoduché plánování spouštění běhu programu. Plánování bude, stejně jako konfigurace, probíhat v rámci platformy SharePoint tak, aby uživatel nepotřeboval žádné dodatečné aplikace nebo přístupy. Pokud bude třeba nastavit spuštění programu na základě složitějších podmínek, bude možné aplikaci s vybranou konfigurací spustit i přímo ze serveru. Pro naplánování bude možné využít i aplikaci Plánování úloh, která je standardním nástrojem v operačním systému Windows. Aby byl systém univerzální, bude spuštění možné i pomocí webových služeb. Tímto způsobem bude umožněno spuštění programu se zadanou konfigurací i z jiného serveru než jen z SharePoint farmy. Parametrem webové služby, mimo adresy webu uchovávající konfiguraci, bude i identifikační číslo požadované konfigurace ke spuštění Logování a monitoring aplikace Aplikace bude využívat vlastní aplikační log primárně využívající databázové úložiště. Výhodou tohoto řešení, oproti využívání aplikačního logu SharePointu, bude centralizace informací ze všech serverů v jedné centrální databázi. 53

61 6. NÁVRH A IMPLEMENTACE Logování bude zajišt ovat knihovna log4net. Pro případnou snadnou změnu knihovny bude implementováno vlastní obecné rozhraní nad touto knihovnou. Vlastní aplikace nebude využívat přímo knihovnu log4net, ale právě toto obecné rozhraní. V rámci plánování spouštění z prostředí SharePointu bude u naplánované úlohy zobrazen i poslední čas spuštění. Kromě posledního času spuštění by měla být dohledatelná i kompletní historie. V případě kritické chyby aplikace budou záznamy uchovávány tak, aby bylo možné je hlídat pomocí monitorovacího nástroje Architektura aplikace Aplikace bude logicky členěna do několika částí tak, aby bylo možné v rámci jednoho řešení sestavit jak balíček řešení pro SharePoint, tak i konzolovou aplikaci pro spouštění jednotlivých konfigurací z příkazového řádku nebo pomocí Plánovače úloh. Jádro aplikace bude tvořit synchronizační logika, sada tříd poskytujících rozhraní k jednotlivým datovým zdrojům a třídy popisující konfiguraci. Toto jádro aplikace bude možné samostatně testovat nezávisle na uživatelském rozhraní. Implementace aplikace bude provedena tak, aby bylo možné snadno přidávat nové datové zdroje. Další aplikace bude rozšiřovat webové rozhraní platformy Share- Point. Bude se jednat o rozšíření o potřebné komponenty umožňující komunikaci s uživateli. Zejména jde o webovou část (web part), která umožní provádět nastavení jednotlivých synchronizačních úloh, a dále plánovač úloh, který bude obstarávat spouštění úloh. Poslední důležitou částí bude rozhraní pro příkazovou řádku. Toto rozhraní nebude kromě zprostředkování vstupů od uživatele a výstupů provádět žádné jiné operace, veškerá logika bude obsažena právě v jádru aplikace. 6.2 Implementace Pro vývoj aplikace byl použit vývojový nástroj Visual Studio 2010, který obsahuje šablony pro různé typy projektů, včetně projektů pro SharePoint Nejsnadnější cestou, jak vyvíjet, je nainstalovat si 54

62 6. NÁVRH A IMPLEMENTACE celé prostředí co nejvíce podobné reálnému nasazení. Většinou je dostatečná instalace na jeden server (webový, aplikační i databázový server) na jednom stroji. V dnešní době je velice oblíbená a také dostupná možnost virtualizace. Pro vývoj je tedy možné použít pouze virtualizovaný systém s dostatečným množstvím systémových prostředků, zejména paměti. Vývoj byl prováděn ve virtualizovaném systému Microsoft Windows 2008R2 Server běžícím ve virtualizačním nástroji VMWare Player. V systému byl dále nainstalován Microsoft SQL Server 2008R2 a Microsoft SharePoint Foundation SharePoint Server 2010 nebyl nainstalován z důvodu kompatibility se základní verzí (verze Server pouze rozšiřuje verzi Foundation o pokročilejší nástroje, ale objektový model je stejný). V rámci Visual Studia bylo vytvořeno jedno řešení (solution), které se skládá z logicky rozdělených projektů tak, aby se využilo co nejvíce společného kódu mezi jednotlivými projekty. Jednotlivé projekty budou popsány níže. Před prvním nasazením je třeba u všech projektů povolit podepisování sestavení a nastavit správný Strong Name Key (SNKey), na základě kterého se vytváří silný název (strong name). Pokud bychom sestavení nepodepsali, nebylo by možné jej při instalaci nahrát do globálního úložiště sestavení GAC (Global Assembly Cache). Dále se na základě silného názvu do souboru web.config příslušné webové aplikace po nasazení WSP balíčku vloží informace o bezpečných komponentách (safe controls). Pokud bychom na toto zapomněli a přidali námi vyvinutou webovou část na stránku, po následné změně silného názvu by se objevila chyba, která je zobrazena na obrázku 6.2. Obrázek 6.2: Chyba při zobrazení webové části po změně silného názvu. 55

63 6. NÁVRH A IMPLEMENTACE Jedinou možností opravy je odebrání staré webové části a přidání nové. Silný název jednoznačně identifikuje sestavení. Obsahuje název sestavení, číslo verze, národní prostředí, veřejný klíč a podpis k ověření, že sestavení nebylo změněno [22]. Silný název neovlivňuje pouze SNKey, ale je třeba počítat s tím, že obsahuje i verzi sestavení. Pro zaznamenání informace o verzi tedy není vhodné používat vlastnost verze, ale pro uchování této hodnoty je možné použít popis sestavení (description). Silný název sestavení pro H2O.SPLoadX.Core potom vypadá takto: H2O.SPLoadX.Core, Version= , Culture=neutral, PublicKeyToken=feaafeb7a1ba9378. Pro zjištění silného názvu sestavení můžeme opět využít Power- Shell: 1 $assembly = [Reflection.Assembly]::Load("H2O.SPLoadX.Core.dll") 2 $assembly.fullname Jakmile je balíček nasazen a řešení aktivováno, bude pravděpodobně potřeba některé části kódu ladit. Pro následné ladění je třeba zjistit, která webová aplikace (W3WP.EXE proces) hostuje naše rozšíření. Jakmile je proces dohledán, využívá se připojení vývojového prostředí právě k tomuto běžícímu procesu. K nalezení správného procesu lze využít systémovou konzolovou aplikaci appcmd nebo využít možností PowerShellu: [12]. AppCmd: 1 C:\Windows\System32\inetsrv\appcmd list wp Powershell: 1 Get-WmiObject -NameSpace root\webadministration WorkerProcess Select ProcessId, AppPoolName Format-Table -AutoSize Práci s dohledáváním procesu a následným připojením ladícího nástroje k tomuto procesu může usnadnit například doplněk WSP Builder pro Visual Studio. Tento doplněk se sám postará o nalezení správného procesu a připojení ladícího nástroje Projekt Core Projekt Core obsahuje jádro celého systému. Jedná se zejména o synchronizační logiku aplikace, popis datových zdrojů a správu konfigurace. 56

64 6. NÁVRH A IMPLEMENTACE Konfigurace se ukládá v SharePointu do seznamu v XML formátu. Pro ukládání a načítání konfigurace z objektů a do objektů se využívá standardních postupů pro toto určených, serializace a deserializace. Serializace zajistí převedení aktuálního stavu objektu do reprezentace, kterou je možné uložit (stream, pole bytů, řetězec). Deserializace zajistí následné obnovení objektů z takto uložených dat. Třída konfigurace (SyncConfig) byla navržena tak, aby ji tedy bylo možné serializovat a uložit ve formě XML. Z tohoto důvodu byly použity takové datové typy a třídy, aby to bylo možné. Obrázek 6.3: Návrh tříd konfigurace. SyncConfig obsahuje definici dvou datových zdrojů (zdroj A a zdroj B), kolekci mapování (obsahující jednotlivá mapovací pravidla) a typ synchronizace (definuje zdroj a cíl). Mapovací pravidlo určuje také to, který sloupec ze zdroje se mapuje na sloupec z cíle a typ pravidla. Typem pravidla je například to, zda se jedná o párovací sloupec, na základě kterého se k sobě následně přiřazují řádky z obou zdrojů. Základní třídou pro definici datového zdroje je DataSource- Settings. Třída obsahuje metody, které by měli implementovat všichni následní poskytovatelé dat. Implementace jednotlivých metod jsou prázdné, vyvolají pouze výjimku NotImplementedException. Toto neplatí ale u dvou statických metod GetProviders a CreateDataSource. 57

65 6. NÁVRH A IMPLEMENTACE Metoda GetProviders zajišt uje získání všech poskytovatelů dat pomocí reflexe. Vrací seznam všech typů, které jsou děděny z hlavní třídy DataSourceSettings. Díky tomuto návrhu mohla být aplikace postavena tak, že přidání dalšího poskytovatele obnáší jen vytvoření nové třídy, děděné ze základní, a přepsání jednotlivých metod. Metoda CreateDataSource se následně jen postará, aby bylo možné z takto získané třídy vytvořit instanci objektu. Vytvoření instance objektu je provedeno opět pomocí reflexe. Z třídy DataSourceSettings jsou tedy děděny třídy MSSQLData- Source a SPDataSource, které přidávají nové vlastnosti a metody specifické pro jejich účel. Obrázek 6.4: Návrh tříd poskytovatelů dat. Synchronizaci zdrojů zajišt uje třída Synchronize. Na základě konfigurace se nejprve načtou data z obou datových zdrojů a uloží se do interních struktur aplikace. Hodnoty z jednotlivých sloupců jsou upraveny tak, aby byly porovnatelné mezi různými typy zdrojů. Konverze se týká zejména SharePoint sloupců uchovávajících vybraného uživatele, výběr nebo datum. Jakmile jsou data upravena, je dalším krokem jejich porovnání. Ke zjištění, která data se nachází jen ve zdroji A, jen ve zdroji B, nebo v obou, se využije vytvořeného seznamu párovacích hodnot. Nad těmito seznamy se provede operace průnik (intersect) pro zjištění, které záznamy jsou v obou zdrojích. Tyto řádky jsou následně porovnány a data, která jsou rozdílná, se promítnou do cílového seznamu dat. Zároveň je poznamenáno, které řádky bude třeba po dokončení porovnání uložit. Pro zjištění záznamů, které jsou dostupné jen v jed- 58

66 6. NÁVRH A IMPLEMENTACE nom ze zdrojů, je nad seznamy provedena operace rozdíl (except). Jednou je rozdíl proveden pro zjištění řádků, které jsou jen ve zdroji A (zdroj A - zdroj B) a podruhé pro řádky dostupné jen ve zdroji B (zdroj B - zdroj A). Na základě těchto výsledků se řádky v cílovém zdroji označí jako řádky ke smazání, nebo se vytvoří řádek nový a je zařazen k vytvoření. Jakmile je sestaven seznam potřebných operací v cílovém zdroji, jednotlivé operace jsou postupně provedeny. Tím je synchronizace dokončena Projekt CLI Projekt CLI je program s rozhraním pro příkazovou řádku. Umožňuje manuálně spouštět vytvořené konfigurace, případně naplánovat spuštění aplikace pomocí Plánovače úloh. Veškeré vstupy programu jsou zajištěny pouze zadáním potřebných parametrů při spuštění programu. Pro snazší práci s parametry byla použita knihovna pro parsování vstupních parametrů Command Line Parser Library [32]. Po zpracování vstupů se dále již využívá kód z projektu Core, který zajistí všechny další potřebné operace pro běh programu s požadovanou konfigurací. Alternativou ke konzolovému programu by mohl být se stejnou funkčností tento PowerShell kód: 1 $conigweburl = " 2 $configid = 5 # pro spusteni konfigurace [Reflection.Assembly]::LoadWithPartialName("H2O.SPLoadX.Core") 5 New-Object H2O.SPLoadX.Core.Synchronize($configWebUrl, $configid) Projekt Web V rámci projektu Web byla vyvinuta rozšíření pro SharePoint. Těmito rozšířeními jsou: webová část umožňující konfiguraci jednotlivých úloh, událost na konfiguračním seznamu doplňující automaticky údaje ke konfiguraci, 59

67 6. NÁVRH A IMPLEMENTACE úloha časovače, který obstarává plánované spouštění, webové rozhraní pro zobrazování zapsaných událostí, webová služba pro vzdálené spuštění synchronizace. Při vývoji rozšíření v Microsoft Visual Studiu máme na výběr minimálně dvě možnosti, jak vytvořit strukturu adresářů pro mapované adresáře (mapped folders) platformy SharePoint. První možností je nechat si pro každou mapovanou složku (zejména z podadresáře TEMPLATES, který je potřeba téměř vždy při vývoji vizuálních komponent) vytvořit adresář nový. V projektu ale takto může vzniknout velké množství složek, které následně znemožní rychlou orientaci. Příklad po přidání adresářů Images, Layouts a CONTROLTEMPLATES je vidět na obrázku 6.5. V případě adresáře CONTROLTEMPLATES se automaticky nevytvořil ani podadresář pro naše komponenty. Pokud bychom nebyli opatrní a název kolidoval s už existujícím souborem, byl by existující soubor po nasazení přepsán. V případě využití tohoto návrhu struktury je vhodné přidat navíc vlastní podadresář. Obrázek 6.5: Struktura projektu automaticky vytvořena Visual Studiem. Druhou možností je nechat si vytvořit jen jednu mapovanou složku TEMPLATES a do ní si následně přidat potřebné adresáře svépomocí. Tento návrh struktury je vidět na obrázku 6.6. Funkčnost celého řešení bude stále stejná. V případě potřeby je pak možné 60

68 6. NÁVRH A IMPLEMENTACE sbalit celý podstrom adresáře TEMPLATES a projekt je následně přehlednější. Právě tento přístup byl použit při vývoji. Obrázek 6.6: Struktura projektu s hlavním adresářem TEMPLATES. Dle návrhu byla vytvořena webová část pro uživatelskou konfiguraci. V konfiguračním seznamu SyncConfig bylo pomocí aplikace SharePoint Designer třeba nahradit standardní webovou část List- FormWebPart za právě námi vytvořenou webovou část ConfigEditor, a to jak ve formuláři pro novou položku (NewForm.aspx), tak ve formuláři pro editaci (EditForm.aspx). Formulář pro zobrazení položky (DisplayForm.aspx) byl zachován. Dále byla vytvořena synchronní událost pro automatické plnění sloupce Title. Hodnota tohoto sloupce je nastavována textem v podobě SYNCXXXXXX, kde XXXXXX je nahrazeno číselným identifikátorem záznamu, například SYNC Součástí tohoto projektu je také úloha časovače. Časovač pro platformu SharePoint se definuje jako třída, která je děděna z třídy SPJobDefinition. Abychom nemuseli pro každou naplánovanou úlohu vytvářet vlastní časovač, byl použit časovač pouze jeden, který na základě definované konfigurace spouští jednotlivé synchronizační úkoly. Použití tohoto návrhu usnadnilo následně i konfiguraci v Centrální administraci. Konfigurace časovače se provádí v seznamu TimerJob. U každého takto nakonfigurovaného záznamu se uchovává informace o posledním spuštění. Pokud tedy na tomto 61

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

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

Business Intelligence

Business Intelligence Business Intelligence Josef Mlnařík ISSS Hradec Králové 7.4.2008 Obsah Co je Oracle Business Intelligence? Definice, Od dat k informacím, Nástroj pro operativní řízení, Integrace informací, Jednotná platforma

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

Vzdálená správa v cloudu až pro 250 počítačů

Vzdálená správa v cloudu až pro 250 počítačů Vzdálená správa v cloudu až pro 250 počítačů S pomocí ESET Cloud Administratoru můžete řídit zabezpečení vaší podnikové sítě bez nutnosti nákupu, instalace nebo údržby dalšího hardwaru. Řešení je poskytováno

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

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

PRODUKTY Tovek Server 6

PRODUKTY Tovek Server 6 Tovek Server je serverová aplikace určená pro efektivní zpracování velkého objemu sdílených strukturovaných i nestrukturovaných dat. Umožňuje automaticky indexovat data z různých informačních zdrojů, intuitivně

Více

Zpětná vazba od čtenářů 11 Dotazy 11 Zdrojové kódy ke knize 11 Errata 11 Typografické konvence použité v knize 12

Zpětná vazba od čtenářů 11 Dotazy 11 Zdrojové kódy ke knize 11 Errata 11 Typografické konvence použité v knize 12 Obsah Zpětná vazba od čtenářů 11 Dotazy 11 Zdrojové kódy ke knize 11 Errata 11 Typografické konvence použité v knize 12 Úvod do Microsoft SharePoint Foundation 2010 13 Základní pojmy používané v této knize

Více

Nové jazykové brány do Caché. Daniel Kutáč

Nové jazykové brány do Caché. Daniel Kutáč Nové jazykové brány do Caché Daniel Kutáč O čem budeme mluvit.net T/SQL Perl Python MultiValue Basic Téma.NET provider .NET Provider Co lze již dnes Factory / VisM ODBC.NET Web Services Factory a VisM

Více

Windows 2008 R2 - úvod. Lumír Návrat

Windows 2008 R2 - úvod. Lumír Návrat Windows 2008 R2 - úvod Lumír Návrat Operační systémy Windows Stručný přehled Klientské OS Windows 95, 98, ME Windows NT Windows 2000 Windows XP Windows Vista Windows 7 Windows 8 Windows 8.1 Windows 10

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

Excel a externí data KAPITOLA 2

Excel a externí data KAPITOLA 2 Excel a externí data KAPITOLA 2 V této kapitole: Připojení databáze Microsoft Access Data z webových stránek a z textových souborů Data z databází Program Microsoft Query Práce se soubory typu XML Velkou

Více

Technologie Sharepoint

Technologie Sharepoint Jan Salajka 25. 3. 2010 ČVUT FEL Technologie Sharepoint Letem světem Sharepoint - Co to je??? Je to technologie Slouží především k řízené tvorbě a správě informací ve webovém prostředí Slouží jako podklad

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

Návod k instalaci. Nintex Workflow Návod k instalaci

Návod k instalaci.   Nintex Workflow Návod k instalaci Nintex Workflow 2010 - Návod k instalaci Návod k instalaci support@nintex.com www.nintex.com Nintex USA LLC 2012, Všechna práva vyhrazena. Nintex nenese odpovědnost za případné chyby či opomenutí. Nintex

Více

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita Aktivní webové stránky Úvod: - statické webové stránky: pevně vytvořený kód HTML uložený na serveru, ke kterému se přistupuje obvykle pomocí protokolu HTTP (HTTPS - zabezpečený). Je možno používat i různé

Více

Tovek Server. Tovek Server nabízí následující základní a servisní funkce: Bezpečnost Statistiky Locale

Tovek Server. Tovek Server nabízí následující základní a servisní funkce: Bezpečnost Statistiky Locale je serverová aplikace určená pro efektivní zpracování velkého objemu sdílených nestrukturovaných dat. Umožňuje automaticky indexovat data z různých informačních zdrojů, intuitivně vyhledávat informace,

Více

DOCUMENT MANAGEMENT TOOLKIT

DOCUMENT MANAGEMENT TOOLKIT DOCUMENT MANAGEMENT TOOLKIT SPRÁVA DOKUMENTŮ V MODERNÍM PODNIKOVÉM PROSTŘEDÍ Zpracování dokumentů prochází v dnešním firemním světě významnými změnami. Firmy jsou nuceny řešit řadu problémů, které s sebou

Více

Internet Information Services (IIS) 6.0

Internet Information Services (IIS) 6.0 Internet Information Services (IIS) 6.0 V operačním systému Windows Server 2003 je obsažena i služba IIS v 6.0. Služba IIS poskytuje jak www server tak i některé další služby (FTP, NNTP,...). Jedná se

Více

Compatibility List. GORDIC spol. s r. o. Verze 3.60.5 8.4.2009

Compatibility List. GORDIC spol. s r. o. Verze 3.60.5 8.4.2009 Compatibility List Verze 3.60.5 8.4.2009 GORDIC spol. s r. o. Copyright 1993-2009 1 Obsah Obsah 1 2 3 4 5 6 7 8 9 3.1 3.2 Úvodní informace Podporované databázové systémy Klientské prostředí Tlustý klient...

Více

Nintex Workflow 2007 je nutné instalovat na Microsoft Windows Server 2003 nebo 2008.

Nintex Workflow 2007 je nutné instalovat na Microsoft Windows Server 2003 nebo 2008. Systémové požadavky Operační systém Nintex Workflow 2007 je nutné instalovat na Microsoft Windows Server 2003 nebo 2008. Prohlížeč Microsoft Internet Explorer 6.x, doporučujeme ale Microsoft Internet Explorer

Více

RESTful API TAMZ 1. Cvičení 11

RESTful API TAMZ 1. Cvičení 11 RESTful API TAMZ 1 Cvičení 11 REST Architektura rozhraní navržená pro distribuované prostředí Pojem REST byl představen v roce 2000 v disertační práci Roye Fieldinga, zkratka z Representional State Transfer

Více

Ope p r e a r čn č í s ys y té t m é y y Windo d w o s Stručný přehled

Ope p r e a r čn č í s ys y té t m é y y Windo d w o s Stručný přehled Windows 2008 R2 - úvod Jan Žák Operační systémy Windows Stručný přehled Klientské OS Windows 95, 98, ME Windows NT Windows 2000 Windows XP Windows Vista Windows 7 Windows CE, Windows Mobile Windows Phone

Více

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Microsoft SharePoint Portal Server 2003. Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Microsoft SharePoint Portal Server 2003 Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR Přehled Země: Česká republika Odvětví: Velkoobchod Profil zákazníka

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

Microsoft Sync Framework. Jiří Činčura blog.cincura.net

Microsoft Sync Framework. Jiří Činčura blog.cincura.net Microsoft Sync Framework Jiří Činčura jiri@x2develop.com blog.cincura.net Motivace Mnoho pokusů Stejné body ztroskotání Jednostranná řešení neobecné Topologie Datové typy Motivace Co je nejdůležitější

Více

Úvod do Web Services

Úvod do Web Services Úvod do Web Services Základy webových služeb a jejich implementace na platformě OS/2 Jarda Kačer jarda@kacer.biz Český Warpstock 2008 Brno, 20.-21.9.2008 Co je to webová služba? Část business logiky přístupná

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

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

Seznámení s prostředím dot.net Framework

Seznámení s prostředím dot.net Framework Základy programování v jazyce C# Seznámení s prostředím dot.net Framework PL-Prostředí dot.net - NET Framework Je základním stavebním prvkem, na kterém lze vytvářet software. Jeho součásti a jádro je založené

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

IBM Tivoli Storage Manager 6.2 a IBM Tivoli Storage Manager FastBack 6.1.1

IBM Tivoli Storage Manager 6.2 a IBM Tivoli Storage Manager FastBack 6.1.1 IBM Tivoli Storage Manager 6.2 a IBM Tivoli Storage Manager FastBack 6.1.1 Reporting a Monitoring Ondřej Bláha CEE+R CoP Team / Tivoli Storage Team Leader Září 2010 2010 IBM Corporation TSM 6: Reporting

Více

UDS for ELO. Univerzální datové rozhraní. >> UDS - Universal Data Source

UDS for ELO. Univerzální datové rozhraní. >> UDS - Universal Data Source Univerzální datové rozhraní UDS for ELO UDS pro ELO je univerzální datové rozhraní, schopné napojit systém pro archivaci a správu dokumentů ELO na libovolný datový zdroj a to bez nutnosti programování.

Více

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek Prezentace aplikace Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek Osnova Úvod Programovací jazyk - PHP Etapy vývoje Funkce aplikace Co SW umí Na čem se pracuje Vize do budoucna Úvod Úvod Inspirováno

Více

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul... Obsah 1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW... 1 1.1 Databázový server... 1 1.2 Webový server... 1 1.3 Stanice pro servisní modul... 1 1.4 Uživatelské stanice... 1 1.5 Monitorované počítače...

Více

Microsoft Azure Workshop

Microsoft Azure Workshop Miroslav Holec Developer Evangelist Microsoft MVP: Microsoft Azure, MCSD Microsoft Student Partner Lead miroslavholec.cz @miroslavholec Microsoft Azure Workshop Software Engineer HAVIT, s.r.o. Agenda ODKAZY

Více

Statistica, kdo je kdo?

Statistica, kdo je kdo? Statistica, kdo je kdo? Newsletter Statistica ACADEMY Téma: Typy instalací Typ článku: Teorie Někteří z vás používají univerzitní licence, někteří síťové, podnikové atd. V tomto článku Vám představíme,

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

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13 Obsah Úvodem 9 1. Úvod do Ajaxu 11 Jak Ajax funguje? 13 Popis 13 Ukázky 13 Jaké jsou možnosti tvorby interaktivních webových aplikací? 15 Co je třeba znát? 16 Jak fungují technologie Ajaxu 16 Jak funguje

Více

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída: DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP Maturitní projekt Vypracoval: Denis Ptáček Třída: 4B Rok: 2014/2015 Obsah 1. Použité nástroje... 3 1.1 NetBeans

Více

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

C# - Databáze úvod, ADO.NET. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

C# - Databáze úvod, ADO.NET. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí C# - Databáze úvod, ADO.NET Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Co je to databáze? Databáze je určitá uspořádaná množina informací

Více

MIS. Manažerský informační systém. pro. Ekonomický informační systém EIS JASU CS. Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 110 00 Praha 1

MIS. Manažerský informační systém. pro. Ekonomický informační systém EIS JASU CS. Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 110 00 Praha 1 MIS Manažerský informační systém pro Ekonomický informační systém EIS JASU CS Dodavatel: MÚZO Praha s.r.o. Politických vězňů 15 110 00 Praha 1 Poslední aktualizace dne 5.8.2014 MÚZO Praha s.r.o. je certifikováno

Více

Úvod. Klíčové vlastnosti. Jednoduchá obsluha

Úvod. Klíčové vlastnosti. Jednoduchá obsluha REQUESTOR DATASHEET Úvod Requestor Service Desk poskytuje kompletní řešení pro správu interních i externích požadavků, které přicházejí do organizace libovolnou cestou. Produkt je zaměřen na vytvoření

Více

Prezentace CRMplus. Téma: CRMplus jako nástroj pro kontrolu a vyhodnocení rozpracovanosti dílů na zakázkách

Prezentace CRMplus. Téma: CRMplus jako nástroj pro kontrolu a vyhodnocení rozpracovanosti dílů na zakázkách Prezentace CRMplus Téma: CRMplus jako nástroj pro kontrolu a vyhodnocení rozpracovanosti dílů na zakázkách Obsah prezentace Představení společnosti Technodat Develop, s.r.o. CRMplus základní charakteristika

Více

Postup přechodu na podporované prostředí. Přechod aplikace BankKlient na nový operační systém formou reinstalace ze zálohy

Postup přechodu na podporované prostředí. Přechod aplikace BankKlient na nový operační systém formou reinstalace ze zálohy Postup přechodu na podporované prostředí Přechod aplikace BankKlient na nový operační systém formou reinstalace ze zálohy Obsah Zálohování BankKlienta... 3 Přihlášení do BankKlienta... 3 Kontrola verze

Více

ProjectWise V8 XM Edition

ProjectWise V8 XM Edition . ProjectWise V8 XM Edition ProjectWise V8 XM Edition Evoluční rozšíření, nikoliv revoluce Hlavní témata XM Edition projekty podpora projektového přístupu, šablony projektů workspaces podpora pracovních

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

Nápověda k aplikaci EA Script Engine

Nápověda k aplikaci EA Script Engine Nápověda k aplikaci EA Script Engine Object Consulting s.r.o. 2006 Obsah Nápověda k aplikaci EA Script Engine...1 1. Co je EA Script Engine...2 2. Důležité upozornění pro uživatele aplikace EA Script Engine...3

Více

Microsoft Office 2003 Souhrnný technický dokument white paper

Microsoft Office 2003 Souhrnný technický dokument white paper Microsoft Office 2003 Souhrnný technický dokument white paper Přehled inteligentních klientských aplikací založených na sadě Microsoft Office 2003 System Publikováno: Duben 2003 Shrnutí: Inteligentní klienti

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

ZÁLOHA A OBNOVA ABRA GEN

ZÁLOHA A OBNOVA ABRA GEN ABRA Software a.s. Jeremiášova 1422/7b 155 00 Praha 13 IČ 25097563 DIČ: CZ25097563 Zaps. v OR u Městského soudu v Praze, odd. B, vložka 4475 ZÁLOHA A OBNOVA ABRA GEN DB MS SQL Datum: 3. prosince 2018 Vypracoval:

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

SharePoint 2010 produktové portfolio a licencování

SharePoint 2010 produktové portfolio a licencování SharePoint 2010 produktové portfolio a licencování Kamil Juřík SharePoint MVP Lead Consultant & Platform Architect Kamil.Jurik@ProSharePoint.cz Systémové požadavky software Aneb co potřebujeme? 64-bit

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

Reporting a Monitoring

Reporting a Monitoring Reporting a Monitoring IBM Tivoli Storage Manager 6.3 a IBM Tivoli Storage Manager FastBack 6.1.5 Ondřej Bláha CEE+R CoP Team / Tivoli Storage Team Leader 2010 IBM Corporation Administrátorské rozhraní

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

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13 Obsah Úvod 11 Platforma.NET 11.NET Framework 11 Visual Basic.NET 12 1 Základní principy a syntaxe 13 Typový systém 13 Hodnotové typy 13 Struktury 15 Výčtové typy 15 Referenční typy 15 Konstanty 16 Deklarace

Více

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ ÚVOD Technologie elastické konformní transformace rastrových obrazů je realizována v rámci webové aplikace NKT. Tato webová aplikace provádí

Více

Jakub Šesták. http://www.cesnet.cz/services/data-storage/?lang=en ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY

Jakub Šesták. http://www.cesnet.cz/services/data-storage/?lang=en ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Datové služby sdružení CESNET http://www.cesnet.cz/services/data-storage/?lang=en ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY Jakub Šesták 5. 12. 2014 1. ročník navazujícího

Více

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U P R O G R A M O V É V Y B A V E N Í Studijní obor: 18-20-M/01 Informační technologie Školní

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

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části

Více

Tabulka Nabídková cena za předmět plnění *uchazeč vyplní cenu za celý kurz nebo cenu za 1 účastníka dle zadávací dokumentace a nabídky uchazeče

Tabulka Nabídková cena za předmět plnění *uchazeč vyplní cenu za celý kurz nebo cenu za 1 účastníka dle zadávací dokumentace a nabídky uchazeče Příloha č. 3 k č.j. : MV-145067-6/VZ-2013 Počet listů: 12 Tabulka Nabídková cena za předmět plnění *uchazeč vyplní cenu za celý nebo cenu za 1 dle zadávací dokumentace a nabídky uchazeče Část 1 pro administrátory

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

Novinky ve Visual Studio 2010. Tomáš Kroupa Tomas.Kroupa@hotmail.com

Novinky ve Visual Studio 2010. Tomáš Kroupa Tomas.Kroupa@hotmail.com Novinky ve Visual Studio 2010 Tomáš Kroupa Tomas.Kroupa@hotmail.com O čem si dnes řekneme Visual studio 2010 (beta 2) Jazyk C# 4.0 ASP.NET 4.0.NET 4.0 Visual Studio 2010 Beta 2 Jak získat Testovací verze

Více

Komponentový návrh SW

Komponentový návrh SW Komponentový návrh SW Komponentový návrh SW Komponenty jsou kompletně specifikované pomocí interface Jejich funkčnost je nezávislá na programovacím jazyku a mohou být integrované do toho samého systému

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

Allegro framework. Podstatné vlastnosti. Allegro Business Solution Framework

Allegro framework. Podstatné vlastnosti. Allegro Business Solution Framework Allegro framework Všechny Allegro produkty jsou postaveny na společné vývojové platformě Allegro Framework. Jedná se o programové a uživatelské rozhraní, které jsme vytvořili s cílem získat společnou webovou

Více

Obsah OLAP A ESO9... 3

Obsah OLAP A ESO9... 3 Zpracoval: Tomáš Urych U Mlýna 2305/22, 141 Praha 4 Záběhlice Dne: 27.6.2008 tel.: +420 585 203 370-2 e-mail: info@eso9.cz Revize: Havlena Stanislav www.eso9.cz Dne: 1.7.2011 Obsah 1. OLAP A ESO9... 3

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu StatSoft Typy souborů ve STATISTICA Tento článek poslouží jako přehled hlavních typů souborů v programu STATISTICA, ukáže Vám jejich možnosti a tím Vám dovolí využívat program efektivněji. Jistě jste již

Více

Wonderware Information Server 4.0 Co je nového

Wonderware Information Server 4.0 Co je nového Wonderware Information Server 4.0 Co je nového Pavel Průša Pantek (CS) s.r.o. Strana 2 Úvod Wonderware Information Server je výrobní analytický a reportní informační portál pro publikaci výrobních dat

Více

Příprava k certifikaci 70-680, TS: Windows 7, Configuring

Příprava k certifikaci 70-680, TS: Windows 7, Configuring Příprava k certifikaci 70-680, TS: Windows 7, Configuring Kurz umožní studentům připravit se k certifikaci 70-680. Ve školení se studenti seznámí Instalace Windows 7 - Instalace, upgrade a migrace Windows

Více

POŽADAVKY NA INSTALACI

POŽADAVKY NA INSTALACI DATAPOINT POŽADAVKY NA INSTALACI Verze 1.0 Status: Rozpracováno Konica Minolta BCZ Jana Babáčková OBSAH OBSAH... 2 1. ÚVOD... 2 2. Hardwarové požadavky, operační systém... 3 3. SharePoint... 6 4. servisní

Více

Statistica Enterprise

Statistica Enterprise Statistica Enterprise díl první Newsletter Statistica ACADEMY Téma: Enterprise, možnosti software Typ článku: Příklad V starším článku jsme si představili jednotlivé typy licencí softwaru Statistica. V

Více

CYCLOPE PRINT MANAGEMENT SOFTWARE- UŽIVATELSKÁ PŘÍRUČKA

CYCLOPE PRINT MANAGEMENT SOFTWARE- UŽIVATELSKÁ PŘÍRUČKA CYCLOPE PRINT MANAGEMENT SOFTWARE- UŽIVATELSKÁ PŘÍRUČKA Obsah Cyclope Print Management Software- uživatelská příručka... 1 1. Přehled produktu... 2 2. Stručný popis produtku CPMS... 2 2.1. Stažení CPMS...

Více

Poznámky k verzi Remote support platform 3.1

Poznámky k verzi Remote support platform 3.1 What's New Verze dokumentu: 1.0 2014-05-09 Verze dokumentu Následující tabulka poskytuje přehled nejdůležitějších změn dokumentu. Verze Datum Popis 1.0 2014-05-09 První verze 2 All rights reserved. Verze

Více

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty

Více

Stěhování aplikací. Michal Tomek, Sales Manager

Stěhování aplikací. Michal Tomek, Sales Manager Stěhování aplikací Michal Tomek, Sales Manager Agenda Co míníme stěhováním Typické situace Role InterSystems Příležitosti Migrace Stěhování informačního systému Nová budova. HW a OS Získáme nové vlastnosti

Více

Redakční systém Joomla. Prokop Zelený

Redakční systém Joomla. Prokop Zelený Redakční systém Joomla Prokop Zelený 1 Co jsou to red. systémy? Redakční systémy (anglicky Content Management System - CMS) jsou webové aplikace používané pro snadnou správu obsahu stránek. Hlavním cílem

Více

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework úvod, historie, základy.net framework, programovací jazyky, vývojové prostředky Úvod strana 2 Cíl předmětu Seznámit se s vývojem aplikací

Více

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE WEBOWÉ STRÁNKY TŘÍD KAMIL POPELKA ZÁVĚREČNÁ MATURITNÍ PRÁCE BRNO 2011 Prohlášení Prohlašuji, že maturitní práce je mým původním autorským dílem, které

Více

Téma Školitel Počet dní Moderní principy řízení výrobního podniku

Téma Školitel Počet dní Moderní principy řízení výrobního podniku Katalog školení QAD Školení probíhají na adrese: Minerva ČR, Skálova 2490, Tábor začátek 9:00 hod do cca 16 hod Minerva ČR, AT Tower Pražákova 69, Brno začátek 9:00 hod do cca 16 hod cena 4000Kč/osoba,

Více

Střední odborná škola a Střední odborné učiliště, Hořovice

Střední odborná škola a Střední odborné učiliště, Hořovice Kód DUM : VY_32_INOVACE_DYN.1.02 Název materiálu: Anotace Autor Jazyk Očekávaný výstup 02 WAMP - prostředí pro běh dynamických stránek ve Windows DUM je pro žáky průvodcem instalací běhového prostředí

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

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

Michal Krátký, Miroslav Beneš

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

Více

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb: Technologie Marushka Základním konceptem technologie Marushka je použití jádra, které poskytuje přístup a jednotnou grafickou prezentaci geografických dat. Jádro je vyvíjeno na komponentním objektovém

Více

Internetový obchod ES Pohoda Web Revolution

Internetový obchod ES Pohoda Web Revolution Internetový obchod ES Pohoda Web Revolution Uživatelský manuál propojení na ES Pohoda Verze 1.0 Web Revolution s.r.o. 2010 Internetový obchod ES Pohoda Uživatelský manuál na propojení na ES Pohoda Přehled

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

Technologické postupy práce s aktovkou IS MPP

Technologické postupy práce s aktovkou IS MPP Technologické postupy práce s aktovkou 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 Technologické postupy práce

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

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008 KAPITOLA 1 Představení platformy Microsoft SQL Server 2008 Krátký pohled do historie SQL Serveru Souhrnný přehled novinek, které přináší verze SQL Server 2008 Optimalizovaná instalace a konfigurace Vynucení

Více

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U P R O G R A M O V É V Y B A V E N Í Studijní obor: 18-20-M/01 Informační technologie Školní

Více

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o.

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o. Nastavení klientských stanic pro webové aplikace PilsCom s.r.o. Obsah 1. Obecné informace... 1 2. Internetový prohlížeč... 1 3. Nastavení kompatibilního zobrazení... 1 4. Nastavení důvěryhodných serverů...

Více

Instalace a první spuštění Programu Job Abacus Pro

Instalace a první spuštění Programu Job Abacus Pro Instalace a první spuštění Programu Job Abacus Pro Pro chod programu je nutné mít nainstalované databázové úložiště, které je připraveno v instalačním balíčku GAMP, který si stáhnete z našich webových

Více

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz Vývoj moderních technologií při vyhledávání Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz INFORUM 2007: 13. konference o profesionálních informačních zdrojích Praha, 22. - 24.5. 2007 Abstrakt Vzhledem

Více

EPLAN Electric P8 2.7 s databázemi na SQL serveru

EPLAN Electric P8 2.7 s databázemi na SQL serveru EPLAN Electric P8 2.7 s databázemi na SQL serveru EPLAN Electric P8 2.7 k dispozici pouze ve verzi 64bit. EPLAN Electric P8 využívá k ukládání některých dat databáze. Artikly, překladový slovník 1 ) a

Více