Zahtevi krutog rešenja za izveštavanje preduzeća su ogromni, ali Reporting Services ispunjava taj izazov sa setom integrisanih, višeslojnih komponenata. Kako je Reporting Services Microsoft .NET bazirana paltforma on može koristiti i Web servis i application programming interface (API), može se podesiti unutar postojeće tehničke infrastrukture. Osim toga, razdvajanjem komponenti u diskretne funkcionalne jedinice, arhitektura Reporting Services-a može biti podešena za smeštanje i čak najveće organizacije, distribuiranjem komponenti preko nekoliko servera (razmeštanje komponenti na nekoliko servera nije moguće u Express verziji). Zajedno, ove komponente podržavaju kreiranje, upravljanje, pristupanje i dostavu zahteva platformi za izveštavanje.
Arhitektura Reporting Services-a je sačinjena od tri sloja. Sloj aplikacije uključuje dve različite klijentske komponente za kreiranje - jednu za autora izveštaja preduzeća, i drugu za autora ad hoc izveštaja. Sloj aplikacije takođe uključuje klijentsku komponentu za upravljanje jednim ili više Report Server-a unutar jednog interfejsa za upravljanje serverom i ta serverska komponenta se zove Report Manager, koji je instaliran na Web serveru i koristi se za pristup izveštaju i nekim zadacima koji se tiču upravljanja serverom. Sloj servera pretstavlja Report Server gde se svi procesi i upravljanje dešavaju. Sloj podataka uključuje provajdere podataka za pristupanje izvorima podataka koji se koriste u izveštajima, kao i par baza podataka za čuvanje izveštaja i informacija koje koristi Report Server. Ove komponente mogu biti instalirane na jednom serveru ili distribuirane preko nekoliko servera. Komponente Reporting Services su prikazane na slici.
Kada se Reporting Services instalira, klijentska komponenta pod nazivom Report Designer je dodata kao set šablona (template-ovi) za Microsoft Visual Studio 2005 razvojno okruženje. Ako nemate instaliranu ovu verziju Visual Studio-a, instalacija Reporting Services-a će takođe instalirati potrebne komponente tako da možete koristiti Report Designer. Kod Express verzije moraju se izvršiti dodatne instalacije kako bi Report Designer bio dostupan, što ćete videti kasnije.
Najlakši način za izgradnju izveštaja jeste korišćenje šablona Report Designer-a. Ako ste autor izveštaja nisu Vam potrebne programerske veštine za efikasno korišćenje ovog alata. Međutim, ako ste već iskusni programer možete iskoristiti programski interfejs za izradu prilagođenog alata.
U komponente koje se koriste za izradu izveštaja pored Report Designer-a spadaju Report Builder i Model Designer, ali o njima tokom ovog kursa neće biti reči pošto nisu podržani u besplatnoj verziji pod nazivom Microsoft SQL Server 2005 Express Edition with Advanced Services Service Pack 2, koju ćemo koristiti.
Kao kreator izveštaja za preduzeće, možete koristiti grafički interfejs za izradu izveštaja bogatog funkcijama korišćenjem drag-and-drop tehnika kako biste kreirali upit koji vraća podatke i definisali izgled i način na koji će podaci biti prikazani u izveštaju. Možete koristiti ActiveX Data Objects (ADO) .NET-upravljani snabdevač podataka (data provider) za pristup mnogim OLE DB i Open Database Connectivity (ODBC) izvorima podataka. Ako Vam je potreban pristup drugim izvorima podataka, možete izgraditi vlastiti snabdevač podataka (data provider). Nakon definisanje upita koji vraća podatke iz izabranog izvora podataka, koristite Report Designer da biste postavili podatke u jednu ili više struktura. Takođe možete koristiti Report Designer da biste primenili izračunavanja nad podacima kao i za pristup setu karakteristika koje podržavaju opcije za prezentovanje kao što su formatiranje i vidljivost. Rezultat je definicija izveštaja u formi XML dokumenta korišćenjem šeme poznate kao Report Definition Language (RDL).
Report Designer uključuje i pregled verzije izveštaja tako da ga možete testirati pre nego što ga postavite na server. Na taj način možete saznati kako će korisnici videti izveštaj koji ste upravo razvili. Kad budete spremni za objavljivanje izveštaja, koristićete Visual Studio za kompajliranje i razmeštaj.
Korišćenjem Reporting Services API-a, oni koji razvijaju aplikacije mogu izgraditi prilagođenu aplikaciju za kreiranje izveštaja ili dodati funkcionalnosti izveštajima.
Nakon instalacije Reporting Services-a, možete koristiti Reporting Services Configuration alat za postavljanje i modifikovanje konfiguracionih podešavanja. Report Manager je instaliran na Web server-u i koristi se za upravljanje, pristup i zadatke koji se odnose na isporučivanja izveštaja. Reporting Services obezbeđuje i pomoćne command-line programe za specifične zadatke upravljanja serverom. Imate i mogućnost izrade sopstvenih Windows ili Web-baziranih alata za upravljanje korišćenjem Reporting Services API.
Reporting Services Configuration alat omogućava konfiguraciju lokalne ili udaljene instance Reporting Services-a. Ovaj alat je klijentska aplikacija koju možete uposliti za upravljanje virtualnim direktorijumima koje koristi Report Server i Report Manager, definisanje Windows naloga koji pokreće Web i Windows servise, kreiranje baze podataka koju će koristiti report server, upravnje ključevima za enkripciju kako biste zaštitili podatke report server-a, i za konfigurisanje Simple Mail Transfer Protocol-a (SMTP). Obično ćete izvršiti konfiguraciju jedanput posle instalacije, ali ako se Vaše okruženje za izveštavanje bude promenilo, možete koristiti ovaj alat da ažurirate konfiguraciju report server-a.
Report Manager je Web-bazirani alat za upravljanje sadržajem koji je uključen u Reporting Services. Reporting Services razdvaja administrativne zadatke u dve glavne grupe: upravljanje sadržajem i upravljanje sistemom. Ako ste administrator koji je odgovoran za upravljanje sadržajem, možete koristiti Report Manager da biste upravljali organizacijom izveštaja na Report Server-u i načinom na koji će korisnici interagovati sa izveštajima. Kao administrator odgovoran za resurse servera i performanse, možete koristiti Report Manager da biste konfigurisali opcije koje se odnose na izvršavanje, da postavite bezbednost i da upravljate opcijama koje se tiču isporuke i "pretplate".
Reporting Services uključuje i command-line uslužne programe koji Vam pomažu u upravljanju Report Server-om lokalno ili sa udaljene lokacije. Sledeće pomoćne command-line programe obezbeđuje Reporting Services za administratore servera:
Možete takođe koristiti Reporting Services API da biste izveli nekoliko aktivnosti vezanih za upravljanje, kao što je objavljivanje ili brisanje izveštaja. Možete napraviti i sopstvenu aplikaciju ili možete napraviti Visual Basic .NET skripte za korišćenje u sprezi sa rs uslužnim programom kako biste izveli administrativne zadatke na Report Server-u.
Komponente Reporting Services-a koje su uključene u pristup i dostavu izveštaja mogu se podeliti u dve grupe: klijentske komponente i serverske komponente. Možete izabrati da koristite isporučene klijentske komponente ili da izgradite sopstvenu aplikaciju. Međutim, morate koristiti komponenete koje čine jezgro Reporting Services servera, čak i kada koristite prilagođene apliakcije za proširivanje mogućnosti serverskih komponenti.
Report Manager nije samo alat za upravljanje. Korisnici ga mogu koristiti da bi pristupili izveštajima i da bi se "pretplatili" na izveštaj.
Report Server je srce Reporting Services-a. Iako administratori interaguju sa Report Server-om korišćenjem komponenti za upravljanje, većina aktivnosti koje se odvijaju na Report Server-u je vezano za podršku pristupu i isporuci izveštaja. Report Server se pokreće kao Web servis, omogućavajući Report Manager-u ili Vašoj prilagođenoj apliakciji pristup procesima servera.
Report Server koristi Microsoft Internet Information Services (IIS) za primanje zahteva, a onda aktivira odgovarajuće podkomponente kao odgovor na zahtev. Dve procesorske podkomponente Report Server-a predstavljaju komandni centar koji upravlja zahtevima i vraća odgovarajući izlaz drugim podkomponentama. Jezgro procesora, Report Processor, obrađuje sve zahteve koji se odnose na izvršavanje izveštaja i proizvodi konačan izlaz. Da bi kompletirao zahtev, Report Processor poziva druge podkomponente koje se pominju kao proširenja (extensions), da bi izvršile procesiranje podataka, renderovanje i bezbednost. Scheduling and Delivery Processor odgovara na događaje koji su planirani i isporučuje izveštaje. Ovaj procesor koristi ekstenzije za dostavu kako bi poslao izveštaje na njihovo odredište. O ovom procesoru nećemo detaljnije govoriti pošto se u Express veziji ne može iskoristiti u potpunosti.
Report Processor - Report Processor je zadužen za razmeštanje elemenata izveštaja iz definicije izveštaja i njegovo spajanje sa vraćenim podacima iz upita uključenim u definiciju izveštaja. Nakon ovoga, izveštaj je u pomoćnom formatu. Šta će se sledeće desiti zavisi od zahteva. Ako korisnik želi da vidi izveštaj online, pomoćni format će biti poslat odgovarajućem proširenju (ekstenziji) za renderovanje tako da će se kreirati pogodan format izlaza, kao što je Web strana.
Sa druge strane, ako je zahtev da se generiše snapshot izveštaja (to je izveštaj dobijen u određenom trenutku vremena), pomoćni format će biti uskladišten u ReportServer bazi podataka. Kada korisnik bude zatražio snapshot, Report Processor će vratiti pomoćni format, pozvaće ekstenziju za renderovanje i onda će poslati konačan format izveštaja korisniku.
Report Processor takođe upravlja zahtevima za modele izveštaja. Ovaj zahtev se javlja kada korisnik pregleda model izveštaja ili pokrene izveštaj u Report Builder-u.
Razdvajanjem procesiranja predstavljanja od vraćanja podataka i renderovanja, omogućava se da više korisnika može videti isti izveštaj u isto vreme i svaki može menjati format u kojem želi da pregleda izveštaj.
Proširenja servera se koriste za izvođenje specifičnih funkcija. Reporting Services koristi pet različitih tipova ekstenzija servera: authentication, data processing, report processing, rendering i delivery. Vremenom se može očekivati još ekstenzija za Reporting Services, koje će razviti Microsoft ili druge komercijalne softverske firme.
Authentication Extensions - Ova ekstenzija se koristi za definisanje modela autorizacije koju koristi Reporting Services. Samo jedna ekstenzija za autentifikaciju je podržana, koja omogućava Microsoft Windows i SQL Server security. Naravno, možete kreirati sopstvenu ekstenziju za autentifikaciju i integrisati je u Reporting Services sa drugom bezbednosnom arhitekturom.
Data Processing Extensions - Ekstenzija je odgovorna za procesiranje zahteva upita koji je primljen od Report Processor-a. Zahtev upita uključuje izvor podataka, upit i moguće parametre upita. Odgovarajuća ekstenzija za procesiranje podataka otvara konekciju na izvoru podataka, vraća listu naziva polja iz upita, izvršava upit i vraća rezultate upita, koji se zatim vraćaju Report Processor-u.
Reporting Services dolazi sa šest ekstenzija za procesiranje: SQL Server, Analysis Services, Oracle, OLE DB, ODBC i XML. Međutim, takođe možete koristiti bilo koji ADO.NET snabdevač podataka ili možete napraviti vlastitu ekstenziju za procesiranje podataka.
Report Processing Extensions - Ova ekstenzija se koristi za procesiranje prilagođenih stavki izveštaja koje mogu biti umetnute u izveštaj. Report Server takođe zna kako da procesira standardne stavke izveštaja, kao što su tabele i textbox-ovi, ali ako dodate prilagođenu stavku izveštaja - kao što je posebna kontrola ili umetnuta mapa iz Microsoft MapPoint-a - tada je potrebno da obezbedite proširenje koje bi rukovalo prilagođenim zahtevima procesiranja za novu stavku izveštaja.
Rendering Extensions - Report Processor poziva ekstenziju za renderovanje da bi joj dao podatke koje je primio od data processing extension-a i spojio te podatke sa definicijom izveštaja. Rezultat je konačan izveštaj u posebnom formatu koji uređaj može da primi.
Za sada, Reporting Services ima sledeće ekstenzije za renderovanje: HTML, MHTML (MIME Encapsulation HTML), Excel, Acrobat PDF, CSV (comma separated values) i XML. Kao što je i sa ostalim tipovima ekstenzija, možete razviti sopstvenu ekstenziju za renderovanje da biste proizveli druge izlazne formate.
Delivery Extensions - Koristi se za dostavljanje izveštaja. Nju nećemo posebno spominjati pošto se ne može koristiti u Express verziji. Ova ekstenzija se takođe može proširivati.
Reporting Services skaldišti izveštaje u dve SQL Server baze podataka. ReportServer baza podataka skladišti informacije koje se koriste za upravljanje izveštajima i resursima zajedno sa samim izveštajima. Pored toga, ova baza podataka je lokacija za skladištenje podešavanja koja se odnose na bezbednost, kriptovane podatke, podatke koji se odnose na planove i isporuku, i informacije vezane za ekstenzije. ReportServerTempDB baza podataka skaldišti privremene podatke koji se koriste u svrhe keširanja.
Možete koristiti Reporting Services API za kreiranje sklopova kada je potrebno prilagoditi bezbednost, procesiranje podataka, renderovanje, ili scenarije isporuke. Reporting Services API takođe daje mogućnost da razvijete vlastitu aplikaciju koja će omogućiti korisnicima da pregledaju izveštaj ili da ga proizvedu korišćenjem različitih formata.