Transcript Document
UNIT4 BUSINESS ANALYTICS
WHAT IS THE PRODUCT?
A business intelligence tool kit, specializing in Coporate
Performance Management
An application builder. No predefined screens, they are all
created by a domain expert specifically for each customer
A runtime platform. Custom applications are published to our
runtime platform and screens are generated on the fly by the
front end
page 2
ARCHITECTURE OVERVIEW
TypeScript/JavaScript/HTML5
Currently Flex (Adobe Flash)
Java Swing Application
NetBeans Platform
Front end
Builder
Plugin
components
Java application
System
managemnt
tools
Platform
components
REST API
JEE6 (GlassFish)
Solution engine
Driver Front-end
Plugin
components
SVN Front-end
WebDAV
XMLA/MDX
LDAP
Authorization
(and Authentication)
Versioned Solution
Repositoy
SVN
Cube
XML for Analysis
Directory Service (OpenDS)
Authentication
(Optional)
Active Directory
page 3
SYSTEM COMPONENTS
OLAP cube backend. Queried using Multidimensional experessions (MDX).
Domain expert tool. Java Swing Application based on the NetBeans platform. Consists of
functionality such as schema editor, OLAP cube generator, query creator, layout designer,
role and user management.
Meta-model defining possible screen layouts, query expressions and user actions. Defined
using Eclipse Modeling Framework.
Subversion repository for keeping version controlled application definitions.
Application server containing the Java Enterprise Edition runtime platform. Currently we are
using the open source Glassfish server from Oracle.
Front end client. In production we now have a Flex based client, running on the Flash Player
VM in webbrowsers and compiled to native apps for tablets. We are currently rewriting the
client from scratch in TypeScript and JavaScript
page 4
DOMAIN EXPERT TOOL
page 5
FLEX CLIENT – BEING REWRITTEN
• 7 years old
• 80000 lines in total
60000 lines of code
• 700 classes and
components
• One version for
webbrowsers and one
for iPads and Android
tablets
page 6
NEW FRONT END APPLICATION
Started January 2014.
Complete rewrite. New structure and model.
Written in TypeScript and JavaScript
Currently 4000 lines of TypeScript in 36 files, with a significantly larger number of
classes and interfaces. And 1500 lines of JavaScript in 23 files
Focus is on well structured object oriented code, using functional techniques
where appropriate
Desktop webbrowser application and tablet application; different version with a
large amount of code reuse
Targeting only browsers supporting HTML5, ECMAScript5 and CSS3
page 7
ABOUT TYPESCRIPT
• Created by Microsoft, released in version 1.0 in April 2014
• Superset of ECMAScript 5 (aka JavaScript). Using
ECMAScript 6 syntax where possible
• Has classes, interfaces, modules and generics
• Static type check at compile time with fun features such as
optional typing, type inference, function types and implied
interfaces
• Supports both closures and classes, so we get the both of
both worlds and can write multi-paradigm programs using
both functional and object oriented programming
• Dynamic prototyping and static type check. The speed of
development of dynamic languages and the safety of static
languages
• Excellent IDE support (Visual Studio, IDEA Intellij/WebStorm,
Eclipse, Sublime Text, etc)
page 8
ABOUT EXT
Ext JS is the industry standard for data-driven single-page
applications
Large number of components available
Meta-object protocol for supporting inheritance, classes,
component hierarchies, etc.
Cross browser fidelity
page 9
DEVELOPMENT ENVIRONMENT
Maven is our build automation tool
Git is our version control system
TeamCity is our continous build system
Each developer is free to use the IDE of his or her choice.
Currently most developers use IDEA IntellIJ Ultimate, but we
also have licenses for Visual Studio 2013 and will accommodate
other choices.
page 10
RESOURCES
Unit4 Business Analytics
http://www.unit4.com/products/business-analytics/
http://youtu.be/JBEO18i_Mkw (story explaining the demo)
http://youtu.be/aXuK0eD5hHk (sales video)
TypeScript
http://www.typescriptlang.org/
Ext.js
http://www.sencha.com/products/extjs/examples/
page 11