İşletmelerde yazılım sistemlerinin kullanılmasının en temelde iki nedeni vardır. Birincisi yapılan işlerin sistematik bir hale getirilerek kişilere bağımlı olmaktan kurtarılıp standart hale getirilmesi. İkincisi ise tüm iş süreçleri ile ilgili aktivitelerin ve gerçekleşen tüm aksiyonların verilere dönüştürülüp kayıt altına alınarak raporlanması.
Operasyonel yazılım sistemlerinin (ERP, CRM, süreçlere özel in-house yazılımlar vb.) geliştirilmesi ve implementasyonu aşamasında genellikle ilk amaç daha ön planda tutulur ve kullanılacak olan arayüzlerin kolaylığı, işlerin aksamadan yürütülmesi ve yetkilendirme gibi konular daha çok önemsenir. Her ne kadar başlangıçta rapor ihtiyaçları tespit edilip analiz dokümanları hazırlansa da sistem kullanıma alınıp veriler elde edilmeye başlandıkça rapor ihtiyaçları daha da netleşmeye başlar. Çoğu zaman da ilk başta belirlenen bazı raporların gereksiz olduğu; aynı zamanda yeni raporlara ihtiyaç duyulduğu ortaya çıkar. Ve sistem kullanıldıkça değişen şartların da etkisiyle sürekli rapor ihtiyaçları ortaya çıkar.
Raporlamada da üç temel amaç vardır diyebiliriz. Basılı form üretmek, geçmişi analiz etmek ve geleceği tahmin etmek. Çalışanlar bu üç amacı gerçekleştirmek için doğru, tutarlı ve hızlı şekilde organizasyon verilerine ulaşmak isterler. Bu amaçla iş dünyasında birçok değişik formatta ve tipte raporlar kullanılır.
Raporların detaylarına inmeden önce rapor nedir kısaca onu tanımlayalım. Herhangi bir veri kaynağından belirli bir formatta sunulan veri çıktılarıdır. Tanımımızdaki kavramları ele alarak bir raporda hangi yapıların olduğunu inceleyelim. Öncelikle “Herhangi bir veri kaynağından” kısmına bakarsak raporun verilerini alacağı bir kaynak olmalıdır. Bu kaynak SQL Server, Oracle gibi veritabanı sistemleri olabileceği gibi excel, metin dosyası ya da bir image dosyası olabilir. Tanımımızın “belirli bir formatta” kısmında ise herhangi bir raporlama aracı kullanılarak tasarlanan grafiksel arayüzü anlatılmaya çalışılmıştır. Kullanıcıya verileri istediği formatta gösterecek tablo, matris, bar ya da çubuk grafikleri gibi görsel öğelerin birleşimini düşünebiliriz. Tek bir kelime olarak geçen ama en önemli yapılardan birini anlatan “sunulan” kısmında ise geliştirdiğimiz raporun kullanıcıya erişebileceği bir platform anlatılmaktadır. Tanımımızın en son kısmında geçen “veri çıktılarıdır” kısmında ise tasarlanan formatı dolduran sayısal, metinsel ya da grafiksel veriler anlatılmaktadır. Asıl ulaşılmak istenen yapı budur. Diğer yapılar bu amaca hizmet etmektedir.
İşte bu ihtiyaçlara cevap verebilmek için Microsoft veritabanı yönetim sistemi olan SQL Server ürününe Reporting Services (SSRS) çözümünü de eklemiştir. SSRS ile iş birimlerinin ihtiyaç duyduğu raporların oluşturulması, sunulması, paylaşılması ve yönetilmesinin tek bir platform üzerinden sağlanabilmesi hedeflenmiştir. Microsoft SSRS’i ilk olarak 2000 yılında duyurmuştur. Daha sonra da 2005, 2008 ve 2008 R2 versiyonlarında geliştirmeler ile devam etmiştir. 2012 versiyonunda ise daha köklü değişimler olmuştur. Business Intelligence Development Studio yerini SQL Server Data Tools’a bırakmıştır. BI projeleri geliştirmek için ayrı bir visual studio lisansına ihtiyaç duymadan bu toolun kullanılabileceği belirtilmiştir. Microsoft’ un 2012 versiyonunda getirdiği en büyük yeniliklerden birisi ise Business Intelligence Semantic Model olarak isimlendirdiği yapıdır. Multidimensional veri ambarlarının yanında tabular modda projeler geliştirilmesine olanak tanıyan bu yapı özellikle günümüzde popülerleşmeye başlayan “Self Service BI” akımına hizmet etmektedir. Günümüzde kullanıcıların kendi raporlarını kendi hazırlaması, IT ekiplerinin ise sadece kullanıcıların rapor hazırlayabilmesi için veri ambarı ve raporlama toollarının hazırlanmasına odaklanması düşüncesi hakim olmaya başlamıştır. Microsoft’ ta özellikle SQL Server 2012 versiyonunda bu amaca hizmet edecek Tabular model, PowerBI gibi yapıları geliştirmiştir. Self-Service BI yapısını önemsemeye devam eden Microsoft, 2016 versiyonunda da bunun yanında mobil raporlama, yeni arayüzler ve Power BI desteği gibi birçok yenilikle karşımıza çıkmıştır. Kısaca SSRS 2016 yeniliklerine değinelim:
Reporting Services Web Portalı: SSRS ‘ te 2016 ile birlikte yeni bir arayüz kullanılmaya başlanmıştır. Bu güncel ve modern yeni sistem KPI’ ları, Mobil raporları ve sayfalanmış raporları birlikte sunan bir portal yapısındadır.
Mobile Report Publisher: Mobil uygulamalar günümüzde oldukça popüler hale geldi. Öyle ki insanlar işlerini dahi mobil uygulamalarla yürütmek istiyor. Doğal olarak raporlarını da mobil cihazlarından görmek istiyorlar. Microsoft’ ta mobil raporlamada da iddialı olabilmek için mobil raporlama çözümleri sunan Datazen isimli firmayı bünyesine kattı ve bu firmanın mobil raporlama geliştirme ürününü 2016 versiyonuyla birlikte SSRS bünyesine dahil etti ve Mobile Report Publisher olarak isimlendirdi. Böylece ayrı bir lisansa gerek olmaksızın mobil rapor geliştirme imkanı da sundu.
Power BI Mobil Uygulama Desteği: Power BI mobil uygulamasının reporting services report serverından erişime destek verildi.
Rapor Öğelerini Power BI Dashboardlarına Ekleyebilme: Report Manager’ da bir raporun herhangi bir öğesini seçip daha önce oluşturmuş olduğunuz bir Power BI dashboarduna ekleyebilirsiniz. Eklenebilecek rapor öğeleri chartlar, cauge panelleri, haritalar ve resimlerdir. Bunun için öncelikle Power BI ve Report Server entegrasyonunun yapılmış olması gerekir. Bir rapor öğesini Power BI Dashboarduna eklemek için öncelikle bir dashboard seçin (1) ve hangi sıklıkta güncelleneceğini seçin (2)
PowerPoint’ e Aktarım Desteği: SSRS 2016 ile birlikte kullanıcılar görüntüledikleri raporları isterlerse direkt olarak sunumlarında kullanmak üzere PowerPoint’ e aktarabilecekler. Bunun için aynı excel ya da pdf’ e aktardıkları gibi Export butonunun altında yeni bir seçenek olan PowerPoint’ e tıklamak yeterli.
Parametre Panelini Özelleştirme: SSRS’ te bazen göze hoş gelmeyen parametre kısımları için artık geliştiriciye kendine göre parametreleri tasarlama imkanı sunuldu.
Yeni Report Builder Arayüzü: Report builder arayüzü daha modern ve kolay hala getirildi.
SQL Server Reporting Services Mimarisi
Herhangi bir raporun geliştirilmesinden kullanıcıya sunumuna kadar tasarım, veri işleme, dağıtım, yetkilendirme gibi bir çok yönetim işlemi vardır. Bu karmaşık işleri daha iyi yönetebilmek için SSRS çözümü katmanlara ayrılarak geliştirilmiştir. Ve her katman farklı görevler üstlenerek sürece katkıda bulunmaktadır. SSRS temel olarak 3 katmanlı bir mimariden oluşmaktadır: SQL Server rapor veritabanı katmanı, rapor sunucusu, rapor istemcisi. Aşağıdaki şekilde bu katmanlar ve bileşenleri genel olarak gösterilmiştir.
Şimdi bu katmanları detaylı olarak inceleyelim.
SSRS Veritabanları
SSRS, SQL Server kurulumu aşamasında ek bir seçenek olarak karşımıza çıkar. Eğer ihtiyaç duyuyorsak Feature Selection kısmında SSRS ile ilgili seçenekleri de işaretleyerek kurulumu sağlayabiliriz. SSRS Native modda kurulduğunda SQL Server 2 tane veritabanı oluşturmaktadır. Bunların amacı raporların metadatasını tutmak ve performans yönetimini sağlamaktır. Şimdi de bu iki veritabanından kısaca bahsedelim:
ReportServer: Bu veritabanı RDL dosyalarından oluşturulan raporlar ile ilgili bütün bilgileri tutan veritabanıdır. Veri kaynakları ve rapor parametreleri gibi rapor özelliklerinin yanında klasör hiyerarşileri ve rapor çalıştırma loglarını da tutar.
ReportServerTempDB: bu veritabanı eşzamanlı kullanıcıların aynı raporları çekebilmeleri için raporların cashlenmiş kopyalarını tutar. Bu sayede rapor sunucusu restart edilse bile kullanıcıların raporlara erişim sağlayabilmesi de sağlanır.
Ek olarak bu iki veri tabanının dışında isteğe bağlı olarak bir veritabanı daha eklenebilir. Bu RSExecutionLog veritabanıdır. Bu veritabanı rapor çalıştırmalarıyla ilgili kim çalıştırmış, ne zaman çalışmış, performans verileri gibi daha detaylı bilgileri tutar.
SSRS Rapor Sunucusu
SSRS rapor sunucusu SSRS modelinde en önemli katmandır. Her bir client requestini alarak cevap vermeyi yönetmek bu katmanın sorumluluğundadır. Bu katman aşağıdaki bileşenşlerden oluşmaktadır:
- Programlama arayüzü
- Authentication katmanı
- Rapor prosesi
- Veri prosesi
- Rapor işleme
- Rapor çizelgeleme ve dağıtım
İstemci Uygulamaları
SSRS raporları kullanıcılara sunabilmek için birçok farklı istemci uygulamalarını içerir. Bu araçlar rapor sunucusu yönetimi, güvenlik ve raporların sunumu da içeren özelliklere sahiptirler. SSRS istemci uygulamaları şunlardır:
- Report Manager
- BIDS veya SSDT
- Report Builder 3.0
- Reporting Services Configuration Manager