Crystal 三種報表解決方案大對比:.NET 物件模型,報表應用伺服器物件模型,水晶企業物件模型

來源:互聯網
上載者:User
對象|伺服器|解決 概述

對於使用 .NET 平台的 Web 應用程式開發,Crystal Decisions 為開發人員提供了三種愈加進階的報表物件模型:

1. 水晶報表 Visual Studio .NET 版 (.NET) 物件模型:捆綁在微軟 Visual Studio .NET 和水晶報表 9 開發人員版及進階版中。

2. 新增的報表應用伺服器 (RAS) 物件模型:捆綁在水晶報表 9 開發人員版及進階版中。

3. 水晶企業 (Crystal Enterprise) (CE) 物件模型:在水晶企業 9 中單獨提供,而且也可以通過新的 .NET SDK 使用。

本文檔意圖比較 .NET, RAS, 及 CE 物件模型,並且對於每種物件模型的使用時機提供指導。


目錄

什麼是 .NET 物件模型?
什麼是報表應用伺服器物件模型?
什麼是水晶企業物件模型?
應用程式開發
處理效能
  使用者請求
  組件 Vs. 獨立伺服器
  報表元件 Vs. 報表伺服器通訊
報表建立 API
擴充性
將 .NET 應用程式遷移到 RAS


什麼是 .NET 物件模型?

.NET 物件模型包含在水晶報表 Visual Studio .NET 版和水晶報表 9 開發人員版及進階版。

最初設計和開發 .NET 物件模型,是作為直接捆綁進微軟 Visual Studio .NET 產品的整合組件。該捆綁技術是基於水晶報表 9 特性的子集,包括一個整合的報表設計師以及一個報表和查看器物件模型……

水晶報表 9,是具有豐富特色的,對水晶報表 Visual Studio .NET 版的升級,包括上述 .NET 組件以及眾多附加的新特性。除此之外,.NET 物件模型還被更新以提供眾多增強特性。雖然本文的焦點是對比 .NET 物件模型和 RAS 物件模型,我們仍然在附錄 A 中包含了水晶報表 Visual Studio .NET 版和水晶報表 9 的特性對比。


什麼是報表應用伺服器物件模型?

報表應用伺服器 (RAS) 是一個新增並且強大的物件模型。RAS 屬於客戶/伺服器系統,能夠在多層環境中進行報表建立,處理以及操作。它由兩個基本組件構成:RAS 伺服器和提供伺服器介面的軟體開發套件 (SDK) 。由於 RAS 被設計成兩個分離的組件,報表處理可以從 Web 服務器上卸載。



圖 1:報表應用伺服器的架構概覽

RAS 和查看器 SDK 包含許多庫,以使你構造 Web 報表解決方案。這些庫可以在你的伺服器端代碼 (ASP, ASPX, JSP 或者 Java servlets) 中使用,以提供報表應用伺服器的介面。從這種意義上說,SDK 構成了這個客戶/伺服器系統的用戶端。

RAS 提供了設計,查看,處理及定製報表的服務。客戶建立的程式可以使用該 SDK 與伺服器通訊。RAS 包含在水晶報表 9 開發人員版和進階版,以及水晶企業 9 中。


什麼是水晶企業物件模型?

水晶企業 9 物件模型是最進階的企業報表,分析和 Web 交付物件模型,可以被採用 .NET 平台的組織使用……水晶企業提供了一個健壯的伺服器端報表平台,並且包含 RAS 物件模型。水晶企業允許組織購買“即拆即用”(out-of-the-box) 平台,相當於提供給組織將開發資源集中到高度定製化前端的能力,前端與水晶企業後端通訊。這通過調控水晶企業 .NET SDK 來實現。設想做如下比較:通過添加新特性或者增強現有特性來滿足需求 Vs. 必須構造全部特性。例如,水晶企業提供報表調度“即拆即用”(out-of-the-box),因此核心報表可以在任何時間運行,以任何格式 (比如 Excel, PDF, XML, Word, 等等) 提供,並且交付到任何位置 (比如:Email 帳號, FTP 網站, 印表機, 等等)。


應用程式開發

.NET 物件模型和 RAS 物件模型都能夠以格式化報表頁的形式顯示輸出。它們能夠開啟報表,儲存報表,改變分組,並傳遞參數,雖然是使用不同的文法。然而,RAS 增加了運行時建立和修改報告的能力,允許使用者自助 - 定製他們企業資料的視圖。它還提供從報表中提取行資料的能力。這將允許你重用包含在報表裡的資訊。例如,你可以建立一個世界範圍的銷售報告,有計劃的從中提取資料,並將資料轉換成 XML,與夥伴共用。你還能夠利用這種原理讓終端使用者在報表中搜尋特定資料,並將結果匯出成其它格式,與他人共用。

.NET 物件模型和 RAS 物件模型定義了報表格式化和資料連通性,而 CE 物件模型則關注集中式的,企業範圍的報表管理。CE 物件模型定義了如何調度報表,如何儲存報表“快照”,授權和驗證系統的管理,等等。

或許,闡明 .NET,RAS,及 CE 物件模型之間差別的最佳方式是給出一個簡化的圖表,對比三種物件模型的附加特性以及增強企業級可靠性。



通常的方針是:

●.NET 物件模型推薦小型工作群組項目使用,即只有相對直接的報表需求 - 例如:較小的報表,較少的使用者請求報表,等等。該技術是應用程式的一個組件,並且可以通過附加硬體來縮放 - 通過附加處理器向上擴充,以及通過附加伺服器向外擴充。

●RAS 物件模型推薦中型的部門級應用使用,即需要卸下報表處理,並且/或者要讓終端使用者個人化資料的視圖,這通過運行時建立和修改報告實現。

●CE 物件模型推薦給關鍵任務型的、中型至企業規模的應用。該類型的應用程式處理大量來自不同資料來源的資料,並且為使用者展現資訊以提供決策支援。通常情況下,有大量報表需要精確的調度和Server Load Balancer,以確保企業的資訊基礎設施沒有超負荷。這些應用程式還需要以多種數字格式將資訊交付到多種終端使用者裝置。安全,容錯,系統管理及審核都屬於關鍵性需求。


處理效能

使用者請求

在水晶報表 9 中, .NET 和 RAS 都作了技術上的限制,只能接受三個並發請求 - 比如,第一頁查看,匯出,深化,列印,等等。可是在請求處理上,它們有明顯的不同。這些差別能夠影響總體系統效能和規模。就水晶報表 Visual Studio .NET 版而言,超過三個請求閥值的請求將會重試,直到三個進行中請求的任意一個完成或者瀏覽器逾時。RAS,恰恰相反,將排隊第4,第5,第6,等等請求。沒有預設的逾時限制,隨後的請求也不會失敗。RAS 也包含,即拆即用的 (out of the box),報表緩衝功能,以最小化多餘的資料庫輪詢 (round-trips)。這將提高伺服器效能,相對於水晶報表 Visual Studio .NET 版組件而言。

注意:為了支援無限的使用者請求,可能需要額外購買處理器許可證。


組件 Vs. 獨立伺服器

.NET 是一種報表元件,它作為 Web 程式的組成部分被安裝,處於微軟互連網資訊服務 (IIS) 之上。既然建立 .NET 報表元件的目的是用於小規模的工作群組應用,有強烈報表處理需求的客戶可能會遭遇無法接受的系統輸送量。而缺少隊列和緩衝功能,又使 .NET 報表元件不適合企業規模的資訊分發。另外一個變數則是 Web 程式的 CPU 負荷。因為 .NET 報表元件是 Web 程式的組成部分,它和你的程式消耗同樣的資源。

對比之下,RAS 針對 Web 設計。報表處理被卸載到獨立的應用程式層,從而帶來了更好的總體效能。通過在獨立伺服器上運行 RAS,效能將會提高,因為報表處理不再受制於應用伺服器的進程。

注意:雖然不是必需,仍然推薦你在單獨的伺服器上運行 RAS,以便在應用程式層之間提供更好的可縮放性和功能劃分。

在伺服器上,RAS 也可以被分配到特定數目的處理器上運行。這使得開發人員能夠建立滿足效能要求並且最節省成本的解決方案。因為 .NET 物件模型必須安裝到 Web 服務器上,它不能針對特定處理器。如果需要處理器許可證,安裝應用程式的每個處理器都需要購買。

對於 RAS,你只能安裝所購買的開發人員版或者進階版的一個副本。如果你購買了兩個進階版的水晶報表,你可以安裝兩個分離的 RAS,但是不能通過把它們連結到網站群 (web farm) 裡來提高應用程式的效能 - 除非從 Crystal Decisions 購買了許可證。

對於所購買的開發人員版或者進階版,.NET 報表元件可以被安裝到多個伺服器,只要不通過把它們連結到網站群 (web farm) 或者網站園 (web garden) 來縮放你的應用程式,以突破 3 個請求的限制 - 除非從 Crystal Decisions 購買了網站群 (web farm) 或者網站園 (web garden) 許可證。


報表元件 Vs. 報表伺服器通訊

.NET 報表元件是“繁瑣”的。每一個事務 - 比如,設定參數或者字型 - 都將招致訪問組件的額外往返旅行。如果報表很複雜,這將導致效率低下(例如:訪問大量的資料,連結到多個資料庫,執行進階命令,等等)。相反,RAS 緩衝請求,並且批處理事務。多個操作將組合成一次伺服器操作,因而降低了效率損失。


擴充性

儘管可以作為獨立產品使用,RAS 物件模型仍然是水晶企業物件模型的組成部分。這使得 RAS 應用程式的開發人員可以在未來無縫的遷移他們的程式,以便利用水晶企業的其它服務,包括:

  ●調度
  ●使用者,報表和資料安全
  ●報表和執行個體管理
  ●自動叢集,Server Load Balancer,以及容錯
  ●基於 Web 的系統管理和配置
  ●分析和特別報表 (ad hoc reporting)
  ●自動分發到多種格式和目標

僅需少量的編程就可以改變 RAS 程式來利用這些附加的服務。

相反,.NET 報表物件模型沒有與水晶企業家族共用同一個物件模型。這意味著為了支援 Crystal 服務,使用 .NET 報表元件設計的應用程式需要完全重寫。這被證明是昂貴而且資源密集的,所以組織應該在當前的開發計劃中考慮未來的需求。


將 .NET 應用程式遷移到 RAS

儘管將應用程式從 .NET 物件模型轉換到 RAS 要捲入初期的工作,但也會獲得本文中所概括的顯著優點。在 www.crystaldecisions.com/devzone 中有許多執行個體應用程式,可以指導你完成遷移過程。


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。