Download Microsoft Word - Thesis Chapter 2

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Chapter 2
Theoretical Foundation
2.1 Theoretical Foundation
There are several important theories that will be used to develop Intelligent IT Project
Management: Applied with Business Intelligence, they are:
2.1.1
Project Management
Project is a set of activities that had due date, definition, budgets, and unique value in
forms of service and products. Project Management is an act on how to organize, plan,
and manage resources available to meet sponsor expectation or constraints.
There are three kinds of constraints in project management (triple constraints):
1.
Time
Time is a time required for producing deliverables to sponsors or amount of time
available needed to finish the project.
2.
Cost
Cost is budgets amount available to project.
3.
Scope
Scope is set of activities that must be done in order to complete project.
Figure 2 1 Triple Constraints 1
1
Image taken from http://en.wikipedia.org/wiki/Image:Project-triangle-en.svg
8
9
These triple constraint was tightly related each other, for example project with high
scope usually will have big cost and time, project with tight time usually have reduced
scope but high cost, and project with reduced scope will have increased time and
reduced scope.
In Intelligent IT Project Management: Applied with Business Intelligence thesis, theories
of project management would not be too detail, since the main topic in thesis is business
intelligence, thus refer to
Intelligence IT Project Management: Web Based Application for further theories about
project management.
2.1.2
Java
Java is a programming language that can be used for general-purpose application, for
embedding programs in WWW pages, and for enterprise programs on e-commerce
sites. Java has been developed to combine standard capabilities of other
programming languages, powerful features of niche-market languages (automatic
memory management, bytecode interpreters) and key APIs for enterprise
development. Java has many interesting characteristic, such as, cross-platform,
object oriented, rich with powerful standard libraries, and web-enabled.
■
Cross-Platform
When it is said to be cross-platform, it means that java is able to run on different
operating system platform and hardware. This is achieved by compiling java
language code to java bytecode, which then run on java virtual machine. Java
virtual machine is a program written in native code on the host hardware that
interprets and executes generic Java bytecode.
10
■
Object Oriented
All functions in java are associated with objects. In other object-oriented
languages, there are normal functions that are independent of objects, as well as
methods or member functions that are associated with objects. However in java,
methods are the only type of allowable functions.
Almost all data types are objects. In some object-oriented languages, there exist a
distinction between regular data types and classes. Strings, arrays, structures,
files, sockets, and other types might not be objects that can be processed in the
same way as user-defined objects. However, in java all complex types are true
objects, and every object has a common ancestor, the Object class, thus
simplifying the creation of arrays or other collections of heterogeneous object
types. Some of the primitive datatypes (int, double, boolean, char, etc.) are kept
distinct from objects for efficiency. Each of the primitive objects has a
corresponding wrapper objects (Integer, Double, Boolean, Character, etc.).
■
Rich with Powerful Standard Libraries
With the availability of standard libraries given by java, developers are able to
rapidly develop an application.
■
Web-Enabled
Java also had been used to develop web applications; most of its code is same as
code for desktop application except for several libraries exclusively for
11
2.1.3
Business Intelligence
Business Intelligence had several definitions they are:
• “Business Intelligence is a process for increasing the competitive advantage of a
business by intelligent use of available data in decision making.”[ 2 ]
• “The process of gathering information about a business or industry matter; a
broad range of applications and technologies for gathering, storing, analyzing,
and providing access to data to help make business decisions.”[ 3 ]
All definitions shown have meaning that Business Intelligence activities of transforming
raw data into information using tools or applications, to help decision making.
Several terms that important in understanding Business Intelligence are:
• Data Warehouse
Data Warehouse is place for storing company’s electronic data that will be used
for analysis and reporting.
• OLTP (On-line Transactional Processing)
OLTP is method that enables system to quickly respond to user respond and
input.
• OLAP (On-line Analytical Processing)
OLAP is a method that enables quick answer providing,
In business Intelligence there are five key stages:
• Data Sourcing
Data sourcing is process for extracting data from any source available.
2
http://www.cmis.csiro.au/bi/what-is-BI.htm#Decision
http://dictionary.reference.com/browse/business%20intelligence
3
12
• Data analysis
Data analysis is process selecting desired information from data source.
• Situation Awareness
Situation Awareness means business intelligence must be used to adept business
environment by setting up problem context and filter information based on
context.
• Risk Assessment
Business Intelligence should be able to help user to calculate current and future
risk, when decision was made.
• Decision Support
Business Intelligence as decision support means, business intelligence would
provide important information that would help user take preventive decision that
would avoid disaster.
2.1.4
DBMS (Database Management System)
DBMS is a set of program that control organization, storage, management, and retrieval
of data in database.
Database is structured collection of data or record or “A collection of information
organized in such a way that a computer program can quickly select desired pieces of
data. You can think of a database as an electronic filing system”. [ 4 ]
Why DBMS was included in Intelligent IT Project Management: Applied with Business
Intelligence theoretical foundations? It is because business intelligence had tight relation
with relational DBMS, and query.
4
http://www.webopedia.com/TERM/d/database.html
13
Query in DBMS means utility to extract, insert and update data in database interactively.
These are some DBMS command that we use in MySQL a DBMS for IT Project
Management: Applied with Business Intelligence thesis:
• To extract data from a table in a database we can use SELECT command
Below is syntax of SELECT
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr, ...
[FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name' export_options
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]
Figure 2 2 extracting data from DBMS
For further information please go to
http://dev.mysql.com/doc/refman/5.0/en/select.html#
• To input data to a table in a database we can use INSERT INTO command
Below is INSERT syntax
14
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
Or:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
SET col_name={expr | DEFAULT}, ...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
Or:
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
Figure 2 3 input data to database
For further information about INSERT INTO please go to:
http://dev.mysql.com/doc/refman/5.0/en/insert.html#
• To update data to a table in a database we can use UPDATE command
Below is syntax for UPDATE command
Single-table syntax:
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
SET col_name1=expr1 [, col_name2=expr2] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
Multiple-table syntax:
UPDATE [LOW_PRIORITY] [IGNORE] table_references
SET col_name1=expr1 [, col_name2=expr2] ...
[WHERE where_condition]
15
Figure 2 4 update a data in a database
For further information about UPDATE command please go to:
http://dev.mysql.com/doc/refman/5.0/en/update.html
• To DELETE a data from a table in a database
Below is syntax for DELETE command
Single-table syntax:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
Multiple-table syntax:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
tbl_name[.*] [, tbl_name[.*]] ...
FROM table_references
[WHERE where_condition]
Or:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
FROM tbl_name[.*] [, tbl_name[.*]] ...
USING table_references
[WHERE where_condition]
16
Figure 2 5 Delete a data in a table
For further information about DELETE command please go to:
http://dev.mysql.com/doc/refman/5.0/en/delete.html
Relational DBMS is a database that used relational model; refers relations to table (row
and column). Terms related to relational model are:
• Table
Table is a set of data that’s placed in row and column
Figure 2 6 Tables in a database
17
• Primary Key
Primary Key is a unique key that’s used to identify rows in a table.
• Foreign Key
Foreign Key is a reference key from another table. Foreign key was used for
mapping relationship between tables.
Figure 2 7 Table description contain primary key and foreign key
2.1.5
Pentaho
Pentaho is an open Business Intelligence Suite that provides wide range of business
intelligence development tool including reporting, dashboard, data mining, analysis, data
integration. Pentaho claimed that they are the most popular open source business
intelligence platform that had been used by many company including Motorola, DivX,
MySQL, Terra Industries, etc.
18
Figure 2 8how pentaho works [
5]
2.1.5.1 Pentaho reporting
Reporting becomes common features in business intelligence, thus pentaho
considering reporting in core features in business intelligence platform. These are
pentaho’s claim about their reporting engine: [ 6 ]
o “Flexible deployment from standalone desktop reporting, to interactive
web-based reporting to enterprise business intelligence – with a free
open source alternative at every step”
o “Broad data source support including relational, OLAP, or XML-based
data sources”
o “Flexible output options including Adobe PDF, HTML, Microsoft Excel,
Rich Text Format, or plain text”
o “Wizard-driven report design for fast, easy report creation”
5
Image taken from http://www.pentaho.com/products/
Quoted from http://www.pentaho.com/products/reporting/
6
19
o “Professional Edition available with additional deployment capabilities
including clustering, subscriptions, directory integration, versioning,
auditing, and more”
2.1.5.2 Pentaho Dashboard
Pentaho dashboard will bring interactive and attractive critical information, thus
making improvement in department, individual, or enterprise a lot easier.
These are what pentaho dashboard will provide in order to achieve such
visibility: 7
o
“Comprehensive metrics management capabilities which allow for the
definition and tracking of critical metrics at the individual, department, or
enterprise level”
o
“Rich, interactive visual displays so that business users can immediately
see which business metrics are on track, and which need attention”
o
“Integration with Pentaho Reporting and Pentaho Analysis so that users
can drill to underlying reports and analysis to understand what factors are
contributing to good or bad performance”
o
“Portal integration to make it easy to deliver relevant business metrics to
large numbers of users, seamlessly integrated into their application”
o
“Integrated alerting to continuously monitor for exceptions and notify
users to take action”
2.1.5.3 Pentaho Dashboard Community Framework
Pentaho Dashboard Community Framework is a framework made by pentaho
community member with user name Inglo Klose. The purpose of this framework
is to help pentaho community in developing interactive dashboard by ease
dashboard setting. The main idea of pentaho dashboard Community Framework
is to enable user to create dashboards with only one main java server page as its
presentation layer called Dashboard.jsp and connect those action sequence file
7
http://www.pentaho.com/products/dashboards/
20
that will be presented using template.html with pentaho ajax inside template.html
java script. Below is main architecture of pentaho dashboard community
framework.
Figure 2 9Pentaho dashboard community framework
What are needed to add new dashboard in pentaho dashboard Community
Framework are:
o Create new folder inside pentaho solutions
o Define the folder with index.xml, for describing the name and content of
folder inside pentaho application. Below would be some snippet code
about inde.xml
21
<?xml version='1.0' encoding='UTF-8'?>
<index>
<name>Smart Manager Report</name>
<description>Place to store report for Smart
Manager Application</description>
<icon>folder.png|solutions.png</icon>
<visible>true</visible>
<display-type>icons</display-type>
</index>
Figure 2 10Index.xml
o Move action sequence file that will be used in dashboard.
o Call action sequence file into Dashboard.jsp using template.html, below is
snippet code from template.html
</td>
<td style="width: 50%; text-align: center;
vertical-align: middle;">
<div id="object_2"></div>
</td>
<script language="javascript" type="text/javascript">
function loadPersonalStatus(territory_param){
name = territory_param;
project = territory_param;
result = name.replace(/\d\/member:/gi,"");
name=result;
result_second=project.replace(/\/\w*\:\w*/gi,"");
project=result_second;
document.getElementById( 'title' ).innerHTML =
"Personal performance for " + name;
//PENTAHO AJAX API
pentahoAction( "dashboards",
"smart_manager_dashboards", "Project Personal Task Pie
Chart.xaction",
new Array(new Array(
"user_name", name), new Array( "project_id", project))
,'updateObject_2');
}
function updateObject_2(content){
document.getElementById( 'object_2' ).innerHTML =
content;
document.getElementById( 'object_3' ).innerHTML = "";
}
Figure 2 11 Template.html and pentaho AJAX
22
2.1.6
Pentaho Design Studio
Pentaho Design Studio is eclipse IDE embedded with pentaho library and settings.
Pentaho design studio will act as report manipulator whenever developer wants to edit
report layout without re-publish same report to server twice. Pentaho Design Studio also
can be used as tools to made report able to receive user input, thus making report
dynamically changes as user input their criteria.
Adding input or editing without re-publishing is possible because in Pentaho design
studio we can edit the Action Sequence ( .xaction ) file. Action Sequence is a XML file
that defines a report in detailed and it'll be executed very lightweight by Business
Intelligence server. Important theories about Action Sequence would be: JNDI database
connection, SQL Query (database), and inputs.
2.1.7
XML
XML stands for Extensible Markup Language, and most of XML usage is to share and
store data.
These are some XML usages in real implementation: 8
• Separate data from HTML
To display data dynamically in HTML we can use xml to store data. With java
script usage, we can focus more on HTML layout design because java script
enables HTML to read data from xml.
• Simplifies data sharing
XML can act as bridge between applications for data sharing by storing data into
8
Quoted from http://www.w3schools.com/xml/xml_usedfor.asp
23
plain text format.
• Simplifies data transport
XML reduce complexity of data transport between incompatible system.
• Simplify platform change
XML can simplify platform change, since it enable simple data transfer between
old system and new system, since xml stores data in form of text file.
• XML makes data more available
Since XML was independent from any software or hardware, it would make data
more flexible in terms of universal hardware-software data transfer.
• XML was used to develop new language
A lot of new language created with XML
XML structure is a tree, it has root and children; inside children there’s sub-children.
Root, child, and sub-child are XML element.
Figure 2 12 XML tree
XML has rule they are: 9
9
•
“XML documents must have a root element”
•
“XML elements must have a closing tag”
•
“XML tags are case sensitive”
•
“XML elements must be properly nested”
Quoted from http://www.w3schools.com/xml/xml_dtd.asp
24
•
“XML attribute values must be quoted”
Reason why XML was included in theoretical foundation is because usage of XML in
Intelligent IT Project Management: Applied with Business Intelligence thesis would be
critical. From pentaho environment set-up to reporting properties, XML was used as
essential element for storing values. These are some example of XML usage in
Intelligent IT Project Management: Applied with Business Intelligence thesis:
• Setting up database connection (MySQL) in JBoss Server
Below is snippet code from MySQLDs.xml, file that act as connector
between JBoss and MySQL
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mysql-ds.xml 41016 2006-02-07 14:23:00Z acoliver $ -->
<!-- Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/titans</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>root</password>
<exception-sorter-classname>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exceptionsorter-class-name>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
Figure 2 13MySQLDs.xml
25
• Pentaho report action sequence
Below is snippet code from action sequence file
<?xml version="1.0" encoding="UTF-8"?>
<report-definition xmlns="http://jfreereport.sourceforge.net/
namespaces/reports/legacy/ext"
name="ProductivityDailySupervisorCollectorAll">
<parser-config>
<object-factory class="org.jfree.report.modules.parser.ext.
factory.base.URLClassFactory"/>
<object-factory class="org.jfree.report.modules.parser.ext.
factory.objects.DefaultClassFactory"/>
<object-factory class="org.jfree.report.modules.parser.ext.
factory.objects.BandLayoutClassFactory"/>
<object-factory class="org.jfree.report.modules.parser.ext.
factory.base.ArrayClassFactory"/>
<element-factory class="org.jfree.report.modules.parser.ext.
factory.elements.DefaultElementFactory"/>
<stylekey-factory class="org.jfree.report.modules.parser.ext.
factory.stylekey.DefaultStyleKeyFactory"/>
<stylekey-factory class="org.jfree.report.modules.parser.ext.
factory.stylekey.PageableLayoutStyleKeyFactory"/>
<template-factory
class="org.jfree.report.modules.parser.ext.f
actory.templates.DefaultTemplateCollection"/>
<datasource-factory
class="org.jfree.report.modules.parser.ext
.factory.datasource.DefaultDataSourceFactory"/>
Figure 2 14 Action sequence file
</parser-config>
For further explanation and complete information about XML please go to:
http://www.w3schools.com/xml/default.asp
2.1.8
Pentaho Report Designer
Pentaho Report Designer is a tool to design report before a report was published to
Pentaho Business Intelligence server. In order to use report designer first developers
must provide datasets used for report. Datasets can be made via database connection,
there are three kind of database connection they are: JNDI, Xquery, and MQL. Most
commonly used would be JNDI (for more information about JNDI see point 2.1.8 JNDI
and figure 2.9 for further explanation about JNDI database connection), after connection
was successfully made, then developers will need to insert SQL statement to extract data
26
from tables needed to create the report.
Second step after developers got the datasets, developers will need to design report
layout using utilities given. For this thesis utilities that we will use are:
¾
Item Band
Item band is utility that act as main place for holding specific data.
¾
Page footer
Page footer is place where you want to place a data that must exists every
page in lower section of paper.
¾
Page Header
Page header is place where you want to place a data that must exist every
page in higher section of paper.
¾
Palette
Palette is utility for placing and designing datasets into report that fit user
requirement
2.1.9
Web Service
By definition a Web Service “is a software application, identified by a URI, whose
interfaces and binding are capable of being defined, described and discovered by XML
artifacts and supports direct interactions with other software applications using XML
based messages via internet-based protocols” 10 .
It allows an application to be integrated to another third party application without
revealing codes, by publishing functions of application through network using XML
based file, called WSDL. WSDL stands for Web Service Description Languages, it’s an
10
http://www.w3.org/2002/ws
27
XML file that describing function that published through network, who published the
service and who will use this service.
2.1.10
JNDI
JNDI stands for Java Naming and Directory Interface is API for searching object or file
based on its file name in directory. JNDI implementation is independent, range from
framework into server configuration. In Intelligent IT Project Management: Applied
with Business Intelligence thesis usage of JNDI would be in Pentaho report designer for
connecting pentaho report designer to database and JBoss’s MySQLDs.xml (see table
2.1 for further information)
Figure 2 15JNDI connection in pentaho report designer
2.1.11
Jboss Application Server
28
JBoss application server is a free java enterprise edition (Java EE) application server,
and since it based on java it can run independently at any operating system. In Intelligent
IT Project Management: Applied with Business Intelligence thesis JBoss application
server will act as Business Intelligence Platform and server for enterprise application
used in Intelligence IT Project Management: Web Based Application.
Figure 2 16Jboss Application server start-up run
Figure 2 17Jboss Application server started and running
2.2 Theoretical Framework
29
In Intelligent IT Project Management: Applied with Business Intelligence thesis we
would like to solve problems about project management using business intelligence
features. From research in literature (books and electronics) about project management,
it appears project management had several major problems. Based on research ideas on
how to create solutions using web (enterprise application) and business intelligence arise
to counter those problems appears.
Business Intelligence enable transformation of raw data into information, and that
information can be used in decision making or evaluation. Based on what business
intelligence produce, research on how information can be used in solving business
intelligence comes to mind as thesis.
2.2.1.
Research Methods
Since problems and solutions in Intelligent IT Project Management: Applied with
Business Intelligence thesis was based on research, it would be wise if we pay attention
to research method used in this thesis. Below are research methods:
o Topic and content analysis
After deciding what topic for this thesis, which is project management and
business intelligence analysis for project management and business
intelligence begun. By looking at literatures (books and electronics) we
found some areas that contains problems and solutions for this thesis.
o Problem Analysis
Next step after topic and content of thesis was clear would be problem
analysis. Problem analysis was done by defining what major problems that
possible to be solved by using business intelligence.
o Solution Analysis
30
Solution analysis will be done after problem analysis done. Solution analysis
will contain design solution to solve problems stated in problem analysis.
o Solution Implementation
When design of solution was done, implementation will take place. Purpose
of solution implementation it is to test whether solution design a good one or
not.
o Simulation
Simulation will run after all solutions were successfully implemented.
Purpose of simulation is to see whether there are other problems in solution
design.
o Adjustment
Adjustment will be made whenever there are bugs or problems occur in
simulation. Purpose of adjustment is to improve current solution design.