• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Zap application architecture-bi-2010
 

Zap application architecture-bi-2010

on

  • 718 views

 

Statistics

Views

Total Views
718
Views on SlideShare
718
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Zap application architecture-bi-2010 Zap application architecture-bi-2010 Document Transcript

    • Zap BusinessIntelligence ApplicATion ARchiTecTuRe www.zaptechnology.com
    • Application ArchitectureZap Business Intelligence 2010
    • PuRpose The purpose of this document is to provide an overview of the architecture of Zap Business Intelligence 2010 to a relatively technical audience. It is not expected that readers of this document will have an in-depth understanding of software development practices, methodologies or design principles; however, a reasonable understanding of enterprise- grade application architecture in general is assumed.Scope This document discusses the architecture of the Zap Business Intelligence application and how it interoperates with other components within the enterprise eco-system. Specifically, this document does not cover deployment scenarios, network configuration or software and/or hardware requirements. This document is not intended to provide a description of the feature set of Zap Business Intelligence 2010.LAsT UpdATed This document was last updated on 7/09/2010. Application Architecture Zap Business Intelligence 2010
    • Application ArchitectureZap Business Intelligence 2010
    • ConTenTs 1. Overview 7 2. Client Access Layer 8 3. Presentation Layer 9 4. Business Intelligence Components (Resources) 10 5. Business Intelligence Core 11 5.1 Analytics Engine 11 5.2 Workflow 11 5.3 Content Persistence 11 5.4 Authentication 11 5.5 Authorization 11 5.6 Licensing 12 5.7 Error and Usage Reporting 12 6. External Components 13 6.1 User Store 13 6.2 Content Persistence 13 6.3 OLAP Providers 13 6.4 Source Data 13 Application Architecture Zap Business Intelligence 2010
    • Application Architecture6 Zap Business Intelligence 2010
    • 1. OveRview Zap Business Intelligence is a self-contained, multi-tiered application based on Microsoft’s .NET runtime and the ASP.NET framework. Zap Business Intelligence utilises the Microsoft Windows Server platform and interoperates with Microsoft’s SQL Server and SQL Server Analysis Services. As per Figure 1 below, Zap Business Intelligence comprises multiple internal components. All of these components are bundled together and must be installed on the same server, although they are logically separate and responsible for discrete pieces of functionality. Client Access Layer Zap Business Intelligence User Interface ● XHTML ● JavaScript ● JQuery ● AJAX.ASP.NET Web Browser HTTP (Get/Post), SOAP Zap Business Intelligence Presentation Layer Security Figure 1 ● Zap Business Intelligence Portal The Zap Business Intelligence ● Internet Information Services (IIS) ! Authentication application comprises four main ● ASP.NET ● Forms (Multi-tenancy) components: a client-side (browser- ● Windows Integrated .NET Method Calls based) user interface; a presentation layer responsible for delivering Business Intelligence Components LDAP (Integrated) | ADO.NET (Forms) content to the browser; the business intelligence resources themselves; ● Dashboards User Store and finally a service layer responsible ● Analysis .NET Role & Custom Role & for core business intelligence ● Scorecards Membership Providers Membership Providers ● KPIs functionality. Active SQL SQL /etc / ● Report Packs Directory Server Database passwd ● System Time & Date :: Aggregation :: Windows Server Linux/Unix/Solaris/Other Selection Types ● Custom & 3rd party Example: vertical industry Authorization ● Predictive - Price elasticity ● Cube ● Resource .NET Method Calls ● Organization ● Global Data Warehouse Providers Business Intelligence Core XMLA ● Analytics Engine > Template System Zap SSAS Extensions > Write-back > MDX Compiler > Core BI Logic SSAS SQL Server ● Work ow > Rules > Events SQL Server ADO.NET ● Content Persistence Windows Server ● Licensing Windows Server .NET Common Language Runtime AMO Zap CubeXpress Windows Server SQL Server Database Microsoft Dynamics Other Data CRM / NAV / AX Sources Windows Linux / Unix / Server Solaris / Other Application Architecture Zap Business Intelligence 2010 7
    • 2. ClienT Access LAyeR The browser-based component of Zap Business Intelligence combines an XHTML- and JavaScript-based UI with jQuery and Client Access Layer Zap Business Intelligence Microsoft’s AJAX.ASP.NET. User Interface The browser component loads a basic application framework ● XHTML (“Portal”) into the browser on the first page load, and then ● JavaScript ● JQuery dynamically modifies the page using SOAP-based web service ● AJAX.ASP.NET calls, jQuery animations and custom JavaScript. A large proportion of the application’s user interface code is executed Web Browser within the browser itself, requiring reduced communication with the Zap Business Intelligence server. The UI code makes extensive use of jQuery transitions and animations to enhance usability. Figure 2 Client Access (Browser) Layer From a performance perspective, this means that network bandwidth and latency are much lesser issues than with a traditional web application and the individual user therefore experiences much faster performance. From a scalability perspective, this approach permits a single server to handle many more users without significant performance degradation than would otherwise be possible, and that performance degradation when it does occur is very gradual, as Businessexpected of an enterprise system. Zap should be Intelligence Communication with the web server is performed using standard HTTP GET and POST operations for initial application load and printing, and SOAP-based web service calls for the remainder of the application’s lifetime. Presentation Layer ● Zap Business Intelligence Portal ● Internet Information Services (IIS) ● ASP.NET Zap CubeXpress SQL Server Database Microsoft Dynamics Other Data Zap Business Intelligence CRM / NAV / AX Sources Windows Linux / Unix / Business Intelligence Components Server Solaris / Other ● Dashboards ● Analysis ● Scorecards ● KPIs Data Warehouse Providers ● Report Packs ● System Time & Date :: Aggregation :: Zap SSAS Extensions Selection Types ● Custom & 3rd party Example: vertical industry ● Predictive - Price elasticity SSAS SQL Server Windows Server Zap Business Intelligence Business Intelligence Core User Store ● Analytics Engine > Template System .NET Role & Custom Role & > Write-back Membership Providers Membership Providers > MDX Compiler > Core BI Logic Active SQL SQL /etc / ● Work ow Directory Server Database passwd > Rules > Events ● Content Persistence Windows Server Linux/Unix/Solaris/Other ● Licensing Application Architecture8 Zap Business Intelligence 2010
    • Web Browser3. PResenTATion LAyeR The server-side presentation layer is responsible for generating user interface code (XHTML and JavaScript) and delivering it to the browser. It sits on top of Microsoft’s Zap Business Intelligence Internet Information Server (IIS) and the ASP.NET framework. Presentation Layer The presentation layer knows about the current user’s application state (i.e. what they can currently see within their browser), which resources they have open and what state ● Zap Business Intelligence Portal ● Internet Information Services (IIS) they are in. It also knows about the user’s permissions within an organization, and will ● ASP.NET dynamically show, hide or disable ribbon and menuZap CubeXpress appropriate. options as Security within the presentation layer is focused largely onDatabase SQL Server the prevention of scripting Figure 3 attacks and other browser-based exploits. The presentation layer does, of necessity, Presentation Layer handle user authentication, but only to the extent of Dynamics the user to authenticate Microsoft requiring Other Data Zap Business Intelligence CRM / NAV / AX Sources within that browser session and passing authentication tokens to the lower layers of the application. Windows Linux / Unix / Business Intelligence Components Server Solaris / Other User permissions (e.g. which resources a user can see, and what actions they may ● Dashboards perform) are considered in this layer only insofar as keeping the UI courteous and ● Analysis ● Scorecards generally not displaying options that a user is not permitted to select. Notably, role- ● KPIs Data Warehouse Providers based security is enforced lower down in the application’s stack and is not (and should ● Report Packs not be) enforced in this layer. ● System Time & Date :: Aggregation :: Selection Types Zap SSAS Extensions ● Custom & 3rd party The presentation layer communicates with the resource and core layers of Zap Business Example: vertical industry ● Predictive - Price elasticity Intelligence using both .NET assembly referencesSSAS direct method calls, and using with SQL Server internal web services where appropriate. Windows Server Zap Business Intelligence Business Intelligence Core User Store ● Analytics Engine > Template System .NET Role & Custom Role & > Write-back Membership Providers Membership Providers > MDX Compiler > Core BI Logic Active SQL SQL /etc / ● Work ow Directory Server Database passwd > Rules > Events ● Content Persistence Windows Server Linux/Unix/Solaris/Other ● Licensing Application Architecture Zap Business Intelligence 2010 9
    • Presentation Layer ● Zap Business Intelligence Portal ● Internet Information Services (IIS) ● ASP.NET4. Business InTelligence ComponenTs Zap CubeXpress (ResouRces) SQL Server Database BI components (“resources”) in this context are the building blocks (dashboards, charts, Microsoft Dynamics analyses, KPIs etc.) that users generally associate /withAX Other Data businessSources intelligence. Those Zap Business Intelligence CRM NAV / building blocks are themselves composed of smaller building blocks in the form of Zap Business Intelligence Functions, which allow shorthand access to everything from set Windows Linux / Unix / Business Intelligence Components Server Solaris / Other selections (“Select all the leaf nodes in this hierarchy”) to statistical functions, time, date and current period filters, and even price elasticity. ● Dashboards ● Analysis ● Scorecards A resource has a basic definition of what its designer desired it to display, and also has Data Warehouse Providers ● KPIs some additional state information; for example, the expansion state of particular cells ● Report Packs ● System Time & Date :: Aggregation :: within a cell-set. Zap SSAS Extensions Selection Types ● Custom & 3rd party Example: vertical industry The BI Components layer is also the layer in which third-party functions exist. One of the ● Predictive - Price elasticity SSAS SQL Server strengths of this approach is that third-party functions are treated the same way as Zap Business Intelligence’s internal functions are for the purposes of integration with the design experience, and users need neither know norWindows Server who actually provided care about Figure 4 BI Components Layer the building blocks that enable them to design their resources quickly and efficiently. Zap Business Intelligence Further, commonly-used components within an organization can be extracted out into their own functions, allowing re-use and, hence, an even further-improved design experience. Business Intelligence Core User Store ● Analytics Engine Each and every resource has its own role-based permissions, allowing fine-grained > Template System control of access to individual resources. A folder is considered to be a type& a resource, .NET Role & Custom Role of > Write-back > MDX Compiler so permissions on entire folders or tree structures canProviders Membership Providers the same Membership be managed in exactly > Core BI Logic way and with the same level of granularity as the permissions SQL a single, individual Active SQL on /etc / ● Work ow > Rules Directory Server Database passwd resource. > Events ● Content Persistence Windows Server Linux/Unix/Solaris/Other ● Licensing Application Architecture10 Zap Business Intelligence 2010
    • ● System Time & Date :: Aggregation :: Zap SSAS Extensions Selection Types ● Custom & 3rd party Example: vertical industry ● Predictive - Price elasticity SSAS SQL Server5. Business InTelligence CoRe Windows Server The BI Core layer is responsible for the core business intelligence functionality of the system. It handles the actual analytics components with respect to compilation and Zap Business Intelligence generation of MDX (the query language analogous to SQL for multi-dimensional data sources), manages workflow around rules and events defined within Zap Business Business Intelligence Core Intelligence, handles persistence (creating/loading/saving/deleting) of resources User Store and the security around access to them, and manages communication with external ● Analytics Engine > Template System components of the system. The BI Core layer is .NET Role & also responsibleCustom Roleenforcement of for the & > Write-back security policies. Membership Providers Membership Providers > MDX Compiler > Core BI Logic Active SQL SQL /etc / ● Work ow Obviously, the BI Core layer contains multiple components within itself. The details of Directory Server Database passwd > Rules > Events these are outside the scope of this document as the inner workings of the application ● Content Persistence Windows Server Linux/Unix/Solaris/Other ● Licensing in this respect have little bearing on its interaction with external systems, so only a brief overview of each is provided herein. Figure 5 Business Intelligence Core Layer 5.1 Analytics Engine The analytics engine handles all communications between Zap Business Intelligence and Microsoft’s Analysis Services (SSAS). The engine is responsible for generating MDX queries from BI resources, submitting the queries to SSAS, parsing the results and returning them to the presentation layer. The analytics engine communicates with Analysis Services using the XMLA protocol with various security options around authentication, impersonation and other constraints on which users can see what data. 5.2 Workflow The workflow engine in Zap Business Intelligence is responsible for triggering certain actions in response to user-defined conditions and events. A full description of the workflow capabilities of Zap Business Intelligence is outside the scope of this document. 5.3 Content Persistence Content is preserved using a relational database stored on an instance of Microsoft’s SQL Server. From the perspective of the application, almost every entity within Zap Business Intelligence is treated as a resource. Users, policies, organizations, data sources, folders and individual analytics components are all resources, and are stored in an XML-serialized (and XML-indexed) field within the application’s SQL Server database. It should be noted that the content database is completely separate from any data warehouse providers, and also completely separate from the Analysis Services server(s) containing actual data. The content persistence layer manages only metadata. Communication between the Zap Business Intelligence persistence layer and SQL Server uses Microsoft’s ADO.NET libraries wrapped by a LINQ abstraction layer. XML indexing is performed within the database on a subset of resource metadata in order to reduce search and retrieval time. 5.4 Authentication User authentication is achieved using .NET’s authentication provider model. The default authentication provider uses Microsoft’s Active Directory as its backing store and issues queries via LDAP, but the design philosophy is that if a different user store were to be required then a different provider could be substituted without code changes. Windows Integrated authentication is generally recommended for use within individual enterprise deployments, but forms-based authentication is also supported. 5.5 Authorization Authorization is managed at several levels, from global (application-wide) policies, individual organization policies, resource permissions and even cube-level constraints down to individual tuples within an Analysis Services cube. Global, organization and resource-level policy enforcement is the province of the Zap Business Intelligence Core application layer. Actions requested by a user (whether via web service calls, form posts or otherwise) are checked according to a user’s role memberships and are permitted only if that user has appropriate permissions. Individual resources to which a user does not have access do not appear for that user, and if a resource to which a user does have access refers to one to which the user does not have access, permission is denied. Application Architecture Zap Business Intelligence 2010 11
    • At the cube level, Zap Business Intelligence can be configured to impersonate the currently-logged-in user, which then allows Analysis Services to display only a sub-cube of the actual cube to that user. 5.6 Licensing A license is composed of a set of restrictions, all of which must be satisfied in order for the license to be valid. Licensing works on a very simple basis: » A customer’s channel partner will create a license agreement for the customer within Zap Technology’s license-provisioning system and provide the customer with a product key. » The customer’s system administrator installs Zap Business Intelligence and enters the product key. » Zap Business Intelligence fetches a license from Zap Technology, validates it and permits access to the application accordingly. Behind the scenes, a great deal of effort has gone into making the system simple and transparent. A license that is soon to expire, for example, will automatically and transparently trigger a re-fetch and require the involvement of only a system administrator if the customer’s license agreement has expired or is otherwise invalid. All licensing communication is performed using standard SOAP web services over HTTPS, and stateful inspection of licensing traffic using Microsoft’s ISA Server or a similar trusted SSL proxy is supported. For cases where a Zap Business Intelligence server is hosted within a DMZ that has no Internet connectivity, a manual licensing solution is also available. 5.7 Error and Usage Reporting Zap Technology makes a sincere commitment to continuous improvement of software quality. To that end, there exists a facility within Zap Business Intelligence to automatically report errors and usage metrics back to the developers. This aids not only in prioritising the fixing of any bugs found, but also in the diagnosis of any bugs reported by a customer with difficult or incomplete reproduction steps. This approach has already resulted in reduced turn-around times for fixes, and has enabled some other, non-reproducible behaviors that occurred only on specific systems to be identified and corrected. This information is batched and sent to Zap Technology using a standard SOAP web service, again over HTTPS. Stateful inspection is supported and encouraged. It must be made clear that any and all error or usage reporting is entirely voluntary and is via an opt-in process. In other words, the default behaviour of the application is to report zero information to Zap Technology and this setting may be changed only by a local system administrator. Application Architecture12 Zap Business Intelligence 2010
    • Zap SSAS Extensions SSAS SQL Server6. eXTeRnAl ComponenTs Windows Server 6.1 User Store The default user store is Microsoft’s Active Directory. Other user stores (e.g. other SQL databases, RADIUS servers etc.) are feasible due to the use of the .NET authentication provider framework, but custom providers for non-Active Directory backing stores are User Store not currently available. .NET Role & Custom Role & Membership Providers Membership Providers As can be observed from the accompanying diagram, the .NET role and membership providers abstract authentication and membership away from Active Directory or an Active SQL SQL /etc / Directory Server Database passwd SQL database, and allow the application to be unaware of (and disinterested in) how its authentication is performed. Windows Server Linux/Unix/Solaris/Other Although it is not currently supported, there is no reason why other authentication solutions such as Linux PAM, SQL databases on other operating systems or even RADIUS Zap CubeXpress Figure 6 User Store could not be, simply by the creation of appropriate authentication and role providers. SQL Server Database 6.2 Content Persistence Microsoft Dynamics Other Data BI content is persisted (saved) within a Microsoft SQL Server database. Content consists CRM / NAV / AX Sources of the metadata defining an analytics resource, but notably does not include any actual data. Windows Linux / Unix / Server Solaris / Other 6.3 OLAP Providers Zap Business Intelligence uses Microsoft’s SQL Server Analysis Services as its OLAP provider. Data Warehouse Providers Connections to SSAS are defined as Data Sources within Zap Business Intelligence. There Zap SSAS Extensions is no theoretical upper limit to the number of different Analysis Services instances or cubes for which data sources can be defined, although practical considerations such as server memory and processing power will limit the number of concurrent connections. SSAS SQL Server It should be noted that Microsoft PowerPivot uses SQL Server Analysis Services as its Windows Server OLAP layer, so Zap Business Intelligence can easily query PowerPivot databases in the same way as it queries pure Analysis Services ones. Figure 7 Data Warehouse Providers Third-party data warehousing components are also supported provided that there exists an extract/transform/load (ETL) tool or solution by which they can be transformed and loaded into Analysis Services. User Store There is no direct support for third-party OLAP providers. .NET Role & Custom Role & Membership Providers Membership Providers 6.4 Source Data Active SQL SQL /etc / Directory Server Database passwd Zap Business Intelligence does not need to communicate directly with any source data systems. This permits the use of intelligent ETL products such as Zap Zap CubeXpress Windows Server Linux/Unix/Solaris/Other Technology’s own Zap CubeXpress to import and transform data from arbitrary sources into Analysis Services OLAP databases. SQL Server Database Microsoft Dynamics Other Data CRM / NAV / AX Sources Windows Linux / Unix / Server Solaris / Other Figure 8 Source Data Data Warehouse Providers Zap SSAS Extensions SSAS SQL Server Windows Server Application Architecture Zap Business Intelligence 2010 13
    • Zap BusinessIntelligence www.zaptechnology.com