Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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.