České vysoké učení technické v Praze Fakulta elektrotechnická
Diplomová práce
Vytváření sestav na platformě .NET Framework 2.0 Lukáš Matyska
Vedoucí práce: Ing. Jan Šotola Studijní program: Elektrotechnika a informatika strukturovaný magisterský Obor: Informatika a výpočetní technika leden 2007
4
Prohlášení Prohlašuji, že jsem tuto práci vypracoval samostatně za použití níže citovaných pramenů. Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne Lukáš Matyska
5
6
Abstract One of the methods to present saved data to the user is making the reports. This text is focused on tools for creating them using Microsoft .NET Framework 2.0 platform and Microsoft SQL Server 2005 database platform. Text describes and compares Microsoft Reporting Services and Crystal Reports XI tools. In the first part problems of reports are introduced and some basic terms are defined. In the second part basic metrics are defined and forementioned products are compared from a view of their architecture, work effectiveness and demand factor of integration into existing projects developed on three-tier architecture.
Abstrakt Jednou z metod, jak prezentovat uložená data uživateli, je vytváření sestav. Tento text je zaměřen na nástroje pro jejich tvorbu na platformě Microsoft .NET Framework 2.0 a databázové platformě Microsoft SQL Server 2005. Text popisuje a srovnává nástroje Microsoft Reporting Services a Crystal Reports XI. První část textu seznamuje čtenáře s problematikou reportů a uvádí definice použitých pojmů. Část druhá definuje srovnávací metriky a zmíněné produkty navzájem porovnává z hlediska architektury, efektivity práce a náročnosti začlenění do stávajících projektů vyvíjených na třívrstvé architektuře.
7
8
Obsah 1
ÚVOD......................................................................................................................11
1.1
Cíl práce........................................................................................................................................................11
1.2
Slovo úvodem................................................................................................................................................12
2 2.1
DEFINICE POJMŮ..................................................................................................13 Sestava (Report) ...........................................................................................................................................13
2.2 Report Server ...............................................................................................................................................13 2.2.1 Procesor sestav (Report Processor) ...........................................................................................................14 2.2.2 Jednotka pro práci s daty ...........................................................................................................................15 2.2.3 Jednotka pro vykreslování.........................................................................................................................16 2.2.4 Procesor pro plánování a doručování sestav..............................................................................................16 2.2.5 Programové rozhraní .................................................................................................................................16 2.3
Reportovací služby (Reporting Services) ...................................................................................................16
2.4
Snímek sestavy (Report Snapshot) .............................................................................................................17
2.5 Třívrstvá architektura .................................................................................................................................18 2.5.1 Databázová vrstva .....................................................................................................................................18 2.5.2 Aplikační vrstva ........................................................................................................................................19 2.5.3 Klientská vrstva.........................................................................................................................................19
3
SROVNÁVACÍ METRIKY .......................................................................................20
3.1
Metriky srovnání architektury ...................................................................................................................20
3.2
Metriky srovnání vývojového prostředí .....................................................................................................21
3.3
Metriky srovnání nároků na klienta...........................................................................................................21
3.4
Metriky srovnání připojení k datovému zdroji .........................................................................................21
3.5
Metriky srovnání formátů výstupu sestav .................................................................................................21
3.6
Metriky srovnání integrace do ASP ...........................................................................................................22
3.7
Metriky srovnání WebForms a WinForms................................................................................................22
3.8
Metriky srovnání licencování a zavedení do provozu ...............................................................................22
4
SROVNÁNÍ NÁSTROJŮ.........................................................................................23
4.1 Architektura .................................................................................................................................................23 4.1.1 Architektura reportovacích služeb.............................................................................................................23
9
4.1.2 4.1.3 4.1.4 4.1.5
Životní cyklus sestavy .............................................................................................................................. 25 Formát souboru sestavy ............................................................................................................................ 26 Generování sestav..................................................................................................................................... 26 Srovnání architektury ............................................................................................................................... 28
4.2 Vývojové prostředí ...................................................................................................................................... 28 4.2.1 MS Report Builder.................................................................................................................................... 28 4.2.2 MS Report Designer ................................................................................................................................. 30 4.2.3 Crystal Report Designer ........................................................................................................................... 32 4.2.4 Srovnání vývojových prostředí................................................................................................................. 33 4.3
Nároky na klienta ........................................................................................................................................ 34
4.4
Připojení k datovému zdroji....................................................................................................................... 35
4.5
Formáty výstupu sestav .............................................................................................................................. 36
4.6
Integrace sestav do ASP.............................................................................................................................. 37
4.7
Sestavy pro WebForms a WinForms......................................................................................................... 38
4.8 Licencování a zavedení do provozu ........................................................................................................... 39 4.8.1 Licence Server CAL ................................................................................................................................. 39 4.8.2 Procesorová licence .................................................................................................................................. 39 4.8.3 Cenová kalkulace MS SSRS..................................................................................................................... 40 4.8.4 Cenová kalkulace BO CRXI..................................................................................................................... 41 4.8.5 Zavedení do provozu ................................................................................................................................ 41 4.8.6 Srovnání licencování a zavedení do provozu............................................................................................ 42
5
ZÁVĚR ................................................................................................................... 43
5.1
Výsledky srovnání ....................................................................................................................................... 43
5.2
Zhodnocení splněných cílů.......................................................................................................................... 45
6
SEZNAM LITERATURY......................................................................................... 46
SEZNAM POUŽITÝCH ZKRATEK ................................................................................ 48 SEZNAM OBRÁZKŮ A TABULEK ............................................................................... 49 OBSAH PŘILOŽENÉHO CD......................................................................................... 50
10
1 Úvod 1.1 Cíl práce Cílem této diplomové práce je seznámit čtenáře s architekturou, možnostmi a rozdíly nástrojů pro tvorbu a prezentaci výstupních sestav na platformě Microsoft .NET Framework a databázové platformě Microsoft SQL Server 2005. Zaměřuje se na nástroje Microsoft SQL Server Reporting Services (MS SSRS) a Business Objects Crystal Reports XI (BO CRXI). Při srovnání porovnává tyto body: • Architektura – architektura reportovacích služeb, postup celého procesu od vytvoření sestavy až po její prezentaci, formát souboru sestavy, jak se sestavy generují v MS SSRS a jak v BO CRXI • Vývojové prostředí – nároky na programové zajištění pro tvorbu sestav, uživatelská přívětivost grafického návrhu • Nároky na klienta – jaké programové vybavení potřebuje koncový uživatel, aby mohl sestavy prohlížet • Připojení k datovému zdroji – formáty a rozhraní pro načítání dat, které poskytují oba nástroje • Formáty výstupu sestav – do jakých formátů lze výsledné sestavy exportovat • Integrace sestav do ASP – jak se dají sestavy začleňovat do ASP stránek, jak náročné je přizpůsobit sestavy již hotovým ASP stránkám, do kterých se vkládají • WebForms a WinForms – rozdíly mezi sestavami pro web a pro formuláře • Licencování a zavedení do provozu – co je potřeba na provoz sestav a jaké jsou k tomu nutné licence, kolik stojí nástroje pro vývoj
11
1.2 Slovo úvodem V dnešní době rozvinutých informačních technologií, kdy má člověk téměř neomezený přístup k informacím, patří k prioritním požadavkům uživatele, aby byly informace přehledně uspořádány a manipulace s nimi byla co možná nejrychlejší a nejjednodušší. Jak uvádí Lacko [1] 65 až 80 % běžných uživatelů vyžaduje informace zpracované ve formě sestav viz. Obr. 1.2—1.
Obr. 1.2—1 Procentuální zastoupení uživatelů vzhledem k využití jednotlivých Business Inteligence technologií
Máme-li informace uloženy například v relační databázi, jsou logicky uspořádány, můžeme je snadno udržovat a databáze nám poskytuje kontrolu nad jejich konzistencí. Formát, v jakém jsou dotazovacím jazykem vráceny, však není vhodný k jejich prezentaci. Navíc si lze těžko představit, že našim zákazníkům či partnerům umožníme přistupovat k celým tabulkám, ve kterých se mohou vyskytovat informace, které nechceme nebo nesmíme poskytovat. Ani pro naše vlastní rozhodování většinou nepotřebujeme všechny informace, ale pouze ty významné a ty, které nás zajímají. Pokud jich je velké množství, požadujeme, aby byly v seskupené formě, sumarizované nebo vyjádřené průměrnými hodnotami. Pokud chceme, aby měl klient k našim informacím stálý přístup a jejich zobrazení si mohl interaktivně měnit, využijeme pro prezentaci dat jako komunikační medium internet. Sestavy můžeme tvořit ručně v ASP stránkách na třívrstvé architektuře. Tento přístup umožňuje vytvářet sestavy přesně podle klientových představ, je ale velmi pracný a tedy i nákladný. Každou tabulku, vstupní pole, navázání dat a událostí ovládacích prvků nebo třeba export musíme zadávat ručně. Jednodušším řešením je využití moderních technologií, a to reportovacích služeb. Ty poskytují vše potřebné pro vytváření, správu a doručování sestav se současným zachováním požadavků na bezpečnost.
12
2 Definice pojmů 2.1 Sestava (Report) Microsoft v odkazu [8] uvádí takovouto definici sestavy, cituji: „Sestava je objekt, který vypisuje, formátuje a organizuje informace podle zadaných kritérií. Příkladem sestav jsou prodejní souhrny, telefonní seznam či emailový adresář.“ Další definici sestavy může čtenář nalézt například na serveru Micro2000 [10] a též v online rejstříku výrazů [7]. Podle uvedených pramenů a s přihlédnutím k textu z úvodní kapitoly můžeme uvést tuto definici sestavy: Definice – Sestava je souhrn informací uspořádaných a formátovaných dle zadaných kritérií, připravených k prezentaci a to v takovém rozsahu, který je pro daný účel žádoucí. Definice – Interaktivní sestava je sestava, jejíž zobrazované informace lze filtrovat a uspořádat dle definovaných parametrů, které může uživatel měnit. Sestavou se však někdy bude v textu zamýšlet její definice nebo též soubor definice sestavy, zkráceně soubor sestavy. Soubor sestavy definuje jak bude výsledná sestava zobrazena a k tomu se používá několik základních pojmů. Jednotlivý řádek zobrazené informace se nazývá detail. Informace v detailech se mohou seskupovat podle určených pravidel a pak detaily obklopuje hlavička a patka seskupení, které se opakují vždy na začátku a konci každého seskupení. Stejně tak se na začátku a konci každé stránky se opakují hlavička a patka stránky. Sestava může mít ještě sama uvedenu svou hlavičku a patku.
2.2 Report Server1 Report server je služba webového serveru, která poskytuje nejvhodnější prostředky pro správu, plánování a doručování sestav, především však umožňuje prezentovat sestavy a exportovat je do různých výstupních formátů. Report Server také umožňuje online přístup k sestavám ve formě dynamických webových stránek jako odpověď na klientův dotaz. 1
Širší definice může čtenář nalézt například v odkazech [7], [9], [11] nebo [12]
13
Bez větší újmy na obecnosti, text seznámí čtenáře detailně s report serverem, popisem řešení od firmy Microsoft. Diagram MS Report Serveru s nejbližším okolím je na Obr. 2.2—1.
Obr. 2.2—1 Diagram Report Serveru s nejbližším okolím1
2.2.1 Procesor sestav (Report Processor) Procesor sestav je srdcem celého report serveru. Pracuje v několika krocích. Nejprve získá soubor definice sestavy z databáze report serveru. Inicializuje parametry a proměnné ve výrazech sestavy a provádí další předběžné akce, které připraví definici sestavy pro sloučení s daty. V dalším kroku procesor sestav zažádá jednotku pro práci s daty o požadované uložené informace a připravenou definici sestavy se získanými daty zkombinuje. Kombinování se provádí na základě definice zobrazení, která je uložena v souboru sestavy. Data se postupně načítají po řádcích z každé sekce. Sekcí se rozumí hlavička a patka sestavy, hlavička a patka seskupení a jednotlivé detaily. V tomto kroku se též aplikují agregační funkce a výrazy. Pokud byl přijat požadavek například na generování sestavy za běhu, procesor sestav zašle zkombinovaný soubor sestavy a datový zdroj do jednotky pro vykreslování, aby sestavu přetransformovala do použitelné formy 1
Obrázek je převzat z MS SSRS Books Online [5]
14
jakou je například HTML, PDF nebo XML. V tomto kroku jednotka pro vykreslování očísluje stránky a doplní hlavičky a patky stránek, neboť informace o stránkování nebyly v předešlých krocích známy. Výsledek nakonec vrátí jako odpověď. Stručné scénáře akcí jsou popsány v Tab. 2.2—1. Tab. 2.2—1 Scénáře akcí procesoru sestav
Požadavek Uživatel si vyžádá sestavu generovanou za běhu
Uživatel vytváří snímek nebo procesor pro plánování a doručování spouští generování snímku Uživatel žádá o snímek nebo procesor pro plánování a doručování rozesílá snímky
Akce – report procesor získá soubor definice sestavy – požádá o data sestavy jednotku pro práci s daty – zkombinuje definici sestavy s daty – kombinaci zašle jednotce pro vykreslování – výsledek vrátí jako odpověď – report procesor získá soubor definice sestavy – požádá o data sestavy jednotku pro práci s daty – zkombinuje definici sestavy s daty – výsledek uloží do databáze report serveru – report procesor získá uložený snímek – snímek zašle jednotce pro vykreslování – výsledek vrátí jako odpověď
2.2.2 Jednotka pro práci s daty Jednotka pro práci s daty zprostředkovává procesoru sestav informace z datového zdroje v podobě množiny řádků požadované výstupní tabulky. Pracuje v posloupnosti následujících kroků: •
Otevře připojení k datovému zdroji
•
Analyzuje dotaz na data a zjistí seznam požadovaných sloupců
•
Spustí dotaz nad datovým zdrojem a dostane množinu řádek
•
Pokud je to nutné, přidá k množině řádků parametry
•
Iteruje postupně přes celou množinu řádků a vrací získaná data
Každá jednotka pro práci s daty je specifická pro typ datového zdroje. Přehled všech podporovaných typů datového zdroje obou nástrojů je detailně uveden v přehledu kapitoly 4.4 – Připojení k datovému zdroji na str. 35.
15
2.2.3 Jednotka pro vykreslování Úkolem jednotky pro vykreslování je na požádání procesoru sestav převést poskytnutá data na grafickou reprezentaci, odpovídající definici zobrazení. Definice zobrazení je v souboru sestavy, který byl jednotce pro vykreslování předán procesorem sestav. Formát vykreslení je specifický pro typ zařízení, kterému má být sestava doručena. Výčet všech podporovaných formátů obou nástrojů je detailně srovnáván v kapitole 4.5 – Formáty výstupu sestav na str. 36. Vývojář si však díky programovému rozhraní může navrhnout a naprogramovat vlastní formát zobrazení, a proto množství výstupní formát je prakticky neomezené.
2.2.4 Procesor pro plánování a doručování sestav Procesor pro plánování a doručování sestav poskytuje podporu pro plánování a řídí práci jednotky pro doručování, která se používá ke vkládání sestav do e-mail schránek nebo sdílených umístění.
2.2.5 Programové rozhraní Programové rozhraní zpracovává všechny požadavky zaslané report serveru. K získávání požadavků používá IIS. Ty přicházejí ve formě SOAP nebo http požadavku.
2.3 Reportovací služby (Reporting Services) Dle Microsoft [4], [5] a [6] jsou reportovací služby serverově založená platforma, poskytující kompletní řešení pro vytváření, správu a doručování papírových i interaktivních webových sestav. Vytvořené sestavy mohou být prezentovány a vzdáleně spravovány přes internet. MS SSRS i BO CRXI v sobě zahrnují konfigurační, administrační, prezentační nástroje a také aplikaci pro koncového uživatele, s jejíž pomocí lze vytvářet sestavy i bez zkušeností s programováním. Reportovací služby mají též své programové rozhraní pro snadnou integraci s jinými aplikacemi.
16
Obr. 2.3—1 Architektura MS SSRS1
Na Obr. 2.3—1 je znázorněn schématický diagram architektury MS SSRS. Detailní popis architektury pro oba nástroje je uveden v kapitole 4.1.1 Architektura reportovacích služeb na str. 23.
2.4 Snímek sestavy (Report Snapshot) Snímek sestavy, v tomto textu též jen snímek, je sestava obsahující definici svého zobrazení a množinu řádek získanou z dotazu od jednotky pro práci s daty. Snímek se neukládá ve vykreslené podobě, ale v surových datech. Při požadavku na vyzvednutí snímku, se pak snímek v závislosti na požadovaném formátu vykreslí. Vytváření snímků má tři výhody: •
Historie sestavy – Udržování všech uložených snímků v čase vytváří historii sestavy a ukazuje jak se data v průběhu času měnila.
•
Konzistence – Pokud se data sestavy často mění a je požadováno, aby přistupující uživatelé měli zobrazena stejná data, přístup generování reportu není možný. Pokud však všichni uživatelé uvidí jen poslední uložený snímek, konzistence je zaručena.
•
Výkon – Naplánováním generování snímků rozsáhlých sestav v době malého vytížení report serveru se ušetří výpočetní čas procesoru sestav ve špičce.
1
Obrázek je přejat ze stránky http://www.microsoft.com/sql/reporting/productinfo/RSA_F.gif , 18.1.2007
17
2.5 Třívrstvá architektura V třívrstvé architektuře1, jak název sám napovídá, je aplikace rovnoměrně rozdělena mezi klienta a server do tří navzájem oddělených úrovní, viz Obr. 2.5—1. Tento model dává aplikaci výhody sdílených aplikačních objektů, snadného spravování a rozšiřitelnosti. Každá vrstva obsluhuje vlastní část celkového výpočetního procesu a sousedním vrstvám poskytuje potřebné funkce.
Obr. 2.5—1 Model třívrstvé architektury2
2.5.1 Databázová vrstva Nejnižší vrstvou je databázová vrstva, která obstarává práci se samotnými daty. Databázový server zajišťuje bezpečné úložiště informací jak z hlediska ochrany přístupu a zabezpečení, tak z hlediska integrity dat. Dále databázová vrstva poskytuje prostředky pro rychlý přístup a práci s uloženými informacemi.
1 2
Více lze nalézt například na Dagblog [13] Obrázek je převzat z adresy http://img.microsoft.com/cze/casestudies/images/bmw_01_m.gif , 18.1.2007
18
2.5.2 Aplikační vrstva Střední vrstvou je aplikační vrstva, jež vytváří logiku celé aplikace. Jejím hlavním úkolem je poskytovat všechny potřebné funkce klientské vrstvě. Aplikační server nemusí být nutně na jiném stroji než je server databázový, ale právě možnost vzájemného oddělení dává tomuto modelu výhodu velké rozšiřitelnosti.
2.5.3 Klientská vrstva Poslední vrstvou je klientská vrstva, která poskytuje prezentační služby. Jejím dalším úkolem je umožnit klientům využívat všech služeb celého systému, které definuje aplikační vrstva. Jelikož aplikační logika je zprostředkována střední vrstvou, která je na výkonném serveru, klesají nároky na straně uživatele. Klientská vrstva je tedy tenký klient.
19
3 Srovnávací metriky Tato kapitola přehledně pohromadě definuje srovnávací metriky pro jednotlivé body vzájemného porovnání nástrojů MS SSRS a BO CRXI. Nadpis ve formátu 3.X Metriky srovnání abcde označuje jakého bodu srovnání se následující metriky budou týkat. Název metriky ve formátu 3.X–Y abcde je následován popisem, který metriku definuje. Ohodnocení porovnávaných veličin v dané metrice je pak v každé kapitole uvedeno samostatně. V ohodnocení platí přímá úměra ve vztahu s kladným názvem metriky. Tedy pokud si název metriky můžeme položit jako kladnou otázku, například Stabilita (Jakou má nástroj stabilitu?), pak čím vyšší má ohodnocení, tím je ve srovnání lepší. Naopak pokud si název metriky můžeme položit jako zápornou otázku, například Chybovost (Jakou má nástroj chybovost?), pak čím vyšší je ohodnocení, tím je nástroj ve srovnání horší. Stupnice má rozsah 0 – 5.
3.1 Metriky srovnání architektury Metrika 3.1—1 Možnost rozšíření služeb Srovnává možnosti dalšího rozšíření služeb. Bere v úvahu, zda je architektura modulární, jestli má programové rozhraní nebo připravený nástroj pro vložení rozšíření. Metrika 3.1—2 Efektivita generování sestav Srovnává efektivitu generování sestav z hlediska rychlosti generování sestavy při prvním dotazu, při dalších dotazech, při vyžádání snímku. Metrika 3.1—3 Požadavky na systémové zdroje Srovnává nástroje dle nároků na přiřazení systémových zdrojů, jako jsou požadavky na paměť, minimální konfigurace pro instalaci. Metrika 3.1—4 Množství podporovaných platforem Srovnává množství platforem, na které lze reportovací služby nainstalovat. Metrika 3.1—5 Vrstvy architektury Srovnává architekturu z hlediska modelu vrstev.
20
3.2 Metriky srovnání vývojového prostředí Metrika 3.2—1 Uživatelská přívětivost Srovnává možnosti při návrhu, intuitivnost práce, rozvržení pracovní plochy. Metrika 3.2—2 Stabilita Srovnává stability reportovacích služeb a vývojového prostředí. Metrika 3.2—3 Chybovost Srovnává závažnost a množství chyb. Metrika 3.2—4 Nároky na systémové zdroje Srovnává nástroje dle požadavků na přiřazení systémových zdrojů, jako jsou požadavky na paměť, minimální konfigurace pro instalaci.
3.3 Metriky srovnání nároků na klienta Metrika 3.3—1 Cena Srovnává náklady na pořízení nutného software před instalací. Metrika 3.3—2 Zkušenosti klienta Srovnává požadavky na zkušenost klienta pro práci se sestavami.
3.4 Metriky srovnání připojení k datovému zdroji Metrika 3.4—1 Rozšířenost typu datového zdroje Srovnává dle odhadu kolik uživatelů a programů daný datový zdroj podporuje a používá. Metrika 3.4—2 Jiná programová podpora pro práci s datovým zdrojem Srovnává počet a možnosti dalšího software pro práci s daným datovým zdrojem. Metrika 3.4—3 Otevřenost formátu datového zdroje Srovnává zda je formát daného datového zdroje otevřený. Metrika 3.4—4 Odolnost vůči chybám v datovém zdroji Srovnává možnosti ignorování chyb v datovém zdroji.
3.5 Metriky srovnání formátů výstupu sestav Metrika 3.5—1 Rozšířenost výstupního formátu Srovnává dle odhadu, kolik uživatelů a programů daný výstupní formát podporuje a využívá.
21
Metrika 3.5—2 Jiná programová podpora pro práci s výstupním formátem Srovnává počet a možnosti dalšího software pro práci s daným výstupním formátem. Metrika 3.5—3 Otevřenost výstupního formátu Srovnává, zda je daný výstupní formát otevřeným formátem. Metrika 3.5—4 Odolnost vůči chybám ve výstupním formátu Srovnává možnosti ignorování chyb ve výstupním formátu.
3.6 Metriky srovnání integrace do ASP Metrika 3.6—1 Snadnost použití Srovnává snadnost a intuitivnost práce s komponentami pro integraci do ASP stránek. Metrika 3.6—2 Grafické přizpůsobení stránce Srovnává možnosti grafického přizpůsobení vložené sestavy ASP stránce.
3.7 Metriky srovnání WebForms a WinForms Metrika 3.7—1 Snadnost použití Srovnává, zda je snadnější integrovat sestavy do WebForms nebo WinForms. Metrika 3.7—2 Grafické přizpůsobení formuláři Srovnává možnosti grafického přizpůsobení mezi WebForms a WinForms. Metrika 3.7—3 Požadavky na další zdroje Srovnává, zda WebForms nebo WinForms potřebují pro integraci poskytnout nějaké další zdroje.
3.8 Metriky srovnání licencování a zavedení do provozu Metrika 3.8—1 Náklady na licence Srovnává ceny licencí. Metrika 3.8—2 Detailní nastavitelnost Srovnává množství a možnosti individuálních nastavení reportovacích služeb. Metrika 3.8—3 Dostupnost dokumentace Srovnává rozsah dostupné dokumentace a úsilí vynaložené pro získání detailnějších informací, které v běžné dokumentaci nejsou.
22
4 Srovnání nástrojů 4.1 Architektura V této kapitole budou nástroje srovnávány z hlediska architektury. Text nejprve popisuje obecnou architekturu jednotlivých nástrojů a dále se zaměřuje na životní cyklus sestavy, formát souboru definice sestavy a nakonec její generování. Vždy je nejdříve popisován produkt MS SSRS, poté BO CRXI a nakonec je uvedena tabulka srovnání obou nástrojů. Takovýto formát mají všechny podkapitoly ze čtvrté kapitoly.
4.1.1 Architektura reportovacích služeb 4.1.1.1 Architektura MS SSRS MS SSRS mají několikavrstvou architekturu, viz Obr. 4.1—1. Spodní vrstvu tvoří Katalog SQL Serveru, což je databáze, kterou spravuje SQL Server. Report server tuto databázi využívá k ukládání definic reportů, snímků, adresářů, zabezpečení, metadat a podobně. Report server je jádrem celého systému reportovacích služeb a stará se o běh sestav. Jeho hlavním úkolem je na základě souboru definice sestavy vykreslit sestavu v požadovaném formátu. Obstarává však také správný chod vytváření snímků a řídí proces plánování a doručování sestav. Funkce a podrobná architektura report serveru jsou popsány v kapitole 2.2 – Report Server na str. 13.
Obr. 4.1—1 Architektura MS SSRS1
1
Podklady pro obrázek může čtenář nalézt v [1] a [6]
23
Nad report serverem se nachází vrstva aplikačních rozhraní – URL, WMI a rozhraní pro webové služby. K aplikačnímu rozhraní přistupují okolní aplikace. Na URL rozhraní přistupuje webový prohlížeč. Přes WMI rozhraní spravujeme reportovací služby a na rozhraní pro webové služby přistupují všechny ostatní aplikace. Minimální požadavky na hardware jsou uvedeny v Tab. 4.1—1. Tab. 4.1—1 Minimální hardware požadavky pro MS SSRS
Komponenta Procesor Reportovací služby Report server MS .NET Framework 1.1 Report Designer Příklady a Books Online
Minimální požadavky Pentium II 500 MHz nebo vyšší 256 MB RAM (jen pro reportovací služby) 50 MB 100 MB 30 MB 145 MB
4.1.1.2 Architektura BO CRXI Architektura BO CRXI se skládá ze separovaných avšak navzájem vnitřně propojených vrstev, které jsou optimalizovány pro jejich specifické úkony. Její rozvržení ukazuje Obr. 4.1—2. Základní vrstvy tedy jsou – datová služba, služby platformy, služby pro vývojáře a klientská vrstva.
Obr. 4.1—2 Architektura CRXI a nástroje z jejího okolí1
1
Obrázek je převzat z technického přehledu [14]
24
Práci celého systému řídí server centrální správy (Central Management Server) zkráceně CMS, který je znázorněn na obrázku Obr. 4.1—3. CMS se skládá z množiny různých komponent a služeb, které jsou navzájem propojeny výkonnou webově založenou strukturou. CMS je odpovědný za údržbu databázových informací o celém systému. CMS též řídí přístup do centrální úložní databáze (repositury database), kde jsou uloženy aktuální fyzické dokumenty, informace o uživatelích, skupinách, zabezpečení a stavu celého systému. Minimální požadavky na hardware jsou uvedeny v Tab. 4.1—2.
Obr. 4.1—3 Server centrální správy (CMS)1
Tab. 4.1—2 Minimální hardware požadavky pro BO CRXI
Komponenta Procesor BO Enterprise XI BO Enterprise XI Performance Manager
Minimální požadavky Pentium III 700 MHz nebo vyšší 1GB RAM 5GB 1,5 GB
4.1.2 Životní cyklus sestavy Životní cyklus sestavy se odehrává ve třech fázích jak je vidět na obrázku Obr. 4.1—4. Začíná návrhem sestavy ve vývojovém prostředí, kde se definují datové zdroje, zobrazená pole, grafy a celkový vzhled sestavy. Po dokončení návrhu se sestava publikuje na Report Server a přechází do fáze údržby. V této fázi se dolaďují a spravují návrhy sestav, adresáře a datové zdroje. Report Server umožňuje sestavy generovat na požádání, ale také dokáže v určených dobách vytvářet snímky sestav. Klient pak nevidí v daný okamžik aktuální data, ale údaje, které byly zaznamenány v posledním snímku. Do fáze údržby se tedy zahrnuje i plánování sestav a správa 1
Obrázek je převzat z technického přehledu [14]
25
historických snímků. Celý cyklus tímto však nekončí. Výsledné sestavy mohou být doručeny pomocí různých doručovacích kanálů. Avšak vzhledem k možnosti kdykoli využít online přístupu, se sestava musí uchovávat stále aktuální a celý proces se tak vrací do fáze údržby. Životní cyklus sestavy je v obou nástrojích totožný.
Obr. 4.1—4 Životní cyklus sestavy
4.1.3 Formát souboru sestavy MS SSRS používají k uložení sestav speciálně pro tento případ vytvořený definiční jazyk RDL (Report Definition Language). Kód v jazyku RDL se zapisuje formou XML dokumentu. Výsledná sestava tedy může být vytvořena nebo později upravena jakýmkoli textovým editorem nebo některým nástrojem třetích stran, který dokáže RDL editovat. Ba co více, XML soubor sestavy může být dynamicky upravován přímo za běhu aplikace při vytváření sestavy. Ovšem takovéto úpravy vyžadují velmi pokročilou znalost RDL. Možnost úpravy XML souboru však představuje jisté bezpečnostní riziko, protože může snáze dojít k pozměnění obsahu souboru. BO CRXI používají k uložení souboru sestavy binární formát. Jednotlivé objekty sestavy jsou přístupné přes jejich API. Pro BO CRXI existuje několik nástrojů třetích stran poskytujících další rozšiřující funkce pro práci se sestavami.
4.1.4 Generování sestav 4.1.4.1 Generování sestav v SSRS Generování v SSRS se děje ve dvou fázích – výpočetní a vykreslovací. Výpočetní fázi provádí procesor sestav, viz. kapitola 2.2.1 – Procesor sestav (Report Processor) na str. 14, a vykreslovací fázi jednotka pro vykreslení, viz. kapitola 2.2.2 – Jednotka pro práci s daty na str. 15. Detailní popis generování sestav v SSRS je uveden v kapitole věnované report serveru 2.2 – Report
26
Server na str. 13. Pro ucelení představy o postupu generování sestavy v SSRS je zde uveden obrázek, viz. Obr. 4.1—5.
Obr. 4.1—5 Postup generování sestavy v SSRS1
4.1.4.2 Generování sestav v CRXI CRXI používají k vygenerování sestav algoritmus založený na třech průchodech. Průchod se provádí při čtení nebo manipulaci s daty. V závislosti na složitosti sestavy CRXI mohou udělat až tři průchody. Jednotlivé kroky jsou na obrázku Obr. 4.1—6.
Obr. 4.1—6 Postup průchodů při generování sestavy2
1 2
Zdroj http://msdn2.microsoft.com/en-us/library/Aa274415.report_execution(en-us,SQL.80).gif , 18.1.2007 Zdroj http://support.businessobjects.com/documentation/product_guides/download.asp? manual=boexir2/en/xir2_cr_usergde_en.pdf , 18.1.2007
27
4.1.5 Srovnání architektury
Metrika 3.1—2 Efektivita generování sestav Metrika 3.1—3 Požadavky na systémové zdroje
Metrika 3.1—4 Množství podporovaných platforem
Metrika 3.1—5 Vrstvy architektury
MS SSRS BO CRXI
Metrika 3.1—1 Možnost rozšíření služeb
Tab. 4.1—3 Srovnání architektury
5 5
5 5
1 3
5 5
3 5
4.2 Vývojové prostředí Jedním z důležitých požadavků klienta při vybírání produktu, do kterého chce investovat a ve kterém hodlá v budoucnu vyvíjet, je jistě požadavek na vývojové prostředí. Oba nástroje nabízejí přibližně stejnou šíři poskytovaných služeb a oba mají velmi podobné možnosti, proto při rozhodování o výběru celého nástroje klient sleduje přívětivost, možnosti a usnadnění vývojového prostředí, protože právě s ním bude nejvíce pracovat. Následující kapitoly stručně shrnují způsob práce a možnosti jednotlivých vývojových prostředí.
4.2.1 MS Report Builder MS SSRS poskytuje dva produkty pro tvorbu sestav. Jedním je Report Builder. Toto je nástroj integrovaný přímo do reportovacích služeb. Je provozován na Report Serveru a jde spustit přímo z jeho webového rozhraní. Je určen spíše pro manažery, analytiky a běžné uživatele, tedy takové, kteří nemusejí mít nutně zkušenosti s programováním. Právě tato cílová skupina určuje i způsob práce v tomto nástroji. V Report Builderu nepíše uživatel žádný kód, jen vybírá tabulky a jejich sloupce, které chce mít zobrazeny. K vybraným sloupcům se uživateli automaticky nabízí možné přidružené funkce, jako například průměrné a celkové součty, způsob řazení, filtrování či seskupování. Ukázka tvorby sestavy je na Obr. 4.2—1.
28
Obr. 4.2—1 Ukázka tvorby sestavy v nástroji Report Builder
Přístup k informacím v Report Builderu je řešen takzvaným modelem datového zdroje (Data source model). Oprávněný uživatel nejprve musí na Report Serveru vystavit definici datového zdroje a z ní pak udělat její model. Tomuto modelu se ve vlastnostech zabezpečení nastaví oprávnění pro skupiny či jednotlivé uživatele. Jelikož každá sestava vytvářená v Report Builderu musí vycházet z nějakého datového modelu, je tímto vyřešen problém neoprávněného přístupu uživatele k sestavě. Velkou výhodou tohoto produktu je, že výsledná sestava, v podobě dynamické webové stránky, je opravdu velmi interaktivní. Do záhlaví všech sloupců se přidají ovládací prvky pro sestupné a vzestupné řazení. Každý záznam sestavy je aktivní odkaz, který po kliknutí vynutí na Report Serveru generování nové sestavy za běhu, jež je detailem zvoleného záznamu. Oproti tomu nevýhodou je celková jednoduchost, která nepokrývá všechny požadavky pokročilých uživatelů. Ukázka výsledné interaktivní sestavy je na Obr. 4.2—2.
29
Obr. 4.2—2 Vytvořený interaktivní report prohlížený přímo v Report Builderu
4.2.2 MS Report Designer Nedostatky Report Builder eliminuje druhý produkt Report Designer, který umožňuje vývojářům tvořit sestavy přímo v MS VS .NET IDE a využívat jeho celé programové vybavení, neboť MS SSRS poskytují velké množství .NET komponent pro práci se sestavami. Pokud uživatel nemá MS VS .NET IDE, může využít vývojové prostředí SQL Server Business Inteligence Development Studio, které se s SQL Server 2005 může nainstalovat a má stejnou funkčnost jako MS VS 2005. Výhodou oproti Report Builder je možnost vytvoření specifických vlastností, ale za cenu toho, že se musí většina aktivních prvků vkládat a nastavovat ručně. Na uživatele tak klade větší nároky na znalosti, například i tím, že sestavy vytvořené v Report Designer si informace o datovém zdroji mohou nést uvnitř sebe i s konkrétním SQL dotazem. Vytváření sestavy by se dalo rozdělit do dvou fází – definování datového zdroje a vzhled sestavy. Tyto dvě části návrhu jsou odděleny do vlastních záložek Data a Layout, což vytváří hlavní rys produktu Report Designer. Při návrhu vzhledu sestavy se jednotlivé položky vkládají do objektu podobného tabulce. Výhodou je snadnost přidávání nových políček sestavy. Pokud potřebuje návrhář přidat nový sloupec, původní sloupce se posunou a vytvoří místo pro novou hodnotu. Tabulka však neumožňuje, aby se sloupce navzájem překrývali. SSRS dále umožňují všechny objekty v sestavě rozmísťovat libovolně po pracovní ploše, čili návrhář tak má přehled o 30
tom, jak výsledná sestava bude vypadat, aniž by se musel přepnout do zobrazení náhledu (Preview). Ukázka návrhu datového zdroje v záložce Data je vidět na Obr. 4.2—3 a návrh vzhledu v záložce Layout je vidět na Obr. 4.2—4.
Obr. 4.2—3 Návrh datového zdroje a SQL dotaz v Report Designeru
Obr. 4.2—4 Návrh rozvržení v Report Designeru
31
4.2.3 Crystal Report Designer BO přišli s podobnou strategií poskytování vývojového prostředí uživatelům. Instalace CRXI integruje vývojové prostředí jako součást VS .NET. Ti uživatelé, kteří VS .NET nemají nebo ho nechtějí spouštět, mají možnost sestavy vytvářet v samostatné aplikaci Crystal Report Designer, která je totožná se zásuvným modulem pro VS .NET. Oproti produktům MS má Crystal Report Designer jednu nespornou výhodu. Umí totiž navrhovat sestavy v zobrazení ukázky, kde má uživatel možnost pracovat nad reálnými nataženými daty. Všechny sestavy vytvořené v CRXI mají podobně jako sestavy vytvořené v Report Builder možnost aktivního odkazování na záznamy v sestavě, akorát v omezenější míře. V sestavách vytvořených v Report Builder může klient procházet záznamy neustále v uzavřených smyčkách a může se tak projít přes všechny záznamy v databázi. Přesněji řečeno ty záznamy, které jsou určeny datovým zdrojem. CRXI umožňují aktivně procházet jen záznamy, které jsou seskupené. Klient tedy po omezeném množství kroků dojde do stavu, kdy sestava nemá již žádnou aktivní položku. CRXI mají však navíc jednu vlastnost. Při procházení aktivních odkazů se nové stránky otevírají v záložkách, takže se klient může kdykoli vrátit na libovolný krok v minulosti.
Obr. 4.2—5 Návrh sestavy v Crystal Report Designer – návrhové zobrazení
32
Na rozdíl od SSRS, se položky v návrhu sestavy nevkládají do tabulky, ale libovolně v rámci sekcí, kde budou zobrazeny. Sekce jsou detail, hlavička a patka seskupení atd. To umožňuje, aby výsledná sestava vypadala opravdu libovolně. Ukázka práce se sestavou v návrhovém zobrazení je na Obr. 4.2—5 a v zobrazení náhledu je na Obr. 4.2—6.
Obr. 4.2—6 Návrh sestavy v Crystal Report Designer – zobrazení náhledu s reálnými nataženými daty
4.2.4 Srovnání vývojových prostředí
MS SSRS BO CRXI
5 5
5 5
2 1
Metrika 3.2—4 Nároky na systémové zdroje
Metrika 3 2 2 Metrika 3.2—3 Chybovost
Metrika 3.2—1 Uživatelská přívětivost
Tab. 4.2—1 Srovnání vývojových prostředí
3 4 33
4.3 Nároky na klienta Sestavy mohou být klientovi prezentovány buď přes internet ve formě webové stránky nebo v rámci windows aplikace. Na aplikace WinForms jsou požadavky pro oba produkty totožné, a to mít nainstalovaný .NET Framework. Požadavky na webový prohlížeč ukazují Tab. 4.3—1 pro MS SSRS a Tab. 4.3—2 pro BO CRXI. Výsledek srovnání je uveden v Tab. 4.3—3. Tab. 4.3—1 Požadavky na prohlížeč klienta pro MS SSRS1
Funkcionalita Správce sestav
Požadavky MS IE 6.0 (SP1) , MS IE 5.5 (SP2), Skripty musejí být povoleny MS IE 6.0 (SP1) , MS IE 5.5 (SP2), Netscape 7.1, Skripty musejí být povoleny MS IE 5.01 (SP2), Netscape 4.78, Skripty nemusejí být povoleny
Sestavy se skripty ve formátu HTML 4.0
Sestavy bez skriptů ve formátu HTML 3.2
Tab. 4.3—2 Požadavky na prohlížeč klienta pro BO CRXI2
Funkcionalita Sestavy
Požadavky MS IE 6.0 (SP1) , MS IE 5.5 (SP2), Netscape 7.0, Netscape 6.2, Firefox 1.0.4
1 2
Metrika 3.3—2 Zkušenosti klienta
MS SSRS BO CRXI
Metrika 3.3—1 Cena
Tab. 4.3—3 Srovnání nároků na klienta
0 0
2 2
Zdroj http://msdn2.microsoft.com/en-us/library/aa256321(SQL.80).aspx , 18.1.2007 Zdroj support.businessobjects.com/communityCS/TechnicalPapers/ crs_xi_r2_supported_platforms_windows.pdf , 18.1.2007
34
4.4 Připojení k datovému zdroji Čtení informací z datových zdrojů provádí jednotka pro práci s daty viz. kapitola 2.2.2 – Jednotka pro práci s daty na str. 15. Výsledek srovnání připojení k datovému zdroji je uveden v Tab. 4.4—1.
Metrika 3.4—2 Jiná programová podpora pro práci s datovým zdrojem
Metrika 3.4—2 Jiná programová podpora pro práci s datovým zdrojem
Metrika 3.4—3 Otevřenost formátu datového zdroje
Metrika 3.4—3 Otevřenost formátu datového zdroje
Metrika 3.4—4 Odolnost vůči chybám v datovém zdroji
Metrika 3.4—4 Odolnost vůči chybám v datovém zdroji
Access / Excel (DAO) ADO .NET (XML) Databázový soubor (*.db, *.dbf) Java data ODBC (RDO) OLAP OLE DB (ADO) Oracle Report Builder model SQL Server SQL Server Analysis Services XML Celkem
Metrika 3.4—1 Rozšířenost typu datového zdroje – BO CRXI
Datový zdroj
Metrika 3.4—1 Rozšířenost typu datového zdroje – MS SSRS
Tab. 4.4—1 Srovnání připojení k nejpoužívanějším datovým zdrojům
3 5 5 5 5 5 5 1 4 1 5 44
3 5 5 3 5 5 5 5 4 1 5 46
4 5 5 5 5 5 4 2 4 2 5 46
4 5 5 5 5 5 5 4 4 1 5 48
4 5 5 5 5 5 4 4 4 4 5 50
4 5 5 5 5 5 5 4 4 5 5 52
3 5 2 3 3 3 3 3 3 3 5 36
3 5 2 3 3 3 3 3 3 3 5 36
35
4.5 Formáty výstupu sestav Vykreslení sestav do různých formátů zajišťuje jednotka pro vykreslování, viz. kapitola 2.2.3 – Jednotka pro vykreslování na str. 16. Formát výstupu záleží na zařízení, pro které je výsledná sestava určena. Výsledek srovnání formátů výstupu sestav je uveden v Tab. 4.5—1.
36
Metrika 3.5—2 Jiná programová podpora pro práci s výstupním formátem
Metrika 3.5—2 Jiná programová podpora pro práci s výstupním formátem
Metrika 3.5—3 Otevřenost výstupního formátu – MS SSRS
Metrika 3.5—3 Otevřenost výstupního formátu – BO CRXI
Metrika 3.5—4 Odolnost vůči chybám ve výstupním formátu – MS SSRS
Metrika 3.5—4 Odolnost vůči chybám ve výstupním formátu – BO CRXI
HTML PDF XML CSV XLS DOC Obrázek – BMP, EMF, GIF, JPEG, PNG, TIFF, WMF Celkem
Metrika 3.5—1 Rozšířenost výstupního formátu – BO CRXI
Formát výstupu
Metrika 3.5—1 Rozšířenost výstupního formátu – MS SSRS
Tab. 4.5—1 Srovnání formátů výstupu sestav
5 5 5 5 4 5
5 5 5 5 4 4 -
5 5 5 5 4 5
5 5 5 5 4 3 -
5 5 5 5 4 5
5 5 5 5 4 4 -
5 4 5 4 3 4
5 4 5 4 3 3 -
29
28
29
27
29
28
25
24
4.6 Integrace sestav do ASP Integrace sestav do ASP stránek je v obou nástrojích velmi jednoduchá a způsob nasazení je naprosto stejný. Oba nástroje poskytují komponentu Report Viewer, která se vloží do formuláře a nastaví se jí jakou sestavu má zobrazovat. Tato komponenta pak sama obstarává veškerou práci se sestavou. Má přednastavené rozhraní, které se dá jemně upravit a přizpůsobit tak stránce, do které byla vložena. Model integrace sestav do ASP stránek je na Obr. 4.6—1. Srovnání je pak v tabulce Tab. 4.6—1.
Obr. 4.6—1 Model dvouvrstvé webové aplikace pro CRXI1
1
Metrika 3.6—2 Grafické přizpůsobení stránce
MS SSRS BO CRXI
Metrika 3.6—1 Snadnost použití
Tab. 4.6—1 Srovnání integrace do ASP
5 5
5 5
Zdroj http://media.wiley.com/product_data/excerpt/00/07645573/0764557300.pdf , 18.1.2007
37
4.7 Sestavy pro WebForms a WinForms Práce s WinForms se v obou nástrojích nijak neliší od práce ve WebForms. Opět oba nástroje poskytují komponentu Report Viewer pro zobrazování sestav. Ta je naprosto shodná jak pro WebForms, tak pro WinForms. Report Viewer má v obou nástrojích zajímavou vlastnost. Dá se mu totiž nastavit, zda se má sestava provádět lokálně nebo vzdáleně. Pokud je nastaveno lokální vykonávání, pak se výkonný kód uloží do manifestu aplikace a sestava pro vykreslení nemusí přistupovat k report serveru. Model vícevrstvé architektury je na Obr. 4.7—1 a srovnání v Tab. 4.7—1.
Obr. 4.7—1 Model vícevrstvé architektury CRXI pro začleňování sestav do WebForms a WinForms1
1
Metrika 3.7—2 Grafické přizpůsobení formuláři
Metrika 3.7—3 Požadavky na další zdroje
MS SSRS BO CRXI
Metrika 3.7—1 Snadnost použití
Tab. 4.7—1 Srovnání WebForms a WinForms
5 5
5 5
0 0
Zdroj http://media.wiley.com/product_data/excerpt/00/07645573/0764557300.pdf , 18.1.2007
38
4.8 Licencování a zavedení do provozu Microsoft nabízí zákazníkům možnost volby při řešení licencování uvedením dvou licenčních programů. Přesné znění může čtenář nalézt v Microsoft – White paper licensing [19].
4.8.1
Licence Server CAL
Licence Server CAL s použitím takzvané licence CAL (z anglického Client Access License), což znamená „licence klientského přístupu“. Licence CAL jsou vázány buď na zařízení, které se k serveru připojuje, pak z takového zařízení může k serveru přistupovat libovolný počet uživatelů. Licence CAL mohou být také vázány na konkrétního uživatele a pak tento uživatel může přistupovat ke službám serveru z jakéhokoli zařízení. Přesné znění licenčního programu Server CAL cituji ze stránky [18]: „Při použití licenčního režimu „Server CAL“ je pro každou relaci operačního systému, na kterém je SQL Server nebo jeho komponenta (jako např. Analysis Services či Reporting Services) spuštěna, vyžadována licence serveru (pro edice Workgroup, Standard a Enterprise) společně s licencemi CAL pro všechna připojená zařízení nebo uživatele.“ Detailnější popis licencí CAL může čtenář nalézt též na stránce [17]. Ilustrace CAL uživatele a CAL zařízení je na Obr. 4.8—1
Obr. 4.8—1 Ilustrace CAL vázaného na uživatele a CAL vázaného na zařízení1
4.8.2
Procesorová licence
Druhým licenčním programem je procesorová licence. Přesné znění opět cituji ze stránky [18]: „Procesorová licence je vyžadována pro každý procesor dostupný pro relaci operačního systému provozující SQL Server. Tento licenční režim umožňuje připojení neomezeného počtu klientských zařízení či uživatelů.“ Poslední věta citace říká, že pokud je server provozován s procesorovou licencí, nepotřebují mít připojená zařízení nebo uživatelé licence CAL. 1
Obrázky jsou převzaty z adresy http://www.microsoft.com/finland/license/business/palvelinohjelmistot/cal.mspx , 18.1.2007
39
Microsoft uvádí dvě pravidla, kdy je nutné použít procesorovou licenci: 1. Je-li na SLQ Serveru provozován takzvaný „Webový přístup“, kdy server figuruje jako databázový prostředek pro webovou aplikaci, které poskytuje data v závislosti nad vznášenými online dotazy, a získané informace prezentuje přistupujícím uživatelům. Toto pravidlo však neplatí, jedná-li se o intranetový provoz. 2. Je-li SQL Server použit jako databáze pro další serverový produkt z řady Windows Server System, který je rovněž licencován v režimu procesorové licence.
4.8.3
Cenová kalkulace MS SSRS
MS SSRS jsou zdarma k libovolné platné licenci SQL Serveru. Pokud však jsou SSRS nainstalovány na jiném stroji než je SQL Server, je potřeba pro tento stroj zakoupit samostatnou SQL Server licenci. Tento scénář je nutný, pokud chce poskytovatel dosáhnout velkého výkonu. SQL Server je velmi náročný na paměť a stejně tak Report Server potřebuje značné množství paměti pro generování sestav, když je k Report Serveru připojeno mnoho uživatelů. Pokud je zapotřebí dosáhnout opravdu velkého výkonu, je nutno zakoupit SQL Server Enterprise edition, neboť v SQL Server Standard edition je hranice paměti limitována 2 GB. Přehled cen licencí je uveden v Tab. 4.8—1. Tab. 4.8—1 Ceny licencí MS SQL Server1
Microsoft SQL Server 2005 cenové srovnání: Maloobchod / Příkladové ceny Produkt Procesorové licence Server plus CAL (Edice2) Express Compact Workgroup
Maloobchod* Zdarma Zdarma $3,899
Příkladové ceny** Maloobchod* Zdarma Zdarma Zdarma Zdarma $3,700 $739 s 5 Workgroup CAL
Standard
$5,999
$5,737
$1,849 s 5 CAL
Enterprise
$24,999
$23,911
$13,969 s 25 CAL
*
Příkladové ceny** Zdarma Zdarma $730 s 5 Workgroup CALs $146 za další Workgroup CAL $885 za Server $162 za CAL $8,487 za Server $162 za CAL
Ceny se mohou odlišovat u různých poskytovatelů
** Ceny se týkají společností kupujících několik procesorů nebo Server licencí přes MS Volume Licensing
MS SQL Server 2005 Developer edition za maloobchodní cenu $49,95 může být nainstalována a používána pouze jedním uživatelem k navrhování, tvorbě, testování a demonstrování vytvořených programů. 1 2
Tabulka je uvedena na stránce [16] Seznam vlastností jednotlivých edic může čtenář nalézt na adrese http://www.microsoft.com/sql/technologies/reporting/rsfeatures.mspx , 18.1.2007
40
4.8.4 Cenová kalkulace BO CRXI BO zavádějí jiný význam CAL nežli MS (Concurret access license – Licence současného přístupu). Pokud je například na Crystal Reports Server zakouleno 5 CAL, může k serveru přistoupit současně maximálně 5 uživatelů. Ostatní musejí čekat, dokud se nějaký přihlášený uživatel neodpojí a CAL se tak uvolní. Každá edice CRXI obsahuje jednu vývojářskou licenci pro jednoho uživatele, která ho opravňuje nainstalovat Crystal Report Designer a používat ho. Licence je nepřenosná. Jak BO sami uvádějí ve White paper licensing [20], jsou CRXI ideální pro organizace, které potřebují přes web doručovat sestavy malé skupině klientů. To vyplývá z následujících omezení. Na Crystal Reports Server běžící na jednom systému, může být zakoupeno maximálně dvacet CAL a dále server může být nainstalován na stroj s maximálně čtyřmi procesory. Více lze nalézt v BO – White paper licensing [20]. Tab. 4.8—2 Ceny licencí BO CRXI
Edice1 Server Developer Professional Standard
Cena $7,500 s 5 CAL $811 $678 nebo $2,684 s 5 CAL $220
Omezení Max. 20 připojených klientů
4.8.5 Zavedení do provozu MS SSRS jsou volně dostupný produkt k licenci SQL Server 2005. Při jeho instalaci, nebo též později, lze zvolit nainstalování SSRS. Jak je řečeno v kapitole 4.1.1.1 – Architektura MS SSRS na str. 23, používají SSRS k uložení veškerých informací databázi na SQL Serveru. Po nainstalování2 je nutno spojení s databází nakonfigurovat v nástroji Reporting Services Configuration Manager. Teprve po úspěšné inicializaci lze možno reportovací služby využívat. Od této chvíle se dají na server sestavy ukládat a přes Report Manger spravovat a plánovat. Pokud se v inicializační fázi nezvolí jinak, dají se přes standardní adresu http://SERVER/Reports prohlížet.
1 2
Seznam vlastností jednotlivých edic může čtenář nalézt spolu s cenami a kombinacemi produktů na adrese http://internationalstore.businessobjects.com/product.html?productid=300064124 , 18.1.2007 Jak SSRS nainstalovat, může čtenář nalézt na adrese http://msdn2.microsoft.com/enus/library/aa179363(SQL.80).aspx , 18.1.2007 Jaké komponenty a k čemu slouží se může čtenář dovědět na adrese http://msdn2.microsoft.com/enus/library/ms143238.aspx , 18.1.2007
41
Instalace CRXI je velmi podobná. Pro běh CRXI je potřeba Crystal Reports Server. Stejně jako SSRS, vyžadují CRXI centrální databázi pro ukládání veškerých informací. Ta se nazývá CMS databáze. Pokud na serveru žádná databáze není, instalace může sama automaticky nainstalovat Microsoft Data Engine jako CMS databázi. Pro CMS databázi jde použít také lokální MS SQL Server, Oracle, DB2 nebo Sybase. Po zvolení a vytvoření CMS databáze, je vhodné zkontrolovat, zda všechny servery běží a jsou povoleny pomocí Central Configuration Manager. Detailnější informace o instalování může čtenář nalézt v průvodci instalací Crystal Reports Server [21].
4.8.6
Srovnání licencování a zavedení do provozu
BO CRXI
42
$1,047 až $24,999 $7,500 až $30,000
Metrika 3.8—3 Dostupnost dokumentace
MS SSRS
Metrika 3.8—2 Detailní nastavitelnost
Metrika 3.8—1 Náklady na licence
Tab. 4.8—3 Srovnání licencování a zavedení do provozu
5
5
5
4
5 Závěr 5.1 Výsledky srovnání Laskavý čtenář jistě promine, že si v závěru dovolím odstoupit od obecnosti a nástroje zhodnotím z pohledu naší firmy. Jelikož u nás existuje již rozsáhlý webový informační systém, který klientům prezentuje informace v podobě ručně dělaných sestav, zajímá nás především pohled začlenění nově navržených sestav v některém nástroji do ASP stránek vyvíjených na třívrstvé architektuře. Při rozhodování, který nástroj zvolit, se tedy nebudu opírat například o Metrika 3.1—4 Množství podporovaných platforem, neboť naše servery jsou nainstalovány na platformě Windows. Nejdůležitější jsou pro nás body srovnání integrace do ASP, vývojového prostředí, výstupních formátů, licencování a nasazování. Jelikož oba nástroje v bodech srovnání integrace do ASP a výstupních formátů vycházejí rovnocenně, detailně se zaměřím dále jen na body vývojového prostředí a licencování. Metrika 3.2—1 Uživatelská přívětivost SSRS = 5 X CRXI = 5 Toto je jeden z nejdůležitějších bodů při našem rozhodování. S oběma nástroji se pracuje velice dobře a intuitivně. Poskytují širokou škálovatelnost možností. Od vytvoření sestavy průvodcem až po naprogramování vlastní sestavy jen ve zdrojovém kódu. Oba nástroje mají v metrice ohodnocení 5, ale nejsou si přesně rovny, protože každý nástroj poskytuje nějaké vlastnosti, které druhý nástroj nemá. Začnu výhodami MS SSRS. Report Builder je produkt, který má velký potenciál. Budeme-li myslet do budoucnosti, jistě našim klientům budeme chtít poskytnout jednoduchý nástroj pro tvorbu vlastních sestav. Toto je přesně nástroj, který potřebujeme. Navíc ho nyní můžeme využít také, ke zběžnému návrhu sestav. Je to dobrý nástroj pro rychlé reakce na klientovy požadavky. Přijde-li klient a bude chtít novou sestavu, v Report Builderu rychle vytvoříme zhruba to, co si klient představuje a časem v Report Designeru doděláme sestavu podle přesných požadavků. Dobrý vývojář však dokáže navrhnout rychle sestavu i bez Report Builderu. K tomu určitě využije výhodu BO CRXI, a to návrhu sestavy v zobrazení náhledu, kdy pracuje nad reálně
43
dotaženými daty. Navíc disponují větší volností při návrhu sestavy. Toto jsou podle mne argumenty, které mluví pro BO CRXI, a proto jsou po tomto srovnání upřednostňovány.
Metrika 3.2—2 Stabilita SSRS = 5 X CRXI = 5 Oba nástroje jsou vydávány jako stabilní verze a ani ve vývojářské komunitě nejsou k nalezení žádné zmínky o nestabilitě. Během běžné práce fungují jako ostatní produkty Microsoft. Rozhodnutí pro CRXI se tedy nemění. Metrika 3.2—3 Chybovost SSRS = 2 X CRXI = 1 Jelikož BO CRXI jsou na trhu již desetiletí a neustále se vyvíjejí, verze 11 je již prakticky odladěná a bez chyb. Nové MS SSRS jsou na trhu nováčkem a některé chyby mají ještě neodhaleny. Například pokud jsem vstoupil kurzorem do patky tabulky a poté jsem patku odebral, Report Designer ohlásil chybu a sestavu zavřel. Takovéto chyby se však v relativně krátké době odhalí a Microsoft vydá opravy. Toto tedy není důvod proč MS SSRS zavrhnout, ale rozhodnutí je stále pro BO CRXI. Metrika 3.2—4 Nároky na systémové zdroje SSRS = 3 X CRXI = 4 Dnešní doba si žádá výkonné počítače a přestože CRXI mají větší nároky než SSRS tento rozdíl by neměl být pro naši firmu překážkou. Tímto si SSRS polepšily, ale dokoupit hardware jde vždy a proto tato metrika nemůže zvrátit stávající rozhodnutí pro BO CRXI. Metrika 3.8—3 Dostupnost dokumentace SSRS = 5 X CRXI = 4 Dokumentace ke službám je nutná a po vynaložení jistého úsilí se dá dohledat i detailnější specifikace, než jaká je s produkty dodávána. Microsoft díky své knihovně MSDN a Books Online vyšli z tohoto srovnání lépe, přesto však BO CRXI tímto nedostihnou. Metrika 3.8—2 Detailní nastavitelnost SSRS = 5 X CRXI = 5 Ke klíčovým parametrům při nasazování jsou u obou nástrojů dostupné přehledné popisy a výčet všech různých nastavení je opravdu rozsáhlý. Oba nástroje poskytují prakticky stejné služby a možnosti jejich nastavení jsou taktéž srovnatelné. BO CRXI si tedy stále drží své vedení.
44
Metrika 3.8—1 Náklady na licence SSRS = $1,047 až $24,999 X CRXI = $7,500 až $30,000 Zde nastává konečné rozhodnutí. Pokud bychom chtěli poskytovat kvalitní služby pro velké množství klientů, neobešli bychom se bez SQL Server Enterprise edition. Jelikož hodláme sestavy prezentovat přes web, je zde podmínka na zakoupení procesorové licence za $24,999. My však takovému počtu klientů, který by vyžadoval maximální výkon, sestavy zprostředkovávat nebudeme a proto si vystačíme s licencí SQL Server Standard edition za $1,047. V porovnání s alespoň 20 CAL pro Crystal Reports Server za celkových $30,000, se dostáváme do situace, kdy musíme volit mezi cenou a možnostmi vývojového prostředí. Podíváme-li se na rozdíl cen za licence $28,953 (což je přibližně 640 000 Kč) zjistíme, že se nám do lepších vlastností BO CRXI nevyplatí investovat. Tato částka by se nám v horizontu deseti let jistě nevrátila. Konečné rozhodnutí zní: Microsoft SQL Server 2005 Reporting Services jsou pro naši firmu vhodnějším nástrojem a to především díky licenční politice firmy Microsoft.
5.2 Zhodnocení splněných cílů Cílem této diplomové práce je srovnat nástroje Microsoft SQL Server Reporting Services a Business Objects Crystal Reports XI z hlediska architektury, výstupů, nákladů a náročnosti na začlenění do softwarových projektů vyvíjených na třívrstvé architektuře. V předchozím textu se čtenář mohl seznámit se základními pojmy v oblasti reportovacích služeb a jejich architekturou. Dále mohl nahlédnout do postupů generování sestav a celkově se seznámit s výhodami nástrojů pro jejich navrhování. Výsledkem srovnání obou nástrojů je volba pro Microsoft SQL Server Reporting Services a to především díky nákladům na licence. Závěrem bych chtěl čtenáři doporučit odkazy [22], [23], [24] a [25], kde může nalézt návody a ukázkové příklady pro práci ve všech výše zmiňovaných vývojových prostředí.
45
6 Seznam literatury [1]
Ľuboslav Lacko, Business Inteligence v SQL Serveru 2005, Computer press a.s., 2006
[2]
Hlavní stránka technické podpory pro SSRS, 18.1.2007, http://www.microsoft.com/technet/prodtechnol/sql/2005/technologies/rptsvcs.mspx
[3]
Hlavní stránka Microsoft SSRS Books Online, 18.1.2007, http://msdn2.microsoft.com/en-us/library/ms159106.aspx
[4]
Microsoft technická podpora – úvod do SSRS, 18.1.2007, http://www.microsoft.com/technet/prodtechnol/sql/2005/2005ssrs.mspx
[5]
Microsoft SSRS Books Online – Přehled komponent SSRS, 18.1.2007, http://msdn2.microsoft.com/en-us/library/ms155792.aspx
[6]
Microsoft – Celkový přehled SSRS, 18.1.2007, http://www.microsoft.com/sql/technologies/reporting/overview.mspx
[7]
Microsoft online dokumentace – Rejstřík výrazů, 18.1.2007, http://msdn2.microsoft.com/en-us/library/ms165911.aspx
[8]
Microsoft online dokumentace – Definice sestavy, 18.1.2007, http://msdn2.microsoft.com/en-us/library/aa172312(office.10).aspx
[9]
Microsoft technická podpora – Rejstřík výrazů, 18.1.2007, http://www.microsoft.com/technet/prodtechnol/dpm/proddocs/1a822c78-178e-41e4-a2fe7f3ce4e081c2.mspx?mfr=true
[10]
Server Micro2000 – Rejstřík výrazů, 18.1.2007, http://www.micro2000uk.co.uk/products/remotescope/glossary.htm
[11]
Microsoft Books Online – Popis Report Serveru, 18.1.2007, http://msdn2.microsoft.com/en-us/library/ms157231.aspx
[12]
Synactis REPORTMAKER – Popis Report Serveru, 18.1.2007, http://www.synactis.com/reportmaker-reportserver.htm
[13]
Dagblog – Třívrstvá architektura v kostce, 18.1.2007, http://www.sweb.cz/pichlik/archive/2004_11_07_archive.html
46
[14]
Business Objects Enterprise XI – White paper – Technický přehled, 18.1.2007, http://www.businessobjects.com/pdf/products/platform/enterprise_tech_overview.pdf
[15]
Microsoft – Licenční politika pro SSRS, 18.1.2007, http://www.microsoft.com/sql/howtobuy/howtolicensers.mspx
[16]
Microsoft – Licence pro SQL Server, 18.1.2007, http://www.microsoft.com/sql/howtobuy/default.mspx
[17]
Microsoft – Přehled způsobů pořizování licencí, 18.1.2007, http://www.microsoft.com/cze/windowsserversystem/licence/default.mspx
[18]
Microsoft – Jak pořídit SQL Server, 18.1.2007, http://www.microsoft.com/cze/windowsserversystem/sql/howtobuy/default.mspx
[19]
Microsoft – White paper – licencování, 18.1.2007, http://download.microsoft.com/download/e/c/a/ecafe5d1-b514-48ab-93eb61377df9c5c2/SQLServer2005Licensingv1.1.doc
[20]
Business Objects – White paper – licencování, 18.1.2007, http://www.businessobjects.com/pdf/whitepapers/crxi_licensing_whitepaper.pdf
[21]
Business Objects – Průvodce instalací Crystal Reports Server, 18.1.2007, http://support.businessobjects.com/communityCS/TechnicalPapers/ cr_server_quick_install.pdf
[22]
Microsoft Books Online – Reporting Services Samples, 18.1.2007, http://msdn2.microsoft.com/en-us/library/ms160954.aspx
[23]
Microsoft Books Online – Reporting Services Tutorials, 18.1.2007, http://msdn2.microsoft.com/en-us/library/ms170246.aspx
[24]
Business Objects – Uživatelský průvodce, 18.1.2007, http://support.businessobjects.com/ library/docfiles/cps10/downloads/en/crxi_UserGde_en.pdf
[25]
Crystal Reports alliance – Ukázkové příklady a návody na tvorbu sestav v CRXI, 18.1.2007, http://aspalliance.com/crystal/
47
Seznam použitých zkratek ADO – Vysoko-úrovňové rozhraní Microsoft pro různorodá data. Používá se ve všech vrstvách klient-server aplikací. API – Z anglického Application programming interface – Rozhraní pro programování aplikací. BO – Firma Business Objects. CRXI – Crystal Reports XI. IDE – Z anglického Integrated development environment – Vývojové prostředí. IIS – Zkratka Internetová informační služba – Lze si představit jako webový server. MS – Firma Microsoft. MS IE (SPx) – Microsoft Internet Explorer (Service pack x). ODBC – Z anglického Open DataBase Connectivity – Cílem je poskytnout přístup k datům z jakékoli databáze. Aplikace i Databáze musí být s ODBC kompatibilní. OLAP – Z anglického Online Analytical Processing – Technologie uložení a uspořádání velkých objemů dat v databázi, tak aby byla srozumitelná analytikům. Nepoužívá třetí normalizovanou formu pro uložení dat. OLE DB – Nízko-úrovňové rozhraní Microsoft založené na úspěchu ODBC, poskytující standardní Microsoft API pro přístup ke všem typům dat. SOAP – Z anglického Simple Object Access Protocol – Protokol používaný pro komunikaci je založen na posílání zpráv XML a je základem webových služeb. RDO – Z anglického Remote Data Object – poskytuje model pro přístup ke vzdálenému datovému zdroji přes ODBC. SSRS – SQL Server 2005 Reporting Services. VS .NET – Vývojové prostředí Visual Studio .NET.
48
Seznam obrázků a tabulek Obr. 1.2—1 Procentuální zastoupení uživatelů vzhledem k ......................................................... 12 Obr. 2.2—1 Diagram Report Serveru s nejbližším okolím ........................................................... 14 Obr. 2.3—1 Architektura MS SSRS.............................................................................................. 17 Obr. 2.5—1 Model třívrstvé architektury..................................................................................... 18 Obr. 4.1—1 Architektura MS SSRS.............................................................................................. 23 Obr. 4.1—2 Architektura CRXI a nástroje z jejího okolí.............................................................. 24 Obr. 4.1—3 Server centrální správy (CMS).................................................................................. 25 Obr. 4.1—4 Životní cyklus sestavy ............................................................................................... 26 Obr. 4.1—5 Postup generování sestavy v SSRS ........................................................................... 27 Obr. 4.1—6 Postup průchodů při generování sestavy ................................................................... 27 Obr. 4.2—1 Ukázka tvorby sestavy v nástroji Report Builder...................................................... 29 Obr. 4.2—2 Vytvořený interaktivní report prohlížený přímo v Report Builderu ......................... 30 Obr. 4.2—3 Návrh datového zdroje a SQL dotaz v Report Designeru ......................................... 31 Obr. 4.2—4 Návrh rozvržení v Report Designeru ........................................................................ 31 Obr. 4.2—5 Návrh sestavy v Crystal Report Designer – návrhové zobrazení.............................. 32 Obr. 4.2—6 Návrh sestavy v Crystal Report Designer – .............................................................. 33 Obr. 4.6—1 Model dvouvrstvé...................................................................................................... 37 Obr. 4.7—1 Model vícevrstvé architektury CRXI ........................................................................ 38 Obr. 4.8—1 Ilustrace CAL vázaného na uživatele a ..................................................................... 39 Tab. 2.2—1 Scénáře akcí procesoru sestav ................................................................................... 15 Tab. 4.1—1 Minimální hardware požadavky pro MS SSRS ........................................................ 24 Tab. 4.1—2 Minimální hardware požadavky pro BO CRXI ........................................................ 25 Tab. 4.1—3 Srovnání architektury ................................................................................................ 28 Tab. 4.2—1 Srovnání vývojových prostředí ................................................................................. 33 Tab. 4.3—1 Požadavky na prohlížeč klienta pro MS SSRS ......................................................... 34 Tab. 4.3—2 Požadavky na prohlížeč klienta pro BO CRXI ......................................................... 34 Tab. 4.3—3 Srovnání nároků na klienta........................................................................................ 34 Tab. 4.4—1 Srovnání připojení k nejpoužívanějším datovým zdrojům........................................ 35 Tab. 4.5—1 Srovnání formátů výstupu sestav .............................................................................. 36 Tab. 4.6—1 Srovnání integrace do ASP........................................................................................ 37 Tab. 4.7—1 Srovnání WebForms a WinForms............................................................................. 38 Tab. 4.8—1 Ceny licencí MS SQL Server .................................................................................... 40 Tab. 4.8—2 Ceny licencí BO CRXI.............................................................................................. 41 Tab. 4.8—3 Srovnání licencování a zavedení do provozu ............................................................ 42
49
Obsah přiloženého CD Adresář
data
nainstalování s Reporting
obsahuje SQL
Services
soubory
Express a
pro
edition
instalaci
.NET
Framework 2.0
Adresář src obsahuje sql scripty pro vytvoření ukázkové databáze a adresář Project Manager, což je ukázkový projekt k prezentaci v MS VS .NET
Adresář text obsahuje textové soubory diplomové práce ve formátech doc a pdf. Dále pak obsahuje podklady pro prezentaci diplomové práce a ukázkového projektu Project Manager. V kořenovém adresáři je soubor readme.txt, který je stručným obsahem celého CD a soubor index.html, jenž je výchozí stránkou projektu.
50