Logi Info Architecture
Once you have Logi Info installed, you can review this topic to get insights into the Info architecture. You will learn about a key concept, Elemental Development, along with report definition files, elements and attributes, and more. This topic describes Info Architecture and provides links to other related topics.
- About Logi Applications
- Introducing Elemental Development
- General Development Process
- Data Retrieval Technologies
- Standard Logi Application Folders
- Standard Logi Application Files
- Using Support Files in a Logi Application
- Application Deployment
- Product Feature Introduction
A Logi application consists of one or more reports. A "report" is really a web page so, while Logi applications are most frequently used as reporting and analysis tools, they can also be used to create full-featured websites. The Logi Analytics DevNet website, for example, is built with Logi Info.
Logi reports deliver data in a presentable and accessible manner as web pages. They use Internet technologies and a browser to distribute rich, interactive reports and applications. Logi Info brings leading-edge Internet technologies together, allowing you to quickly deliver results efficiently. The framework underlying this consists of:
- Logi Studio, an integrated development environment.
- Report Definition text files, which contain source code (in our XML-based coding language).
- The Logi Server Engine, a web server extension.
Logi Info applications separate the report development, data access, and presentation processes, as shown above:
- Report Definitions are text files that contain the information describing report layout and contents, stored as XML documents. While it's possible to create and edit definitions with any text editor, Logi Studio provides an integrated development environment with lots of tools and helpful wizards that do much of the coding for you, reducing development time and effort.
- When a report page is requested by a user, the Logi Server Engine, on the web server, processes the report definition and accesses whatever data sources are required. A wide variety of data sources are supported and data caching is used to speed up performance.
This arrangement allows the Logi Server Engine to operate as a stand-alone entity that's completely independent of systems that call upon it for reports. Non-Logi applications, regardless of their host OS, environment, or development language, can access Logi reports using a standard hyperlink or by embedding them.
The Windows version of the Logi Server Engine is an ASP.NET application, so Logi report applications can also be integrated directly into other ASP.NET applications. Logi Java applications provide the standard folders and files, such as WEB-INF and .jar files, that Java web developers are familiar with, and run under servlet containers such as Apache-Tomcat.
Elemental Development is the process of creating flexible reporting applications using predefined, XML-based objects or "elements". The advantages of Elemental Development are:
- XML elements are reusable and encapsulate specific functionality common to most web applications.
- A hierarchical layout of elements makes it easy to manage the presentation and functionality of large web-based reports.
- Logi Studio's toolbox of elements eliminates repetitive coding, shortens development time, and minimizes errors.
- Elements can be easily added, deleted, and moved to create almost any type of report. Their attributes are easily configurable.
The general development process for a simple Logi application is:
- Use Logi Studio's New Application wizard to create a new Logi application and register it with the web server.
- In the new application's The _Settings Definition (created by default), add a Connection to the desired data source.
- In the Default Report definition, add elements to design the web page, and retrieve and manipulate the data.
- Add elements to analyze and visualize (tables, charts, maps) the retrieved data.
- Preview your work right in Logi Studio as you proceed and use its debugging features to troubleshoot problems.
- If desired, extend the application with exports, security, user interface controls, and more.
Logi Studio includes a variety of wizards which make these tasks easy.
The traditional Logi Info method of data retrieval generally uses a Connection element to connect to a datasource, and a related DataLayer element to issue a query or request for data. The returned data is cached in temporary files and/or memory, and can be modified and extended (grouped, filtered, etc.) in place using other elements, before being made available for analyses and visualizations. Some datalayers for file system-based data do not need to use a Connection element.
A Logi application is comprised of Logi Server Engine files, definition files, and support files, stored in specific folders, under an application root folder. Development work consists primarily of creating definition files and adding support files.
In keeping with standard web server file security conventions, files in folders under the Logi application root folder are "available" to the application, meaning that the account the web server uses to run the application has file access permissions in these folders. Files outside the root folder are generally not available.
You must not modify the names or contents of these standard folders:
- bin - The Logi Server Engine files for a .NET application.
- assemblies - Files that map .NET modules into Java servlets (Java application only).
- rdTemplate - Component definitions, style, and scripting files used by the Logi Server Engine.
- rdDataCache - Temporary data cache files (this folder is created automatically when the application runs).
- rdDownload - Temporary files created by the application (also created automatically).
- WEB-INF - The Logi Server Engine files for a Java application.
You may notice that each Logi Info application contains its own set of Logi Engine files and this makes the size of each application fairly large. Why not provide one copy of the engine files in a central location? When each application has its own engine files, there are no problems distributing or running it when multiple applications of differing versions are run on the same web server.
You can create and modify files in these standard folders, but do not modify the actual folder names:
- _Data - Appears when a special Logi definition is created that makes an application a JSON data provider.
- _Definitions - (Required) Report, process, and settings files that you create. Standard subfolders include _Processes and _Reports, which are part of every application.
- _Metadata - Appears when the Web Metadata Builder is used to create metadata files.
- _MobileReports - Appears when you create special mobile report definitions.
- _Templates - Appears when you create special definitions for use with Word, Excel, and PDF templates.
- _Themes - Used when custom Themes are added to the application.
- _Plugins - Used when plug-in .DLLs and/or Java files are part of the application.
- _Widgets - Appears when you create special Logi Widget definitions.
You can also add custom folders beneath the application root folder, for example, to contain data or exported files. Take care when creating these folders to ensure that they're given the same file access permissions as the root folder (permissions aren't always inherited, especially when copying files and folders).
You'll find these standard files in an application root folder; do not remove, rename, or alter them.
- rdChart.aspx - Builds and displays charts
- rdPage.aspx - Displays report definitions
- rdProcess.aspx - Processes tasks contained in process definitions
- rdErrorLog - Error logs (only present if Error Logging has been turned on)
- rdDebug.aspx - Generates and displays debug output (made obsolete in v10.0.259+).
Each Logi application also includes several standard files that you can customize, described below:
The default web page registered with the web server is Default.aspx:
<%@ Page Language="vb" %>
Dim sQueryText as String
If Request.RawUrl.indexof("?") <> -1 Then
sQueryText = Request.RawUrl.substring(Request.RawUrl.indexof("?"))
Response.Redirect("rdPage.aspx" & sQueryText)
The code above redirects users to rdPage.aspx; the main web page for displaying report definitions. You can replace the contents of Default.aspx with your own HTML. Any query string parameters submitted with the URL are also passed to rdPage.aspx. For example, the following links take viewers to the same location:
You can create your own Global.asax files for integrated Logi applications.
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
Dim rdMaint As New rdMaint.Maintenance()
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
Dim rdServer As New rdServer.rdSession()
The Application_Start and Session_Start event handlers are customizable but must be present and, at a minimum, contain the code shown above.
All Logi applications are provided with a basic login page, which is used if Logi Security is enabled:
However, you can completely customize the rdLogon.aspx page and even rename the file. The following HTML tags for the login form are required to be present:
- <form id=frmLogon action='<%=Session("rdLogonReturnUrl") %>' method=post>
- <input id="rdUsername" type="text" size="20" name="rdUsername">
- <input id="rdFormLogon" type="hidden" name="rdFormLogon" value="True">
- <input id="rdPassword" type="password" size="20" name="rdPassword">
- <%=Session("rdLogonFailMessage") %>
Assuming that Logi Security is being used, you can present a custom logon page by configuring it in _Settings:
- Open the _Settings definition to view its elements, as shown above.
- Select the Security element.
- Select the Logon Page attribute and enter the filename of your custom logon page.
The Web.config file contains many useful settings for the entire Logi application. However, the Web.config file for a Logi application is not the standard version found in most ASP.NET applications and replacing it with a standard file will produce unpredictable results. Therefore, integrating a Logi application with another ASP.NET application has to be done in such a way that their Web.config files do not interact with or supercede each other. Generally speaking, we do not recommend that such an integration be accomplished by physically merging the application files and folders.
Having said that, the Web.config file is an XML file that you can modify to customize authentication, impersonation, globalization, session-state settings, error messages, and more. For Logi .NET applications, many configuration settings made in IIS Manager are written directly into Web.config, and any customized settings in Web.config always override similar settings in IIS Manager. More information about the Web.config file is available at this Microsoft web page.
In Logi Info, elements are combined in definitions to build web-based applications. One report definition is equivalent to one dynamic web page. Every Logi application contains at least one report definition and can include multiple definitions as the application grows.
The example above shows Logi Studio's Application Panel and the seven major types of definition files found in Logi applications, which are described below:
(Required) The one The _Settings Definition in every Logi application contains global configuration values for the entire application. It contains elements that define the application's virtual path, debugging capabilities, database connections, security information, and more.
Contains report definitions built with elements that define a dynamic web pages. A report definition typically contains report header and footer elements and a body element. The main body of the report can include any combination of text, charts, dashboards, data tables, user input controls, etc. In the file system, this folder is <appRoot>/_Definitions/_Reports
Contains report definitions that are used exclusively to deliver content to mobile devices, built with a combination of common and special-purpose elements. In the file system, this folder is <appRoot>/_Definitions/_MobileReports
Contains definitions for a special class of Logi reports that can be independently embedded into external HTML pages. In the file system, this folder is <appRoot>/_Definitions/_Widgets
Contains definitions that allow you to take advantage of forms-based reporting, using Word, Excel, and PDF forms. Template definitions model the "fill-able" form fields contained within the source template file. In the file system, this folder is <appRoot>/_Definitions/_Templates
Contains definitions that provide a level of automation and contain the logic needed to perform specific tasks within an application. Process tasks can be used to perform scheduled operations, such as exporting a report to PDF format or then emailing it to a group of recipients. In the file system, this folder is <appRoot>/_Definitions/_Processes
Contains definitions that retrieve data and provide it as a JSON stream, for use by a variety of consumers, including non-Logi applications. In the file system, this folder is <appRoot>/_Definitions/_Data
From XML to HTML...
Every definition file created with Logi Studio is an XML document, which describes multiple objects we call elements and their attributes. Elements encapsulate different types of functionality and presentation; attributes enable you to customize element properties and behavior. For example, a DataLayer element retrieves data from a data source and a Chart.Pie element creates a pie chart from the data. The Chart.Pie element contains attributes to specify the height, width, color, border, and more.
Here's an example of a simple report that illustrates elements work:
The image above left shows an example report definition, named "newReport", in Logi Studio. The report contains Style and Body elements. The Body element has a "child" element beneath it: a Label element, which has a Caption attribute.
The middle image shows the underlying XML source code for this collection of elements, as seen in Logi Studio's Source tab. You can edit this source code directly but we don't recommend it.
The Logi Server Engine processes the XML source code, generating the HTML needed to present the page in Studio's Preview tab, which is shown in the right image.
Studio's Application Panel also includes a folder for Support Files. These are files, such as images, that used by the application but are not definitions:
Typically, Logi applications include the following types of Support files:
- Data - Excel, CSV, XML, and other data files that are a data source for report definitions
- HTML - Custom HTML web content to be included within the application
- Images - GIF, JPG, PNG, SVG and other types of image files
- Stylesheets - Cascading Style Sheet (CSS) files for presentation and formatting control
- Templates - Word, Excel and PDF form template files
You can also put just about any other file you might want to access in Support Files. In the file system, this folder is <appRoot>/_SupportFiles.
All of the files that typically make up a Logi application reside under one folder, the application root folder. This folder is registered with the web server as a "virtual directory" or web application, and is almost always stored on the web server. However, it is possible to distribute the application in clustered server environments.
Publishing Logi applications, such as deploying them from a development web server to a production web server, is a simple matter of copying the application folder to the production server. Studio includes a convenient Deployment Tool that deploys applications using a variety of techniques. Updating definitions in an published application is also just a simple matter of copying them. For more information, see Deploy a Logi Application.
If you're a developer who's just getting started with Logi Info, you may not be aware of all of the features available in the products. If you'd like a visual introduction to the elements, see our Element Gallery.
In addition, here are categorized links to relevant topics for many features:
|Logi Studio||Studio is our development tool. Your next step should be learning about Studio's features (see Introduction to Logi Studio) and how to use them (see Using Logi 12 Studio). Our Datatable Tutorial - Wizard will help you get started.|
|Managing Your Product||Updates for Logi Info are available monthly. Keep abreast of the Current Product Releases and the Release Notes so you'll be up-to-date.|
|Designing Reports||Design a Logi Report helps you understand how to design a basic page and use elements to achieve the desired result.|
|Accessing and Retrieving Data||The first step in reporting is often getting the data. Logi Info is able to get data from a large number of data sources. First you need to connect to a data source (see Datasource Connections) and then you need to retrieve its data (see Datalayer Introduction).|
|Tabular Data||Some data is best reported in tables and we have a variety available, including the regular data table (see Data Tables), the crosstab (or "pivot") table (see Crosstab Tables), Multi-Column Lists, and data lists (see Data Lists).|
|Charts||Charts are a great way to present data, and we have traditional static and animated charts (see Chart Canvas Charts). We also have non-traditional charts such as Heat Maps, polar charts (see Polar Charts), and text clouds (see Text Clouds).|
|Dashboards||Dashboards, with the multiple panels, provide a great way to see a variety of data in a glance, and our dashboards offer runtime flexibility and customization, if desired. For more information, see Logi Info Dashboard.|
|Tabbed Panels||An excellent method of organizing information on the page is to use Tabbed Panels.|
|Maps||Associating data with maps is a popular technique and we offer animated maps (see Animated Maps), Google Maps and, in v12.5+, Leaflet Maps.|
|Super-Elements||Logi Info includes a set of "super-elements", which are self-contained elements that produce tables and charts, and that have their own user-interface, so users can manipulate them at runtime. They include The Analysis Chart, The Analysis Filter, Analysis Grid (see The Analysis Grid for End Users), Chart Grid (see The Chart Grid), Dimension Grid (see The Dimension Grid Wizard), OLAP Grid (see Logi OLAP), and Report Author.|
|Presentation||The appearance of web pages is governed by style classes. We offer built-in Themes and the ability to work with your custom style sheets (see Introduction to Style Sheets). In addition, you can add HTML tables (see HTML Tables) and divisions (see Work with Divisions) and Format Data to get the desired look. We also support Doctype Declarations.|
|Showing & Hiding||Our dynamic reporting approach allows your to show and hide sections of reports based on data, security roles, or other criteria. Show Modes (see Show Modes) and Conditions (see Conditions) can be used to control element visibility.|
|Passing Information||Information and data can be passed from one report definition or (in Logi Info) process task to another. For more information, see Pass Information.|
|User Input||We provide a range of HTML-based user input elements and validation, so that users can control reporting dynamically at runtime. For more information, see Introduction to User Input Elements.|
|Pop-up Menus and Pop-up Panels||Users can also interact with a variety of pop-up menus (see Popup Menus) and Popup Panels at runtime.|
|Shared, Reusable Code||Some code, such as headers and footers, might appear in multiple reports, and it can be created as Shared Elements, which are easily reused and maintained in a single place.|
|Exporting Data and Reports||We make it easy to export your data and reports to a variety of formats, including Word (see Export to Native Word), Excel Template, CSV (see Export to CSV File), PDF (see Export to Adobe PDF), and XML (see Export to XML).|
|Printing Reports||It's also possible to Create Printable Reports, adding pagination, special headers and footers, and other features.|
|Templates||You may need to fill forms using data, see Form-based Reporting. We offer features that make it easy to create report definitions that will fill-in Word (see Export to Native Word), Excel Template, and PDF templates (see Export to Adobe PDF).|
|Security||Logi security offers a variety of levels of security granularity and lets you work with network security such as Windows Domains and LDAP. For more information, see Introduction to Logi Security.|
|Scheduling||The Logi Scheduler allows report generation and distribution to occur at regular intervals. For more information, see Introduction to Logi Scheduler.|
|Process Tasks||You can also make use of Process Tasks to provide automation and conditional processing.|
|Web Services||Logi reports are capable of interacting with web services, including Salesforce (see Work with Salesforce), Twitter (see Work with Twitter), and those you may write.|
DevNet also includes a number of free sample applications that you can download and run in Studio to see the techniques used to produce a variety of reporting applications.