90
ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE FIXED-ASSET MANAGEMENT by Nattanicha Rittammanart A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science Examination Committee: Dr. Matthew Dailey (Chairperson) Dr. Vatcharaporn Esichaikul (Member) Dr. Donyaprueth Krairit (Member) Dr. Prachya Chalermwat (External expert) Nationality: THAI Previous Degree: Bachelor of Computer Science Walailak University ,Thailand Scholarship Donor: Haadthip Public Company Limited, Songkhla, Thailand AIT Master Fellowship Awards for Thai Students Asian Institute of Technology School of Engineering and Technology Thailand May 2008 i

ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

ENTERPRISE APPLICATION INTEGRATION PLATFORM FORCORPORATE FIXED-ASSET MANAGEMENT

by

Nattanicha Rittammanart

A thesis submitted in partial fulfillment of the requirementsfor the degree of Master of Science

Examination Committee: Dr. Matthew Dailey (Chairperson)Dr. Vatcharaporn Esichaikul (Member)Dr. Donyaprueth Krairit (Member)Dr. Prachya Chalermwat (External expert)

Nationality: THAIPrevious Degree: Bachelor of Computer Science

Walailak University ,ThailandScholarship Donor: Haadthip Public Company Limited, Songkhla, Thailand

AIT Master Fellowship Awards for Thai Students

Asian Institute of TechnologySchool of Engineering and Technology

ThailandMay 2008

i

Page 2: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

ACKNOWLEDGMENTS

First, I would like to express my deepest sense of gratitude to Dr. Matthew N.Dailey, my master thesis’s advisor, for his enthusiastic support. Without his help andinspiration, this thesis and the submitted paper would not be possible. He always trustme and give me extraordinary experiences through out the work. I also would like tothank Dr.Vatcharaporn Esichaikul and Dr.Donyaprueth Krairit, my committee mem-bers, for their useful comments, patience and guidance especially in business process. Iam deeply indept to the important person, Dr.Prachya Chalermwat(external expert),for his help since I started to think about master degree until I graduated. Witouthis fabulous reinforcement, I could not succeed my master degree and could not havewonderful life in Master Degree at AIT.

I would like to express my gratitude to my scholarship sponsor from HaadthipPublic Company Limited, the Coca-Cola bottler in south Thailand and AIT MasterFellowship Awards for Thai Students. I am grateful to Haadthip Public CompanyLimited for the case study scenario.

I would like to thank AIT for giving me an opportunity and experience. I canimprove my English skills a lot while I was studying here. I love an educationalenvironment here because it preaches me to be a welldoer.

I would like to thank my friends in Computer science at AIT including, ChokchaiPhatharamalai, Kan Ouivirach, Perayos Supajaroonwong, Thammathip Piumsomboonand Sarawoot Kongyung for helping their only one girl classmate without egoistic. Theymade my life at AIT to be the wonderful life which I cannot forget anymore. This isthe dreamteam which I never seen before.

I would like to give special thank to Wisut wongyued, who is one of authors in thesubmitted paper to ECTI conference and an expert in OFBiz technology in Thailand.He implemented one part of case study on JBoss seam for evaluation in the submittedpaper. It is a pleasure to collaborate with him. I would also acknowledge NarongChansoi for comments on the submitted paper and suggestion about software archi-tecture. I also thank all people in Narisa.com’s community, for example, PhonlawatPhetra, Weerasak (from Througthworks, IT consultancy in Chicago, the same placewith Martin Fowler) and also other people who are missing here for opening my eyesin the world of Java programming, object-oriented, design pattern, software processand software architecture.

I am also indepted to Chokchai Phataramalai again, who gives me inspiration andstand by me in the period of time for this thesis. In addition to his help in the technicalproblems, he always catch me from exhausted feeling.

Unforgettable, I thank the power, patient and brave in myself which bring me toreach the unbelievable goal.

Lastly, where would I be without my family? My father, Somyos Rittammanart,is the person who is always proud of his daughter since her was child. He made mehave a self-confidence to hope and achieve the gold which I need. My mother, PensriRittammanart, is the one who sincerely love and care me. She earnestly supportedmy gratduate study. Both of them always trust me. To my younger brother, PumipatRittammanart, you make me believe that I am your heroine which you will walk behind.

I dedicate this thesis to my father and mother.

ii

Page 3: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

ABSTRACT

Enterprise Resource Planning (ERP) software brings many benefits to an organi-zation, but commercial software is expensive. Smaller organizations may prefer free andopen source solutions but are faced with an enormous array of options from differentvendors. One software from scratch or to adopt a free and open source ERP framework.Moreover, ease of integration with legacy systems is also important for adopting ERP.To answer this question, this research study contains comparison and evaluation offrameworks, describes about integration between ERP, which was chosen, and legacysystems. The evaluation is about one of the most popular enterprise software develop-ment frameworks, JBoss Seam, and one of the most popular open source frameworksfor ERP development, Apache Open for Business. Using a real-world application inte-gration problem involving an asset management system and an accounting system asa case study, the frameworks were compared along a number of dimensions. OFbiz ischosen for this research study. Asset Management System and Accouting Middle-wareare implemented for supporting integration between OFBiz and Visual Foxpro(legacysystem). The most advantage in terms of business process of this research study is au-tomated process improving for asset control. This research study also describes abouthow to provide concurrency control for legacy system integration.

iii

Page 4: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Table of Contents

Chapter Title Page

Title Page iAcknowledgment iiAbstract iiiTable of Contents ivList of Figures viiList of Tables x

1 Introduction 1

1.1 Overview 11.2 Statement of the Problem 11.3 Objectives 21.4 Limitations and Scope 21.5 Thesis Outline 2

2 Literature and Technology review 3

2.1 Enterprise Resource Planning 32.1.1 Overview of ERP 32.1.2 ERP Advantages and Disadvantages 3

2.2 Methods to implement an ERP system 42.2.1 Development ERP software individually 42.2.2 Integrated Best of breed choices 4

2.3 Open Source Software 52.3.1 Definition of Open Source software 52.3.2 Open source ERP comparison 52.3.3 Open Source Software’s License 72.3.4 OFBiz 82.3.5 JBoss Seam 11

2.4 Java EE Technology 122.4.1 Visual FoxPro ODBC Driver 12

2.5 Integration Technology 122.5.1 Integration History 122.5.2 Connectivity Approach 122.5.3 Enterprise Application Integration 132.5.4 SOA 132.5.5 Approach to Integration 132.5.6 EAI vs. SOA vs. ESB 172.5.7 Example of Middle-ware services 17

2.6 Depreciation, depletion and amortization 172.6.1 Factors relate to depreciation method 18

2.7 Concurrency Control 182.7.1 Transaction Isolation level 182.7.2 Transaction Isolation level in OFBiz 19

iv

Page 5: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

2.7.3 Offline concurrency 192.7.4 Optimistic lock 202.7.5 Pessimistic lock 20

3 Case Study: Asset Management at HTPCL 22

3.1 Recent Business Architecture 223.1.1 Asset Management Related Systems 223.1.2 Current Asset Management 30

3.2 Asset Management System 333.2.1 Overview of Asset Management 333.2.2 Standard Business Model of Asset Management 343.2.3 Glossary about Asset Management 35

4 Methodology 37

4.1 Initial Installation for HTPCL Asset Management: Newsystem 374.1.1 Requirement Description 374.1.2 Architecture Overview 37

4.2 Use Case Analysis 374.3 Preliminary Prototype 41

4.3.1 Architecture Overview of prototype 414.3.2 Creating prototype on OFBiz framework 414.3.3 ScreenShots 434.3.4 Continued work for the prototype 444.3.5 Lessons which are learned from the prototype 45

4.4 Risk Analysis 464.4.1 Concurrency 464.4.2 Security 46

5 Implementation 50

5.1 System requirement specification 505.2 System analysis and design 51

5.2.1 ER-diagram 515.2.2 Activity diagram 525.2.3 Sequence diagram 535.2.4 Class diagram 545.2.5 Implementation diagram 54

5.3 System implementation 555.3.1 AMS package 555.3.2 Accounting Middle-ware Package 585.3.3 Depreciation method implementation and modification 585.3.4 Implement concurrency control for applications 595.3.5 Screenshots 60

6 Framework and appplication evaluation 65

6.1 Framework Evaluation 656.1.1 ERP-Specific Criteria 65

v

Page 6: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

6.1.2 General Criteria 666.2 Application Evaluation 67

6.2.1 Interface Evaluation 676.2.2 Process Evaluation 686.2.3 Integration Evaluation 68

7 Conclusion and recommendation 69

7.1 Overall Summary 697.2 Research Contribution 69

7.2.1 Integration between ERP and a legacy system(VisualFoxpro) 69

7.2.2 OFBiz configuration to use with Visual Foxprodatabase 70

7.2.3 Applying optimistic lock on OFBiz with DBasedatabase 70

7.2.4 Comparison and evaluation of framework by us-ing case study 70

7.3 Future work 707.3.1 Pessimistic lock on OFBiz 707.3.2 Applying lock on OFBiz to Visual Foxpro database 707.3.3 Contribution of Asset Maintenance component in

OFBiz 707.4 Recommendation 71

7.4.1 Roadmap to improve IT infrastructure 717.4.2 Suitability to apply Open Source ERP 71

REFERENCES 72

Appendixes 74

vi

Page 7: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

List of Figures

Figure Title Page

2.1 This figure show Modules in an ERP based integration approach .The source of this figure came from Herzog, (2006) 4

2.2 This table show size and functionality sub-criteria. The source ofthis picture came from Thomas Herzog, 2006 6

2.3 This table show flexibility sub-criteria. The source of this picturecame from Thomas Herzog, 2006 7

2.4 This table show support, continuity and maturity sub-criteria. Thesource of this picture came from Thomas Herzog, 2006 7

2.5 This table show other sub-criteria. The source of this picture camefrom Thomas Herzog, 2006 8

2.6 This figure shows the introduction of OFBiz framework in a part ofconfiguration & deployment. The source of this picture came fromhttp://ofbiz.apache.org, 2006 10

2.7 This figure shows the introduction of OFBiz framework in a part ofdevelopment flow. The source of this picture came from http://ofbiz.apache.org,2006 11

2.8 This figure shows IBM’s WBI Message Broker. The source of thispicture came from Jude Perira, 2006 14

2.9 This figure shows Bus Architecture. The source of this picture camefrom Jude Perira, 2006 14

2.10 This figure shows JCA Architecture. The source of this picturecame from Dave Chappell, 2004 15

2.11 This figure shows ESB Architecture. The source of this picturecame from Jude Perira, 2006 16

2.12 This figure shows ServiceMix Architecture. The source of this pic-ture came from http://incubator.apache.org, 29 September 2007 16

2.13 This figure shows isolation levels. The source of this figure camefrom Fowler, (2002) 19

2.14 This figure shows the sequence diagram of optimistic lock. Thesource of this figure came from Fowler, (2002) 20

2.15 This figure shows the sequence diagram of pessimistic lock. 21

3.1 This figure show GL Use-Case Diagram 23

3.2 This figure show PC Use-Case Diagram 26

3.3 This figure show BC Use-Case Diagram 28

3.4 This figure show MA Use-Case Diagram 28

3.5 This figure show CA Use-Case Diagram 30

3.6 This figure shows the straight-line depreciation method which isused at HTPCL 32

3.7 This figure shows the declining balance depreciation method whichis used at HTPCL 32

vii

Page 8: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

3.8 This figure shows the method to calculate book value 32

3.9 This figure shows AS-IS activity diagram of asset management 33

4.1 This figure shows an Architecture Overview of new Asset Manage-ment System 41

4.2 This figure shows Use Case diagram of new asset management system 42

4.3 The code shows simple source code about how to read DBF file(http://csv-jdbc.com/) 44

4.4 This figure shows architecture of prototype 45

4.5 This figure shows simple source code about how to read DBF file. 46

4.6 This figure shows an example code of ofbiz-component.xml. 47

4.7 This figure shows an example code of AssetData.xml. 47

4.8 This figure shows an example code of entitygroup.xml. 48

4.9 This figure shows an example code of entitymodel.xml. 48

4.10 This figure shows an example code of services.xml. 48

4.11 This figure shows an example code of AssetForms.xml. 48

4.12 This figure shows an example code of PrototypeScreens.xml (Com-monDecorator and main screen). 49

4.13 This figure shows the first page of prototype. 49

5.1 This figure shows Communication diagram of the system 50

5.2 This figure shows Communication diagram of the system 51

5.3 This figure shows Communication diagram of the system 52

5.4 This figure shows activity diagram about creating deprecation tablein each period 52

5.5 This figure shows activity diagram about creating depreciation recordfor GL07 in each period 53

5.6 This figure shows Sequence diagram about creating deprecationtable in each period 53

5.7 This figure shows Sequence diagram about creating depreciationrecord for GL07 in each period 54

5.8 This figure shows class diagram in AMS and Accounting Middle-ware package 54

5.9 The code shows the example code for declaring simple method inservicedef.xml 55

5.10 The code shows the example code for implementing CRUD in OF-Biz by using simple method 55

5.11 The code describes the calculation of asset which is categorized bydelivery year of asset 56

5.12 This figure shows the straight-line depreciation method which isused at HTPCL 56

5.13 This figure shows the declining balance depreciation method whichis used at HTPCL 56

5.14 The code shows straightLinePerDay method and declinePer-Day method in Depreciation Class 57

5.15 the code shows another depreciation calculation 57

5.16 The code shows insertDepreciationRecordToDepreTrans method 58

viii

Page 9: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

5.17 The code shows how to insert each record 59

5.18 The code shows createDepreTable method 59

5.19 The code shows declarating of createDepreTable in servicedef.xml. 60

5.20 The code shows depreciationPerAccNoWS method 60

5.21 The code shows declaration of depreciationPerAccNoWS methodin servicedef.xml 61

5.22 The code shows createPeriodAccount method 61

5.23 The code shows callDepreciationForAccNo method 62

5.24 The code shows insertRecordToGL07 method 62

5.25 The code shows the example code about lock implementation 63

5.26 This figure shows the main page(English language) of Asset Man-agement System 63

5.27 This figure shows the main page(Thai language) of Asset Manage-ment System 63

5.28 This figure shows the page which is used for creating accountingrecord in Accounting Middle-ware 64

B.1 This figure shows the period of time in inception phase. 77

B.2 This figure shows the period of time in elaboration phase (2nd iteration). 78

B.3 This figure shows the period of time in elaboration phase (3th iteration). 78

B.4 This figure shows the period of time in elaboration phase (4th iteration). 79

B.5 This figure shows the period of time in construction phase. 79

B.6 This figure shows the period of time in construction phase. 80

B.7 This figure shows the period of time in transition phase phase. 80

ix

Page 10: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

List of Tables

Table Title Page

2.1 The table shows legend of comparison of Open Source ERP. 6

3.1 General Ledger use case: import data 23

3.2 General Ledger use case: manage journal 24

3.3 General Ledger use case: authenticate user 25

3.4 Purchase Control use case: request to order 25

3.5 Purchase Control use case: verify order 25

3.6 Purchase Control use case: order 25

3.7 Purchase Control use case: authenticate user 26

3.8 Budget Control use case: estimate budget 27

3.9 Budget Control use case: compare budget 27

3.10 Budget Control use case: authenticate user 27

3.11 Marketing Asset use case: keep marketing assets information 29

3.12 Marketing use case: authenticate user 29

3.13 Computer Asset use case: keep computer assets information 29

3.14 Computer Asset use case: authenticate user 30

3.15 Glossary 36

4.1 Asset Management System use case: calculate depreciation/amortization 38

4.2 Asset Management System use case: transfer asset 38

4.3 Asset Management System use case: write off asset 39

4.4 Asset Management System use case: repair asset 39

4.5 Asset Management System use case: track status of asset 40

4.6 Asset Management System use case: authenticate user 40

4.7 Asset Management System use case: distribute asset 40

4.8 Asset Management System use case: manage asset information 43

x

Page 11: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

CHAPTER 1

INTRODUCTION

1.1 Overview

Modern organizations require many information systems to support their business processes.Enterprise Resource Planning (ERP) software attempts provide a standard, unified, and con-sistent interface to common functionality. Commercial ERP software brings many benefits toan organization, but it is extremely expensive. Due to cost factors, smaller enterprises want-ing to streamline their business processes may be faced with two options: develop their ownsoftware to integrate existing standalone systems, or adopt a free and open source businessautomation solution such as OFBiz, OpenBravo, or Tiny ERP.

Regardless of whether they develop new software or adopt an existing solution, organi-zations need a platform that makes it easy to integrate disparate information systems andrapidly customize the application logic. Which approach, new software, or open source au-tomation framework, is best? Currently, there is relatively little information available toguide organizations in making a decision.

Among the most difficult recurring problems faced by ERP developers is the need tointegrate multiple systems in order to automate a business process. Although every appli-cation development platform has platform-specific means to accomplish this goal (e.g. JMSand Java RMI for the Java platform), XML-based Web services are rapidly emerging as aneffective and platform-neutral technology for application integration.

Haadthip Public Company Limited (HTPCL),Coca-Cola bottler in south Thailand, is acompany which is facing problems about integration between the old and the new systems. Inthe past, almost all systems was developed on Visual Foxpro, “a data-centric object-orientedand procedural programming language produced by Microsoft”(Wikipedia, n.d.). Recently,HTPCL has many new systems which was developed by using new technologies such asWeb-based applications. For this reason, it is very difficult to synchronize data among thesedifferent applications. Moreover, Visual Foxpro does not have the function to support theintegration such as Web-services. Therefore, the applications which was developed on Foxprotechnology come to be legacy systems which cannot be changed anymore. In addition to thenext important goal of HTPCL, it is about adopting ERP and making the old applicationscan be parallel run with the new applications. Consequently, the integration approach is themain problem which is needed to solve first.

This research study aims to develop the application on the most appropriated OpenSource ERP and use the framework for integrating with the legacy system by using thetest-bed for the study which is Asset Management System (AMS) for HTPCL. Then AMSwill be integrated with General Ledger System which was developed by using the differenttechnology.

1.2 Statement of the Problem

Business process automation between the legacy system and ERP can be succeeded by theappropriate integration approach. The main problem is choosing the low cost ERP and theway to integration. Currently, there is relatively little information available about the wayto done it easily in spite of it is the important problem at this moment. Moreover, manyERPs still have very few functions to support working with the old applications and needthe developer to contribute them.

1

Page 12: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

1.3 Objectives

This research study illustrates how to integrate the legacy system and the new applicationwhich is developed on ERP framework. To achieve this goal, this research will be implementedon these objectives:

1. To implement the test-bed system on the appropriate open source ERP.

2. To integrate the legacy system with the new application which is developed on ERPframework with data security by providing lock.

3. To implement web service provider which can be used by other accounting systems forcalculating depreciation.

4. To compare and evaluate the appropriate ERP in terms of the integration approach.

5. To contribute the Open Source ERP to support the integration with the legacy system.

6. To implement Thai language on the system.

1.4 Limitations and Scope

This research study is about implementing the system on the open source ERP and thenintegrate it with the legacy system. Therefore, the Open Source ERP must be well-knownand also support to integrate with another application. In addition, the legacy system is nowrunning in the process. Thus, implementing and testing will be difficult. Another problem isthe legacy system has very little document which can be the difficulty to study the process.

1.5 Thesis Outline

The organization of this thesis is as follows.

Chapter 2: This chapter reviews the technologies background for implementing the inte-grated application. It describes the comparison of ERP and why do we chose thatERP, ERP architecture, comparison of integration approach, Java EE technology, areaof integration technology and recent business architecture of each legacy system.

Chapter 3: This chapter has the detail about case study of Asset Management at Haadthipinclude of user requirements and the detail about current asset management. In ad-dition to asset management system, there are the detail about the definition of assetmanagement and the standard business model of asset management system.

Chapter 4: This chapter describes how to create basic application on ERP framework,How ERP will be integrated with other applications. The implementation to solve thehighest risk of the system.

Chapter 5: This chapter is about implementation of this research study.

Chapter 6: This chapter mentions the evaluation which includes of framework evaluationand application evaluation.

Chapter 7: This chapter describes the conclusion and recommendations for this researchstudy.

2

Page 13: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

CHAPTER 2

LITERATURE AND TECHNOLOGY REVIEW

In this chapter, there are literatures related to overview of integration technologies, currentbusiness processes of legacy systems, ERP and other related development technologies. Itintroduces the comparison among integration approaches and comparison among ERPs whichcan be the information for decision making. Moreover, it describes the principle of accountingin terms of, for example, depreciation, depletion and amortization.

2.1 Enterprise Resource Planning

This section aims to review ERPs. The details include of the definition of ERP, advan-tages/disadvantages of ERP, and the methods to implement an ERP system.

2.1.1 Overview of ERP

Joseph described the definition of ERP as follows:

Enterprise Resource Planning (ERP) software programs are at the cuttingedge of information systems technology. ERP (pronounced ”E-R-P”) programshelp to manage company-wide business processes, using a common databaseand shared management reporting tools. ERP software supports the efficientoperation of business processes by integrating business activities, including sales,marketing, manufacturing, accounting and staffing. Today’s business people (andtomorrow’s) should understand what an ERP program can do for a company.

(Brady, Monk, & Wagner, 2001)The famous ERP is SAP which is the first software product line. SAP has many modules

which are integrated but it is very high cost. Therefore, companies are still trying to findother ERPs. Even though buying some specific modules can decrease costs, some workingprocesses cannot work completely.

2.1.2 ERP Advantages and Disadvantages

This section describe advantages and disadvantages of ERP in terms of integrated system,data integration, best practice/less effort and cost.

• Integrated system – ERP is hard to install and manage in the first phase. All users mustconform about the business process. Although installation and conformation is veryhigh cost, benefit of integration are usually much greater than the costs of installationand conformity.

• Data integration – ERP synchronizes data among modules. All users use the samedata in overall systems. Therefore, data entry should be correct. The problem is someprocesses can encounter errors which are caused by wrong data entry.

• Best practice, less effort – ERP provides the convenient way to do the business. Orga-nization can choose the appropriate practice which can be the best for them such asthe way which can make the less works for the members. “Further, as with any theory,what is considered best by on is often not considered best by all.”(Olson & Olson, n.d.)

3

Page 14: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 2.1: This figure show Modules in an ERP based integration approach . Thesource of this figure came from Herzog, (2006)

• Cost – The expectation to use ERP is the lower costs in the long run. However, it isvery high cost for maintenance, training, and system failure.

2.2 Methods to implement an ERP system

Herzog(2006) discussed about methods to implement an ERP system. About this topic, thisresearch study concentrates in two subtopics, development ERP individually and integratedbest of breed choices.

Figure 2.1 shows how ERP can support IT process. It shows Modules in an ERP basedintegration approach.

2.2.1 Development ERP software individually

A framework is a software library that is made up to be reused for developing software.Therefore, it is not necessary to develop system from scratch. If the ERP system is not coverthe specific requirements, individual modules will be developed and integrated. However, thedevelopment will be based-on ERP framework or other favorite frameworks.

ERP is very interesting in aspect of changeable and reusable. Developer can use theframework as the template for development, provided the source code or good interfacedocumentation. With this reason, developer can have opportunities to adapt the frameworkand share improvement easily.

2.2.2 Integrated Best of breed choices

Developers have limit conditions to support IT because the size of company and budget arethe main conditions. The more developers get from the company, the more they can selectthe standard approach which is convenient and ease to maintainable customization.

Integrated Best of Breed choices means the developers can select the best module fromdifferent ERP systems and integrate them. Therefore, the recommend company which couldbe done this process should be large enough because the cost of integration is very high.Moreover, it can cause points of failure in the system and introduce the complexity. Therequirement changes in the future make the difficult to update the system because the system

4

Page 15: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

has many integrated modules. However, before they choose this approach, “they have to findbalance between the number of systems, the degree of customization, adaption to process,complexity, cost and maintenance.” (Herzog, 2006)

2.3 Open Source Software

This section focuses on the details of Open Source Software, especially Open Source ERPbecause this research study need to adopt the open source ERP for the test-bed softwareimplementation. it also describes about the comparison among open source ERP and opensource software licenses. Then, it will focus into details of OFBiz framework.

2.3.1 Definition of Open Source software

The definition from WikiPedia,

Open source software is computer software which source code is available un-der a license (or arrangement such as the public domain) that meets the Opensource definition. This permits users to use, change, and improve the software,and to redistribute it in modified or unmodified form. It is often developed in apublic, collaborative manner. Open Source software is the most prominent ex-ample of open source development and often compared to user generated content

2.3.2 Open source ERP comparison

This section is important because it provides the information for choosing the appropriateERP for the research study. The comparison table shows the evaluation criteria for eachOpen Source ERP.

2.3.2.1 Comparison Table of Open Source ERP Systems

The comparison is adopted from Herzog’s paper (Herzog, 2006), Comparison of Open SourceERP. He had done the evaluate among different open source ERPs. The referenced paper usethe word ”Opentaps” as a synonym for ”OfBiz”. He evaluated Open Source ERPs in variousaspects. For this paper, OFBiz is the most appropriate ERP which should be used for thisresearch study. Figures 2.2 - 2.5 show comparison tables and table 2.1 shows legends of thecomparison table.

2.3.2.2 ERP Comparison Criteria

Frameworks can be compared using many criteria. This research study use the followingcriteria specifically for comparing ERP application development platforms(Rittammanart,Wongyued, & Dailey, 2008) in the case study:

• Technology complexity : are the technologies used to create applications on the frame-work easy to understand?

• Ease of service exposure: what are the steps needed to expose a Web service on theframework.

• Ease of administration: is installation and application deployment simple?

• Resource utilization: are the memory and disk space requirements reasonable?

5

Page 16: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

/ yes

x no

n/a not available

? unknown

+ above average

average

- below average

Table 2.1: The table shows legend of comparison of Open Source ERP.

Figure 2.2: This table show size and functionality sub-criteria. The source of thispicture came from Thomas Herzog, 2006

• Ease of presentation implementation: are the presentation layer patterns flexible andeasy to use?

• Ease of business logic implementation: is it easy to develop and modify the businesslogic?

• Ease of database administration: is it easy to enable and change the database config-uration?

In addition to the specific ERP framework comparison criteria listed above, Gerdessen(Gerdessen, 2007) proposes the following general criteria for comparing frameworks in anydomain:

• Availability

• Customizability

• Modifiability

• Integrability

• Flexibility

In figure 6.1, there is evaluation result of Seam and OFBiz according to both the ERP-specific and general criteria which describes that OFBiz is the better choice. Seam is chosenfor comparing with OFBiz because it is also a popular ERP software. Moreover, both ofthem are based on Java EE.

6

Page 17: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 2.3: This table show flexibility sub-criteria. The source of this picture camefrom Thomas Herzog, 2006

Figure 2.4: This table show support, continuity and maturity sub-criteria. The sourceof this picture came from Thomas Herzog, 2006

2.3.3 Open Source Software’s License

This section reviews licenses which relate with Open Source Software.

2.3.3.1 Overview

There is the definition of open-source license from WikiPedia(28 September 2007) as follows:

An open-source license is a copyright license for computer software that makesthe source code available under terms that allow for modification and redistribu-tion without having to pay the original author. Such licenses may have additionalrestrictions such as a requirement to preserve the name of the authors and thecopyright statement within the code. One popular (and sometimes considerednormative) set of open-source software licenses are those approved by the OpenSource Initiative (OSI) based on their Open Source Definition (OSD).

This research study shows only three examples of open source license which are relatedor widely used.

• Apache Software License 2.0: Apache Software License is the Permissive free soft-

7

Page 18: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 2.5: This table show other sub-criteria. The source of this picture came fromThomas Herzog, 2006

ware licenses1.

The conditions to use Apache license are allowing the freedom for many purposes(distribute, modify and distributed modified). The Apache License does not requirethe same license for the modified versions. It is only require to keep notifying fromreceivers or developers about using Apache Licensed.

From the incompatibilities between all versions of the Apache License and GNU GeneralPublic License(version 2), the Free Software foundation says “The Apache SoftwareLicense is incompatible with the GPL because it has a specific requirement that is notin the GPL: it has certain patent termination cases that the GPL does not require. (Wedon’t think those patent termination cases are inherently a bad idea, but nonethelessthey are incompatible with the GNU GPL.”

From the content of Apache License, in term of “it’s not require the same license for themodified versions”, it means Apache supports users to create their own contributionsby only referring to Apache. Therefore, many organizations contribute many productsfrom Apache to be the commercial products. For this research study also uses theproduct from Apache (Apache OFBiz) to create the new application.

• new BSD License: BSD License is the Permissive free software licenses. It has beenreferred to as copy-center. WikiPedia(28 September 2007) provide an example aboutthe text of license which is considered the public domain and thus may be modifiedwithout restriction. The detail looks like the agreement for using software which theholder can modify the content to relate with the software. BSD license is widely usedfor several free or open source licenses. For example, NetBSD and FreeBSD.

• GNU General Public License (GPL): GPL License is the permissive free softwarelicenses which is used by Linux kernel. It’s also the family of the strong copyleft license(the same to BSD licenses)

2.3.4 OFBiz

This section describes about OFBiz framework. It includes of introduction and the conceptof OFBiz framework.

1“Permissive free software are free software licenses for a copyrighted works thatoffer many of the same freedoms as releasing a work to the public domain. In contrast,copyleft licenses like the GNU General Public License require copies and derivatives ofthe source code to be made available on terms no more restrictive than those of theoriginal license. Well-known examples of permissive licenses include the MIT Licenseand the BSD licenses.”

8

Page 19: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

2.3.4.1 Introduction to OFBiz

Apache software foundation described the definition of OFBiz as follows:

The Apache Open For Business Project is an open source enterprise automa-tion software project licensed under the Apache License Version 2.0. By opensource enterprise automation we mean: Open Source ERP, Open Source CRM,Open Source E-Business / E-Commerce, Open Source SCM, Open Source MRP,Open Source CMMS/EAM, and so on.(Apache Software Foundation, 2008)

OFBiz provides, among many other features, ERP functionality. which attempts toprovide reusable modules for common business functions and a variety of paths to developcustom business logic and connect with external systems. Moreover, OFBiz makes low pricesto develop software.

Apache OFBiz’s official site(19 Sep 2007) says about the OFBiz’s functions, including:

• advanced e-commerce

• catalog management

• promotion and pricing management

• order management (sales and purchase)

• customer management (part of general party management)

• warehouse management

• fulfillment (auto stock moves, batched pick, pack and ship)

• accounting (invoice, payment and billing accounts, fixed assets)

• manufacturing management

• general work effort management (events, tasks, projects, requests, etc)

• content management (for product content, web sites, general content, blogging, forums,etc)

• and much more all in an open source package

2.3.4.2 OFBiz Framework introduction

General Idea of OFBiz is to provide tools which work well together and allow to createenterprise software as close to business level and as close to designed artifact basically aspossible. The general goal is to get close to fourth GL level productivity through enterprisemulti-tier architecture with independent to artifact and the applications which can be easilyreused and can also work together even though there are implemented in very different tools.

Best practice is to develop applications in XML files that represent different aspectsof applications. Secondary best practice tools are java methods, remake templates, andbeanshell script. General rule for OFBiz is sacrificing some of flexibility in order to usesome higher level tools to create somethings more quickly. It is very good for improvingconsistencies as well as making an easier for end-user to move around and simulate theapplications and for customizing the developer to understand the systems and be able tomodify or create during the work space on it.

This dynamic tools are an alternative basically to the approach of code generation. Thetools simply interact with the lower resources and perform the necessary operations. Thereare APIs and XML files which are used for the various business tools of Open Business

9

Page 20: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 2.6: This figure shows the introduction of OFBiz framework in a part ofconfiguration & deployment. The source of this picture came fromhttp://ofbiz.apache.org, 2006

Framework. To communicate between them, the controllers, which are the interface of toolssuch as entity engine, service engine and so on, is used to be the intermediary. For example, inthe entity engine, there are the entity definition in the XML files that describe the structureof the entity model, and then an API for performing basic operation look likes find operationand create/update and delete operations. Moreover, the view side of it, the controller, theentity engine itself that translate from the view side to the model side interact with usingJDBC. Thus, it performs XML to generate JDBC call and so forth.

This section introduces OFBiz framework and guides to study OFBiz framework. ForOFBiz implementation, all three tier designing should be the first issue. OFBiz frameworkintroduction outline from OFBiz official site recommends creating artifact bottom to topfor keeping the structure of application and taking advantages from OFBiz’s tools to reuseartifact from lower level to higher level.

Step through OFBiz implementation

1. Define Entities - in entitydef/entitymodel.xml

2. Define Services - in servicedef/services.xml

3. Implement Services - in script/org/ofbiz/example/example/ExampleServices.xml &script/org/ofbiz/example/feature/ExampleFeatureServices.xml

4. Define Request & View Maps - in webapp/example/WEB-INF/controller.xml

5. Define Screens - in widget/ExampleScreens.xml & widget/ExampleFeatureScreens.xml

- Screen Actions - in widget/ExampleScreens.xml & widget/ExampleFeatureScreens.xml

- Screen Widgets(Visual Elements) - Screens In: widget/ExampleScreens.xml &widget/ExampleFeatureScreens.xml Forms In: widget/ExampleForms.xml & widget/ExampleFeatureForms.xmlMenus In: widget/ExampleMenus.xml & widget/ExampleFeatureMenus.xml

Figure 2.6 and 2.7 show the introduction of OFBiz framework

10

Page 21: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 2.7: This figure shows the introduction of OFBiz framework in a part of devel-opment flow. The source of this picture came from http://ofbiz.apache.org,2006

2.3.4.3 OFBiz framework architecture

OFBiz has a three-layer architecture. The presentation layer is based on the Model-View-Controller pattern and makes extensive use of the Decorator pattern (Gamma, Helm, John-son, & Vlissides, 1995) for reuse of design elements. OFBiz integrates with many presentation-tier technologies, including Tomcat or Jetty as the Web server, the Freemaker template en-gine, the JasperReports report engine, the JavaPOS point-of-sale device API, the XML UserInterface (XUI) rich client platform, and the BeanShell Java scripting language. The businesslogic layer utilizes the Service Oriented Architecture pattern in which application developersorganize the business logic as a set of reusable services. Services are implemented as scriptsusing an OFBiz-specific XML scripting language, Java via BeanShell, or other languagessuch as Python via the Bean Scripting Framework (BSF). Services can be easily exportedas SOAP Web service or Java RMI endpoints. The persistence layer provides a database-independent entity persistence engine to the other layers using an XML specification of thedatabase mapping and an API following the Table Data Gateway (Fowler, 2002) pattern.

2.3.4.4 Related Technology to OFBiz: BeanShell

BeanShell is a scripting language which can be embedded to the application. Its syntax is inthe same class with Java language. Therefore, it can be compiled by the same JVM in themachine.

BeanShell supports OFBiz framework by providing script language for generating actionor script for the screen section actions in process layer. Normally, Screen Section Actions inOFBiz can use service *.xml (in user interface layer), entitymodel*.xml(in data source layer)and BeanShell script(in process layer) to create them.

2.3.5 JBoss Seam

JBoss Seam (Yuan & Heute, 2007) is a lightweight enterprise application development frame-work. It builds upon Java EE, with the aim of unifying Java Server Faces (JSF) withEnterprise JavaBeans (EJB) 3.0 to create a single consistent programming model.

Seam applications are organized according to a standard three-layer enterprise architec-

11

Page 22: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

ture (presentation, business logic, and persistence). The presentation layer is based on theModel-View-Controller architectural pattern; developers use JSF to implement views andcontrollers. In addition to JSF, Seam supports its own tag set, Ajax integration, localization,and themes in the presentation layer. The business logic layer of a Seam application is basedon EJB3 session beans. The container also provides security services as well as business pro-cess automation via the Drools business rule engine and the jBPM workflow engine. Businesslogic layer services can easily be exported as SOAP Web services. The persistence layer usesthe Java Persistence API (JPA) object-relational mapping technology.

2.4 Java EE Technology

The convergence and increasing of Java EE Standard have introduced new tools and librarywhich provided many functionalities such as ESB. Therefore, this section introduce the librarywhich is adopted to use in this research study.

2.4.1 Visual FoxPro ODBC Driver

Visual FoxPro ODBC Driver is a driver for connecting with DBF files. The main advantageof using this driver is that it provides the functionality to work with database. Developerscan easily use SQL commands to work with database. This research study uses this driverfor working with DBF files. Moreover, this driver is free software.

2.5 Integration Technology

This section aims to bring clarity to many integration technologies. Moreover, it providesthe clear distinct among the integration approaches.

2.5.1 Integration History

Since the early 1990s, message broker is the first approach which can address the need ofEAI. Then, the increase adoption of standard, J2EE/XML/web services, have supported tothe new class of integration tools such as ESB.

Actually, the earliest integration tools are data-oriented ETL tools which are used fordata warehouse to retrieve the information.

Next, message broker, which built on top of queue manager, has risen. It can routemessages among applications in the real-time.

In the middle - 1990s, there are ERP application vendors such as Oracle, PeopleSoftand SAP. The situation make the change to ETL and message broker because ERPs arevery complex. Therefore, data-oriented technique is not appropriate. However, business stillneeds the integration. This reason makes the vendors create the EAI broker which includesof creating hybrids of ETL and message broker products.

2.5.2 Connectivity Approach

This section classify the different types of integration in the view of interface as follows:

• Data-oriented interfaces - SQL, ODBC, JDBC can be used for integration which sup-port data-driven interface.

12

Page 23: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

• Programmatic interfaces - SAP R/3 has the Well-formed business object API whichnow embodied in J2EE by the JCA. Enterprise Integration System(EIS)’s vendors havebegan to make standard-based interfaces which are reusable.

• Terminal interfaces - This is use for enfolding mainframe applications constructed foruser-driven interactions.

• Even-driven connectivity - ETL and EAI relate with batch, high volume operation.In contrast, ESB provides the asynchronous, message-based integration (real time feedthrough message queue and topics). Therefore, ESB is the appropriate method foreven-driven connectivity.

2.5.3 Enterprise Application Integration

The integration should be cross-functional and inter-organizational process. P.Johannesson,B.Wangler, P.Jayaweera(2000) describe about EAI can take place on data level, applicationinterface level, method level and user interface level. From the need of integration is growing,EAI is used in the enterprise for sharing business process and information between manyapplications and data sources. EAI is a concept to use middle-ware to connect among appli-cation servers, data sources and legacy systems. By EAI integration, developers can integrateapplications with low cost and less programming.

2.5.4 SOA

The definition adopt from Service-Oriented Architecture: Concepts, Technology, and Designas follows:

Put simply, service-oriented architecture spans both enterprise and applica-tion architecture domains. The benefit potential offered by SOA can only betruly realized when applied across multiple solution environments. This is wherethe investment in building reusable and interoperable services based on a vendor-neutral communications platform can fully be leveraged. This does not mean thatthe entire enterprise must become service-oriented. SOA belongs in those areasthat have the most to gain from the features and characteristics it introduces.

Note that the term “SOA” does not necessarily imply a particular architec-tural scope. An SOA can refer to an application architecture or the approachused to standardize technical architecture across the enterprise. Because of thecomposable nature of SOA (meaning that individual application-level architec-tures can be comprised of different extensions and technologies), it is absolutelypossible for an organization to have more than one SOA.

(Erl, 2005)Dave Linthicum(2005) described about why the company should extend SOA for inter-

company integration. E-Business nowadays need to access to the information with zerolatency and view the external customer/supplier system by remote service. This means thatthe operations can be real-time and use abstract application behavior for calling service assame as the operations are in the local.

2.5.5 Approach to Integration

Pereira(2006) organized the approaches to enterprise application integration as follows:

13

Page 24: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 2.8: This figure shows IBM’s WBI Message Broker. The source of this picturecame from Jude Perira, 2006

Figure 2.9: This figure shows Bus Architecture. The source of this picture came fromJude Perira, 2006

2.5.5.1 Broker Based (Hub-and-Spoke) Approach

This approach provides centralized server which is directly connected with all applications.Centralized server is used to send and receive data. This architecture has broker(hub) andadapter(spoke) which is used for connecting the applications. When the spoker connects tothe application, it will convert the data format to the format which the destination’s hub canunderstand. Then, other hubs will translate/transform the data format for the destination.The responsibility of adapter is taking data from the source to publish for other brokers.Figure 2.8 shows IBM’s WBI Message Broker.

2.5.5.2 Bus Based Approach

This approach provides the main bus which all applications can use it for connecting. Figure2.9 shows bus architecture. All nodes link to the communication backbone. The data issent via the bus to adapter. This adapter uses for data transformation, translation andsubsequence routing to the receiving node. The bus architecture is different from the brokerbased approach since the data can be transformed and routed by distributing in each of theapplication adapters. Moreover, Adapter must be in the same platform as original to run onthe previous bus architecture.

14

Page 25: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 2.10: This figure shows JCA Architecture. The source of this picture camefrom Dave Chappell, 2004

2.5.5.3 JCA Based Approach

JCA (JavaEE Connector API) is the standardize contract that allows the connection betweenthe legacy system. The contracts are the backend EIA, the different application components,the application server, and the resource adapter. The EAI vendors provide their resourceadapters to integrate with other EISs. Therefore, the resource adapter for each vendor wouldbe different from another. JCA is implemented base on Java Technology to connect applica-tion servers and EISs. JCA is used for connecting to legacy system (including databases).

Dave Chappell(2004) described about the JCA Architecture(from figure 2.10). An ESBthat supports a JCA container allows applications to be plugged into an ESB using a standardset of off-the-shelf adapters. These adapters can be made available from the applicationvendors themselves, such as SAP, or from vendors who specialize in providing adapters, suchas iWay and DataDirect. There are examples of the vendors who provide the JCA container:

• http://jencks.org/

• https://jmsjca.dev.java.net2/

2.5.5.4 ESB Based Approach

The definition from WikiPedia describes about ESB as, “In computing, an enterprise servicebus (ESB) refers to a software architecture construct, implemented by technologies found ina category of middle-ware infrastructure products usually based on standards, that providesfoundational services for more complex architectures via an event-driven and standards-basedmessaging engine (the bus).”

Jude Pereira (2006) described about the ESB’s definition is “a new architecture thatexploits Web services, messaging middle-ware, intelligent routing, and transformation. ESBsact as a lightweight, ubiquitous integration backbone through which software services andapplication components flow.”

Figure 2.11 shows ESB Architecture.The first example of ESB is Apache ServiceMix(figure 2.12), it is an Open Source ESB

which is licensed under the Apache Project. It combines the functionality of SOA3 and

2Java.net is the organization which provide the source for Java TechnologyCollaboration

3Service-Oriented Architecture

15

Page 26: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 2.11: This figure shows ESB Architecture. The source of this picture camefrom Jude Perira, 2006

Figure 2.12: This figure shows ServiceMix Architecture. The source of this picturecame from http://incubator.apache.org, 29 September 2007

EDA4 to create an enterprise ESB. It is built from the ground of JBI5. The gold of ApacheServiceMix is to integrate the components or services from several vendors which are im-plemented in different ways. This means that users and vendors can plug and play theapplications.

4Event Driven Architecture5Java Business Integration

16

Page 27: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

An Open ESB is an ESB which using JBI which is provide by Sun Microsystem. Itallows allows web services’ integration to create loosely couple applications.

2.5.6 EAI vs. SOA vs. ESB

Because of this three terms, EAI, SOA and ESB, confuse the readers. Goel(2006) described indetail about the different among them. Therefore, this section needs to clarify the meaning.

• SOA - SOA is the approach to have the software resource in enterprise and can beretrieved them from the defined services. Those services do not depend on the contextof state of other services. The old SOA are implemented by COBRA, COM, and etc.Recently, web service have been using instead. Actually, the implementation of SOAmaybe not be created from web service. But web service is the simple way to makeSOA can be done.

• EAI - EAI is the business need to integrate various applications in the kind of partnersystems for the business objectives. EAI can be a part of SOA.

• ESB - ESB is the product which is used for creating SOA. ESB has the APIs whichare used for developing service. Technically, ESB is the message backbone which hasthe protocol conversion, message format transformation, routing, receiving/sendingmessage among the services which link to ESB.

2.5.7 Example of Middle-ware services

Apache ActiveMQ is the Open Source Message Broker which is licensed under the ApacheProject. It supports many cross client languages and protocols. It is absolutely providedfor JMS 1.1 and J2EE 1.4. Moreover, it includes JCA resource adapter for inbound andoutbound message.

Apache Camel is a subset of Apache ActiveMQ which provides a new approach to middle-ware services and mediation and routing. Apache Camel has established because the peoplewanted to create and use patterns follows the Enterprise Integration Patterns book(Hohpe& Woolf, n.d.) in many different scenarios. Therefore, all integration patterns which areprovided in Apache Camel are adopted from that book.

2.6 Depreciation, depletion and amortization

Principle of accounting about distribution the original cost of asset to be the expense in eachperiod of useful life are used for matching the original cost with the income throughout theuseful life of asset. Accounting vocabularies which are used for amortizing will be differentdepending on the categories of asset as follows:

• Depreciation is an accounting process for allocating the original cost of plant assets,for example, building, machine and vehicle, to be the appropriate expense in eachaccounting period.

• Depletion is an accounting process for allocating the original cost of natural resources,for example, forest, oil well and mine, to be the appropriate expense in each accountingperiod.

• Amortization is an accounting process for allocating the original cost of intangibleassets, for example, copyright and patent, to be the appropriate expense in each ac-counting period. Amortization can be also used for financial assets and liabilities.

17

Page 28: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

2.6.1 Factors relate to depreciation method

Factors below be associated with depreciation method:

2.6.1.1 Depreciation base for the asset:

original cost and disposal value are related to calculate depreciation base.

2.6.1.2 Useful life:

Service life and physical life of asset often are not equal. Some organizations demonetizemachines before their physical lives are expired.

2.6.1.3 Methods of depreciation:

there are five popular deprecation methods which are used in the organizations.

• Straight-lined method: The concept of this method is about assets will be deterio-rated by their lives.

• Activity method: The concept of this method is about assets will be deteriorated bytheir usabilities.

• Decreasing charge methods or Accelerated method: The result of this methodmake the depreciation is continually reduced in next year.

• Increasing charge method: The result of this method make the depreciation iscontinually increased in next year.

• Special depreciation method: This method is used to calculate the depreciationfor some assets which cannot use the depreciation method above.

2.7 Concurrency Control

This section describes concurrency control for applications. First, to understand concurrencycontrol, it is important to understand concurrency problems and transaction isolation levels.Next, The term of offline concurrency, include of optimistic and pessimistic lock is explained.

2.7.1 Transaction Isolation level

This section describes the transaction isolation level for application include of serializable,repeatable read, read committed and read uncommitted

Most transactional systems use the SQL standard which defines four levels of isolationwhich can be described as follows:

• Seriailizable: Transactions can be executed concurrently and users can get a result thatis the same as they get from some sequence of executing the transactions serially. It isthe strongest level of transaction isolation.

• Repeatable read: It is the first isolation level which allows users to read some incon-sistence data.

• Read committed: It allows unrepeatable reads for transaction.

18

Page 29: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 2.13: This figure shows isolation levels. The source of this figure came fromFowler, (2002)

<datasource name="localpostgres"

helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"

schema-name="public"

field-type-name="postgres"

check-on-start="true"

add-missing-on-start="true"

use-fk-initially-deferred="false"

alias-view-columns="false"

join-style="ansi"

use-binary-type-for-blob="true">

<read-data reader-name="seed"/>

<read-data reader-name="demo"/>

<read-data reader-name="ext"/>

<inline-jdbc

jdbc-driver="org.postgresql.Driver"

jdbc-uri="jdbc:postgresql://127.0.0.1/ofbiz"

jdbc-username="ofbiz"

jdbc-password="ofbiz"

isolation-level="ReadCommitted"

pool-minsize="2"

pool-maxsize="250"/>

</datasource>

• Read uncommitted:It allows dirty read. Users can read data that another transactionhas not actually committed yet.

Figure 2.13 shows Isolation Levels and the Inconsistent Read Errors They Allow.

2.7.2 Transaction Isolation level in OFBiz

OFBiz has the feature to set transaction isolation level by configuration in entityengine.xml.Each JDBC which can be connected to OFBiz can be set its isolation level by using isolation-level=xxx .The code 2.7.2 shows JDBC configuration for PostgreSQL.

However, defining transaction isolation level depends on type of database driver. If thedriver does not support in some levels, it cannot be defined to use that isolation level inOFBiz. For PostgreSQL JDBC driver, it supports to define all isolation levels. In contrast,Microsoft Visual Foxpro JDBC driver does not support to define any isolation level.

2.7.3 Offline concurrency

For the application which is used by many users in the same time, concurrency control shouldbe important. The main reason about concurrency problem is many transaction cannot beplaced within a single database transaction. Some critical transactions, such as accountingdata, should be consistency because it is used as input for many application. Moreover, ifthe company has wrong finance data, it cannot calculate the correct result of lost and gain.

Martin Fowler describes the design pattern for concurrency control in the term of offlineconcurrency which is described in the next section.

Offline concurrency is concurrency control for data that is manipulated during multipledata base transactions. There are two forms of offline concurrency control: optimistic and

19

Page 30: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 2.14: This figure shows the sequence diagram of optimistic lock. The sourceof this figure came from Fowler, (2002)

pessimistic.

2.7.4 Optimistic lock

Optimistic lock is the mechanism to detect conflict and rollback the transaction to pre-vent conflict between concurrency transactions(Fowler, 2002). Version control is the mainapproach for optimistic lock. The transaction need to check version of each record beforeupdate or delete record and increment version number when transaction finished. If thetransaction get the wrong number of version before works with record, system transactionmust be rollbaked to prevent any changes from entering the record data. This lock is alsoprovided in OFBiz framework.

Figure 2.14 shows the sequence diagram of optimistic lock. Transaction incrementssession’s copy of version to make an update for record. Transaction which has wrong numberof version cannot update or delete the record until another transaction finished.

2.7.5 Pessimistic lock

Pessimistic lock is the mechanism to allow only one transaction to access data at time toprevent conflict between concurrency transactions. It acquires lock for the data which will bestarted to use. Therefore, it is sure that transaction can be completely begun without beingbounced by concurrency control.

Pessimistic lock has three lock types as follows:

• Exclusive write lock: Transaction must acquire a lock for editing session data.

• Exclusive read lock: Transaction must acquire a lock simply to load the record. It isused for business transaction which must always has the most recent data.

• read/write lock: Implementation of both two locks to be mutually exclusive. Users canread the same record at a time but they cannot read the record when it is acquired bya write lock.

20

Page 31: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 2.15: This figure shows the sequence diagram of pessimistic lock.

Pessimistic lock is appropriate for the transactions which concern that conflicts are criticalevents. However, it is not good for the long transaction.

Figure 2.15 shows the sequence diagram of pessimistic lock. David cannot acquire aread lock for get customer data until Martin released a write lock for this record.

21

Page 32: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

CHAPTER 3

CASE STUDY: ASSET MANAGEMENT AT HTPCL

In this chapter, it describes about the case study which is related to current business model oflegacy systems, requirements of the new asset management system and asset management’sbest practices. It introduces some coverage of standard business models and the commercialERP products carrying out those business models for asset management. The chapter alsoincludes the comparison of HTPCL situation and the standard business practices.

3.1 Recent Business Architecture

Previously, HTPCL had Asset Controlling. A responsible employee controlled all assets inthe company by using Excel files. She/he did the controlling in manual. The company neverhad the Asset Management System. Currently, all assets cannot be tracked and retrievedinformation about each. The executives cannot know the asset information. Therefore, gain(loss) calculation cannot be done correctly.

Recently, Accounting Department collects the information about all assets in Excelfiles for calculating the depreciation. In each month, they will get the depreciation whichare calculated from the information in Excel files and then enter them into General LedgerSystem. It means that they must manually calculate depreciation. Moreover, the informationwhich was kept in Excel files cannot be used for tracking assets.

3.1.1 Asset Management Related Systems

Asset Management System will be related to these systems:

3.1.1.1 General Ledger

“General Ledger, the definition from Wikipedia, is the main accounting record of a businesswhich uses double-entry bookkeeping. It will usually include accounts for such items as cur-rent assets, fixed assets, liabilities, revenue and expense items, gains and losses.”(Wikipedia,2007d). The general ledger is a summary of all of the transactions that occur in the company.It is built up by posting transactions recorded in the general journal.

HTPCL also has General Ledger system (GL) which is used by Accounting Department.This system manages accounting journals. User can post/reverse journals and past periodjournals. The processes are actually about accounting.

System Architecture of this system can be described as follows:

• Use-Case Diagram and descriptions

Tables 3.1 to 3.3 show use case descriptions of GL system.

System Environment of this system can be described below:

• Programming Language – Visual Foxpro

• Database – DBase

22

Page 33: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 3.1: This figure show GL Use-Case Diagram

ID import data

Brief Description Accounting import data from other related resource to pro-cess for journal.

Primary actors Accounting.

Precondition Data which will be imported to GL system must be con-firmed to be stable in that period.

Main flow 1. Importing data from other systems by the period of time.

2. Manage the consistence of data.

Table 3.1: General Ledger use case: import data

3.1.1.2 Purchase Control

Purchase Control System is used by procurement department. The main task is verifyingthe expenditure of each department to match with budget. Moreover, it provides the utilityabout request for ordering and receiving with the efficient process. However, Cash bills areneeded to send the copy to accounting department for keeping information into GL system.The main purpose for establishment of Purchase Control System is to support procurementprocess.

System Architecture of this system can be described as follows:

• Use-Case Diagram and descriptions

Tables 3.4 to 3.7 show use case descriptions of PC system.

System Environment of this system can be described below:

• Programming Language – PHP4

• Database – MySQL

23

Page 34: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

ID manage journal

Brief Description Accounting manage journals by using imported data.

Primary actors Accounting.

Main flow 1. Post General Journals: To allow postings of sundry trans-action values into the Genera Ledger.

2.Post Standing Journals: To enable selection of StandingJournals and the entry of posting values against them.

3.Post Standard Journals: To enable Standard Journals tobe selected for posting.

4.Post Spread Journals: To enable Spread Journals to beselected for posting.

5.Reverse General Journals: To allow postings of sundryreversible transaction values into the General Ledger. Thus,all Journals are posted with a Posting Period and a ReversalPeriod, the journal is first posted to the posting period andthen ’reversed’ out in the reversal period.

6.Reverse Standing Journals: To enable selection and re-versal of Standing Journals and the entry of posting valuesagainst them. Thus, all Journals are selected with a Post-ing Period and a Reversal Period, causing all amounts to beposted to both periods, the second having the opposite signof the first.

7.Reverse Standard Journals: To enable selection and re-versal of Standard Journals. Thus, all Journals are selectedwith a Posting Period and a Reversal period, causing allamounts to be posted to both periods, the second havingthe apposite sign of the first.

8.Reverse Spread Journals: To enable selection and reversalof Spread Journals. Thus, all Journals are selected with aPosting Period and a Reversal Period, causing all amountsto be posted to both periods, the second having the oppositesign of the first.

9.Past Period Journals: To allow postings of sundry trans-action values for past periods into the General Ledger, inexactly the same way as for P̈ost General Journals̈.

10. create reports for each type of journal.

Table 3.2: General Ledger use case: manage journal

24

Page 35: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

ID authenticate user

Brief Description Users can view only the information of their departmentssuch as cash-flow budget and capital budget. Accountingcan view the information about general ledger. Authenticatemodule provide authentication for each type of user.

Primary actors Accounting, User.

Main flow 1. Check that user has been authorized to use this system.

2. Provide functions follow the role of user.

Table 3.3: General Ledger use case: authenticate user

ID request to order

Brief Description The departments request to order the assets via purchasecontrol system.

Primary actors Department.

Main flow 1. Check the standard price before ordering.

2. Request to order.

Table 3.4: Purchase Control use case: request to order

ID verify order

Brief Description verify and approve follows budget rules.

Primary actors Procurement.

Preconditions orders are requested by the departments

Main flow 1. Manually verify the cost of assets.

2. Approve or reject.

Table 3.5: Purchase Control use case: verify order

ID order

Brief Description The approved request can be ordered.

Primary actors Procurement.

Precondition order already approved by procurement department.

Main flow 1. Order the assets.

Table 3.6: Purchase Control use case: order

25

Page 36: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 3.2: This figure show PC Use-Case Diagram

ID authenticate user

Brief Description Authenticate module provide authentication for each typeof user.

Primary actors All users.

Main flow 1. Check that user has been authorized to use this system.

2. Provide functions follow the role of user.

Table 3.7: Purchase Control use case: authenticate user

3.1.1.3 Budget Control

Budget Control is used by all departments. Each department must enter their budget infor-mation to the system in the given time. Each department can manage their budget on thissystem. Accounting department will revise each department’s budgets in each period of time.Users can retrieve the information about their department’s budgets and overall budgets.

System Architecture of this system can be described as follows:

• Use-Case Diagram and descriptions

Tables 3.8 to 3.10 show use case descriptions of BC system.

System Environment of this system can be described below:

• Programming Language – Visual Foxpro

• Database – DBase

3.1.1.4 Marketing Asset

Marketing Asset system is used by Sales Center department. Normally, marketing assets canbe controlled by Sales Center department directly. It means ordering, buying and keeping the

26

Page 37: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

ID estimate budget

Brief Description Each department need to estimate budget on the definedperiod.

Primary actors Department.

Main flow 1. Get the type of budget, budget form from accounting.

2. Estimate budget.

3. Submit the completed form to accounting.

Table 3.8: Budget Control use case: estimate budget

ID compare budget

Brief Description Accounting compare budget and real cost.

Primary actors Accounting.

Preconditions get the completed budget form from departments

Main flow 1. Revise each department budget.

2. Send the budget summary report to each department.

Table 3.9: Budget Control use case: compare budget

ID authenticate user

Brief Description Authenticate module provide authentication for each typeof user.

Primary actors All users.

Main flow 1. Check that user has been authorized to use this system.

2. Provide functions follow the role of user.

Table 3.10: Budget Control use case: authenticate user

27

Page 38: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 3.3: This figure show BC Use-Case Diagram

promotional items for marketing purposes are not done by procurement department. SalesCenter department respond to distribute marketing assets for each branch and keep track ofmarketing assets. However, cash bills need to be sent the copy to Accounting department forkeeping information.

System Architecture of this system can be described as follows:

• Use-Case Diagram and descriptions

Figure 3.4: This figure show MA Use-Case Diagram

The table 3.11 and 3.12 shows use case descriptions of MA system.

System Environment of this system can describe below:

• Programming Language – Visual Foxpro

• Database – DBase

28

Page 39: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

ID keep marketing asset information

Brief Description Sales department keep and manage the information aboutmarketing assets.

Primary actors Sales department.

Main flow 1. Keep information about marketing assets.

2. Manage information change .

Table 3.11: Marketing Asset use case: keep marketing assets information

ID authenticate user

Brief Description Authenticate module provide authentication for each typeof user.

Primary actors All users.

Main flow 1. Check that user has been authorized to use this system.

2. Provide functions follow the role of user.

Table 3.12: Marketing use case: authenticate user

3.1.1.5 Computer Asset

Computer Asset System is used by Computer department. This system keeps only computerassets’information. Normally, ordering, buying and keeping the computer assets are doneby computer department itself. Each department who needs to order computer asset mustinform computer department. Cash bills need to be sent the copy to accounting departmentfor keeping information.

System Architecture of this system can describe below:

• Use-Case Diagram and descriptions

The table3.13 and 3.14 shows use case descriptions of CA system.

System Environment of this system can describe below:

ID keep computer assets’ information

Brief Description IT department keep and manage the information about com-puter assets.

Primary actors IT department.

Main flow 1. Keep information about computer assets.

2. Manage information change .

Table 3.13: Computer Asset use case: keep computer assets information

29

Page 40: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 3.5: This figure show CA Use-Case Diagram

ID authenticate user

Brief Description Authenticate module provide authentication for each typeof user.

Primary actors All users.

Main flow 1. Check that user has been authorized to use this system.

2. Provide functions follow the role of user.

Table 3.14: Computer Asset use case: authenticate user

• Programming Language – Visual Foxpro

• Database – DBase

3.1.2 Current Asset Management

This section aims to review the current asset management at HTPCL. The details includeof organization environment, asset management AS-IS process and the limitation of currentasset management.

3.1.2.1 Organization Environment

IT department is a department in Information system division. There are fifteen staffs whichconsist of two advisers, a manager, nine developers, a network administrator, a technicianand a secretary. One of advisers is the professional in network technology, and another oneis the user who familiar in IT. A manager is an expert in Visual Foxpro and Foxpro on DOSprogramming. The developers’ skills include Visual Foxpro, Foxpro on DOS, PHP, Visual Ba-sic, MySQL, and Mathlab. A network administrator supervises network maintenance, servermaintenance, and email support. A technician responds to service the users. A secretaryresponds the part of computer transaction, creating and distributing announcements, andothers.

30

Page 41: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

HTPCL maintains over forty applications which almost all of them are the in-housesoftware. With the number of developers, supporting the applications is difficult because theratio between developers and applications is not reasonable. Moreover, the applications havevarious technologies and the developers also have various skills. Each developer can supportonly the application in which he/she is familiar.

Data consistency is one of the main problems. When the new application was established,it was not often synchronized with others because of the integration was not considered.Moreover, some business processes have no software to support. Therefore, users try tomanage information themselves by using general purpose software such as Excel. Recently,asset management can be done by controlling the Excel files. These Excel files are individuallyone which are not synchronized with any application. Therefore, to switchover from thecurrent manual process of asset management to the automated process, it is not difficult.

This reasons above cause the integration problem in the future because of the hetero-geneity of data sources. When some applications must be integrated, data source integrationis the easiest solution which will be selected. Almost all developers have no knowledge aboutthe integration technology is other layers. Besides, almost all of them are not familiar in JavaTechnology. The main problem is about in some cases that cannot use data source integra-tion. Therefore, When the new asset management system will be launched, some developersneed to be trained about the technology which are used.

3.1.2.2 AS-IS Process

Assets are divided in two groups, assets which are bought before year 1990 and assets whichare bought after year 1990. The reason to divide into two groups is caused by the differentdepreciated calculation.

Previously, some departments tried to control all assets more than keeping the informa-tion. Store department had an employee who responded about tracking assets. He/she hadthe Excel files to keep the information not only details about assets, but also defined the tagof each asset. Therefore, he/she could know the age of each asset and inform the departmentto write off some assets. But this point of business process has been changed when thisemployee resigned. Finally, store department does not keep the information about asset untilnow. Moreover, Accounting department and internal audit office used to participate for theasset controlling. However, the process could not cover all assets.

Recently, Accounting department responds to manage asset’s information. Assets’ doc-uments are kept in Excel files and are categorized by accounting department for calculatingthe depreciation. Therefore, these Excel files do not contain much more information whichwill be benefited by other departments.

To describe the flow of the asset control process, first, the assets are bought by procure-ment department. The information about buying is kept in the PC system (Purchase ControlSystem). Then, receipts are sent to Accounting department. For the storehouse brancheswhich use the petty cash, although the information is not kept in the PC system, receipts aresent to Accounting department. Therefore, Accounting department is the central to whichall receipts must be sent. All receipts information are entered to GL system (General Ledger)by an accountant for completing journals. Accountant will calculate the depreciation beforeenter to the system in each month.

Depreciation is the cost management of plant asset to be an expense of the asset ineach period of the ledger account which benefit from that asset. The laws of depreciationin Thailand require that the ledger must be the record of least one baht of value for thedisposal value1 of asset. Accounting department does not have the permission to write off

1disposal or residual value is the value left of asset after it already expired.

31

Page 42: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

any asset without the consent of department owning the asset. Therefore, HTPCL nowhas the responsibility to keep many ledgers which have disposal value. The solution for thisproblem is verifying all assets in the company and amortize them. This way must be discussedwith the executives.

HTPCL use the straight-line depreciation method to calculate depreciation for the assetwhich were bought after year 2533, which can describe the formula as follows:

Figure 3.6: This figure shows the straight-line depreciation method which is used atHTPCL

The assets which were bought before year 2533 can be calculated the depreciation byusing declining balance method which can be described the formula as follows:

Figure 3.7: This figure shows the declining balance depreciation method which is usedat HTPCL

Book value is the current cost of asset which can be calculated as follows:

Figure 3.8: This figure shows the method to calculate book value

As the formulas above, they are not the same approaches as general formulas becauseHTPCL calculates the depreciation per day (the general formulas use for calculating thedepreciation per year). It means that although each company use the same depreciationmethod, the formulas are not the same.

Depreciated calculations are different among each group of asset. The asset’s groups areas follows:

1. Equipment: depreciation rate 20% per year.

2. Engine: depreciation rate 10% per year.

3. Construction: depreciation rate 5% per year.

3.1.2.3 Limitation of current asset management

• Because of keeping information in Excel file, it is hard to maintain the files.

• Difficult for complex calculation.

• Time consuming.

• Other departments cannot use the information because the files are not distributed.

32

Page 43: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 3.9: This figure shows AS-IS activity diagram of asset management

• Lacking of data relationship. For example, now asset management can be done inExcel files. Therefore, some attributes are not synchronized. When some of them arechanged, other attributes which relate to will not be changed.

3.2 Asset Management System

This section describes about general details of asset management. Moreover, there are detailsabout famous asset management systems which are popular used.

3.2.1 Overview of Asset Management

From the definition of bestpricecomputers.co.uk(29 September 2007),

“Asset Management is the management of physical assets (their selection,maintenance, inspection and renewal), which plays a key role in determiningthe operational performance and profitability of industries that operate assets aspart of their core business. Asset Management is the art and science of makingthe right decisions and optimizing these processes.”

The goal of Asset Management Software is to help maintain record of asset. It showsthe important information such as depreciation of each asset. Asset Management Process isvery important because it shows the company to know about returns in each year.

Profit measurement and depreciation calculation are the important function for assetmanagement system. To calculate a depreciation charge for each period, four factors have tobe considered

• Cost of the asset - Total cost of asset also includes the cost of acquiring the asset,delivery cost, installation cost, legal cost and any cost incurred.

• Useful life of the asset - The expected useful life for access can be determined by theeconomic life of an asset. However, the physical life of an asset is a real life of assetwhich can be used for in business process.

• Disposal value of the asset.

• Depreciation method.

33

Page 44: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

3.2.2 Standard Business Model of Asset Management

Business Model is a process which link to relate person for reaching the gold of customersatisfaction. This section introduces the business models which are used for asset managementfrom several implementation vendors.

3.2.2.1 Hackett Group’s Best practices

Ivy McLemore(1996), the writer of Business Finance Magazine, discussed the World-ClassFixed Asset Management. The information from the Hackett Group2 describes the specifi-cation of fixed asset management, for example:

• Depreciation charges and asset activities are automatically post in General Ledger.

• Depreciation lives have only one policy.

• Use bar-code scanner for managing daily physical inventories.

• Providing tasks in system to match with skills of users, for example, clerks manageabout data entry and accountants manage the calculation about accounting.

Cost of Product – Although Hackett Group is the commercial organization, cost ofproduct cannot be found on the web site.

3.2.2.2 SAP: AA module

From SAP official site(27 September 2007), Asset Accounting is a component in FinancialAccounting module which also has part of managing asset. SAP R/3 Financial Accountingprovide fixed assets’ information for FI General Ledger. It acts as a supported ledger. Thissystem provides many transactions, for example, rules for depreciation calculation, changingthe year-to-date depreciation and fixed asset’s transferring.

HTPCL has a plan to adopt Basis3 on PC (bOnPC). From the presentation details,bOnPC is a new software package in the BASIS family which support the business aboutBottling operations at small bottlers, depots/sales centers at large bottlers and wholesalers,distributors. It can be operated on a single stand-alone personal computer, or in a networkfor several users. Moreover, It uses the same business and system concepts as BASIS IIRelease 53

bOnPC uses Open Database concepts which allowing for easy access of data by commer-cial tools. MySQL and JDBC are used for database technology. For the details of bOnPCarchitecture, the program allows easy hardware extension if the performance is not satisfyor the number of users is too high, several applications server computers can be used, anddedicated database server (s) can be used if necessary.

bOnPc functionality includes functions relates to master data, sales and distribution,stock management, finance, and system administrator. Asset management is one modulein finance function relates to accounting management, accounting receivable and sales ac-counting. But for the current plan, HTPCL did not plan to buy asset management modulebecause they prefer to develop the asset management system in-house based on open sourceplatforms.

2Hackett Group is the commercial organization which service about software analysisfor business functions include Finance, Information Technology, Human Resources andProcurement.

3Basis is a set of middle-ware programs and tools from SAP which is a popularcommercial ERP adopting by many large companies.

34

Page 45: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Cost of Product – For start the installation must prepay about 70 million baht.Maintenance cost per year must pay about 20 million baht.

3.2.2.3 ICT Business Solution (IBS): Asset Management System

Information and Communication division, Merchant Partners Securities Limited, introduceabout the principle of Asset business transaction which Asset Management System shouldsupport:

• Asset Acquisition and Sell of Asset

• Depreciation Calculation

• Dispositions of assets

• Amortization

• Transfer of Fixed Asset

Cost of Product – Best practices information from Merchant Partners Securities Lim-ited is just an example to show Asset Management System which is running in the real world.This organization created the system by in-house division. Therefore, cost of product couldnot be found.

3.2.3 Glossary about Asset Management

Table 3.15 shows definitions for words which related to Asset Management.

35

Page 46: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Vocabulary Definition

Amortization The systematic reduction of long-term asset which is oftenused for intangible assets

Budget planned expenses which are listed to show the predicting ofresult such as a schedule of cash repayments. It also can becalled “pro forma statements”

Capital budget the municipal budget which is used for estimating the fea-sibility to make investments, construct capital projects inlong-term assets.

Depreciation A reduction amount of an asset follows the specific formula.It is used as an expense of assets in each period

Fixed assets All tangible assets, for example, building, plant and ma-chine. Their lives are more than one year.

General Ledger (GL) The historical record which was kept in each accounting pe-riod. It also relates with books of accounts for all transac-tions. It was listed details of other accounts about increasingor decreasing. Producing financial statements are also theresponsible of GL.

Journal In terms of accounting, journal is a daily record which showsevent in transaction. It is used for maintaining the equalitybetween the amount debited and the amount credited.

Disposal value(Residual value) An approximation of asset’s value at the end of life whichcannot be calculated the depreciation. This asset maybewritten off or sold out in this time.

Useful life The period of time which asset can be used. It can be definedfollows physical time or expected time of asset.

Table 3.15: Glossary

36

Page 47: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

CHAPTER 4

METHODOLOGY

This chapter describes the methodology which is used to aim objectives of this research study.OFBiz is an ERP system which is used for developing Asset Management System (AMS).AMS has to communicate and synchronize data with legacy systems. There are two typesof the legacy system’s databases, MySQL and DBase(DBF file). This research study focuseson lnly integrating with Visual Foxpro system to challenge the worst case of integration.

4.1 Initial Installation for HTPCL Asset Management: New system

This section describes the initial installation for AMS which includes parts of requirementdescription, architecture overview and use case analysis.

4.1.1 Requirement Description

Currently, asset management documents are in Excel format. Therefore, it is very difficultto manage a large amount of data which increase dramatically. Requirements for AMS canbe summarized as follows:

• All assets in the company must be kept in only one fixed asset management system.

• Automatically update and show up depreciation for each asset everyday.

• Accountant can select the period of depreciation to post in general ledger.

• Support asset acquisition

• Support write off asset

• Support transfer of Fixed Asset

• Track the asset’s status about age, position, and so on.

• Expose depreciation calculation as web service.

• Summarize all asset values in several aspects.

• Inform the business profits of the organization.

• Improve the business process to reach the quality and efficiency.

4.1.2 Architecture Overview

The figure 4.1 shows an architecture overview of new Asset Management System. AMS willbe created on top of OFBiz with PostgreSQL database and connected with a legacy system.From the figure 4.1, General Ledger system (GL) is the main application which communicatethe main asset information with AMS. It uses DBase to be the database system. Thus, AMSneeds to synchronize the data between PostgreSQL and DBase.

4.2 Use Case Analysis

This section describes the use case analysis for AMS. The figure 4.2 shows a use case diagram.Tables 4.8 to 4.2 describe the description for each use case.

37

Page 48: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

ID calculate depreciation

Brief Description Accounting calculates depreciation or amortization for eachasset. It also periodically calculates depreciation and sum-marize depreciation for keeping into GL system

Primary actors Accounting.

Secondary actors None

Preconditions None

Main flow 1. Each asset is calculated by the appropriate formula.

2. Keep result of depreciation in daily table.

3. group assets by department to summarize depreciationeach.

4. GL retrieves summarized records by calling web services.

Post conditions None

Alternative flows None

Table 4.1: Asset Management System use case: calculate depreciation/amortization

Name transfer asset

Brief Description Assets can be transfered to another owner

Primary actors Accounting.

Secondary actors User

Preconditions None

Main flow 1. Accounting update the asset information when asset wastransferred.

2. User can inform to transfer assets.

Post conditions None

Alternative flows None

Table 4.2: Asset Management System use case: transfer asset

38

Page 49: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

ID write off asset

Brief Description Assets are written off in the defined time

Primary actors Accounting.

Secondary actors User

Preconditions Asset’s current price is equal disposal value or it alreadyexpired

Main flow 1. Accounting update the asset information when asset waswritten off.

2. User can inform to write off assets.

Post conditions Asset’s status is changed to ‘write off’

Alternative flows None

Table 4.3: Asset Management System use case: write off asset

ID repair asset

Brief Description This use case describes how Asset owner repair asset itemto departments.

Primary actors Accounting.

Secondary actors None

Preconditions Asset item has ‘available’ status.

Main flow 1. Change the asset items status to repair.

2. Update the asset repair information.

3. Change status back to be acquired when it was finishedrepairing.

Post conditions Asset’s status is changed to ‘acquired’

Alternative flows None

Table 4.4: Asset Management System use case: repair asset

39

Page 50: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

ID track asset status

Brief Description Assets can be tracked their status

Primary actors Accounting.

Secondary actors User

Preconditions None

Main flow 1. retrieve records follow keyword which are searched byusers.

Post conditions None

Alternative flows None

Table 4.5: Asset Management System use case: track status of asset

ID authenticate user

Brief Description Accounting department can see all assets’ information whileeach department can see only their own.

Primary actors Accounting, User.

Main flow 1. Check that user has been authorized to use this system.

2. Provide functions follow the role of user.

Table 4.6: Asset Management System use case: authenticate user

ID distribute asset

Brief Description Assets must be acquired by departments. Accounting man-ages the acquiring information

Primary actors Accounting.

Secondary actors None

Preconditions Assets have ‘available’ status

Main flow 1. Asset status is changed to be ‘acquired’ when it is dis-tributed.

2. Keep information about the owner of asset.

Post conditions Asset’s status is changed to ‘acquired’

Alternative flows None

Table 4.7: Asset Management System use case: distribute asset

40

Page 51: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 4.1: This figure shows an Architecture Overview of new Asset ManagementSystem

4.3 Preliminary Prototype

For the preliminary prototype, there is the simple Asset Management System (AMS) whichis integrated with the simple DBF file. The prototype is created for understanding how thesimple AMS works. This prototype is implemented on OFBiz. It uses Java service for thedomain model. Visual FoxPro ODBC Driver is the library which is use for showing simpleintegration in data source layer. This prototype will not be used to be the real system. It isjust a throwaway prototyping which is used for study.

4.3.1 Architecture Overview of prototype

The figure 4.4 shows how AMS on OFBiz retrieves the asset information from DBF file.Samba servers keep DBF files. They provide accessible for users by sharing their drives.Actually, users use these DBF files when they use GL system. AMS on OFBiz also use theseDBF files to retrieve the asset information. This prototype is created domain models withJava service. It retrieves DBF files by using Visual FoxPro ODBC Driver. The code 4.3which was adopted from http://csv-jdbc.com/, shows simple source code about how to readDBF file as follows:

4.3.2 Creating prototype on OFBiz framework

This prototype is created on OFBiz framework. The figure 4.5 shows the structure folder ofprototype. For creating a new application on OFBiz, an application folder should be put onhot-deploy/ directory for automatic deployment.

41

Page 52: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 4.2: This figure shows Use Case diagram of new asset management system

4.3.2.1 ofbiz-component.xml

OFBiz application use ofbiz-component.xml as the declaration of web application. The figure4.6 shows an example code of ofbiz-component.xml

4.3.2.2 Build directory

This directory keeps the classes/ directory and lib/ directory. When Java services are com-piled, bytecode class files are created on classes/ directory.

4.3.2.3 Data directory

This directory keeps the data for the database. The data can be imported and exportedfrom this folder. The data is kept in XML format. The figure 4.7 shows an example code ofAssetData.xml

4.3.2.4 Entitydef directory

This directory keeps two files as default, entitygroup.xml and entitymodel.xml. The figure4.8 shows an example of entitygroup.xml. It keeps information about table declaration. Thefigure 4.9 shows an example of entitymodel.xml. It keeps tables which were declared inentitygroup.xml.

4.3.2.5 Servicedef directory

This folder keeps files which have the information about calling services. It is service decla-ration for an application. They work as a service layer for the application. The figure 4.10shows an example code of services.xml

42

Page 53: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Name Manage asset information

Brief Description Accounting manages the asset information, for example, in-serting, updating and deleting the additional information.

Primary actors Accounting

Secondary actors None

Preconditions None

Main flow 1. Retrieving the asset information from other related sys-tems.

2. Accounting department can add the additional informa-tion for each asset.

3. Updating the asset information to GL.

Post conditions None

Alternative flows None

Table 4.8: Asset Management System use case: manage asset information

4.3.2.6 Webapp directory

This directory keeps files which are used as view of application such as JSP files. WEB-INF/ directory in an important folder in webapp directory/ which keeps 2 important files,controller.xml and web.xml. Controller.xml declares screens, services, and handler for anapplication. Web.xml is a configuration file for web application which any application canuse the same web.xml file. In webapp directory/, it also has actions/ directory for keepingscripting files such as beanshell files.

4.3.2.7 Widget directory

This directory keeps files about screens and forms. OFBiz has the concept of decoratorpattern1 for creating screen and form objects. The figure 4.12 shows an example code ofPrototypeScreen.xml and the figure 4.11 shows an example code of AssetForms.xml.

4.3.3 ScreenShots

This section shows some screenshots of the prototype. The figure 4.13 shows the first pageof the prototype which shows the list of asset. For testing, the prototype provides the insertbutton for testing to create a new asset. ‘Update asset from GL’ button is for retrievingthe asset information from DBF file and then storing them to AMS on OFBiz’s database.Adding the asset information and updating the asset information from DBF file are both theinsert operation which provides automatically create sequence ID for adding items.

1In object-oriented programming, the decorator pattern is a design pattern thatallows new/additional behavior to be added to an existing method of an object dy-namically. – Wikipedia

43

Page 54: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

package org.ofbiz.DButil;

import java.sql.*;

public class DBFDriverTest {

public static void main(String[] args) {

try {

// load the driver into memory

Class.forName("jstels.jdbc.dbf.DBFDriver");

// create a connection. The first command line parameter is assumed to

// be the directory in which the .dbf files are held

Connection conn = DriverManager.getConnection("jdbc:jstels:dbf:" + args[0]);

// create a Statement object to execute the query with

Statement stmt = conn.createStatement();

// execute a query

ResultSet rs = stmt.executeQuery("SELECT * FROM \"c:/SimpleAcc.dbf\"");

// read the data and put it to the console

for (int j = 1; j <= rs.getMetaData().getColumnCount(); j++) {

System.out.print(rs.getMetaData().getColumnName(j) + "\t");

}

System.out.println();

while (rs.next()) {

for (int j = 1; j <= rs.getMetaData().getColumnCount(); j++) {

System.out.print(rs.getObject(j) + "\t");

}

System.out.println();

}

// close the objects

rs.close();

stmt.close();

conn.close();

}

catch (Exception e) {

e.printStackTrace();

}

}

}

Figure 4.3: The code shows simple source code about how to read DBF file(http://csv-jdbc.com/)

4.3.4 Continued work for the prototype

This section explains potions which are missing from the prototype. There are rough roadmapsfor this research study to go on.

4.3.4.1 Web services

For a simple prototype, AMS can connect directly to DBF files. Thus, it is not flexibleenough for the presentation layer because other applications which are not developed fromJava Technology cannot communicate with DBF files. For making interoperable amongapplications, web services is the solution.

4.3.4.2 Calculation modules related to Asset Management

There are many kinds of depreciation methods. Each method has its individual approachto perform. HTPCL also has various methods to calculate for different kinds of assets.Understanding depreciation methods are very important to create depreciation module forAMS.

44

Page 55: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 4.4: This figure shows architecture of prototype

4.3.4.3 Development on OFBiz: Fixed Asset Module

This prototype is just an example to show how to create an application of OFBiz framework.It just finds the way to connect an OFBiz application with DBF files. Thus, this is just athrowaway prototype which will be replaced with the real system in the future. OFBiz alsohas the Fixed Asset Management application which can be contributed.

4.3.4.4 Changing database to be PostgreSQL

To keep a prototype simple, Derby database is a lightweight database which appropriate touse for testing. For the real system, it is necessary to change database to an ACID RDBMS.PostgreSQL is a database which is widely used. It appropriates for keeping a large amountof data.

4.3.5 Lessons which are learned from the prototype

This section expresses lessons which are learned from the prototype. There are three profitableparticulars as follows:

4.3.5.1 How to work with OFBiz framework

OFBiz framework is very complex for newbies to study. Before creating an application,studying frameworks such as MVC (Model-View-Controller pattern) is very important. Ittook a long time to study the OFBiz framework because there are many basic knowledgesfor helping to understand.

4.3.5.2 How to use Visual FoxPro ODBC Driver

Visual FoxPro ODBC Driver is a library which support to work with DBF files. The applica-tion which needs to use this driver must be created by Java language. This library containsprogram code used by Visual FoxPro applications when accessing databases via ODBC.

45

Page 56: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 4.5: This figure shows simple source code about how to read DBF file.

4.3.5.3 How to retrieve data in different format to OFBiz data source

Data must be stored into a hashmap2 to import or insert to OFBiz data source by Javaservice.

4.4 Risk Analysis

This section describe about rist analysis of this research which include of concurrency andsecurity.

4.4.1 Concurrency

For the reason that AMS needs to update some information to GL system, which uses DBFfiles as the database, concurrency is the main problem because it is not possible for manyusers to write a DBF file in the same time. AMS should performs the optimistic or pessimisticconcurrency control.

4.4.2 Security

Security is also the main issue which should be concerned. DBF file is just a file; therefore,it can be accessed easily. GL keeps all data in DBF file. It should be performed the securityon access.

2The HashMap class is roughly equivalent to Hashtable,except that it is unsynchronized and permits nulls. –http://java.sun.com/j2se/1.4.2/docs/api/java/util/HashMap.html

46

Page 57: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 4.6: This figure shows an example code of ofbiz-component.xml.

Figure 4.7: This figure shows an example code of AssetData.xml.

4.4.2.1 Difficult to work with running process

Legacy systems are now running in the process. Thus, implementing and testing will bedifficult.

4.4.2.2 Lack of documentation

Legacy systems have very less analysis/design documents. Therefore, it’s very difficult tounderstand processes of each system.

Next chapter will describe about implementation phase of two systems, AMS and Ac-counting Middle-ware. It includes requirement specification, analysis, design and implemen-tation sections of both systems. Moreover, web services and lock implementation is alsodescribed in next chapter.

47

Page 58: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 4.8: This figure shows an example code of entitygroup.xml.

Figure 4.9: This figure shows an example code of entitymodel.xml.

Figure 4.10: This figure shows an example code of services.xml.

Figure 4.11: This figure shows an example code of AssetForms.xml.

48

Page 59: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 4.12: This figure shows an example code of PrototypeScreens.xml (Common-Decorator and main screen).

Figure 4.13: This figure shows the first page of prototype.

49

Page 60: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

CHAPTER 5

IMPLEMENTATION

This chapter describes implementation of two systems, Asset Management System and Ac-counting Middle-ware. It focuses on the modules which relate to integration.

5.1 System requirement specification

This section describes system requirement specification about integrating between Asset Man-agement System and General Ledger via Accounting Middle-ware.

Figure 5.1: This figure shows Communication diagram of the system

The figure 5.1 shows the communication between Asset Management System and Ac-counting Middle-ware. First, the client inserts an accounting record including an accountingnumber, depreciation per account number, and related fields. Before the accounting sys-tem inserts the data, it passes the account number and calculate date to the AMS to geta depreciation value. The AMS looks up the account number and maps with departmentid and then calculates depreciation for each asset. When it created depreciation records, itapplies the necessary business logic to calculate the depreciation value, and insert them tothe depreciation transaction table. The accounting system inserts the new record which wasalready grouped by department, commits the transaction, and notifies the client of success orfailure. This design maintains loose coupling between the accounting system and the AMSand keeps the business logic related to asset management local to the AMS. Since the use caseis interactive, the communication is best implemented using a synchronous request-responseprotocol such as SOAP.

50

Page 61: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

5.2 System analysis and design

This section describes analysis and design of two systems, Asset Management System andAccounting Middle-ware. It includes ER-diagram, activity diagram, sequence diagram, classdiagram and implementation diagram.

5.2.1 ER-diagram

This section describes about ER-diagram of Asset Management System and AccountingMiddle-ware. The figure 5.2 shows ER-diagram of Asset Management System. deprecia-tion trans table keeps daily depreciation records which are generated when OFBiz schedulercalled the depreciation service.

Figure 5.2: This figure shows Communication diagram of the system

For Accounting Middle-ware, it connects with GL07.dbf which is an existing table inGeneral Ledger System. It means that GL07.dbf is connected by both Accounting Middle-ware and General Ledger System. General Ledger System uses GL07.dbf for recording ac-counting transaction while Accounting Middle-ware uses it for updating depreciation. Thefigure 5.3 shows ER-diagram of Accounting Middle-ware.

51

Page 62: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 5.3: This figure shows Communication diagram of the system

5.2.2 Activity diagram

This section describes about activity diagrams which deal with depreciation calculation pro-cess of both two systems.The figure 5.4 shows activity diagram about creating depreciationtable in each period. OFBiz scheduler will daily call depreciation method and create recordinto depreciation trans table for each asset.

Figure 5.4: This figure shows activity diagram about creating deprecation table ineach period

The figure 5.5 shows activity diagram about creating depreciation record for GL07 ineach period. This process can be started only when the related records for depreciationcalculation were created in Asset Management System. First, users input period of timeto calculate depreciation. Then, this process will send each account number to Asset Man-agement System by web service client which was implemented to call web services in Asset

52

Page 63: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Management System. The web services server will calculate the summary of depreciationfor each record and then send back the result to the client. After the client get back thedepreciation, it will prepare the record and then keep the record in GL07.

Figure 5.5: This figure shows activity diagram about creating depreciation record forGL07 in each period

5.2.3 Sequence diagram

This section describes sequence diagram about creating depreciation record in AMS andGL07 in each period. These sequence diagrams relate to integration part of two systems.The details of each class in these sequence diagrams will be described in system implantationsection.

Figure 5.6: This figure shows Sequence diagram about creating deprecation table ineach period

53

Page 64: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 5.7: This figure shows Sequence diagram about creating depreciation record forGL07 in each period

5.2.4 Class diagram

The figure 5.8 shows class diagram in AMS package and Accounting Middle-ware package.Each class can be described as the figure ??:

Figure 5.8: This figure shows class diagram in AMS and Accounting Middle-ware pack-age

The details within each class can be described in the next section of this chapter, Systemimplementation section.

5.2.5 Implementation diagram

This section describes about implementation diagram of this research study. The figure 4.1shows how application was located. General Ledger System was located in the server towhich rich client can connect via using Local Area Network. Asset Management System andAccounting Middle-ware were located in Application server in Web server. Actually, bothtwo systems can be located in separated server (they were located in the same server for thiscase study) because they are connected via web services. Browser client and rich client canuse both two systems via HTTP, Local Area Network and the Internet.

54

Page 65: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

5.3 System implementation

This section describes implementation of Asset Management System and Accounting Middle-ware both in Java code and XML configuration in OFBiz framework. In XML configura-tion(simple engine), it is used for implemented the first use case of Asset Management Sys-tem, manage asset information. The code 5.9 shows the example of XML configurationin servicedef/services.xml for CRUD in AssetCategories Table.

<service name="createAssetCategory"

default-entity-name="AssetCategories" engine="simple"

location="org/ofbiz/ams/ams/AmsAssetCategoryServices.xml"

invoke="createAssetCategory" auth="true">

<description>Create an Asset Category</description>

<permission-service service-name="exampleGenericPermission"

main-action="CREATE"/>

<auto-attributes include="pk" mode="OUT" optional="false"/>

<auto-attributes include="nonpk" mode="IN" optional="true"/>

<!--override name="exampleTypeId" optional="false"/>

<override name="statusId" optional="false"/>

<override name="exampleName" optional="false"/-->

</service>

...

Figure 5.9: The code shows the example code for declaring simple method in ser-vicedef.xml

As the code 5.10, each XML definition use engine= “simple” and invoke=“deleteAssetCategory”at ...ams/AmsAssetCategoryServices.xml. It means that the business models are lo-cated in AmsAssetCategoryServices.xml.

<simple-method method-name="createAssetCategory"

short-description="create an AssetCategory">

<make-value entity-name="AssetCategories" value-name="newEntity"/>

<set-pk-fields map-name="parameters" value-name="newEntity"/>

<make-next-seq-id value-name="newEntity" seq-field-name="id"/>

<field-to-result field-name="newEntity.id" result-name="id"/>

<set-nonpk-fields map-name="parameters" value-name="newEntity"/>

<create-value value-name="newEntity"/>

<call-service service-name="createExampleStatus"

in-map-name="createExampleStatusMap"/-->

</simple-method>

...

Figure 5.10: The code shows the example code for implementing CRUD in OFBiz byusing simple method

In Java engine, as shown in the figure 5.8, AMS package is implemented in Asset Man-agement System and Accounting Middle-ware package is implemented in Accounting Middle-ware system which can be described as follows.

5.3.1 AMS package

This package is implemented in Asset Management System. All classes relate with the busi-ness logic of depreciation calculation which are implemented in Java engine. Actually, AssetManagement System is also implemented other business logics such as data managing butthey are implemented in simple engine which is provided by OFBiz framework.

55

Page 66: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

AssetItemDepreciation Class: This class has one method namely calculat-eDepreciationForAssetItem. It gets calculate date and asset itemid parameter andthen return deprecation argument. The code 5.11 describes the calculation of asset whichis categorized by delivery year of asset. Assets which is bought before year 2533 will useDepreciationMethod.straightLinePerDay method and another group of asset will use De-preciationMethod.declinePerDay method.

...

if (asset_current_value > 1) {

// calculate asset which is bought before year 2533

if (delYear > 1990) {

depreciation = DepreciationMethod.straightLinePerDay

(asset_item_price, to, delivery, asset_depre_percent);

record.put("asset_current_value", asset_item_price

- depreciation);

}

// calculate asset which is bought after year 2533

else {

depreciation = DepreciationMethod.declinePerDay(asset_current_value, to, delivery,

asset_depre_percent);

record.put("asset_current_value", asset_current_value

- depreciation);

}

} else {

depreciation = 0.0;

}

...

Figure 5.11: The code describes the calculation of asset which is categorized by deliv-ery year of asset

The business logic of depreciation calculation can be changed in this class by callinganother deprecation method from DepreciationMethod Class and the company can add newapproach there.

DepreciationMethod Class: This class is used by AssetItemDepreciationClass to create depreciation method. This class has two important methods, straight-LinePerDay method and declinePerDay method. The straightLinePerDay methoduses for calculation by using the formula as the figure ??:

Figure 5.12: This figure shows the straight-line depreciation method which is used atHTPCL

The declinePerDay method uses for calculation by using the formula as the figure5.13:

Figure 5.13: This figure shows the declining balance depreciation method which isused at HTPCL

The code 5.14 shows straightLinePerDay method and declinePerDay method in Depre-ciation Class.

56

Page 67: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

public static Double straightLinePerDay(Double asset_item_price, long to,

long delivery, long asset_depre_percent) {

Double depreciation;

Double useful_life = new Double(100.0 / asset_depre_percent);

double difference = to - delivery;

long days = Math.round((difference / (1000 * 60 * 60 * 24)));

depreciation = asset_item_price * (days + 1) / (365 * useful_life);

return depreciation;

}

public static Double declinePerDay(Double asset_current_value, long to,

long delivery, long asset_depre_percent) {

Double depreciation = 0.0;

Double useful_life = new Double(100.0 / asset_depre_percent);

double difference = to - delivery;

long days = Math.round((difference / (1000 * 60 * 60 * 24)));

depreciation = (asset_current_value * (days + 1)) / (365 * useful_life);

return depreciation;

}

Figure 5.14: The code shows straightLinePerDay method and declinePerDaymethod in Depreciation Class

This class uses for implementing the depreciation method, if the company needs tochange the depreciation calculation. For example, the code 5.15 shows another depreciationcalculation which already provided in DepreciationMethod Class but it is still not being used.It is a method for calculating depreciation per year.

public static Map straightLinePerYear(DispatchContext dctx, Map context) {

Double depreciation;

GenericDelegator delegator = dctx.getDelegator();

...

Figure 5.15: the code shows another depreciation calculation

DepreciationByDateManager Class: This class contains two methods, insert-DepreciationRecordToDepreTrans and insertToDepreciationTrans. First, insert-DepreciationRecordToDepreTrans method is called by DepreciationServices class.It prepares depreciation value before calls insertToDepreciationTrans to store records.The code 5.16 shows implementing of this method.

AssetItemDepreciation.calculateDepreciationForAssetItem method is called bythis method to calculate deprecation before insert record to the period table. The code 5.17shows how to insert each record.

DepreciationServices Class: This class contains two methods, createDepreTableand depreciationPerAccNoWS. Each method in this class is called by servicedef/services.xmlwhich means that they can be called by controller in framework. createDepreTable methodis daily called by OFBiz scheduler. This method will call insertDepreciationRecordToDe-preTrans to insert record. The code 5.18 shows implementing of this method.

createDepreTable is called by servicedef/services.xml which can be shown therelated code in the code 5.19.

depreciationPerAccNoWS method (the code 5.20)is used for calculating the sum-mary of depreciation per account number because the depreciation methods which are pro-vided in DepreciationMethod Class can be used for calculating depreicaiton for only one

57

Page 68: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

public static void insertDepreciationRecordToDepreTrans(DispatchContext dctx,

GenericDelegator delegator, String to_calculate_date,

String tableName) {

List listAssetItems = delegator.findAll("AssetItems");

Double depre_value = 0.0;

for (int i = 0; i < listAssetItems.size(); i++) {

...

depre_value = AssetItemDepreciation.calculateDepreciationForAssetItem(dctx, mapTest,

to_calculate_date);

}

Double value_after_cal = value_before_cal - depre_value;

.....

// insert to table

insertToDepreciationTrans(delegator, tableName, account_no, depid, asset_itemid,

value_before_cal,value_after_cal, depre_value, to_calculate_date);

}

....

}

}

Figure 5.16: The code shows insertDepreciationRecordToDepreTrans method

asset item per time. Moreover, this method is exposed to be web service provider which otherweb service clients can call for calculating depreciation.

To expose depreciationPerAccNoWS method to be web service provider, the de-veloper must define the attribute export=“true” in servicedef/services.xml as the code5.21.

5.3.2 Accounting Middle-ware Package

This package is implemented in Accounting Middle-ware. All classes in this system areimplemented in Java engine. It contains two classes, AccountingVFPServices class andDepreciationRecordClient class.

AccountingVFPServices Class: This class contains only createPeriodAccountmethod. This method is defined in servicedef/services.xml which is used for creatingrecord and store in dbf file in General Ledger System. Within this method, it will callcallDepreciationForAccNo method in DepreciationRecordClient class which is webservice client to calculate deprecation field. The code 5.22 shows createPeriodAccountmethod:

DepreciationRecordClient Class: This class contains two methods, callDe-preciationForAccNo and insertRecordToGL07. Both of methods need to be definedin servicedef/services.xml.callDepreciationForAccNo is web service client which sendaccount number and calculate date to depreciationPerAccNoWS in DepreciationSer-vices class(in AMS) and then get back depreciation for that account number which is shownas The code 5.23

insertRecordToGL07 method is used for insert to record, with completed attribute,into DBF file for General Ledger System. The code of this method can be shown as 5.24.

5.3.3 Depreciation method implementation and modification

This section describes the business logic about depreciation method implementation to clarifyabout the steps to add or change deprecation method in the future.Depreciation calculation

58

Page 69: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

for (int i = 0; i < listAssetItems.size(); i++) {

...

try {

depre_value = AssetItemDepreciation.

calculateDepreciationForAssetItem(dctx, mapTest,

to_calculate_date);

} catch (IOException e) {

e.printStackTrace();

}

Double value_after_cal = value_before_cal - depre_value;

...

String account_no = record.get("account_no").toString();

// insert to table

String helperName = delegator.getGroupHelperName("org.ofbiz");

SQLProcessor du = new SQLProcessor(helperName);

String sqlInsert = "INSERT INTO " + tableName + " VALUES(’"

+ asset_itemid + "’,’" + depid + "’,’" + account_no

+ "’," + value_before_cal + "," + depre_value + ","

+ value_after_cal + ")";

...

}

Figure 5.17: The code shows how to insert each record

public static Map createDepreTable(DispatchContext dctx, Map context)

throws ClassNotFoundException, SQLException {

GenericDelegator delegator = dctx.getDelegator();

String to_calculate_date = (String) context.get("to_calculate_date");

....

DepreciationByDateManager.insertDepreciationRecordToDepreTrans(dctx,

delegator,to_calculate_date, tableName);

...

}

Figure 5.18: The code shows createDepreTable method

is located in Asset Management System. It means that Accounting Middle-ware does nothave authorization to select or change the business logic. Asset Management System canspecify the depreciation method for each asset group. Therefore, depreciation approach canbe changed in AssetItemDepreciation Class(in calculateDepreciationForAssetItemmethod) and the new depreciation methods can be added into DepreicationMethod classin AMS package. Moreover, depreciation methods of all asset groups can be categorized intotwo approaches, straight-line of declining-balance but percentages to calculate for each assetgroup are different. Percentages to calculate deprecation can be easily changed by updatingrecord in AssetDepreciation Table.

5.3.4 Implement concurrency control for applications

This section describes locking approach for Asset management System and Accounting middle-ware System.

5.3.4.1 Lock for Asset Management System

OFBiz framework has the feature to manage lock for each entity in type of optimistic lock.Lock in OFBiz can be defined by putting enable-lock=true entitymodel.xml. The code inentitymodel.xml which already defined lock can be shown as 5.25

59

Page 70: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

<service engine="java" name="createDepreTable"

location="org.ofbiz.ams.DepreciationServices" invoke="createDepreTable"

default-entity-name="AssetItems" auth="false" export="true">

<description>create table for accounting period</description>

<attribute type="String" mode="IN" name="to_calculate_date" optional="false"/>

</service>

Figure 5.19: The code shows declarating of createDepreTable in servicedef.xml.

public static Map depreciationPerAccNoWS(DispatchContext dctx, Map context) {

.....

//calculation part

result.put("depreciationTotal", depreciationTotal.toString());

return result;

}

Figure 5.20: The code shows depreciationPerAccNoWS method

5.3.5 Screenshots

This section shows example screenshots of Asset Management System and Accounting Middle-ware.

60

Page 71: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

<service engine="java" name="depreciationPerAccNoWS"

location="org.ofbiz.ams.DepreciationServices"

invoke="depreciationPerAccNoWS" auth="false" export="true">

...

</service>

Figure 5.21: The code shows declaration of depreciationPerAccNoWS method in ser-vicedef.xml

public static Map createPeriodAccount(DispatchContext dctx, Map context)

throws IOException {

...

String sqlCommand = "SELECT account_no FROM GL04 WHERE ACCOUNT_NO LIKE ’61131%’";

for (int j = 1; j <= rs.getMetaData().getColumnCount(); j++) {

....

DepreciationRecordClient.insertRecordToGL07(delegator,

account_no, period, depreciationTotal,

to_calculate_date);

}

...

Map result = ServiceUtil.returnSuccess();

return result;

}

Figure 5.22: The code shows createPeriodAccount method

61

Page 72: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

public static Double callDepreciationForAccNo(String to_calculate_date,

String account_no) {

String endpoint = "http://localhost:8080/webtools/control/SOAPService";

String inputParam1 = to_calculate_date;

String inputParam2 = account_no;

String depreciationTotal = null;

try {

Call call = (Call) new Service().createCall();

call.setTargetEndpointAddress(endpoint);

call

.setOperationName(new QName("depreciationPerAccNoWS",

"depreciationPerAccNoWS"));

call.addParameter("to_calculate_date",

org.apache.axis.Constants.XSD_STRING,

javax.xml.rpc.ParameterMode.IN);

call.addParameter("account_no",

org.apache.axis.Constants.XSD_STRING,

javax.xml.rpc.ParameterMode.IN);

call.addParameter("login.username",

org.apache.axis.Constants.XSD_STRING,

javax.xml.rpc.ParameterMode.IN);

call.addParameter("login.password",

org.apache.axis.Constants.XSD_STRING,

javax.xml.rpc.ParameterMode.IN);

call.setReturnType(org.apache.axis.Constants.XSD_STRING);

String responseWS = (String) call.invoke(new Object[] {

inputParam1, inputParam2, "admin", "ofbiz" });

Map output = call.getOutputParams();

depreciationTotal = (String) output.get(new QName("",

"depreciationTotal"));

} catch (ServiceException e) {

Debug.logFatal(e.getMessage(), module);

} catch (RemoteException e) {

Debug.logFatal(e.getMessage(), module);

}

return new Double(depreciationTotal);

}

Figure 5.23: The code shows callDepreciationForAccNo method

public static void insertRecordToGL07(GenericDelegator delegator,

String account_no, String period, Double depreciationTotal,

String to_calculate_date) {

....

String sqlInsert = "INSERT INTO gl07(company_no,ledger,level_acc,account_no,

postg_perd,debit_bd,credit_bd,debit,credit,debit_bl,

credit_bl,postg_date,username,L_U_ST,L_U_TX_ST,CR_ST,CR_TX_ST) "

+ "values(’HT’,’PAL’,’61131’,’"

+ account_no

+ "’,’"

+ periodT

+ "’,0,0,"

+ depreciationTotal

+ ",0,"

+ depreciationTotal

+ ",0,DATE(),’AMS’,DATE(),DATE(),DATE(),DATE())";

.....

}

Figure 5.24: The code shows insertRecordToGL07 method

62

Page 73: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

<entity package-name="org.ofbiz.prototype" entity-name="SimpleAccs"

title="entity for storing asset information - main table" enable-lock="true">

<field type="id-ne" name="accid"></field>

<field type="id-ne" name="asset_itemid"></field>

<field type="currency-amount" name="asset_depre"></field>

<prim-key field="accid"></prim-key>

</entity>

Figure 5.25: The code shows the example code about lock implementation

Figure 5.26: This figure shows the main page(English language) of Asset ManagementSystem

Figure 5.27: This figure shows the main page(Thai language) of Asset ManagementSystem

63

Page 74: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure 5.28: This figure shows the page which is used for creating accounting recordin Accounting Middle-ware

64

Page 75: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

CHAPTER 6

FRAMEWORK AND APPPLICATION EVALUATION

This chapter describes about framework and application evaluation. This thesis uses OFBizto be the framework for the case study. The reason about choosing OFBiz can be comparedwith another popular framework such as JBoss seam is represented here. Moreover, userevaluation is also describes in this chapter.

6.1 Framework Evaluation

This section evaluates the Seam and OFBiz frameworks according to the ERP-specific andgeneral criteria(Rittammanart, Wongyued, & Dailey, 2008) listed in Section 2.3.2.2.

6.1.1 ERP-Specific Criteria

6.1.1.1 Technology complexity

JBoss Seam requires developers to clearly understand Java EE technology, but OFBiz doesnot require deep knowledge of any one technology. A Seam developer need skills in JSF, EJB3,and JPA. In contrast, for OFBiz, a basic knowledge of the architecture of the framework issufficient for getting started. In the data source layer in particular, OFBiz’s Entity Engineis straightforward for any developer familiar with relational database technology, but JPArequires in-depth knowledge of object technology and object-relational mapping. AlthoughSeam’s complexity may be necessary for a large project, OFBiz technologies are easier tounderstand and well tailored to smaller ERP projects.

6.1.1.2 Ease of service exposure

OFBiz provides simpler means for exposing business logic as SOAP Web services. As alreadymentioned, OFBiz forces developers to adopt a service-oriented interface to the business logiclayer. Once an OFBiz service has been defined, it is a simple matter of adding the attributeexport="true" to the XML service definition:

<service engine="java" name="calculateDepre"

location="org.ofbiz.ams.DepreciationServices"

invoke="calculateDepre"

default-entity-name="AssetExts"

auth="false" export="true">

<!-- code for service here-->

</service>

With the export attribute turned on, OFBiz automatically creates a WSDL specificationfor the service. In Seam, to export existing session beans’ methods as Web service opera-tions, developers must create a separate Java interface declaring the methods that shouldbe exported then add two annotations: @Remote and @WebService(name = "...",serviceName = "..."). Like OFBiz, Seam automatically creates the appropriate WSDLspecification. It can be concluded that although the Seam solution would be better whendevelopers want a coarse-grained remote interface and a fine-grained local interface to thesame business logic, the OFBiz approach is simpler.

65

Page 76: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

6.1.1.3 Ease of administration

Both frameworks require the Java Development Kit (JDK). OFBiz ships with an embed-ded version of the Tomcat application server, but Seam requires separate installation of theapplication server and some additional configuration to notify the server the Seam shouldbe loaded before it is ready to run. At application deployment time, OFBiz is capable ofdynamically loading controllers, screens, widgets, forms, and business logic implemented byscripts. This saves development time and deployment time. OFBiz makes installation anddeployment easier.

6.1.1.4 Resource utilization

In the standard setup, Seam runs on the JBoss application server, which provides completeEJB3 support, whereas OFBiz, by default, runs on the more lightweight Tomcat applicationserver. In the case study from paper, the Seam installation required 335.2 MB of disk spaceand 85808 KB of RAM at runtime, whereas the OFBiz installation required 193.2 MB of diskspace and 75820 KB of RAM. OFBiz is therefore more lightweight than Seam in terms ofresource utilization.

6.1.1.5 Ease of presentation implementation

Both Seam and OFBiz utilize the Model-View-Controller (MVC) pattern in the presentationlayer. For Seam, developers must be familiar with JSF and EJB to implement presentationlayer components. OFBiz developers need only know how to use the Entity Engine, ServiceEngine, screens, form widgets, and the built-in templates. In developing our prototype AMSsystems, the learning for JSF is steeper than that for OFBiz. However, experienced Javadevelopers already familiar with JSF but not with the OFBiz framework would presumablyfind the OFBiz learning curve steeper.

6.1.1.6 Ease of business logic implementation

OFBiz makes business logic layer services available to many clients automatically, leaving thedeveloper with the relatively straightforward task of plugging in small segments of reusablebusiness logic code in Java or a scripting language. In our case study, Seam, on the otherhand, sometimes requires more hand coding than OFBiz for the same task.

6.1.1.7 Ease of database administration

Both Seam and OFBiz provide means to connect with several different database managementsystems. In both frameworks, changing the database is a simple matter of modifying aconfiguration file to point to the correct data source. However, the OFBiz framework doeshave the advantage that developers can create, import, export, and seed data in an XML fileformat using a simple Web interface.

6.1.2 General Criteria

6.1.2.1 Availability

There are no any data on the relative failure rates of the Tomcat and JBoss applicationservers. However, JBoss requires server restarts more frequently that OFBiz when deploying

66

Page 77: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

new versions of the code. This means that OFBiz provides slightly more availability thanSeam.

6.1.2.2 Customizability

JBoss Seam is in a sense more customizable than OFBiz in that it does not restrict thedeveloper in any way. OFBiz developers must adapt to its style. On the other hand, OFBizprovides many customizable features, for messaging, database vendor, or work flow withXPDL standard. OFBiz has many common services that can be invoked in any application.The developer only needs to change a simple XML specification to switch the service endpointto a different component. Therefore, it is very easy to customize OFBiz if what the developerwants to do fits into the OFBiz framework. Since OFBiz is optimized for the common casesin ERP development, in most cases there will be a fit.

6.1.2.3 Modifiability

In Seam, the application architecture is up to the developer. This means that the modifiabilityof the final system depends on the developer’s skill. OFBiz, on the other hand, requiresdevelopers to use a service-based organization that forces them to build a loosely-coupledsystem. Since OFBiz is loosely coupled by design, it encourages modifiability more thanSeam does.

6.1.2.4 Integrability

As previously explained, OFBiz makes it simple to expose any business logic service as aSOAP Web service endpoint. In this simple case study scenario, OFBiz exhibited moreintegrability than Seam. However, although OFBiz is the better framework according to thistest, this is only tested one small aspect of integration. Other types of integration requiringstandard Java APIs like JMS would not be advantageous for OFBiz, and integration tasksthat benefit from JBoss’ special features, e.g. jBPM, would put OFBiz at a disadvantage.

6.1.2.5 Flexibility

OFBiz is more flexible than Seam framework because it has many management and supporttools for tasks such as user interface development, web service exposure and database setup.With the OFBiz framework, there are more choices of scripting languages.

6.2 Application Evaluation

This section describes about application evaluation including interface evaluation, processevaluation and integration evaluation.

6.2.1 Interface Evaluation

For Asset Management System, the user interface is implemented by using default templatein OFBiz. Users complain that it is hard to use. However, it is not a main contributionfor this research study. For the next plan, I will implement Extjs, java script library forimplementing UI components, to apply on AMS.

67

Page 78: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

For Accounting Middle-ware, users do not concern about its user interface because theywill use it only for clicking button in each period. Therefore, it is not important to implementUI components which can be easily used.

6.2.2 Process Evaluation

For process evaluation, it is about the process of work can be completely done follow require-ments of users. In a part of Asset Management Process, it cannot be done for all use casesbecause of time limit. The main use cases which can be done are manage asset informa-tion and calculate depreciation. Other important use cases, about inventory process, willbe the next plan of the implementation.

6.2.3 Integration Evaluation

Calculate deprecation use case is the main use case which is related to integration withGeneral Ledger System. The integration to achieve the goal of synchronizing between AssetManagement System and General Ledger via Accounting Middle-ware can be satisfied users.Locking and security mechanism among these systems made users can trust in integrationprocess. Nevertheless, the integration part have to test more in the real system because theyrelate with gain and loss of the company and they also relate to the accounting principlewhich need to follow.

68

Page 79: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

CHAPTER 7

CONCLUSION AND RECOMMENDATION

7.1 Overall Summary

Integration is an issue which causes many problems for companies which were establishedfor a long time and have many legacy systems. Although almost all business processes werealready supported by information systems, they must be changed in the future to supportthe company’s strategies. For example, sales department might need to have the web servicemodules in their information system to provide products’price for other companies. Theproblem is web service cannot be implemented on the old technology such as Visual fox-pro. Moreover, changing the current systems which are running can make business processesfailure.

Enterprise Resource Planning(ERP) is a new popular concept for the company. Al-though ERP can make the automated business process, it is very high cost. This reasonmakes many companies look for the low cost ERP. Therefore, open source ERP is an grip-ping choice. There are many open source ERPs which can be adopted to use or contribute.They also provide a framework for developers. However, developing an application on ERPframework is very complex. Choosing the appropriate ERP framework is very importantbecause it can reduce time to study framework. There are many criteria to make dicision forthis issue. Integrability is required for ERP which must be worked with legacy systems.

This research study introduces the approach to integrate the new ERP application witha legacy system by no impact with currenct business processes. Asset Management Sys-tem(AMS),which is a new system implementing on OFBiz, and General Ledger System(GL),which is a legacy system implementing on Visual Foxpro, are the case study. Web service ap-proach is adopted to implement in an integration part. This research study also has the partof comparison and evaluation of open source ERP which is chosen, OFBiz. This comparisonand evaluation part is adopted from the summitted paper associated with this research studyname as “ERP Application Development Frameworks:Case Study and Evaluation”. It showsthat OFBiz is better than JBoss seam, one of the most software development frameworks.

7.2 Research Contribution

This section reviews the contribution of this research study.

7.2.1 Integration between ERP and a legacy system(Visual Foxpro)

Web service approach is utilized for integration in service layer for this research study. GeneralLedger System(GL), application on Visual Foxpro, must retrieve depreciation from AssetManagement System(AMS), application of OFBiz. Accounting Middle-ware is created to beintermediary application which provide web service client because Visual Foxpro does notprovide this function. It can work with the same data source with GL because both of themare connected with the same DBF files. AMS is implemented depreciation function which isexposed to be web service provider. Therefore, web service client in Accouting Middle-warecan retrieve depreciation and store to DBF file by calling web service provider in AMS.

69

Page 80: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

7.2.2 OFBiz configuration to use with Visual Foxpro database

Accounting Middle-ware must be connected with Visual Foxpro database which is the samedatabase as GL. The main problem is Accounting Middle-ware is implemented on OFBizframework which does not have default configuration files to connect with Visual Foxprodatabase. This research study introduces how to use this type of database in OFBiz frame-work.

7.2.3 Applying optimistic lock on OFBiz with DBase database

Accounting Middle-ware is connected with DBF files. Therefore, it is very important toimplement lock for concurrency control. OFBiz provides optimistic lock for the components.However, the main problem is OFBiz does not support lock for Visual Foxpro database. Thisresearch study hacks static variables about time stamp in OFBiz to make it can be appliedwith Visual Foxpro database.

7.2.4 Comparison and evaluation of framework by using case study

“ERP Application Development Frameworks: Case Study and Evaluation” is asummitted paper in the Fifth International Conference in Electrical Engineering/Electronics,Computer, Telecommunications, and Information Technolgy organized by ECTI Association(ECTI-CON 2008), Thailand. One part of the case study in this paper is adopted from this researchstudy. This ECTI paper was created in the period of time when I studied about literaturereview for this research study. It will be also included in IEEE Xplore Database.

7.3 Future work

This section introduces future work to henceforth contribute for other researchers.

7.3.1 Pessimistic lock on OFBiz

OFBiz provides only optimistic lock for components. Therefore, contribution on pessimisticlock is also interesting for the researcher who are interested in contribution about applyingconcurrency control for ERP framework.

7.3.2 Applying lock on OFBiz to Visual Foxpro database

This research study has one part which is about applying lock for Visual Foxpro database.However, the way to apply is not appropriate because it just about changing static variables.This way affects other applications on OFbiz. Moreover, it cannot commit to OFbiz SVNbecause it conflicts with other contributions. If the researcher is interested to contribute itto be used for all people in the world, it will be a way to support OFBiz to be more popularframework.

7.3.3 Contribution of Asset Maintenance component in OFBiz

OFBiz also has Asset Maintenance component which is not completely succeed. This com-ponent is connected with many components on OFBiz. It is appropriate for the researcherswho is interested in contribution on open source Asset Management System which can begeneral used.

70

Page 81: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

7.4 Recommendation

This section is about recommendations which are leanrned from this research study.

7.4.1 Roadmap to improve IT infrastructure

For this research study, I can improve skills about developing applications on ERP frame-works. It can be applied with the way to develop software in HTPCL. Many legacy systems inHTPCL now are individual and not supported to synchronize with any application. Roadmapto improve IT infrastructure for HTPCL is changing the legacy systems to be ERP whichcan be synchronized. Moreover, software development process such as Agile method shouldbe applied to IT department.

7.4.2 Suitability to apply Open Source ERP

To make the automated process, ERP is a solution because it makes all systems can be easilyconnected and synchronized. It also benefits in terms of application maintenace. AlthoughERP has high learning curve to study and apply, it can reduce the long-term costs.

71

Page 82: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

REFERENCES

American Institute of Certified Public Accountants. (2008). Glossary.

Apache Software Foundation. (2008). OFBiz, the Apache Open for Business Project — OpenSource E-Business / E-Commerce, ERP, CRM, POS.

Atrill, P., & McLaney, E. (n.d.). Accounting and finance for non-speacilists. Prentice-Hall ofIndia.

Brady, J., Monk, E., & Wagner, B. (2001). Concepts in enterprise resource planning. Thom-son learning.

Chappell, D. A. (n.d.). Enterprise service bus. O’Reilly.

Commonwealth of Massachusetts. (2008). MMARS Glossary.

Don Hofstrand. (2008). Farm Analysis Terms.

Erl, T. (2005). Service-oriented architecture: Concepts, technology, and design. Prentice HallPTR.

Foundation, A. S. (2007, September). Apache servicemix.

Foundation, T. A. S. (2007, September). Framework introduction videos and diagrams.

Fowler, M. (2002). Patterns of enterprise application architecture. Addison-Wesley.

Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: Elements ofreusable object-oriented software. Addison-Wesley.

Gerdessen, A. (2007). Framework comparison method: Comparing two frameworks based ontechincal domains focussing on customisability and modifiability. Unpublished master’sthesis, University of Amsterdam.

Goel, A. (2006). Enterprise integration - eai vs. soa vs. esb.

Graeme Pietersz. (2008). Moneyterms - investment and finance explained.

Herzog, T. (2006, June). A comparison of open source erp systems.

Hicks, J. O., Jr., & Leininger, W. E. (n.d.). Accounting information systems. West PublishingCompany.

Hohpe, G., & Woolf, B. (n.d.). Enterprise integration patterns: Designing, building, anddeploying messaging solutions. Addison-Wesley.

Horngren, C. T., & Sundem, G. L. (n.d.). Introduction to financial accounting (3 ed.).Prentice-Hall.

Horngren, C. T., Sundem, G. L., & Stratton, W. O. (n.d.). Introduction to managementaccounting. Prentice Hall.

Lee, J., Siau, K., & Hong, S. (2003). Enterprise integration with erp and eai. Commun.ACM, 46 (2), 54–60.

Linthicum, D. (2005, September). Why you should extend your soa for inter-company inte-gration?

McLemore, I. (1996, October). World-class fixed asset management. Business Finance ArticleArchives.

Olson, D. L., & Olson, D. (n.d.). Managerial issues of enterprise resource planning systems.McGraw Hill.

72

Page 83: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

PACE UNIVERSITY SCHOOL OF LAW. (2008). UNIVERSAL GLOSSARY OF LANDUSE TERMS AND PHRASES .

Partner, M. (2007, May). Ibs.

Pereira, J. (n.d.). Enterprise application integration: Approaches to integration.

P.Johannesson, B.Wangler, & P.Jayaweera. (2000). Application and process integration-concepts, issues, and research directions.

RE/MAX Realty group. (2008). Real Estate Glossary of Terms C to D.

Rittammanart, N., Wongyued, W., & Dailey, M. N. (2008). Erp application developmentframeworks: Case study and evaluation.

Systeme, Anwendungen, & Datenverarbeitung Company, P. in der. (2007, September). Sapar (account receivable), ap (account payable), aa (asset accounting) configuration hintsand tips.

Thomas, N., & Buckley, W. (September 2003). Rise of the esb.

Wikipedia. (n.d.). Visual foxpro.

Wikipedia. (2007a, September). Apache software license.

Wikipedia. (2007b, September). Bsd license.

Wikipedia. (2007c, October). General journal.

Wikipedia. (2007d, September). General ledger.

Wikipedia. (2007e, September). Gnu license.

Wikipedia. (2007f, September). Open-source license.

Yuan, M. J., & Heute, T. (2007). Seam: Next-gen web framework. Prentice Hall.

73

Page 84: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Appendix A

OFBiz Configuration Files

Entity Configuration File

This file configures the Entity Engine JDBC (or other DataSource) and JTA access,including PostgreSQL and Visual Foxpro. It is located in /ofbiz/framework/entity/config/.For a detailed description see the core/docs/entityconfig.html file.

entityengine.xml

<?xml version="1.0" encoding="UTF-8" ?>

<entity-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entity-config.xsd">

<resource-loader name="fieldfile" class="org.ofbiz.base.config.FileLoader"

prepend-env="ofbiz.home" prefix="/framework/entity/fieldtype/"/>

<transaction-factory class="org.ofbiz.geronimo.GeronimoTransactionFactory"/>

<connection-factory class="org.ofbiz.entity.connection.DBCPConnectionFactory"/>

<delegator name="default" entity-model-reader="main"

entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">

<group-map group-name="org.ofbiz" datasource-name="localpostgres"/>

<group-map group-name="org.ofbiz.odbcfoxpro" datasource-name="odbcfoxpro"></group-map>

</delegator>

<delegator name="default-no-eca" entity-model-reader="main" entity-group-reader="main"

entity-eca-reader="main" entity-eca-enabled="false" distributed-cache-clear-enabled="false">

<group-map group-name="org.ofbiz" datasource-name="localpostgres"/>

</delegator>

<delegator name="test" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">

<group-map group-name="org.ofbiz" datasource-name="localpostgres"/>

</delegator>

<delegator name="other" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">

<group-map group-name="org.ofbiz" datasource-name="localpostgres"/>

</delegator>

<entity-model-reader name="main"/>

<entity-group-reader name="main"/>

<entity-eca-reader name="main"/>

<entity-data-reader name="seed"/>

<entity-data-reader name="seed-initial"/>

<entity-data-reader name="demo"/>

<entity-data-reader name="ext"/>

<entity-data-reader name="ext-test"/>

<entity-data-reader name="ext-demo"/>

<field-type name="postgres" loader="fieldfile" location="fieldtypepostgres.xml"/>

<field-type name="visualfoxpro" loader="fieldfile" location="fieldtypevisualfoxpro.xml"/>

<datasource name="odbcfoxpro"

helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"

field-type-name="visualfoxpro"

check-on-start="false"

add-missing-on-start="false"

check-indices-on-start="false"

use-foreign-keys="false"

use-foreign-key-indices="false"

join-style="ansi-no-parenthesis"

alias-view-columns="false"

always-use-constraint-keyword="false">

<inline-jdbc

jdbc-driver="sun.jdbc.odbc.JdbcOdbcDriver"

jdbc-uri="jdbc:odbc:VFPODBC"

jdbc-username=""

jdbc-password=""

isolation-level="ReadCommitted"

pool-minsize="2"

pool-maxsize="250"/>

</datasource>

<datasource name="localpostgres"

helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"

schema-name="public"

74

Page 85: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

field-type-name="postgres"

check-on-start="true"

add-missing-on-start="true"

use-fk-initially-deferred="false"

alias-view-columns="false"

join-style="ansi"

use-binary-type-for-blob="true">

<read-data reader-name="seed"/>

<read-data reader-name="seed-initial"/>

<read-data reader-name="demo"/>

<read-data reader-name="ext"/>

<inline-jdbc

jdbc-driver="org.postgresql.Driver"

jdbc-uri="jdbc:postgresql://127.0.0.1/ofbiz"

jdbc-username="ofbiz"

jdbc-password="ofbiz"

isolation-level="ReadCommitted"

pool-minsize="2"

pool-maxsize="250"/>

</datasource>

</entity-config>

This file configures field type for Visual Foxpro database.It is located in /ofbiz/framework/entity/fieldtype/.

fieldtypevisualfoxpro.xml

<fieldtypemodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/fieldtypemodel.xsd">

<!-- ===================== field-type-def ==================== -->

<!-- General Types -->

<field-type-def type="blob" sql-type="M NOCPTRANS" java-type="

java.sql.Blob"></field-type-def>

<field-type-def type="date-time" sql-type="DateTime" java-type="java.sql.Timestamp"></field-type-def>

<field-type-def type="date" sql-type="Date" java-type="java.sql.Date"></field-type-def>

<field-type-def type="time" sql-type="TIMESTAMP" java-type="java.sql.Time"></field-type-def>

<field-type-def type="currency-amount" sql-type="DOUBLE"

java-type="Double"><validate method="isSignedDouble" /></field-type-def>

<field-type-def type="currency-precise" sql-type="DOUBLE"

java-type="Double"><validate method="isSignedDouble" /></field-type-def>

<field-type-def type="floating-point" sql-type="DOUBLE"

java-type="Double"><validate method="isSignedDouble" /></field-type-def>

<field-type-def type="numeric" sql-type="NUMERIC"

java-type="Long"><validate method="isSignedLong" /></field-type-def>

<field-type-def type="id" sql-type="VARCHAR(20)"

java-type="String"></field-type-def>

<field-type-def type="id-long" sql-type="VARCHAR(60)"

java-type="String"></field-type-def>

<field-type-def type="id-vlong" sql-type="VARCHAR(250)"

java-type="String"></field-type-def>

<field-type-def type="indicator" sql-type="VARCHAR(1)"

java-type="String"></field-type-def>

<field-type-def type="very-short" sql-type="VARCHAR(10)"

java-type="String"></field-type-def>

<field-type-def type="short-varchar" sql-type="VARCHAR(60)"

java-type="String"></field-type-def>

<field-type-def type="long-varchar" sql-type="VARCHAR(255)"

java-type="String"></field-type-def>

<field-type-def type="very-long" sql-type="TEXT"

java-type="String"></field-type-def>

<field-type-def type="comment" sql-type="VARCHAR(255)"

java-type="String"></field-type-def>

<field-type-def type="description" sql-type="VARCHAR(255)"

java-type="String"></field-type-def>

<field-type-def type="name" sql-type="VARCHAR(100)"

java-type="String"></field-type-def>

<field-type-def type="value" sql-type="VARCHAR(255)"

75

Page 86: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

java-type="String"></field-type-def>

<!-- Specialized Types -->

<field-type-def type="credit-card-number" sql-type="VARCHAR(255)"

java-type="String"><validate method="isAnyCard" /></field-type-def>

<field-type-def type="credit-card-date" sql-type="VARCHAR(20)"

java-type="String"><validate method="isDateAfterToday" /></field-type-def>

<field-type-def type="email" sql-type="VARCHAR(255)"

java-type="String"><validate method="isEmail" /></field-type-def>

<field-type-def type="url" sql-type="VARCHAR(255)"

java-type="String"></field-type-def>

<field-type-def type="id-ne" sql-type="VARCHAR(20)"

java-type="String"><validate method="isNotEmpty" /></field-type-def>

<field-type-def type="id-long-ne" sql-type="VARCHAR(60)"

java-type="String"><validate method="isNotEmpty" /></field-type-def>

<field-type-def type="id-vlong-ne" sql-type="VARCHAR(250)"

java-type="String"><validate method="isNotEmpty" /></field-type-def>

<field-type-def type="tel-number" sql-type="VARCHAR(60)"

java-type="String"><validate method="isInternationalPhoneNumber"

/></field-type-def>

</fieldtypemodel>

76

Page 87: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Appendix B

Timeline

This research has divided in 4 phases for developing include of inception phase, elabora-tion phase, construction phase and transition phase. Details for each phase can be outlinedas follows:

1. Inception Phase will be started on the beginning of July 2007 to the middle ofSeptember over the period of 4 months. This phase has one iteration as follows:

In the first iteration is over the period of 2 month starting from the beginningof July to the end of August. This phase will be focus to establish feasibility, studytechnologies which relate to the research.

The figure B.1 shows the Timeline of this phase.

Figure B.1: This figure shows the period of time in inception phase.

2. Elaboration Phase will be started on the middle of October 2007 to the end ofDecember over the period of 5 months. This phase can be divided in 4 iterations asfollows:

In the second iteration is over the period of a month on August to the half ofOctober. This phase will be focus on the requirement gathering. Working on site atcompany can capture real requirement from users. The proof-of-concept or prototypewill be created

In the third iteration is over the period of October and November. It focuses tothe detail of requirement gathering, risk assessment and proof-of-concept.

In the fourth iteration is over the period of November and December. It focuseson creating sequence diagram, continuing to develop OFBiz.

The figure B.2 to B.4 show the Timeline of this phase.

3. Construction Phase will be started on the beginning of January to the end of Febru-ary. This phase will be divided in 2 iterations as follows:

In fifth iteration is over the period of January and February. It focuses on how toimplement AMS on OFBiz and how to integrate among systems.

In sixth iteration is over the period of February and March. It focuses on developingthe system and update system models.

The figure B.5 to B.5 show the Timeline of this phase.

77

Page 88: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure B.2: This figure shows the period of time in elaboration phase (2nd iteration).

Figure B.3: This figure shows the period of time in elaboration phase (3th iteration).

4. Transition Phase will be started on the beginning of March to the end of April. willbe started on the beginning of the beginning of March to the end of April over 2 periodof months. This phase will be will be divided in 2 iterations as follows:

In seventh iteration is over the period of March and April. It focuses on userrequirement need. Meeting with users to correct some problems. Testing all systemprocesses.

In eighth iteration is over the period of April and May. It focuses on correctingfollow user requirements, correcting problems and finish all deliverables.

The figure B.7 shows the Timeline of this phase.

78

Page 89: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure B.4: This figure shows the period of time in elaboration phase (4th iteration).

Figure B.5: This figure shows the period of time in construction phase.

79

Page 90: ENTERPRISE APPLICATION INTEGRATION PLATFORM FOR CORPORATE ...juacompe.mrchoke.com/natty/thesis/thesis20080428.pdfsubmitted paper to ECTI conference and an expert in OFBiz technology

Figure B.6: This figure shows the period of time in construction phase.

Figure B.7: This figure shows the period of time in transition phase phase.

80