AN ARCHITECTURE FOR CLIENT-SERVER BASED CONTROL CHART PATTERNS RECOGNITION SYSTEM KOH CHING HAO A thesis submitted in fulfillment of the requirements for the award of the degree of Master of Engineering (Mechanical) Faculty of Mechanical Engineering Universiti Teknologi Malaysia MAY 2009 iii ACKNOWLEDGEMENTS I would to take this opportunity to express my sincere appreciation to my supervisor, Associate Professor Dr. Adnan Hassan. He has given a lot of advices, guidances, comments and contructive critics as well as a lot of encouragement and support in order to accomplish this study. In addition, I am also very thankful to my co-supervisor Associate Professor Dr. Abdul Samad Ismail for his guidances, suggestions and valuable support along the way to accomplish this study. I would like to express my appreciation to my parents and family members for continous support and care. Their support and understanding always become my motivator along the path of accomplishing this study. Finally, thanks to all friends for their impressive, valuable helps and suggestions throughout the duration of this study. iv ABSTRACT In any industrial process, regardless of how well designed or carefully maintained it is, a certain amount of process variation will always exist. One of the commonly used methods to monitor and diagnose the process variation is Statistical Process Control (SPC) chart. Some enhancements have been made by researchers to introduce the SPC chart system with patterns recognition feature. However, these SPC chart patterns recognition systems are limited to local and standalone system. There is a need to develop a client-server based system which would enable data sharing and remote access. The purpose of this study is to develop an architecture for a client-server based control chart patterns recognition (CCPR) system. Specific focus of this study is to investigate design and development aspects of the proposed client-server based CCPR system. A suitable client-server (CS) architecture and load passing procedure are investigated. Proper selection of CS architecture and load passing procedure are crucial to ensure each functional tier can be effectively integrated, system resources can be optimized and the system workload can be fairly distributed. The selection of design parameters are based on computer simulation studies using synthetic data. Candidate designs are evaluated based on calculation time, memory, processor usage and classification accuracy. The CS architecture with load passing procedure at server tier and patterns recognition at engine tier gave the best results among the investigated alternatives. This CS architecture is able to support more users and process more data. The load passing procedure with the combination of Nelson Run Rules and EWMA test resulted in better performance compared to Run Rules and CUSUM, CUSUM and EWMA and capable to prioritize the unstable processes to access the engine tier. The proposed CS architecture and load passing procedure can be used as a guideline for the development of a clientserver based CCPR system. Keywords: Control Chart Patterns Recognition, Client-Server, Load Passing. v ABSTRAK Bagi sebarang proses industri, tidak mengambil kira bagaimana ianya direkabentuk atau dijaga dengan baik, sedikit sebanyak variasi proses akan berlaku. Salah satu cara untuk memerhatikan dan menganalisa variasi proses adalah dengan mengggunakan carta kawalan proses berstatistik. Beberapa pembaikan telah dilakukan oleh penyelidik dengan memperkenalkan carta kawalan yang mempunyai fungsi pengecam corak. Walau bagaimanapun, kebanyakan sistem pengecam corak carta kawalan masa kini hanya terhad kepada sistem setempat dan individu. Satu sistem pengecam corak carta kawalan yang berasaskan pelanggan and pelayan perlu dibangunkan. Tujuan utama kajian ini adalah membangunkan satu senibina untuk pembangunan sistem pengeram corak carta kawalan yang berasaskan pelanggan dan pelayan. Satu senibina pelanggan-pelayan dan penyimbang beban yang sesuai perlu dipilihkan. Pemilihan senibina pelanggan-pelayan yang sesuai adalah penting untuk memastikan setiap lapisan dalam sistem dapat diintegrasikan. Manakala pemilihan penyimbang beban yang sesuai dapat memastikan beban pemprosesan dapat dikongsikan ke semua lapisan sistem. Cara rekabentuk senibina ini adalah berasaskan simulasi komputer. Rekabentuk ini akan dinilai berasaskan masa pengiraan, penggunaan memori, pemproses dan ketepatan pengecaman. Senibina sistem dengan penyimbang beban berada di lapisan pelayan dan pegecam corak di lapisan enjin telah dipilih. Senibina ini dapat menyoking lebih ramai pengguna dan memproses lebih banyak data. Bagi penyimbang beban pula, teknik Nelson Run Rules dan EWMA telah dipilih berbanding dengan Nelson Run Rules dan CUSUM, CUSUM dan EWMA dan ia dapat mengutamakan proses yang tidak sihat untuk mencapai ke pengecam corak. Senibina ini boleh dijadikan sebagai panduan bagi pembangunan sistem pengecam corak carta kawalan yang berasaskan pelanggan-pelayan. Kata Kunci : Pengecam Corak Carta Kawalan, Pelanggan-pelayan, Penyimbang Beban. vi TABLE OF CONTENTS CHAPTER CHAPTER 1 TITLE PAGE ACKNOWLEDGEMENTS iii ABSTRACT iv ABSTRAK v TABLE OF CONTENTS vi LIST OF TABLES xii LIST OF FIGURES xv LIST OF ABBREVIATIONS xviii LIST OF APPENDICES xix INTRODUCTION 1.1 Background of the Problem 1 1.2 Statement of the Problem 3 1.3 Purpose and Objective of the Study 4 1.4 Scope of the Study 4 1.5 Significance of the Study 5 1.6 Organization of the Thesis 5 vii CHAPTER 2 LITERATURE REVIEW 2.1 Introduction 6 2.2 Process Variation and Statistical Process Control 7 2.3 Control Chart and Pattern Recognition 9 2.3.1 Control Chart 9 2.3.2 Control Chart Patterns Recognition (CCPR) 11 2.3.3 Existing Framework for Standalone CCPR 13 2.4 2.5 2.6 Web-based Manufacturing System 16 2.4.1 Application Area 17 2.4.2 Web-based Process Monitoring 20 Web-based Statistical Process Control System 21 2.5.1 Previous Researches 21 2.5.2 Commercial of the Shelf 25 Design Considerations in Development of Client- 29 Server based Application 2.7 2.6.1 Data Modeling 29 2.6.2 Network Security 30 2.6.3 Communication Standard 30 2.6.4 Load Balancing 32 2.6.5 Client and Server System Integration 33 Load Balancing and System Performance 33 Measurement 2.7.1 Application of Load Balancing 33 2.7.2 Performance Measurement 35 2.7.3 Summary of Performance Measurement 35 viii 2.8 2.9 Client and Server (CS) Architecture 36 2.8.1 Mainframe System and File Sharing System 37 2.8.2 Two – tier CS System 38 2.8.3 Three – tier CS System 39 2.8.4 N – tier CS System 40 2.8.5 Example of CS Architecture 41 2.8.6 User Requirement and CS Architecture 45 Tools and Techniques for Web-based System 46 Development 2.10 2.9.1 JSP Language 46 2.9.2 Apache Tomcat Server 47 2.9.3 My-SQL Database Server 48 2.9.4 The Mathworks Matlab 50 Summary 51 CHAPTER 3 RESEARCH METHODOLOGY 3.1 Introduction 52 3.2 Problem Situation and Solution Concept 52 3.3 Development Phases 55 3.3.1 57 Phase One –Analyze Existing Standalone System 3.3.2 Phase Two – Determine a Suitable 57 Load Passing Procedure 3.3.3 Phase Three – Determine a Suitable 57 CS Architecture 3.3.4 Phase Four – Prototype System Implementation & Evaluation 58 ix 3.4 3.5 Source of Data 58 3.4.1 Synthetic Data 58 3.4.2 Published Data 58 3.4.3 Industrial Data 59 Instruments and Equipments 59 3.5.1 Hardware Requirement 59 3.5.2 Software Requirement 60 3.6 Performance Measures 62 3.7 Summary 62 CHAPTER 4 CLIENT AND SERVER ARCHITECTURE FOR CLIENT-SERVER BASED CCPR SYSTEM 4.1 Introduction 63 4.2 Overview of Client and Server Architecture 63 4.3 Client and Server Architecture for Client-Server 64 based CCPR System 4.3.1 Standalone System 64 4.3.2 CS Design 1 – Load Passing Procedure and 66 Patterns Recognition at Engine Tier 4.3.3 CS Design 2 – Load Passing Procedure at 68 Server Tier and Patterns Recognition at Engine Tier 4.4 Performance Comparison on the Candidate Designs 70 4.4.1 Engine Tier Performance 70 4.4.2 Web Server Tier Performance 75 4.4.3 Volume of Data 79 4.4.4 Intensity of Traffic 80 x 4.5 Selection of A Suitable Client and Server 82 Architecture 4.6 CHAPTER 5 Summary 84 LOAD PASSING PROCEDURE FOR CONTROL CHART PROCESS MONITORING 5.1 Introduction 85 5.2 Overview on the Load Passing Procedure 85 5.2.1 Nelson Run Rules Test 86 5.2.2 CUSUM Test 87 5.2.3 EWMA Test 88 5.3 Load Passing Procedure for Client-Server based 90 CCPR System 5.3.1 Procedure 1: Load Passing Using 97 Nelson Run Rules and CUSUM Test 5.3.2 Procedure 2: Load Passing Using 99 Nelson Run Rules and EWMA Test 5.3.3 Procedure 3: Load Passing Using 101 CUSUM and EWMA Test 5.4 Analysis and Comparison among the Load Passing 103 Procedures 5.4.1 Classification Accuracy 103 5.4.2 System Resources 105 5.4.3 Process Time 108 5.5 Selection of Suitable Load Passing Procedure 112 5.6 Summary 113 xi CHAPTER 6 PROTOTYPE SYSTEM IMPLEMENTATION AND VALIDATION 6.1 Introduction 114 6.2 Web-enabled Control Chart Patterns Recognition 115 System Operational Framework 6.2.1 System Management and Administration 115 Module 6.2.2 Operational Module 116 6.2.3 Client Module 117 6.3 Data Flow Diagram 118 6.4 Database Design 120 6.5 System Integration 121 6.6 Graphical User Interface 122 6.7 System Validation 124 6.8 6.7.1 White Box Testing 124 6.7.2 Black Box Testing 125 Guideline for Transforming the Standalone to 135 Client-Server based CCPR system. 6.9 Summary 137 CHAPTER 7 DISCUSSION AND CONCLUSION 7.1 Introduction 138 7.2 Research Achievement and Contribution 138 7.3 Comparison with Previous Research 140 7.4 Research Limitation 143 7.5 Research Implication and Practically 144 7.6 Recommendation for Future Works 144 7.7 Closing Note 145 REFERENCES 146 APPENDICES 160 xii LIST OF TABLES TABLE NO. TITLE PAGE 2.1 Application of ANN in Control Chart Patterns ecognition 12 2.2 Conventional and Future Manufacturing (Jay, 2003) 17 2.3 Researchers’ Contributions in Web-based SPC System 25 2.4 Web-based SPC System and Provided Features 28 2.5 Summary of Load Balancing Performance Measurement Methods 35 3.1 System Performance Measurement 62 4.1 Standalone system Engine Tier Performance 71 4.2 System Performance for Engine Tier 71 4.3 ANOVA Analysis for Engine Tier Performance 73 4.4 Result for Web Server Tier Performance 75 4.5 ANOVA Analysis for Engine Tier Performance 77 4.6 Process Time for Different Volume of Data (second) 79 4.7 Process Time for the Experiment on Intensity of Traffic (second) 81 4.8 Overall Ranking on Engine Tier and Server Tier Performance 82 4.9 Overall Ranking on Volume of Data and Intensity of Traffic 83 5.1 Suitable λ and L value for EWMA chart with ARL ≈ 500 (Montgomery,2004) 89 5.2 Example of calculation to determine the process priority at time, t = 0 92 xiii 5.3 Example of calculation to determine the process priority at time, t =100ms 93 5.4 Load passing Algorithm 94 5.5 Sample of clients being scheduled and waiting for process 95 5.6 Classification of Stable and Unstable Process Procedure 1 97 5.7 System Resource Usage - Procedure 1 98 5.8 Process Time for Procedure 1 (millisecond) 99 5.9 Classification of Stable and Unstable Process Procedure 2 99 5.10 System Resource Usage - Procedure 2 100 5.11 Process Time for Procedure 2 100 5.12 Classification of Stable and Unstable Process Procedure 3 101 5.13 System Resource Usage - Procedure 3 102 5.14 Process Time for Procedure 3 102 5.15 Summary of Classification Accuracy for Candidate Procedures 104 5.16 Summary of System Resources Usage 106 5.17 Summary of Process Time for Candidate Procedure 108 5.18 Comparison among the Candidate Procedure 110 5.19 Summary of Process Time in term of Different Delay Time 111 5.20 Comparison among the Different Delay Time 112 5.21 Overall Ranking for the Candidate Load Passing Procedures 112 6.1 System Validation Result for the Published Dataset 1 127 6.2 System Validation Result for the Published Dataset 2 128 6.3 System Validation Result for the Industrial Dataset 1 130 xiv 6.4 System Validation Result for the Industrial Dataset 2 131 6.5 Calculation for dataset 3 to determine the process priority (t=a) 132 6.6 Calculation for dataset 3 to determine the process priority (t=a+100ms) 133 6.7 Sample of measurement data schedule by load passing procedure 134 6.8 Guideline for converting the standalone to Client-server based system 135 7.1 Comparison between standalone and the proposed system. 140 7.2 Comparison between the Previous and Author’s Research 141 xv LIST OF FIGURES FIGURE NO. TITLE PAGE 2.1 Example of Control Chart 10 2.2 Control Chart Zones 10 2.3 Control Chart Patterns (Wani and Pham, 1999) 11 2.4 Flow Chart for Online Recognition of Developing Control Chart Patterns (Adnan, 2002) 14 2.5 Application Areas of Web-based Manufacturing 18 2.6 Research Issues in Development of the ClientServer based Application 29 2.7 Web Services for Different Platform Integration 31 2.8 Separation of Public and Private Network (Tony, 2001) 32 2.9 Simple Client / Server Computing Architecture 37 2.10 Two – tier Client and Server Architecture 39 2.11 Three- Tier Client and Server Architecture 40 2.12 N-Tier Client and Server Architecture 41 2.13 Design for Client – Server based Mobile Robot Control 42 2.14 CS Architecture for Distributed Multimedia Environment 42 2.15 Diagram for CS Telemedical system 43 2.16 Structure of an Http-based Remote Controlled Laboratory 44 2.17 CS and Ad-Hoc Communication Platform 44 xvi 2.18 Example of Tomcat Web Application Manager 48 2.19 Interface of MySQL Control Center 49 2.20 MATLAB Interface Example 50 3.1 Enhancement from Standalone into a Client-Server based CCPR System 53 3.2 Proposed Operation Framework for Web-enabled CCPR System 54 3.3 Client-Server based CCPR System Architecture Development Phases 56 4.1 Operational Framework for Standalone System 64 4.2 Logical Flow Chart for Standalone System 65 4.3 Operational Framework for CS Design 1 66 4.4 Logical Flow Chart for CS Design1 67 4.5 Operational Framework for CS Design 2 68 4.6 Logical Flow Chart for CS Design 2 69 4.7 Comparison Chart for the Engine Tier Performance 72 4.8 Radar Chart for Engine Tier Performance 74 4.9 Comparison Chart for the Web Server Tier Performance 76 4.10 Radar Chart for Web Server Tier Performance 78 4.11 Line Chart for the Experiment on Volume of Data 80 4.12 Line Chart for the Experiment on Intensity of Traffic 81 5.1 Nelson Run Rules 86 5.2 Sample of CUSUM Chart 87 5.3 Sample of EWMA Control Chart (Montgomery, 2004) 90 5.4 Client-Server based CCPR system with Multiple Clients Access 91 xvii 5.5 Basic Architecture for CS based CCPR System 96 5.6 Summarize of Classification Accuracy using Bar Chart. 104 5.7 Radar Chart for Classification Accuracy 105 5.8 Summarize of System Performance using Bar Chart 106 5.9 Radar Chart for System Performance 107 5.10 Summary of Process Time for Candidate Procedure 109 5.11 Radar Chart for Candidate Procedures Process Time 109 6.1 Functions provided for Administration Module 116 6.2 Functions for Operational Module 117 6.3 User Functions provided at Client Side 118 6.4 Context Diagram for Web-enabled CCPR System 118 6.5 Data Flow Diagram for Web-enabled CCPR System 119 6.6 Web-enabled CCPR System Database Structure 120 6.7 System Integration for the Web-enabled CCPR 122 6.8 Client Module Interface: Manufacturing Process Listing 123 6.9 Operational Module Interface: Adding Manufacturing Process Data 123 6.10 Administration Module: Display the Control Chart Information 124 6.11 White Box Testing for User Authentication 125 6.12 Web-enabled CCPR System Validation Framework using Published and Industrial Dataset 126 6.13 Control Chart Plotting for Published Dataset 1 127 6.14 Control Chart Plotting for Published Dataset 2 128 6.15 Control Chart Plotting for Industrial Dataset 1 130 6.16 Control Chart Plotting for Industrial Dataset 2 131 7.1 An Architecture for the Development of a ClientServer based CCPR System 139 xviii LIST OF ABBREVIATIONS AI Artificial Intelligent AFL Average Frame Length ANOVA Analysis of Variance CCPR Control Chart Patterns Recognition CPU Centra Processing Unit CS Client and Server CUSUM Cumulative Sum DBMS Database Management System DNS Domain Name Service EWMA Exponentially Weighted Moving Average I/O Input and Output JSP Java Server Page JVM Java Virtual Machine LCL Lower Control Limit MIB Management Information Base NA Not Applicable P2P Peer to Peer PDM Product Data Management PLC Programmable Logic Control SCM Supply Chain Management SNMP Simple Network Management Protocol SPC Statistical Process Control UCL Upper Control Limit XML eXtensible Markup Language WWW World Wide Web xix LIST OF APPENDICES APPENDIX TITLE PAGE A Factor for computing control limits for x-bar chart 160 B Database Scheme 161 C Measurement Result for Engine and Server Tier Performance 163 D Measurement on Silicon Wafer Width in the Semiconductor Processing 168 E Measurement on the Metallic Film Thickness 169 F Measurement on PCB Solder Height 170 G Measurement on Edge Wave Using Taper Gauge 171 H Tin Plating Process 173 CHAPTER 1 INTRODUCTION 1.1 Background of the problem For the last ten years, business and manufacturing have shifted from local entities towards globalization entities. Quality has become one of the most important decision factors in making selection among worldwide competing products and service. To be a winner in this global competitive edge, the manufacturer needs to produce product with high quality within the shortest delivery time and lowest cost (Shariff, 2005). There are several methods which can be used to improve product quality. One of the commonly used methods is the Statistical Process Control (SPC). SPC can be defined as using statistical techniques to improve and implement quality control. Since the introduction of SPC by Walter A Shewart in year 1920s, SPC have been widely adopted and applied in manufacturing industrial. It has been used for monitoring and diagnosis manufacturing process variation. SPC can be used to achieve process stability and improve process capability through the reduction of process variability. Currently there are several computer aided SPC systems introduced by software vendors and researchers. These computer aided SPC systems can assist the manufacturers in automating the quality control functions. Nevertheless, these systems 2 still have some limitations. For example, the current computer aided SPC system only provides some basic functions such as automating the plotting of control charts. The most important part, the control chart data analysis still heavily relies on the operators and engineers. Usually, the operator and engineer are very busy with other production task and may not have sufficient time to perform analysis on the control chart data (Thompson et al., 1998). As noted earlier, the current computer aided SPC system are mainly based on standalone system. These standalone systems do not allow co-operation and information sharing. The accessibility of these control chart data should not be limited to the operator and engineer only. They should also be accessible to managers and customers. The control chart data can assist the manager or customer to have a better understanding on production line status and helps them in making better decision. Beside that, the current computer aided SPC system does not allow remote access. It is only limited to one production area or factory side. The operator and engineer cannot access the status of production line remotely. Some managers and customers may not have quality engineering background. The burden of analysis the production data should not be assigned to them. The manager and customer maybe interested to know the result and status of the production line. An automated and computerized SPC system should assist them to diagnose the production line. These are the quality control problems facing by the operator, engineer, manager and customer. So there is a need to develop a Client-Server based Control Chart Pattern Recognition (CCPR) system which would enable data sharing, remote access and intelligent diagnosis of the production line status. 3 1.2 Statement of the problem Existing control chart pattern recognition systems are mainly local and standalone system. They do not provided data sharing and remote access. There is a need to enhance the standalone system towards a Client-server based control chart patterns recognition system. Several design issues need to be considered in developing such a client-server system. The client-server based CCPR system needs to have a client-server architecture which can support multiple users simultaneously and better resource allocation. Inappropriate allocation of resources can cause certain functional tier become overloaded while the others are under loaded. An effective assignment of functional modules can enable the CCPR system to support multiple users simultaneously without additional computing resources. Due to unique characteristics of SPC data stream, the load passing procedure as implemented in the voice and network packet system are not directly applicable in the CCPR system. A customized load passing procedure is needed for a client-server based CCPR system. Specifically, the load passing algorithm must be able to prioritize the client access based on the severity of process instability. Without a customized load passing procedure, the unstable process will have the same priority with stable process, which may result in delayed detection of unstable process data. 4 1.3 Purpose and Objective of the Study The purpose of this study is to enhance the existing standalone control chart patterns recognition system towards a client-server based system which would enable efficient data sharing, remote access and intelligent diagnosis of production line. The specific objectives of this study are: i. To design a customized client and server architecture for a control chart patterns recognition system. ii. To customize a load passing procedure for the client-server based control chart patterns recognition system. iii. To provide a guideline for transforming the standalone system to a client-server based CCPR system. 1.4 Scope of the Study Below are the scopes for this study: i. Data stream for process variation are limited to univariate data plotted of Shewart x -chart. ii. Design and evaluation are limited to the computer simulation studies. The published and real data are used for validation. . iii. The simulation data arrive to the system with constant rate and speed. iv. Different combination of computing resources are not taken into consideration. Fixed type and amount of computing resources are used. v. Data encryption and network security issues are not included in this study. 5 1.5 Significance of the study This client-server based CCPR system enables information sharing among different entities in the manufacturing system. By taking the advantageous of internet technology, this web-enabled system is accessible anytime, anywhere using a personal computer with Internet connection. Client-server based CCPR system makes the manager and customer feel easy and comfortable while interacting with the control chart system. The suitable client and server architecture ensures each functional tier can be successfully integrated. This architecture should be able to support multiple users simultaneously and ensure fair distribution of the system workload. With all these features, this client-server based control chart patterns recognition system could overcome the limitation of the standalone system. This study also provides a guideline for transformation from a standalone to the client-server based CCPR system. 1.6 Organization of the Thesis This report is organized into seven chapters. Chapter 1 gives explanation on the background, statement of problem, objective, scope and significance of study. Chapter 2 presents literature review on board and focus area of the study. Techniques and technologies for the client-server based system development are presented here. Chapter 3 discusses the research methodology for this study. It begins with discussion on the problem situation, solution concept followed by the researches planning, source of data, equipment used and performance measurement methods. Chapter 4 describes the experiments and statistical analysis carried out to select a suitable client and server architecture. Chapter 5 describes the experiment and statistical analysis carried out for selecting a customized load passing procedure for the client-server based CCPR system. Chapter 6 presents the techniques and methods used for the prototype system implementation and validation. Lastly, Chapter 7 summarizes the research finding and concludes the study. CHAPTER 2 LITERATURE REVIEW 2.1 Introduction This chapter provides literature review on the broad and focus area of this study. First of all, introduction on the process variation and Statistical Process Control. Following with explanation on the parameters for building a control chart, a control chart pattern recognition and a framework for standalone Control Chart Patterns Recognition (CCPR) system. Coming section provides review on the webbased manufacturing system. The application areas of the web-based manufacturing are presented. Next section discusses previous researches and commercial of the shelf web-based SPC systems. Design considerations in the development of the client-server based application are presented. The design consideration are included data modeling, network security, communication standard, client and server system integration and load balancing. Next discussion on the load balancing and client and server (CS) system integration. Tools and techniques for the web-based system development are presented. Finally, a summary of the literature review is given. 7 2.2 Process Variation and Statistical Process Control In any industrial process, regardless of design and careful maintenance, a certain amount of inherent and natural variation will always exist. There are many reasons for it, such as (Eugene and Richard, 1996): a. Variation noise: the variation we observe between products manufactured under the same conditions and specifications. b. External cause: such as environmental temperature, humidity, etc. c. Process causes: due to the process itself, such as build-up of waste products, ageing of a catalyst, variation of loading of a kiln etc. d. Assignable causes of variation: this variation may be due to improperly adjustment of machines, operator errors or defective raw materials. A process is said to be operating in process control when the only source of variation is due to natural causes. This natural cause or “background noise” is referred to as the cumulative effect of many small, essentially unavoidable causes. A process that is operating in the presence of an assignable cause is said to be out of control. Once the out of control process is identified, it is up to the various people involved to use their creativity and ingenuity to correct these variations (Doty, 1996). There are several methods which can be used to implement quality control. One of the frequent used methods is Statistical Process Control (SPC). SPC can be defined as using a statistical technique to implement quality control. SPC was first introduced in the 1920s by Walter A. Shewart of Bell Telephone Laboratories. A sketch of a modern control chart was developed by him, Dodge H. F., Romig H. G., Jennett W. J. and others. But, SPC was not widely accepted until World War II. During World War II, SPC was used extensively by UK and USA to improve material quality and reduce the large amount of defective 8 materials being produced. After the war, SPC lost its importance as industries converted it to be used in peacetime production. However, in 1950s, people in the West taught SPC to the Japanese. W. Edwards Deming and Joseph M. Juran in particular made a big impact in Japanese industries. Japanese industries applied SPC widely and proved that SPC saves money and attracts customers. The Japanese philosophy is that good quality products sell, consistent good quality leads to greater productivity, and that there is no conflict between price and quality. Now, the US and UK are forced to introduce SPC in order to compete with the Japanese (Wetherill, 1990). Currently, seven basic tools for the implementation of SPC are histogram, check sheet, pareto chart, cause and effect diagram, defect concentration diagram, scatter diagram and control chart. However in this study, focus is done on the control chart. The control chart can be used to achieve process stability and improving capability through the reduction of variability. More explanation on the control chart can be found in Section 2.3. We need to keep in mind the eventual goal of the SPC is to eliminate variations in the process. However, it may not be possible to completely eliminate all variations. The control chart can be used as an effective tool to improve quality, productivity and reducing variability. 9 2.3 Control Chart and Patterns Recognition This section begins by introducing the control chart and patterns recognition. It is then proceeds to the discussion on the framework for the standalone control chart patterns recognition system. 2.3.1 Control Chart The control chart is a graphical representation of a quality characteristic that computed from a few samples which are taken over a fixed period of time. The control chart can be divided into a variable control chart and attribute control chart. The variable is the measurement of quality characteristic using a numerical scale. Examples of variable dimensions are the length, width, temperature, volume, speed and weight. The X-bar chart and R-chart are the most common control chart for monitoring the variable process. The attribute is measurement of quality characteristic that cannot be conveniently represented numerically. We usually classify this item as either present or absent, conforming or nonconforming, acceptable or defective to the specific characteristic. Normally, the percentage of defect in a sample, p-chart and the count number of defect in a sample, c-chart can be used to show the attribute of the control chart. A typical control chart is shown in Figure 2.1. Normally, the control chart contains a center line, an upper control limit and a lower control limit. The center line represents the average value of the characteristics while the upper control limit (UCL) and the lower control limit (LCL) represents the range of acceptable characteristics. If the process is within control, all the sample points will fall between the control limits. 10 Control Chart Example 14 UCL=13.494 13 Individual Value 12 11 _ X=10.446 10 9 8 LCL=7.397 7 1 4 7 10 13 16 19 Observation 22 25 28 Figure 2.1: Example of Control Chart As shown in Figure 2.2, a control chart can be divided into Zones A, B and C. Each of these three partition zones has a 1 sigma width. If one of the points is plotted outside these zones, then the particular process is considered out of control. Although all points are plotted within control limits; if they behave in a nonrandom manner, then this could indicate that the process is unstable. These control zones with a series of rules (Nelson Run Rules) and other charting techniques (EWMA and CUSUM) can be applied to detect abnormality in a process. This is to prevent an unstable process from deteriorating into an out of control process. Further explanation on Nelson Run Rules, EWMA and CUSUM can be referred to Chapter 5. Zone Chart of C3 8 +3 StDev=6.319 4 Zone A 2 0 0 Zone B Zone C 0 0 +2 StDev=6.014 2 0 0 2 0 2 0 Zone C -1 StDev=5.099 Zone B Zone A 4 +1 StDev=5.709 _ _ X=5.404 -2 StDev=4.793 -3 StDev=4.488 8 1 2 3 4 5 6 7 8 Sample Figure 2.2: Control Chart Zones 11 2.3.2 Control Chart Patterns Recognition (CCPR) The interpretation of the control chart depends on the capability to distinguish the pattern existing in the control chart. As illustrated in Figure 2.3, there are six types of main pattern that may exist in the control chart: random, cyclic, decreasing trend, increasing trend, downward shift and upward shift. Except for the random pattern, the existence of other unnatural patterns indicate that the process is abnormal due to the presence of an assignable causes such as new workers, raw material, machine settings and environment effect (Pham and Wani, 1999). Recognition of these unnatural patterns is essential in detecting situations of special disturbances in a process and in eliminating their causes. Figure 2.3: Control chart patterns (Wani and Pham, 1999) 12 Artificial neural network (ANN) can be used to classify these unnatural patterns. Several researchers like Hwarng (1997), Pham and Wani (1997), Guh and Tannock(1999), Guh(2003), Hassan et al. (2003), Gauri and Chakraborty (2006) and Bunthit and Jonathan (2007) had adopted artificial neural network for CCPR. The researchers’ achievements are summarized in Table 2.1. Table 2.1: Application of ANN in Control Chart Patterns Recognition Author Summary Hwarng (1997) Developed a pattern recognition which is suitable for real time cycle pattern recognition. Pham and Wani (1997) Used features extracted from a CCP instead of the unprocessed CCP data. Guh and Tannock (1999) Used Back-Propagation Network to detect concurrent pattern which exists in the control chart. Guh (2003) Applied a hybrid artificial intelligence technique in building a real time SPC system. Hassan et al. (2003) Evaluated the relative performance of feature-based recognizer compared with raw data-based recognizer. Al-Assaf (2004) Used multi-resolution wavelets analysis to extract distinct features from unnatural patterns. Guh (2005) Developed a CCP identification system using selforganizing approaches neural network and decision tree learning. Hwarng (2005) Proposed a neural network based identification system for both mean shift and correlation parameter change. Yang and Yang (2005) Presented a control chart pattern recognition system using a statistical correlation coefficient method. Zorriassatine et al (2005) Proposed the chi-squared statistic as a compact format for representing the input to neural network. Zan et al. (2006) Use the linear transformation to improve the character of the patterns, and then the two kinds of neural networks are applied to recognize the control chart patterns. Gauri and Chakraborty (2006) Develop two feature-based approaches using heuristics and artificial neural network (ANN) are developed, which are capable of recognizing eight most commonly observed CCP. Bunthit and Jonathan (2007) Reported the comparative results of an empirical study on the non-parametric versus parametric neuron network. 13 2.3.3 Existing Framework for Standalone CCPR In this study, the existing framework developed by Adnan (2002) for online recognition of developing control chart patterns will be referred. This framework was designed for the application of standalone local system. As shown in Figure 2.4, basically this CCPR framework consists of a stability test, features extraction and patterns recognition module. Basically, the work flow of this standalone CCPR system can be described as following. First of all, the SPC monitoring window receive data stream from the manufacturing process measurement. Next, the stability test will be conducted. If the data stream passes the stability test, then the process will continue as normal. If the data stream is identified as an unstable process, then the process will be passed to the features extraction module. Features extraction module will extract the statistical features. Subsequently, the feature set will be presented to the patterns recognition module. The pattern recognition module will try to classify the data stream pattern. If there is no conclusive result and further recognition is needed, then the process will continue monitoring to get more data. If there is no conclusive result and the limit of recognize attempts has achieved, the process will be stopped for further diagnosis. On the other hand, if there is a conclusive result, then the predicted control chart pattern type will be checked. If the result is a random pattern, this mean it is a stable process, indicates a false alarm happened. Therefore, the process will continue as normal. If a non-random pattern (trend-up, trend-down, shift-up, shift-down or cycle) is recognized then the corrective action is needed. After the correction action, the monitoring process can be resume as normal. 14 Figure 2.4: Flow Chart for Online Recognition of Developing Control Chart Patterns (Adnan, 2002) 15 Although the standalone CCPR system has provided the feature of control chart monitoring and diagnosis, but there are several limitations of the standalone system. Inside the standalone system, the manufacturing process monitoring is done locally. The process data is not shareable and accessible remotely. It is unable to fulfill the requirement of current manufacturing trend which are geographical distributed. A dedicated personal computer (PC) is needed for the standalone CCPR system. However, not all the time, the computer recourses are utilized. Most of the time, the PC is used for the purpose of collecting measurement data and then analysis the control chart data. Only small portion of processing time is used for control chart patterns monitoring and recognition. The implementation cost for the current standalone system is relatively expensive. The manufacturer needs to purchase separate license for each pair of the standalone system. For example, if a manufacturer has five processes to be monitored, then they need to purchase five pair of standalone system licenses. Each license cost is quite expensive due to the price of patterns recognition module. Therefore there is a need to enhance the existing standalone CCPR system toward a client-server based CCPR system. This client-server based CCPR system should be accessible remotely, enable resources sharing and affordable by the manufacturer. Such a system also provides centralized records tracking and keeping. 16 2.4 Web-based Manufacturing System Facing the intense competition in the global market, the manufacturing industry is actively seeking technology solutions that enable timely response to satisfy customer demand. The success of manufacturing companies depends on their ability to identify the needs of customers and quickly create products that meet their requirements; at the same time manufacturing the products at low costs, and delivering them within the shortest time possible (Mohd Shariff, 2005). To overcome these problems, information technology has been applied to the manufacturing sector. The use of this new technology is known as web-based manufacturing or e-manufacturing. This web-based manufacturing makes use of the internet speed, reach and collaboration capabilities to connect plant floor operations to overall business systems across the entire supply chain. It attempts to associate various product development activities which are distributed at different locations into an organic and coordinated environment (Jay, 2003). As described in Table 2.2, future demand on manufacturing will be significantly different compared with conventional manufacturing. In the conventional manufacturing, the manufacturing process model only makes the assumption that the product is marketable and that it can be manufactured. But with the advent of new information technology, the way new products are introduced has changed. The manufacturers not only need to know what the product is, but they also need to have a proactive view of forthcoming changes from both of the demand and supply side (Toussaint and Cheng, 2002). 17 Table 2.2: Conventional and Future Manufacturing (Jay, 2003) Conventional Manufacturing • New Product Need to invent new Future Manufacturing • product. Need to invent new product, better quality and shorter design life-cycle. Existing • Product Product Investigation • Modifying an existing • Changes now come from product to improve its both the demand and the features. supply sides. Investigation done on - Function of the product - Its appearance • Investigation done on - Functionality of the product - Its appearance required or defined on the web By using the internet facilities, information distributed at different location can be accessed and shared by both demand and supply side without the problem of data recreation and distribution. As such it can satisfy the customer demands, improve the product quality, and reduce the product development time, thus providing better global competitiveness of product in the worldwide marketplace (Jay, 2003). 2.4.1 Application Areas As shown in Figure 2.5, web-based manufacturing are implemented in collaborative product design, product data management, supply chain management, product support and process monitoring (Yang and Xue, 2003). Since the clientserver based CCPR system provides data sharing and remote access of production 18 line status, its manifestation can be classified as one of the applications in process monitoring. Web-based Manufacturing System Collaborative Product Design Product Support Product Data Management Supply Chain Management Process Monitoring Client-server based SPC Figure 2.5: Application Areas of Web-based Manufacturing Collaborative product design is one of the application areas in web-based manufacturing system. Collaborative design enables teams of designers, engineers and manufacturers from diverse geographical locations to work together over a collaborative computer network. Researchers such as Ahn and Bharadwaj (2002), Huang (2003), Zhou and Chin (2003), Li et al. (2004) and Ming et al.(2007) have reported researches on web-based application in product design. Collaborative product design is a very effective medium for conducting the design reviews and it does save time and cost (William and Jeffrey, 2004). It provides an appropriate communication platform that breaks down the barriers in the process of product development. Another area of web-based manufacturing application is product data management (PDM). In today’s industry, billions of dollars is spent each year for regenerating the product data which are stored in diverse software format. With the introduction of PDM, it does allow information sharing and data exchange among product designs using different software tools. Researchers such as William and Tony (2003), Helen et al. (2004), Huang et al.(2004), Zeng and Liu (2004) and 19 Edmond and Yu (2007) have reported researches on web-based product data management. Web-based PDM has led to significant improvement in all facets of product design, documentation, manufacturing and support (Alan, 2004). Another area of web-based manufacturing application is supply chain management (SCM). SCM encompasses all activities associated with a firm moving its composite flow of information, materials and services from the stage of raw materials through production to the end customer. The sudden increase in ecommerce has resulted in new opportunities to improve the performance of supply chain (Claudio, 2003). Researchers such as Sheremetov and Rocha (2004), Stavros and Nikos (2004) and Tserng, et al. (2005) have reported researches on SCM. SCM has increased the service level and established a cooperative environment among all parties involved in the supply chain. Product support is one of the application areas in web-based manufacturing system. The competitiveness of a product does not only depend on its quality and cost but also the post production support considerations such as service, maintenance, system upgrade, recycle and disposal. The Internet is chosen as the medium to improve the product support function. Researchers such as Schubert et al. (2002), Sean and Teresa (2002), Anon (2005) and Ashaab (2007) have reported studies on web-based product support. The overall web-based product support has led to reduction response time of customer service problems (Morita and Hidaka, 2004). The two way communication capability of the Internet has a profound effect on cementing the customer-firm relationship. Process monitoring is one of the application areas in web-based manufacturing system too. Since the client-server based CCPR system is under this category, process monitoring is explained in the following section. 20 2.4.2 Web-based Process Monitoring As described in the previous section, process monitoring is one of the application areas in web-based manufacturing system. Web-based process monitoring enables the technician, engineer and manager to remotely access, view and analyse the production line status. Web technology are used to monitor and control the manufacturing shop floors (Shen et al., 2003). Web-based multimedia application such as graphics representation with Java Applet can be implemented for remote representation of production line. Ming (1998) had developed a distributed intelligent multimedia system for real-time process monitoring. Wang (2003) had integrated Java 3D model for remote monitoring and control of the manufacturing process. Virtual control panel also can be imposed in remote process monitoring. Zhao et al. (2003) had developed a virtual control panel written in Active-X for user to directly send command and receive message from the Computer Numerical Control machine. In addition, several sensors and Programmable Logic Control (PLC) also can be integrated into web-based process monitoring system. Subu et al. (2003) had integrated sensors, PLC with embedded web server for remote process monitoring. Szabados (2003) integrated remote instrumentation to manufacturing process monitoring. This approach has extended the scope for a wired environment with fixed stations for data access. Web-based process monitoring has solved low efficiency problems which occurred in physically monitoring of production line (Zhu et al., 2005). By converting the manufacturing system into the web accessible system, it is found to be reliable, steady, flexible, extendable and effective in real-time monitoring and controlling of the manufacturing process (Shi, 2007). 21 2.5 Web-based Statistical Process Control System As discussed in Section 2.2 and 2.3, SPC charts are tools for process monitoring. Various researchers have contributed to the development of CCPR system. This area of research has been extended to integrated web technology into CCPR system. The following section review previous works on web-based SPC system. Reviews are presented from two perspectives, specifically Section 2.5.1 presents the findings and contributions of previous researches, and Section 2.5.2 presents commercial of the shelf web-based SPC system. 2.5.1 Previous Researches Several researches have been carried out on web-based SPC system. This section presents reviews and investigations that have been done by researchers on the development of a web-based SPC system. Thompson et al. (1998) investigated how internet-based technologies can be integrated into the SPC process in order to provide more responsive and customercentered system. They described how the manufacturing sector has benefited from the integration of an internet-based SPC system into the manufacturing process. They explained the feasibility of using the internet for a web-based SPC system. Basic explanation and overview of internet benefits are given by them. Soperi et al. (2000) proposed a web-based statistical process system. They converted the standalone system which produces x-bar and R charts using Microsoft Visual Basic 5.0, Microsoft Access and Crystal Report into a web-based SPC chart generator. This web-based SPC chart generator was developed using Active Server Page, Active Data Object, Microsoft Access as database, Microsoft Internet Information Server as web server and Microsoft NT Server as operating 22 system. This web-based SPC system have some basic features like generating xbar, R charts and doing some analysis such as summarizing the percentage of points plotted above UCL, below LCL and between UCL and LCL. This study produced the preliminary framework for web-based SPC with a prototype system development and implementation. Han and Oh (2001) elaborated SPC system is widely used to satisfy the ever-increasing quality control requirements. They noted that most commercial products in the market are not flexible enough, still semi-automatic and difficult to interface with other tools. They proposed a SPC system which is web-enabled and supporting XML protocol. A graphic facility and file system to handle the data in real time have been developed. They introduced the XML protocol and graphical interface for web-based SPC system. Lee et al. (2003) implemented of Simple Network Management Protocol (SNMP) for web-based SPC system. A Management Information Base (MIB) that represents the status of facilities are defined. Based on the MIB, SNMP agents are used to collect data from a machine. They claimed that their clients can access those SPC charts and statistics using any web browser and can change control parameters if they are permitted. Their investigation suggested that the communication protocol such as SNMP can be used as a communication media for a web-based SPC system. After analyzing the future of virtual enterprise and deficiencies of traditional SPC, Wang et al. (2003) proposed the function structure to integrate the SPC based quality control system on web. This web workflow is adopted to control the production quality of extended and internal enterprises intelligently. The control of SPC procedure, pattern recognition of control chart and analysis and diagnosis of fault reasons were combined together. The study illustrated the workflow of designed and encapsulated toolkits, which makes the Web workflow convenient. 23 Choudhury et al. (2003) implemented wireless technology for real time process data transferring over the Internet. It created the opportunity for accessing the live process data from the classroom and then analysis the data for process improvement. A multivariable process station involving pressure, temperature, flow and liquid level was utilized to simulate industrial process. The wireless and webbased information technology are utilized to retrieve and transmit the refined real time process data. Their main contribution is in the application of the wireless technology into remote process monitoring. Bhavin and Zhou (2003) investigated the middleware for web-based manufacturing. They developed a methodology and software that use AI, Simulation and Modeling coupled with Virtual Reality and Resource Management concepts for the automation of various material design, analysis and visualization process. This environment is designed to be a platform independent and accessible over the World Wide Web (WWW). This research concentrated issues on the development of middleware for load balancing and parallel processing. It has demonstrated the use of WWW as the middleware for efficient load balancing, resource management and distributed processing in the digital age. Zhao and Wang (2004) introduced a web workflow model for quality control system. They introduced web service and extensible Markup language (XML) technology into web workflow model. The function structure of the quality control system is based on the web workflow. It does compose system management, quality control, system resource management, quality information management and information trace releasing module. Their study focused on the implementation of web service and XML technology for quality control system. In addition, it has been proven that the web-based SPC can be implemented in other areas such as computer security. Michlin et al. (2004) proposed a method 24 for reliability improvement of web servers through statistical process control. This method is intended for timely detection of hacker attacks and faults, before they become critical and disrupt the normal activity of a web server. It is based on observation of the correlations between the variables measured in the course of server activity. This recommendation has been implemented and is used as a basis for an automated protection system. Literature reviews suggest that each researcher have contributed to a different area by introducing new technology into the web-based SPC system. Table 2.3 summarizes the previous researchers’ contribution. However, there is no significant comparable relationship that can be summarized from these researches. These researchers introduced and integrated different technology and ideas for the web-based SPC system. No investigations have been done on selecting a suitable CS architecture and a load passing approach. It is not appropriate to direct implement a normal web server into the CCPR system, since each module of CCPR system has its own characteristic and can achieve better performance by separate out and customize them into different functional tier. With an appropriate CS architecture, using the same amount of resources, a CCPR system able to process more data and support more users. On another side, without a load passing procedure will causes the CCPR system no able to timely recognize an unstable process, the stable process will stay a same priority with unstable process. Timely recognition of unstable process is crucial to ensure corrective action can be taken earlier. Thus, this research is trying to propose and investigate an suitable CS architecture and load passing approach for a client-server based CCPR system. 25 Table 2.3: Researchers’ Contributions in Web-based SPC System Author Year Contributions Thompson et al. 1998 Introduced the feasibility of internet for web-based SPC system. Soperi et al. 2000 Proposed the preliminary framework for web-based SPC system. Han and Oh 2001 Introduced the XML protocol and GUI for web-based SPC system. Lee et al. 2003 Used SNMP as communication media for web-based SPC system. Wang et al. 2003, Integrated production quality monitoring with internal enterprise system. 2004 Choudhury et al. 2003 Introduce wireless technology into remote process monitoring. Bhavin and Zhou 2003 Convince the use of WWW as middleware for efficiently load balancing and distributed processing. Zhao and Wang 2004 Introduced XML and web service technology into quality control system. Michlin 2004 Implemented SPC in computer network security. 2.5.2 Commercial of the Shelf Web-based SPC System Several vendors have taken the opportunity to develop commercial versions of the Shelf web-based SPC system. This section discusses examples of the webbased SPC systems which have been implemented in the manufacturing industry. eNet SPC is a web-based process control system developed by Quality America Inc. This product comes with several functions like access control, customizable analysis, viewing options and a fully programmable interface. Process data can be collected and stored in various source such as spreadsheet or any ODBC compliant database. This system has access control features which datasets 26 are restricted to a predefined set of user to maintain its confidentiality. A remote system user can customize the view option to suit his requirement. The NWA Quality Analyst Web Server 2.1 is the web-based SPC software developed by Northwest Analytical (NWA) Inc. This web server provides real-time monitoring of remote plant and contract manufacturing facilities. NWA quality analyst web server is not only included the conventional SPC chart generator but the user can accumulate several charts and format them in multi-chart layouts. The user can select and key in assignable cause and corrective action taken at the related control chart point. The latest version includes exception reporting capabilities to generate product exception reports. The Factory Server SPC is developed by Factory Server SPC Mass Group, Inc. This web-based SPC system has features like data entry, data import, customized analysis, view options, access control datasets, software updates and fully programmable again using Visual Basic. Factory Server SPC has similar features provided by NWA Quality Analyst Web Server 2.1. In addition, control charts such as Pareto chart, Scatter Diagram, Bullseye Chart and Reproducibility Chart can be generated. This system had been integrated with other sub-modules of factory server such as production control, production scheduling and production reporting. Basically, most of the web-based SPC system assists user in automating the process of plotting the control chart. All of the control chart data are stored in a database system. The control chart data can be retrieved later for more details analysis. Some security policies have been enforced to ensure the authenticity of user and confidentiality of data. Table 2.4 summarizes the features provided by various commercial of the shelf web-based SPC system. It is found that most of the web-based SPC products have included the automated data collection, access control features, record assignable cause and fully 27 programmable programming interface. Besides that, the commercialized web-based SPC product is accessible using any internet connected web browser. The web server and database server chosen by these company is mostly Microsoft-based product or license based product. However, none of these systems provided CCPR features. This feature is needed to identify the existent of an unstable pattern in control chart. The CCPR result is helpful for narrows down the scope of the assignable cause and speeds up the troubleshooting process. Beside that, the customer who wishes to implement SPC needs to purchase separate licenses for the installation of a web server and a database server. It is quite expensive and unaffordable for small and medium company. The client-server based SPC service can be published at somewhere, small company who wish to use the system can subscribe this service through internet. Product eNET SPC Quality Analyst Web Server Factory Server SPC Company 1 Quality America Inc. 2 Northwest Analytical Inc. 3 Factory Server SPC Mass Group, Inc. Production personnel, workstation, parts, assemblies, lots and work orders can be automatically collected. Keyboard input, scales measuremen t devices and barcode readers. Data may be collected and analyzed real-time. Data entry Admin can provide access based on each user’s role. Anyone authorized can access and view charts. Each production process is constantly changing and unique; so many proprietary functions can be created as needed in VB or standard development tools. Included visual design to configure plant floor workstations interface. Fast and easy alternative to writing complicated programming scripts. Can customize the interface to suit your users' needs. Adding company logos, entry forms, and displaying part drawings are just modifications. Programmable Control Datasets are restricted to a selected set of users. Fully Customize & Access Windows 2000 or XP, Microsoft IE 6.0 and TCP/IP Network Access. Any web browser Any Internet browser Side Client Features Provided Tables 2.4: Web-based SPC System and Provided Features Own developed and integrated database system. Microsoft SQL Server Server Database Microsoft Microsoft SQL Server 2000, IIS Web Windows Server, 2000 Server VB, or Windows ASP.NET, Server 2003. COM Technolog y and crystal reports. Microsoft Windows NT4, 2000, XP, and Server 2003. Windows NT Web Server Server Web 28 29 2.6 Design Consideration in Development of Client-Server based Application There are several issues that need to be considered in developing a clientserver based application. As illustrated in Figure 2.6, there are data modeling, network security, communication standard, client and server (CS) system integration and load balancing to be taken into consideration. The following section gives explanation on these issues. Design Consideration in Development of Client-server based Application Data Modeling Network Security Communication Standard Load Balancing Client / Server System Integration Figure 2.6: Research Issues in Development of the Client-Server based Application 2.6.1 Data Modeling Data modeling is one of the issues that need to be addressed. Data modeling is a conceptual representation of the data structure. The data structure included data objects, associations between data objects, and rules which govern operations on objects. In the last few years, Extensible Markup Language (XML) data management system has been intensively studied for data modeling. Originally, XML is designed to meet the challenges of a large-scale electronic publishing. It plays an important role in the exchange of a wide variety of data on the Web application (Carey et al., 2000). Several researchers such as Nurmilaakso et al. (2002), Yang and Zhang (2003), Wusteman (2003), Peter and 30 Henry (2003) and Stephen and Bruce (2003) have implemented XML technology for web-based application. Data modeling is probably the most labor intensive and time consuming part of the development process. The designer needs to ensure all the data objects required by the database are accurately and completely represented in a data model (Silverston, 2001). For web-based SPC system, investigation can be done on investigating the proper data model to represent the control chart data. 2.6.2 Network Security Network security is another issue needs to be investigated for the development of a web-based application. Owing to many threats and software vulnerabilities, the risk to unauthorized access ad intrusion via the computer network is growing. Unauthorized access or intrusion can cause data lost, privacy lost and corruption on data. Researchers such as Fabisiak (2003), Gillespie and Gordan (2003), Dong and Liu (2004), Zheng et al. (2004) and Marin (2006) have reported research on network security. To prevent unauthorized access or intrusion, the system administrator must keep all security related hardware and software up to date. This is also applicable for the web-based SPC system. The confidentiality of control chart data which represent the process capability can be the main secrecy concern. 2.6.3 Communication Standard Communication standard is another issue that needs to be considered for the development of a web-based application. The communication standard is referred to as how network system exchange information. Among the commonly used communication standard are Hypertext Transfer Protocol, File Transfer Protocol, 31 Simple Main Transfer Protocol, Post Office Protocol, Simple Network Management Protocol, Common Object Request Broker Architecture (CORBA) and Web Service (Andrew, 2003). The most recent communication standard can be referred to as CORBA and Web Service. The CORBA is an emerging open distributed object computing infrastructure being standardized by the Object Management Group. CORBA automates many common network programming tasks such as object registration, location, and activation; request demultiplexing; framing and error-handling; parameter marshalling and demarshalling; and operation dispatching (Schmidt et al, 2003). Web Service is a new and powerful model for creating applications from reusable software models supported on the Internet using HTTP technology. Web Service provides loosely coupled, flexible, and dynamic solutions by using emerging techniques such as SOAP, WSDL and UDDI. Figure 2.7 shows integration of different platforms using web services. Figure 2.7: Web Services for Different Platform Integration Researchers such as Jun et al. (2003) and Rodolfo et al. (2005) have implemented CORBA in the manufacturing process. On the other hand, Rainer and Schahram (2005) and Deependra and Ganesh (2005) and Park and Lee (2006) have implemented web services for the manufacturing process. Further research expansion can be done to identify the appropriate communication protocol for the web-based Statistical Process Control system. 32 2.6.4 Load Balancing Load balancing is another issue needs to be considered. Load balancing is important for the server whereby it is difficult to predict the number of requests that will be issued to a server. By distributing the server workload among the group of servers, a better performance, resource utilization and scalability can be achieved. There are various ways of implementing load balancing. Basically, the load distribution can be done through hardware or software based techniques. Hardware load balancers can route TCP/IP packets to various servers in a cluster. As shown in Figure 2.8 the load balancer can be used to separate public and private network. The software based load balancer is the most commonly used in the current market. It is often comes as an integrated component of the commercialized web and application server packages. Normally, the software based load balancer is cheaper than the hardware load balancer. Since the special objective for this study is on the load passing procedure for client-server based CCPR system, further explanation on load balancing is presented in Section 2.7. Figure 2.8: Separation of Public and Private Network (Tony, 2001) 33 2.6.5 Client and Server System Integration Another issue to be considered for the development of the web-based application is the CS system integration. The CS system integration has created a communication medium for a heterogeneous web-based system to exchange information. Researchers such as Anosike and Zhang (2004), Zheng and Wans (2004), Saygin (2004) and Martin (2006) have reported research on CS system integration for the manufacturing system. Further review and explanation on CS architecture are presented in Section 2.8, since the special objective of this study is to investigate and proposed a customized system architecture for client-server based CCPR system. 2.7 Load Balancing and System Performance Measurement Load balancing improves system response time by utilize the available system resources. It is mainly used in distributed systems for maximizing the system throughput. The following section presents several methods used for system load balancing. 2.7.1 Application of Load Balancing Many computer applications use load balancing to improve system performance. The ability to divide the server workload among the available system resources can significantly improve the system throughput. Load balancing is applied for a computer network. The high computer network growing rate has lead to a decrease in ‘Quality of Service’ of computer networks. Researchers such as Hui and Samuel (1997) and He (2000) have reported review on load balancing for LAN and WAN networks. 34 Load balancing can be implemented in the cellular network. Load balancing distribution techniques are used to distribute cellular base-station workload. Researchers such as Das et al (1997) investigated an efficient and dynamic load balancing scheme on cellular networks for managing a cellular network hot spot whereas Yanmaz and Tonguz (2004) reviewed on the load balancing schemes for mobile applications. It is to ensure the customer always can get the best quality of data and voice transmission. In addition, load balancing is applied in Peer to peer (P2P) file sharing application. Many solutions have been proposed to tackle the load balancing issue in the P2P system. From the system perspective, it strives to ensure fair load distribution among all peer nodes. Researches such as Wu and Yi, (2003) and Zhu and Hu (2005) have reported on the load balancing scheme for P2P file sharing application. P2P load balancing scheme will ensure the file packet can be fairly shared among the peers without overwhelming certain peer. The load balancing policy are applied to the computer server farm. Zahir et al. (2005) investigated load distribution strategies in a distributed server farm. All tasks arrive at the central dispatcher in a server farm and then are assigned to participating servers based on load distribution policies. Load balancing is also needed for Domain Name Service (DNS) server. DNS server translates the logical site name into the IP address of one of the web servers, and clients communicate with web servers directly. Researchers such as Zhong et al (2004) and Chatterjee (2005) have investigated load balancing algorithms suitable for DNS server. These are some sample applications implementing load balancing policies. Load balancing improves system response time and system throughput by optimizing the available system resources in a distributed environment. 35 2.7.2 Performance Measurement There are several types of performance measurement methods used by researchers. As presented in Table 2.5, researchers from different fields of application implemented different methods. In general, specific measures are used to evaluate the performance of particular application. For example, measurement on message transfer time may only applicable to computer network. Table 2.5: Summary of Load Balancing Performance Measurement Methods Author Year Application Field Measurement Evaluation Method Hui and Samuel 1997 Computer Network Message transfer time Times to broadcast a LAN message and transfer an Internet message. Das et al. 1997 Cellular Network Call rate at hot spot. Percentage Reduction on blocked call. Zhu and Hu 2005 P2P Application Peer System Workload Percentage of moved load. Zahir et al. 2005 Sever Farm Server load Mean waiting time, mean flow time and mean slowdown. Zhong et al. 2005 DNS Server DNS server utilization Standard deviation of server utilization. 2.7.3 Summary of Performance Measurement Load balancing play an important role in networked applications. Due to uneven tasks arrival, system resources such as CPU, memory, hard-disk space and network interface I/O are often poorly utilized. Resource starvation will cause poor system response time. Simply adding more resources is a short-term and expensive solution. For long-term and affordable solutions, load balancing is the answer. 36 Load balancing techniques applies for networked applications (such as wireless network, peer to peer load balancing and DNS server) are only suitable for the characteristic of particular application. It is not suitable to be direct imposed into a client-server based CCPR system. Such a system has it’s own control chart data characteristics and system requirement, specific load passing algorithm should be implemented. If implementing a common load passing procedure such as based on the processor usage, a CCPR system only capable to process a control chart data based on FIFO policy. Which ever process, reach on the server would be process first. Hence, an unstable process tend to be lacking behind the process queue. For a client-server based CCPR system, specific load passing procedure is needed to prioritize the system access based on the control chart data characteristic. In another word, the unstable process should receive higher priority then stable process. 2.8 Client and Server Architecture The Client and Server (CS) architecture can be defined as a computation architecture that involves client’s process requesting service from server. Other definition for CS computing concept is separate logical entities that work together over a network to accomplish a task. CS computing as shown in Figure 2.9 is widely used in the computer industry, ranging from database access, file and printer sharing, and desktop window systems to information resource sharing. 37 Internet Client Server Figure 2.9: Simple Client / Server Computing Architecture A client process can be referred to a program that sends a message to the server program requesting the server to perform a task or service. Client program like web browser is used to manage the user interface portion of the application, validate data entered by user, dispatch request to server program. Normally the client side just requires a minimum memory and processing capabilities to support the presentation and application logic of the client side. A server process will fulfill the client’s request by performing the task requested by client. After receiving a request from the client, the server will execute it and then dispatch the results to client. The server process is performed at the back-end side. Compared to the client side, the server side hardware have more memory and storage, processing power and some even include parallel processors and built-in uninterruptible power supply, fault tolerance and disk monitoring to improve server reliability (Rand, 1996). 2.8.1 Mainframe System and File Sharing System The evolution of CS computing started with the mainframe system. In the mainframe system, all intelligence is within the central host computer. Mainframes are large and expensive computers used mainly by government institutions and large companies for mission critical applications, typically bulk data processing, ERP, and bank transaction processing. Users interact with the host through a dumb terminal that captures keystrokes and sends that information to the host. 38 Mainframes often support thousands of simultaneous users who gain access through "dumb" terminals. There are several limitations of mainframes system. They are: the mainframe does not easily support graphics user interface and the multiple databases are not accessible from a geographically dispersed location. Nevertheless, the mainframe system plays an important role in emerging distributed CS architecture. After the mainframes system, the file sharing system emerged. Originally personal computer networks are based on this file sharing architecture, where the server downloads files from shared location to the desktop environment. After completing the downloaded files, the user runs the program in the desktop environment. In the 1990s, the PC Local Area Network changed because the capability of the file sharing was strained as the number of online users grew rapidly and file sharing only can satisfy 12 users simultaneously. Furthermore graphical user interfaces (GUI) become popular, making mainframe and terminal display out dated. File sharing architecture works only if the shared usage is low, update content is low and the volume or size of data to be transferred is low. 2.8.2 Two-tier Client and Server System As a result of the limitation on the mainframe and file sharing architectures, the 2-tier CS architecture had emerged. This approach introduced a database server to replace the file server using Database Management System (DBMS). With the two tier CS architectures, the user system interface is usually located in the user's desktop environment and the database management services are usually in a server. 39 This approach drastically reduces the network traffic by providing a query response rather than total file transfer. As shown in Figure 2.10, the 2-tier CS system consists of a client tier and a server tier. The client tier manages the user interface functions like session, text input and display management service. While the server tier manages the database such as providing data and file management service. Either client or server tier can be chosen to perform processing management such as process development, process monitoring and resource management. Normally this architecture requires minimal operator intervention and is frequently used in non-complex and non-time critical info processing systems. User Interface (session, text input, dialog display management service) CLIENT Processing Management (process development, process monitoring, process resource management) Database Management (data and files management service ) SERVER Figure 2.10: Two – tier Client and Server Architecture 2.8.3 Three-Tier Client and Server System The Three tier CS architecture emerged in the 1990’s to overcome the limitation existing in the two tier CS architecture. In the three tier architecture, a middle tier was added between the client interface and the database server. As shown in Figure 2.11, normally the three-tier architecture consists of a client tier, middle tier and database tier. The Client tier provides the user interface management, the middle tier provides business logic management and the database 40 tier provides database management service. Each tier can be built on a separate platform and written using different languages. User Interface (session, text input, dialog display management service) CLIENT MIDDLE Processing Management (process development, process monitoring, process resource management) SERVER Database Management (data and files management service ) Figure 2.11: Three- Tier Client and Server Architecture This architecture can accommodate hundreds of users by providing functions such as queuing, application execution and database staging. For example, if the middle tier provides queuing, the client can deliver its request to the middle layer and disengage because the middle tier will access the data and return the answer to the client. Middle tier also makes administration or changes management easier by localizing the system functionality. This allows changes to be written once on the middle tier server and the results are available throughout the system. Compared with the two-tier CS architecture, the three tier CS architecture can improve the overall performance, maintainability, reusability and scalability of the client and server architecture. 2.8.4 N-Tier Client and Server System N-tier CS system refers to the number of logical layers that various components of an application occupy in the CS architecture. Primary components or layers in the N-tier architecture are the presentation layer, application or business logic layer and data layer. As illustrated in Figure 2.12, these layers are logically 41 separated by an interface which acts as a connectivity and communication medium. N-tier indicates the number of level these components are split into but it does not indicate the number of physical computers for which this application is spread across. For example, a 3-tier together could be residing on one single computer but normally it is not the case (Renaud and Paul, 1996). User Layer User interact with this layer Presentation Layer Contains user interface components (GUI or text-based) Application Layer Application proper components needed to power the functionality of application reside at this layer. (domain specific knowledge) Data Layer Allow application layer to capture and maintain application state data. Figure 2.12: N-Tier Client and Server Architecture 2.8.5 Example of Client and Server Architecture The CS architecture has been widely applied in a web-based system. This section presents some examples of CS application. These applications include mobile robot, distributed multimedia, Internet-based tele-medical, labs remote control and vehicular communication system. Two-tier CS application can be applied in a mobile robot control application. Each client or server runs in a separate process of the real-time operation system. As illustrated in Figure 2.13, each resource such as the sensor and actuator differs from its functionality. This leads to a number of servers, each server providing access to one sensor and actuator (Olaf et al, 1998). 42 Figure 2.13: Design for Client – Server based Mobile Robot Control (Olaf et al, 1998) Three-tier CS application has been applied for distributed multimedia application. As illustrated in Figure 2.14, this application consisted of a distributed multimedia server, multimedia databases and a set of clients which access the server. The multimedia system server is superimposed on a set of database management systems (DBMSs). Each DBMS manages the insertion, deletion, and updating of the media data stored in the local database (Sreenivas and Zhang, 1996). Figure 2.14: CS Architecture for Distributed Multimedia Environment (Sreenivas and Zhang, 1996) 43 The web-based CS application also has been applied in a Telemedicine system. The telemedicine system produces a great impact in the monitoring of patients located in remote non-clinical environments. A number of applications, ranging from data collection, to chronic patient surveillance are being implemented in many parts of the world. Alfredo et al (2001) presented the problems in electrocardiogram real-time data acquisition, transmission, and visualization over the Internet. As presented in Figure 2.15, a prototype system is composed of a portable data acquisition connected to the computer, a Java-based CS platform, and software modules to handle communication between data acquisition module, the patient’s and the specialist’s personal computer. Figure 2.15: Diagram for CS Telemedical system (Alfredo et al, 2001) Besides that, CS technology has been widely adopted for remote control of research labs. Owing to the stringent demands of industry, a variety of bus systems have been developed to operate at the different hierarchical levels found in automated lab equipment. At the highest level Ethernet-based systems are frequently utilized to transfer data. Figure 2.16 shows the general structure of an http-based remote controlled experiment using the lab equipment programming and an integrated http web server (Hartmut and George, 2003). 44 Figure 2.16: Structure of an Http-based Remote Controlled Laboratory (Hartmut and George, 2003) In addition, CS technology has been implanted into cellular network. As shown in Figure 2.17, Hamada and Eric (2004) presented an Inter-vehicle communication platform in which the CS and Ad-hoc communication approaches are integrated. This platform requires a host to allocate dynamically IP addresses to the communicating vehicles. Each vehicle is equipped with a computer controlled radio modem IEEE 802.11b, GPS, GSM modem and camera. This platform maintains a high quality of communication and a reliable guarantee transition from CS and Ad-hoc communication. Figure 2.17: CS and Ad-Hoc Communication Platform (Hamada and Eric, 2004) 45 2.8.6 User Requirement and Client and Server Architecture From these researches, it is clear that CS architecture had been widely adopted for various fields. With CS architecture, the system administrator can easily change any tier functionality without the need to modify the whole system. However, the components put in each functional tier need to be carefully investigated. Different types of users may have different requirements based on the application. Some users may only deliberate on the speed of data transfer. Others may focus on integrity of data, real-time accurate alert or mobile accessibility. For example, the user of a multimedia distribution system may deliberate on the speed of data transfer, instead of data integrity. They may demand for speed of online sound and video packet transferring. Some errors on data packets are acceptable (Sreenivas and Zhang, 1996). In the case of E-commerce and banking application, the main concentration is on data integrity. Instead of speed, they will demand for security and accurateness of data packet transfer. Some delay on packet transfer is acceptable. For the personal assistant application, the remote or mobile accessibility is the deliberation. Personal assistant application should be accessible using workstation, Pocket PC and mobile phone. For the tele-medical system, the main concentration is on the real-time and accurateness of analysis results. The analysis result should be delivered accurate and on-time to the physician for on-time treatment and decision making. (Alfredo et al, 2001). It is has been noted that different applications require different CS architectures. Different CS architecture is needed to satisfy different user requirements. It is applicable for the CCPR system too. The user of the CCPR system needs a client-server based CCPR system with suitable CS architecture and 46 load passing approach. This client-server system will enable the user to access the system from anywhere and at anytime using a web browser. Suitable CS architecture enables the standalone system to be further divided into several subsystems. Each subsystem can be easily changed or expanded without the need of customizing the whole system. Often, the user is not aware of the system changes. Lastly, a suitable load passing approach ensures the system is fairly distributed between each subsystem. In short, this system is always accessible to the user without the hassle of overwhelming certain functional tiers. 2.9 Technique and Technologies for Web-Based System Development In this section, explanations are given on the technique and technology used for client-server based system development. The technique and technology discussed here are JSP language, Apache Tomcat Server, My-SQL Database Server and The Mathworks Matlab. 2.9.1 JSP Language Java Server Page (JSP) is a template for a web page that uses Java code to generate an HTML document dynamically. JSP only enjoys cross-platform and cross-Web-server support, but effectively melds the power of server-side Java technology with the WYSIWYG features of static HTML pages. It is important to note that the JSP specification is a standard extension defined on top of the Servlet Application Programming Interface. So, JSP are run in a server side component known as a JSP container, which translates them into equivalent Java Servlet. For this reason, Servlets and JSP pages are intimately related. Several advantages of JSP are (Marty and Larry, 2004): 47 i. They have a better performance and scalability than CGI script because they are persistent in memory and multithreaded. ii. They are automatically recompiled when necessary iii. They have built-in support for HTTP sessions, which makes application programming possible. iv. They have full access to Java technology – network awareness, threads and database connectivity. v. Because JSP pages are HTML-like, they have greater compatibility with web developments tools. 2.9.2 Apache Tomcat Server The Apache Tomcat Server is the servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages. This project has its origins in the earliest days of Java’s Servlet technology and is developed by Sun under the Java Community Process. Apache Tomcat is developed in an open, participatory environment and released under the Apache Software License to make a collaboration of the best-of-breed developers from around the world (Jon et al., 2003). Originally, Sun created the first Servlet container, called the Java Web Server, which demonstrated the technology but it was not terribly robust. Meanwhile, the Apache Software Foundation (ASF) folks created the JServ product, which was a servlet engine that integrated with the Apache web server. In 1999, Sun donated their servlet container code to the ASF, and the two projects were merged to create the Tomcat server. Today, Tomcat has become Sun’s official reference implementation which means that Tomcat's first priority is to be fully compliant with the Servlet and JSP specifications published by Sun. 48 The latest release of Tomcat 5, is an implementation of the new Servlet 2.4 and JSP 2.0 API specifications. Several web-based administration tools are also bundled in this version for example Tomcat Status, Tomcat Manager and Tomcat Administration. Tomcat Status will displays the status of the Tomcat server, such as the memory utilization of the JVM, the version of JVM being run and the number and status of threads, among other parameters. As shown in Figure 2.18, the Tomcat Manager provides ways to install a new web application, reload it, start and stop it, and many other functions. Tomcat Administration is the GUI tool for administering Tomcat such as to manage user roles, name and password (Vivek et al., 2004). Figure 2.18: Example of Tomcat Web Application Manager 2.9.3 My-SQL Database Server MySQL is the world's most acclaimed open source relational database management system developed, distributed, and supported by MySQL AB. MySQL AB was founded in Sweden by two Swedes and a Finn: David Axmark, Allan Larsson and Michael Monty. MySQL is a relational database written in C and C++. It has a strong hold in the open source community, and is very frequently found being used with PHP at the front end. Some of the customers of MySQL are 49 Google, Yahoo, Earthlink, Ericsson, NASA, Lufthansa, Texas Instruments, United Parcel Service, and The Associated Press. MySQL is the world's most popular open source database with over 4 million active installations and 35,000 downloads per day (Chad and Stephens, 2004). The main features provided by MySQL can be summarized as (David and Micheal, 2005): i. Various APIs provided for MySQL such as C, Java, Perl, PHP and Python. ii. The server is available as a separate program for use in a CS environment. iii. All password traffic is encrypted when you connect to a server. iv. Clients can connect to the MySQL server using TCP/IP sockets on any platform. v. Various database administration and management tools provided. For example MySQL Control Center as shown in Figure 2.19 is a free software under General Public License for the administration of MySQL database server. Figure 2.19: Interface of MySQL Control Center 50 2.9.4 The Mathworks Matlab "MATrix LABoratory" or Matlab is the language invented by Cleve Moler in the late 1970s. It is a high-level technical computing language and interactive environment for algorithm development, data visualization, data analysis, and numeric computation. Using MATLAB, technical computing problems can be solved faster than traditional programming languages. MATLAB is used in a wide range of applications, including signal and image processing, communications, control design, test and measurement, financial modeling and analysis, and computational biology. In addition, MATLAB provides a number of features for documenting and sharing among the community. Add-on toolboxes are available separately to solve particular classes of problems in these application areas. Areas in which toolboxes are available include signal processing, control systems, neural networks, fuzzy logic, wavelets, simulations and many others. Figure 2.20 shown MATLAB interface with coding editor, command window, command history and current directory windows. Figure 2.20: MATLAB Interface Example 51 2.10 Summary The background on the process variation, control chart, CCPR and framework for standalone system has been reviewed. Application areas of Webbased manufacturing system have been explained. Previous researches and commercial of shelf web-based SPC systems also have been studied. The design considerations in the development of a client-server based system are investigated and presented. Since the special objective of this study is on client-server architecture and load passing procedure for client-server based CCPR system, a more detail discussion was given on the CS system architecture and load balancing. Some examples of the CS systems and load balancing applications were provided. The literature review reveals several researchers were trying to enhance the standalone SPC system into a web-enabled SPC system. Enhanced functionalities such as XML, web service, SNMP and wireless technology have been introduced by researchers into the web-based SPC system. However, the author was unable to locate investigation on the client-server architecture and the load passing procedure for control chart pattern recognition. To convert the existing standalone system into a web-enabled CCPR system, a customized CS architecture and load passing approach are needed. The conventional CS architecture and load passing approach are not directly applicable for the CCPR system. Careful investigation on the CS architecture is needed to determine the suitable position for each functional module. Incorrect functional module positioning may downgrade the whole system performance. Careful selection of load passing approach is needed to ensure the system workload can be fairly distributed among the subsystem. The worst case scenario would cause the system malfunction, when the system is unable to cope with multiple users access and too much demand for data processing. CHAPTER 3 RESEARCH METHODOLOGY 3.1 Introduction This chapter discusses the research methodology adopted in this study. First outlines the problem situation and discusses the solutions concept. Following section presents the overall research plan in a flow chart format. Basically, this study is divided into four phases. More detail explanation on each phase is given on Section 3.3.1-3.3.4. Next description on the source of data for system testing and validation purpose. The tools and equipments used for this research study are presented. Following by discussion on the performance measurement methods. Finally gives a summary for this chapter. 3.2 Problem Situation and Solution Concept As described in Section 2.3.3, there are several limitations exist in the standalone system. To overcome these limitations, the existing standalone system can be converted into a client-server system as presented in Figure 3.1. The converted client-server based CCPR system enables remote access, information sharing, better utilization of system resources and it is more affordable by the small and medium manufacturer. 53 Input Process Standalone CCPR System • • Control Chart Data Manufacturing Process Information Client-server based CCPR • • Control Chart Data Manufacturing Process Information Output • • • • • • • Plotting Control Chart Local & Standalone System Multiple PR Module Data Not Shareable Data Confidential May Not Protected High Implementation Cost Not Extendable or Scalable • • • • • • • Plotting Control Chart Web-enabled & Remotely Access Single PR Module Data Sharing & Expertise Sharing Data Confidential Protected Economic and Affordable Extendable or Scalable Figure 3.1: Enhancement from Standalone into a Client-Server based CCPR System As described earlier, web-enabled CCPR system is used as the prototype system implementation and validation for the client-server based CCPR system. The solution concept for the proposed web-enabled CCPR system is illustrated in Figure 3.2. The main components of the proposed web-enabled CCPR system are consisted of a World Wide Web server, a database server and a pattern recognition engine. While the potential users are consisted of the operators, the customers, the engineers and the mangers. 54 Figure 3.2: Proposed Operational Framework for Web-enabled CCPR System The operational framework for the proposed web-enabled CCPR system is summarized as below: i. The World Wide Web server acts like an intermediate machine to process and response to all user requests. It also acts as interface to communicate with back-end Patterns Recognizer and Database Server. ii. The Database Server is a permanent data storage for keeping all related manufacturing control chart data and users information. iii. The Patterns Recognition Engine uses as the intelligent patterns recognition module for monitoring and detect unusual patterns exists in control chart. 55 The functions provided for potential user are summarized as below: i. Factory operators use the standard web browser to key in all the required control chart data or these data can be automated collected from equipments. ii. The engineers or managers use a standard web browser to monitor the machine and product line status. Some kind of warning and e-mail alert can be generated in case of detection for an abnormal control chart pattern. iii. Customer side such as suppliers or customers use a standard web browser for getting the related control chart information. These information is helpful for supplier or customer in making the related purchasing decision. This web-enabled CCPR system is expected to benefit the operators, engineers, managers and customers. For the small companies, they can get benefit from the service which is traditionally affordable by big company. This system can be used as a marketing tool to convince potential customer without physically visiting the manufacturing side. Beside that, this system also allows remote or tele-consultation for the remote diagnosis. Lastly, the proposed framework is designed in module form to enable each components of system to be individual investigated and improved. 3.3 Development Phase Research plan plays an important role in this study. It served as a guideline to ensure the research phases are carried out systematical and completed within the time frame. As shown in Figure 3.3, basically this study is divided into four phases. Each phase has different tasks need to be completed. 56 Existing Standalone System Phase One: Study Existing Standalone System Features and Limitations Proposed an Operational Framework for the Client-server based CCPR System. Analyze the Existing Standalone System and Propose an Operational Framework for the Client-server based CCPR System Phase Two: Compare Each Client and Server Architecture Accordingly Client and Server Architecture Design 1. Client Tier 2. Server Tier 3. Engine Tier Determine a Suitable Client and Server Architecture Phase Three: Compare Each Combination of Load Passing Procedure Selection of a Load Passing Procedure Determine a Suitable Load Passing Procedure 1. Run Rules 2. CUSUM 3. EWMA Phase Four: Proposed System Implementation System Testing & Validation Prototype System Implementation & Evaluation Client-server based CCPR System with Suitable Load Passing Procedure and Client and Server Architecture Figure 3.3: Client-Server based CCPR System Architecture Development Phases 57 3.3.1 Phase One – Analyze Existing Standalone System In the phase one of this study, the operational framework for an existing standalone system is investigated. The limitation of existing standalone system is identified. After that, some suggestions are given to convert the standalone system into a client-server based CCPR system. 3.3.2 Phase Two – Determine A Suitable CS Architecture In the phase two, the investigations are carried out on selecting a suitable CS architecture. Three candidate CS architectures is proposed. One of the candidate CS architectures is selected as the system architecture for the client-server based CCPR system. The selection criteria are based on the candidate CS architecture performance. The evaluation methods used for selection are explained in Chapter 4. These evaluation methods are included measurement on the server tier, engine tier performance, and the volume of data and intensity of traffic. 3.3.3 Phase Three – Determine A Suitable Load Passing Procedure In the phase three of this study, investigations are carried out on selecting a load passing procedure. Customized load passing method are proposed in this study. By using the customized load passing method, three combination of load passing procedures are investigated. The classification accuracy and the capability to differential between stable and unstable process are used as the evaluation method. After the experiments, one of the candidate designs is selected as the client-server based CCPR system load passing procedure. Suitable load passing procedure ensures the system workload can be fairly distributed among the system tier. 58 3.3.4 Phase Four – Prototype System Implementation & Evaluation Based on the results obtained from phase one, two and three, the prototype system implementation and evaluation are carried out in phase four. The operational framework for the proposed web-enabled CCPR system is further explained in detail. Functionality provided for operational side, client side and management side are explained here. Database design and interface design are discussed. After finished prototype system implementation, system evaluation are conducted using published and industrial data. 3.4 Source of Data For the system simulation and validation, three type of data stream are used. There are the synthetic data, published data and industrial data. 3.4.1 Synthetic Data Synthetic data is the data stream generated using MATLAB computer program. It was based on the existing data generator (Adnan, 2002). Data stream is generated using the established statistical models proposed by Swift (1987). Six types of data stream can be generated. There are random, trend up, trend down, shift up, shift down and cyclic patterns. 3.4.2 Published Data Published data is data set used by previous researcher for system testing and validation. Some data sets are selected from published sources such as book and journal. For this study, datasets collected from NIST/SEMATECH and Ott et al., (2000) have been selected as published data source. 59 3.4.3 Industrial Data Industrial data is the dataset collected from manufacturing process. For this study dataset collected by Tan (2004) and Ahmad (2005) are used for representing the industrial data. After verification, the implementation of client-server based CCPR system is proven feasible on industrial dataset. 3.5 Instruments and Equipments Instruments and equipments used in this research are presented here. The instruments and equipments are divided into the hardware and software requirement. 3.5.1 Hardware Requirement Basic hardware requirements for system development are stated as below: i. ii. Client Tier Personal Computer • Processor Speed : Intel Pentium IV or compatible and above • RAM :256 MB • Storage : 20 GB and above • Accessible to the Internet Web Server Tier and Engine Tier • Processor Speed : Intel Pentium IV or compatible and above • RAM : 512 MB and above • Storage : 80 GB and above • Accessible to the Internet 60 3.5.2 Software Requirement Software requirements for system development are stated as below: i. Macromedia Dreamweaver MX Macromedia Dreamweaver MX is used as the Integrated Development Environment for system development. It does provide a suitable and user friendly environment for coding and testing the web-based language. ii. Apache Tomcat Web Server Apache Tomcat Web Server used to run the JSP pages. This web server was special design for Java Servlets or Java Server Pages. It’s more reliable and provides more security features. This web server would be used to generate dynamic JSP pages and Java Applet graph. iii. My SQL Database Server MySQL database server is chosen as the data storage. This database server is an open source system. It has provides application programming interface for interact with the different languages, servers and operating platforms. It can be downloaded free from http://www.mysql.net. iv. The Matlabworks Matlab The existing CCPR was coded in Matlab. Matlab is the software used for pattern recognition. Matlab has provided several toolboxes which can be directly referred and applied for the application. Matlab toolbox such as neural network and database toolbox are used in this system. 61 v. Microsoft Windows XP Professional This system was developed using Microsoft Windows XP Professional as the operating system. It provides user friendly environment. It is more stable than previous version of operating system. Windows XP is supported by many software and hardware. vi. Microsoft Internet Explorer / Netscape Navigator Microsoft Internet Explorer or Netscape Navigator is the web browser for accessing this system. These two web browsers are commonly used for internet surfing. It’s to make sure the web-enabled CCPR system is accessible by most of the users. When making a selection of softwares, this research mainly considering the cost and the integratebiliy of the particular IDE or server. For example, the Apache Tomcat Web Server is selected because it is an open source and license free server. This web server can be easily download free from the Apache website. Extra cost will incurred when owner try to expend their system. Some web server even sells the license based on the number of user connection. Integratebility is another decision factor. The components selected in this research must be portable and easier integrate with other system. For example the MySQL database server can be easily talk with another system. Simple example, using the Microsoft Excel, user can easily query the control chart data from the MySQL database server and then manipulate the data for analyst and presentation purpose. 62 3.6 Performance Measures For evaluating the system performance, six types of measurement methods are implemented. They are the calculation time, memory, processor usage, thread, handle count and page file usage (Robert, 2000). Table 3.1 shows the description of each performance measurement methods. Table 3.1: System Performance Measurement Performance Measure Description E1 Calculation Time The duration spent to perform the given task. E2 Memory Usage The current working set of a process, in kilobytes. The current working set is the number of pages currently resident in memory. E3 Processor Usage The percentage of time the process used the CPU. E4 Thread Count The number of thread running in a process. E5 Handle Count The number of object handles in the process’s object table. E6 Page File Usage The amount of system allocated virtual memory, in kilobytes, used by a process. Paging is the moving of infrequently used parts of a program’s working memory from RAM to another storage medium, usually hard-disk. 3.7 Summary This chapter outlined the research methodology. This study is divided into four phases. After completing all four phases, an architecture for the development of a clientserver based CCPR system is proposed. The coming chapter discusses the experiment and analysis carried out for selecting a suitable client and server architecture for the client-server based CCPR system. CHAPTER 4 CLIENT AND SERVER ARCHITECTURE FOR CLIENT-SERVER BASED CCPR SYSTEM 4.1 Introduction This chapter describes the experiments and statistical analysis carried out for selecting a suitable Client and Server (CS) architecture for client-server based CCPR system. Section 4.2 gives some explanation on the important of CS architecture. Section 4.3 explained the architecture and work flow of the two candidates CS design. Section 4.4 summaries the experiment result using the bar chart, ANOVA statistical test and the radar chart. Section 4.5 presents the decision made in selecting a suitable CS design. Section 4.6 gives a summary to end this chapter. 4.2 Overview of Client and Server Architecture As mentioned earlier, different applications require different types of CS architecture. It is the same for client-server based CCPR system. Suitable CS architecture would ensure each subsystem can be easily modified and expanded without the need of customizing the whole system. It also ensures the system workload can be fairly distributed among the subsystems. In short, the system resources can be better utilized without the hassle of overwhelming certain functional subsystem. Certain functional may become bottleneck if the particular system tier needs to perform too many actions, while the subsequent tier just idle there. 64 4.3 Client and Server Architecture for Client-Server based CCPR System For this study, a standalone system and two types of CS candidate design have been investigated. The standalone system CCPR is the baseline for comparison. The two candidate CS designs are referring to the Design 1 with the Load Passing Procedure and Patterns Recognition (PR) at Engine Tier and Design 2 with the Load Passing Procedure at Server Tier and PR at Engine Tier. 4.3.1 Standalone System Figure 4.1 illustrated the basic architecture for the standalone system. In this design, the system’s components are consisted of a local user and a standalone system. For this design, normally one machine is assigned to one operator and the operator will key-in the control chart data into the computer system. The standalone system is capable in monitoring only one machine performance and one user is allowed to interact with the system at a time. Inside the standalone system, it is consisted of 4 modules. There are the user interface module, the data collector module, the load passing procedure module and the patterns recognition module. As presented in Figure 4.2, all the modules are resided in the same computer. It does mean the computing resource such as CPU processing time, physical or virtual memory and I/O ports are shared among each module. Figure 4.1: Operational Framework for Standalone System 65 Figure 4.2: Logical Flow Chart for Standalone System 66 4.3.2 CS Design 1 – Load Passing Procedure and Patterns Recognition at Engine Tier Figure 4.3 illustrated the basic architecture for the CS design 1. For this design, the system’s components are consisted of a remote user, a client tier, a server tier and an engine tier. Compare with the first design-standalone system, this design separate the standalone system into 3 tier CS system. The main advantage of this design is that it does allow more then one user interacting with the system. The users just need a standard web browser such as the Microsoft Internet Explorer or the Netscape Navigator to access the system. This design is capable to monitor more than one machine and manufacturing processes. As illustrated in Figure 4.4, the components of the standalone system have been separated into 3 tier CS system. The user interface module is placed in client tier, the data collector module is placed inside server tier and the load passing and pattern recognition module is placed in engine tier. This 3 tier CS design can be either resided on the same or separate machine. If there is a limited computing resource, the system implementer can choose to allocate all the CS tiers inside the same computing server. Otherwise, if there is an extremely high request of system service, more computing server can be added and expanded later. Figure 4.3: Operational Framework for CS Design 1 67 Figure 4.4: Logical Flow Chart for CS Design 1 68 4.3.3 CS Design 2 – Load Passing Procedure at Server Tier and Pattern Recognition at Engine Tier Figure 4.5 illustrated the basic architecture for the CS design 2. For this design, the system components comprise of a remote user, a client tier, a server tier and an engine tier. Compare with the CS design 1, the load passing module is moved from the engine tier into the server tier. The engine tier is consisted of a patterns recognition module. But the server tier is consisted of two modules: a data collector and a load passing module. In this design, only the selected unstable control chart data will be passed to engine tier. As illustrated in Figure 4.6, only the necessary control chart data will be passed to the engine tier for patterns recognition purpose. It’s mean the engine tier resources are dedicated for the purpose of control chart patterns recognition. The pattern recognizer needs extra memory to store neural network information and enough CPU time to process and classify the control chart pattern. The engine tier should not be burdened with too many harass activities which may disturb and influence the performance of pattern recognizer. Figure 4.5: Operational Framework for CS Design 2 69 Figure 4.6: Logical Flow Chart for CS Design 2 70 4.4 Performance Comparison on the Candidate Designs In this section, experiments were conducted to evaluate the performance of the candidate designs. Experiments were conducted using six datasets, each dataset comprising a total of 1840 control chart patterns. Since the engine and server tier are the critical data processing part of the web-enabled CCPR system, the experiments were conducted to evaluate the performance of the engine tier and the server tier. Beside that, the candidate schemes were evaluated based on the volume of data and intensity of traffic. Evaluation based on volume of data and intensity of traffic is important to ensure the CS design is capable in processing more control chart data and support more users’ access. The experiment result for engine tier is given in Section 4.4.1 and server tier is given in Section 4.4.2. While the result for volume of data in Section 4.4.3 and intensity of data in Section 4.4.4. Lastly, the selection of the best candidate design is discussed in Section 4.5. 4.4.1 Engine Tier Performance Table 4.1 summarizes the engine tier performance for standalone system. Standalone system is the basic and local system. This system only allow single access and data was kept inside the local system. The standalone system took the shortest time to complete the given task. Since the standalone system is a local based system, all the control chart data collecting, processing and analysis are done locally inside the same server and same software package. In this case, the standalone system is interacting with its own library and I/O request. That’s why the standalone system design has the fasters processing time. Table 4.2 shows the result for the candidate CS designs. CS design 2 able to performance faster than CS design 1. CS design 2 averagely took 38.17 seconds while CS design 1 took 51.86 seconds to complete the given task. CS design 1 took longer 71 time because the load passing test was performed in engine tier. Most of the data needs to pass to the engine tier for stability test. For the physical memory and processor time measurement, the standalone system used the biggest size of memory and longest processor time. In the standalone system, most of the physical memory is utilized and the processor is always busy. Since the machine resources are fully utilized, standalone system only took 26.82 second to complete the given tasks. For the candidate CS designs, CS design 1 use slightly higher memory and processor time. It means slightly more memory and processor time are needed when performing stability test at engine tier. Table 4.1: Standalone system Engine Tier Performance Performance Measurement (Engine Tier) Standalone System E1 E2 E3 E4 E5 E6 26.82 second 98,048 K 86.20 % 35.8 977.4 155,432 K Table 4.2: System Performance for Engine Tier Performance Measurement (Engine Tier) Candidate Design E1 E2 E3 E4 E5 E6 CS Design 1 51.86 second 89,740 K 77.96 % 22.8 653.4 113,840 K CS Design 2 38.17 second 84,950 K 69.90 % 19.6 631.4 98,311 K E1: Calculation Time E4: Thread Count E2: Memory Usage E5: Handle Count E3: Processor Usage E6: Page File Usage 72 As illustrated in Figure 4.7, CS design 1 use bigger number of handle count and page file. It is noticeable bigger size of virtual memory is needed for the CS design 1. Compare with another CS designs, when allocating the stability test at engine tier, design 1 needed more size of virtual memory to store the temporary library and calculation result. To have a better analysis of the experiment results, ANOVA analysis is applied in this study. 160 Performance 140 120 CS Design 1 100 80 CS Design 2 60 40 20 0 E1 E2 E3 E4 E5 E6 Measurement Figure 4.7: Comparison Chart for the Engine Tier Performance ANOVA test was used to verify whether there is a significant different between the candidate designs. Alfa value of 0.01 was chosen in the ANOVA test. As shown in Table 4.3, ANOVA analysis revealed only performance measures E1 (calculation time), E3 (processor time) and E4 (thread count) gave f value more then 11.26. These performance measurement has the ANOVA value more than 11.26, ANOVA test indicates that these performance measures are significantly different for CS1 and CS2. In another words, the E1-calculation time, E3-processor time and E4thread count, can be taken into consideration when comparing the candidate designs. Table 4.3: ANOVA Analysis for Engine Tier Performance 73 74 To have a better display of results, a radar chart was drawn. As illustrated in Figure 4.8, this radar chart has six axes (E1, E2, …. E6). Each of them is representing one performance measure. In a radar chart, the bigger the web line (the connected line), the better the overall performance. From this radar chart, CS design 2 has the biggest web line and CS design 1 has smaller web line. From this chart, it shown that CS design 2 has better performance than CS design 1. Figure 4.8: Radar Chart for Engine Tier Performance 75 4.4.2 Web Server Tier Performance This section evaluates the performance of the web server tier. Table 4.4 summarizes the results in numerical format while Figure 4.9 presented the result using a bar chart. In this section, standalone system is not applicable since CS design 1 is a local individual system, it does not have a web server tier. By looking at the statistical value, generally CS design 1 has slightly better result compare with CS design 2. However, it is quite difficult to justify that CS design 1 has a better performance by just referring to the numerical value. ANOVA statistical test was used to the significant differences between the candidate CS designs. Table 4.4: Result for Web Server Tier Performance Performance Measurement (Web Server) Candidate Design E1 E2 E3 E4 E5 E6 CS Design 1 89.56 second 43,334 K 64.58 % 41.2 740.4 43,433 K CS Design 2 93.92 second 49,036 K 65.50 % 43 797.2 49,106 K E1: Calculation Time E4: Thread Count E2: Memory Usage E5: Handle Count E3: Processor Usage E6: Page File Usage NA: Not Applicable 76 100 Performance 80 CS Design 1 60 CS Design 2 40 20 0 E1 E2 E3 E4 E5 E6 Measurement Figure 4.9: Comparison Chart for the Web Server Tier Performance Table 4.5 presented the result for ANOVA analysis. Alfa value of 0.01 is used in the ANOVA test. The analysis reveals that there is no significant difference among the four performance measures namely: E1, E2, E3 and E4. The measurement value for these designs has the F value which are smaller than the reference F (11.26). Hence they cannot be used as one of the decision making factors to be discussed in Section 4.5. The analysis reveals that the performance measures E5 (handle count) and E6 (page file usage) are significantly different. It is due to CS design 2 needs extra virtual memory. Since the load passing Procedure had been moved from engine tier into the web server tier, additional memory is needed in web server tier for running the load passing procedure. Table 4.5: ANOVA Analysis for Engine Tier Performance 77 78 Similar to Section 4.4.1, a radar chart is adopted for the comparison of multiple performance measures methods. As presented in Figure 4.10, this radar chart has six radial axes (E1, E2,…E6). Each of them is representing one performance measure methods. From the radar chart, CS design 1 has the biggest web line while CS design 2 has slightly smaller web line. It is evident that the CS design 1 has slightly better performance compared to the CS design 2. However, this is not the final decision since the experiment result for volume of data and intensity of traffic will be taken into consideration for a better judgment. Figure 4.10: Radar Chart for Web Server Tier Performance 79 4.4.3 Volume of Data Other then the server tier and the engine tier experiments, the candidate designs are evaluated based on the volume of data and intensity of traffic. Volume of data can be explained as the speed of data stream passing to the system, while the intensity of data can be explained as the system workload or can be simplified as the number of simultaneous user accessing the system. As shown in Table 4.6, different volume of data was presented to the candidate designs. The data transfer rates were range from 20, 30, 40, 50, 60 to 70 data per minute. 80 data per minute was not being selected since CS design 1 and 2 were unable to handle the data rates greater than 60 data per minute. 60 data per minute is the bottleneck for CS design 1 and 2. Normally, the lower of the data rate the shorter the processing time. Although both CS design 2, 1 can support up to 60 data per minute, but CS design 2 is better since it shown a shorter processing time. Table 4.6: Process Time for Different Volume of Data (second) Volume of Data ( data per minute) Candidate Design CS Design 1 CS Design 2 20 30 40 50 60 70 0.298 0.306 0.353 0.379 0.390 -- 0.283 0.287 0.338 0.364 0.371 -- 80 CS Design versus Data Stream 0.4 Second 0.35 CS Design 1 0.3 CS Design 2 0.25 0.2 20 data 30 data 40 data 50 data 60 data per minute per minute per minute per minute per minute Figure 4.11: Line Chart for the Experiment on Volume of Data Figure 4.11 shows the line chart for the experiment conducted on volume of data. This data shows the volume of data versus the processing time has a linear relationship. It mean bigger data rate, will took longer processing time. From the line chart, CS design 2 has better performance then CS design 1. CS design 2 has slightly faster processing time compare with CS design 1. It maybe due to CS design 1, the load passing test was done on engine tier, hence more interrupt and handshaking process need to be done on engine tier. 4.4.4 Intensity of Traffic This section performed the experiments to evaluate the performance of candidate designs based on the intensity of traffic. Measurement on the intensity of traffic can be simplified as experiment on the number of simultaneous users’ access. Table 4.7 showed the average processing time for the three candidate designs. Since standalone system is a local system, it has not capable to handle more then one user access. For CS design 1, it has the capabilities to handle 16 simultaneous users. For 17th user, the system was struck. This was due to the server unable to create additional 81 socket connection to fulfill the additional client request. While CS Design 2 could handle up to 18th user connection. It is failed on 19th user access. Although this experiment was conducted until the system struck, but the user access deliberate down starting on 10th user access. From 10th user access onward, the Java applet starting time was slowing down, until 15th user access, the whole server processing time was eventually slowing down too. Table 4.7: Process Time for the Experiment on Intensity of Traffic (second) Number of Users Access Candidate Design single user 5 users 10 users 15 users 16 users 18 users 19 users CS Design 1 0.306 0.601 0.837 1.854 2.067 -- -- CS Design 2 0.287 0.539 0.775 0.623 1.863 2.023 -- CS Design versus Number of User Access 2.5 Second 2 Standalone System 1.5 CS Design 1 1 CS Design 2 0.5 0 1 5 10 15 16 18 Number of User Access Figure 4.12: Line Chart for the Experiment on Intensity of Traffic Figure 4.12 shows the line chart on the relationship for experiment conducted on intensity of traffic. The chart show there is an almost a linear relationship between processing time and the number of user access. When there was more user access the system, the processing time goes up. However, CS design 1 only can accommodate 82 up to 16th user while CS design 2 is better, it can lasting up to 18th user. On overall, the CS design 2 curve shows better result since all the measurement point has value smaller than CS design 1. From the graph, it reveal 15th user access is the optimum point for CS design 2. From this point onward, the processing time is significant reduce compare with CS design 1. It maybe due to extra virtual memory and system resources had been allocated at the server side. Operating system allocated more virtual memory to enable the server process more user request. 4.5 Selection of A Suitable Client and Server Architecture To have a better comparison of candidate design, Table 4.8 provided the summary ranking in term of engine tier and server tier performance. These ranking was draw based on the engine tier and server tier experiments conducted in Section 4.4.1 - 4.4.2. A ranking value of 1 indicates the best and a ranking of 3 represents the worst. The same ranking in same column means no significant difference for that particular measurement method. Table 4.8: Overall Ranking on Engine Tier and Server Tier Performance Ranking Engine Tier Server Tier CS Design D1 E1 E2 E3 E4 E5 E6 E1 E2 E3 E4 E5 E6 2 1 2 2 1 1 1 1 1 1 1 1 D2 1 1 1 1 1 1 1 1 1 1 2 2 E1: Calculation Time E4: Thread Count E2: Memory Usage E5: Handle Count E3: Processor Usage E6: Page File Usage 83 From the ranking score, CS Design 2 is the best scheme to be selected for engine tier while CS Design 1 is the best scheme for server tier. However, only one of the designs would be selected for the client-server based CCPR system. CS design 1 has their respective merits when implemented on server tier. However, it has poorer result for engine tier. In additional, most of the performance measurement methods tested in server tier didn’t show a significant different (E1, E2, E3, E4). As such, the above analysis suggested that for the engine tier and server tier experiment, CS design 2 is the most appropriate design to be used. Table 4.9: Overall Ranking on Volume of Data and Intensity of Traffic Ranking Volume of Data (#data/min) Intensity of Traffic ( #user) CS Design 20 30 40 50 60 1 5 10 15 16 18 D1 2 2 2 2 2 2 2 2 2 2 -- D2 1 1 1 1 1 1 1 1 1 1 1 E1: Calculation Time E4: Thread Count E2: Memory Usage E5: Handle Count E3: Processor Usage E6: Page File Usage Table 4.9 shown the ranking matrix for experiment conducted based on volume of data and intensity of traffic. For comparison between the 2 candidate designs, CS Design 2, has better performance than CS design 1. CS design 2 has shown higher ranking than CS design 1. For experiment conducted using intensity of traffic, CS design 2 scored the first ranking compare with CS design 1. This CS design 2 is capable to support up to 18 users connection, while CS design 1 only up to 16 users. CS design 2 can handle more users compare with the CS design 1. CS design 2 scored almost the highest ranking for engine, server tier and experiments conducted on volume of data and intensity of traffic. CS design 2 is proven has significant better performance than another two candidate design. 84 Therefore CS design 2 is selected as the CS architecture for the client-server based CCPR system. This is a basic experiment conducted for selecting a suitable client-server based CCPR system. Limited computing and experiment resources were used to carry out experiment. The different between CS design 2 and CS design 1 would be more measurable and significant when expanding to the bigger and better computing and experiment resources. Nevertheless, using the provided computing and experiment resources, some amount of different between the candidate designs also can be simulated and figured out. 4.6 Summary The objective of this chapter is to develop a CS architecture design for clientserver based CCPR system. Experiments and statistical analysis were conducted to evaluate the performance of candidate CS designs. The CS design 2 with the load passing procedure at server tier and pattern recognition at engine tier has shown promising result. This chapter has successful identified CS design 2 as the suitable CS architecture for the client-server based CCPR system. The next chapter explains the experiments and analyzes carried out to select a suitable load passing procedure for the client-server based CCPR system. CHAPTER 5 LOAD PASSING PROCEDURE FOR PROCESS MONITORING 5.1 Introduction This chapter describes the experiments and analysis carried out in selecting a suitable load passing procedure for the client-server based CCPR system. Section 5.2 gives explanation on the zone test (Nelson Run Rules) and cumulative tests (CUSUM and EWMA). Section 5.3 gives an overview on the load passing procedure for the control chart monitoring. Sections 5.3.1 to 5.3.3 present the experiment results for the candidate load passing procedures. Further analysis of the results are given in Section 5.4. Section 5.5 discusses the decision made in selecting a suitable load passing procedure for webenabled CCPR system. Section 5.6 gives summary for this chapter. 5.2 Overview on the Load Passing Procedure As described previously, different application domain have different data characteristics and they require different type of load passing procedure. For the webbased CCPR system, the incoming data streams need to be processed based on the state of the process and the severity of the deterioration. In this study, the load passing procedure was regulated using combinations of Nelson’s Run Rules, CUSUM and EWMA. 86 5.2.1 Nelson’s Run Rules Test Nelson’s Run Rules were used to identify whether a process is stable or unstable. It can improve the sensitivity of Shewhart control charts. Eight types of Nelson run rules are illustrated in Figure 5.1. Figure 5.1: Nelson Run Rules (Nelson, 1984) 87 5.2.2 CUSUM Test Cumulative-sum (CUSUM) is an alternative procedure to detect a small shift. It is used to overcome the limitation of Shewhart chart. The Shewhart is only effective in detecting shifts with a magnitude of 2.0 sigma or a larger magnitude (Montgomery, 2004). The CUSUM chart directly incorporates all the information in the sequence of sample values by plotting the cumulative sum of deviations of the sample values from a target value. The target value refers to the process mean for the stable process. There are two ways to represent CUSUM; the tabular CUSUM and the V-mask CUSUM. The tabular CUSUM as shown in Figure 5.2 was implemented in this study because it is relatively easier to implement compared to the V-mask CUSUM. Sample CUSUM Chart UCL=5 Cumulative Sum 5.0 2.5 0.0 0 -2.5 LCL=-5 -5.0 1 4 7 10 13 16 Sample 19 22 25 28 Figure 5.2: Sample of CUSUM Chart The tabular CUSUM works by accumulating derivations from μ0 that are above target with one statistic C+ and accumulating derivations from μ0 that are below target with another statistic C-. The statistic C+ and C- are called one-sided upper and lower CUSUM respectively. They are computed using formulas as shown in Equations 5.1 and 5.2. 88 C+i = max [ 0 , xi – ( μ0 + K ) + C+ i-1 ] - C i = max [ 0 , ( μ0 - K ) - xi + C (5.1) - i-1 ] (5.2) - where the starting values for C+0 = C 0 = 0 In the Equations 5.1 and 5.2, K is usually known as a reference value and it is often chosen about halfway between the target μ0 and the out of control mean value μ1. The formula to obtain K is shown in Equation 5.3. Decision interval H, is used as the decision factor to determine whether the process is under control or in abnormal state. If either C+ or C- is greater than the decision interval H, then the process is considered to be out of control. Generally, a smaller K results in a looser monitoring and a higher K results in a tighter monitoring. For this research, the reference value was set at K=0.75 and the decision interval was set at H=3.34. These values were selected based on the preliminary investigation and reference to Hawkins (1993). K= ½ | μ1 - μ0 | (5.3) 5.2.3 EWMA Test The Exponentially Weighted Moving Average (EWMA) test was first introduced by Roberts (1959). It is also a good alternative to the Shewhart control chart to detect small shifts. The EWMA chart is a type of moving mean chart in which ‘exponentially weighted mean’ is calculated each time a new result becomes available. New weighted mean is calculated using Equation 5.4. Parameter ‘λ’ is the smoothing constant. It has a value between 0 and 1; the commonly used value is 0.2 (Montgomery, 2004). Hence, new weighted mean= (0.2 ×new result) + (0.8 × previous mean). But normally, the choice of ‘λ’ has to be left to the judgment of the quality control specialist, the smaller the value of λ, the greater the influence of the historical data. Hunter (1996) recommended that the value of λ be 0.4, so that the weight given to current and previous observations matches as closely as possible to the weight given by those observations in the Shewhart chart. 89 New Weighted Mean = (λ × new result) + ( (1- λ) × previous mean ) (5.4) The center line and the control limits for the EWMA control chart can be calculated using Equations 5.5, 5.6 and 5.7. Factor L for calculation of UCL and LCL represents the width of the control limits. UCL = μ 0 + Lσ λ (2 − λ ) [1 − (1 − λ ) 2i ] CenterLine = μ 0 LCL = μ 0 − Lσ λ (2 − λ ) (5.5) (5.6) [1 − (1 − λ ) 2i ] (5.7) Montgomery (2004) elucidated that after the EWMA control chart has been running for several periods, the control limits will approach steady state values as given by Equations 5.8 and 5.9. Table 5.1 shows the combination of different values of λ and L, when the ARL ≈ 500 (Vera et al., 2004). UCL = μ 0 + Lσ LCL = μ 0 − Lσ λ (2 − λ ) λ (2 − λ ) (5.8) (5.9) Table 5.1: Suitable λ and L value for EWMA chart with ARL ≈ 500 (Montgomery,2004) λ 0.4 0.25 0.2 0.1 0.05 L 3.054 2.998 2.962 2.814 2.615 90 In practice, the values of λ which work well in the interval 0.05 ≤ λ ≤ 0.25, where λ = 0.05, 0.10 and 0.20 being popular choices. A good rule of the thumb is to use smaller values of λ to detect smaller shifts. The usual three-sigma limits (L=3) work reasonably well, particularly with a larger value of λ. Even when λ is small (λ ≤ 0.01), there is an advantage in reducing the width of limits, using a value of L between 2.6 and 2.8. In this study λ = 0.1 and L=2.7 were chosen as the EWMA parameter. These values were selected based on the reference on Montgomery (2004). Figure 5.3 shows an example of the EWMA control chart. Sample of EWMA Chart 10.75 +2.7SL=10.619 10.50 EWMA 10.25 _ _ X=10 10.00 9.75 9.50 -2.7SL=9.381 1 4 7 10 13 16 19 Observation 22 25 28 Figure 5.3: An Example of EWMA Control Chart (Montgomery, 2004) 5.3 Load Passing Procedure for Client-Server based CCPR System A web server has the capability to process more than one user requests simultaneously. However, in a normal situation, a web server process the users request based on first-come first-served basis. If this policy is implemented in the client-server based CCPR system, all the processes would be equally treated regardless of their condition (severity level). Unfortunately, this is not a desirable situation in a control chart monitoring system. In a client-server based CCPR system, an unstable process should receive higher priority instead of the same priority level with a stable process. For an unstable process, timely corrective action is crucial to avoid unwanted events. To overcome this limitation, this research investigated the load passing procedure to priorize the users request based on their urgency. Unstable process is more urgent than a stable 91 process. The selection of an effective load passing procedure is crucial to ensure that the unstable process always be given higher priority compared to the less stable process. Client A (Process A) Client B (Process B) Client C (Process C) Web Server Pattern Recognizer Client D (Process D) Client E (Process E) Figure 5.4: Client-Server based CCPR system with Multiple Clients Access Figure 5.4 illustrates multiple clients request for control chart monitoring service from a web server. For a normal circumstance, the clients request are processed based on the first-come first-served policy. In such a case, a client with a stable process may be processed earlier than an unstable process if its arrive the server earlier. To prioritize the access for the client with unstable process and to delay the access for the client with stable process, this study investigated alternatives for load passing procedure. Based on the state of the process, the access to the pattern recognizer is prioritized. 92 Table 5.2: Example of calculation to determine the process priority at time, t = 0 Process (Client) Priority Score Ranking (step-2) Cumulative Score (Load Passing Score) (step-1) Delay Time 100ms (step-3) A 0.21 6th B 1.32 5th C 1.43 4th D 1.58 3rd 2.87 + 1.98 + 1.58 + 1.43 + 1.32 = 9.18 2.87 + 1.98 + 1.58 + 1.43 = 7.86 2.87 + 1.98 + 1.58 = 6.43 2.87 + 1.98 = 4.85 E 2.87 1st 0 F 1.98 2nd 2.87 (step-4) 918ms 786ms 643ms 485ms 0ms 287ms Table 5.2 explains how the load passing procedure prioritize the clients request. Using the load passing procedure, all the requests arrived at the server are given a priority score. The priority score is calculated using the load passing procedure. The priority score represents the state of a process. A stable process gets a lower priority score while an unstable process gets a higher priority score. As illustrated in the Table 5.2, Client E gets the highest priority score (2.87) which represents the most unstable process. Client A gets the lowest priority score (0.21) which represents the most stable process. Based on the priority score, all process are re-arranged starting from the process with highest priority score (Process E ) to the process with lowest priority score (Process A). After that, a cumulative score for each incoming process (client) is calculated. From Table 5.2, Client A is the most stable process and given the 6th ranking (last ranking). Its load passing score is calculated by adding the priority scores from other clients: 1st (Client E-2.87), 2nd (Client F -1.98), 3rd(Client D-1.58), 4th (Client C-1.43) and 5th (Client B-1.32). Client A gets a load passing score of 9.18 (2.87 + 1.98 + 1.58 + 1.43 + 1.32 = 9.18 ). On the other hand, Client E is the most unstable process and given the 1st ranking (highest priority). This client must be processed first where it is given zero load passing score. 93 The load passing scores need to be translated into implementable action in the computing system. In this study, the load passing score is translated as delay time in the computing system. The delay time for this example is shown in the last column of Table 5.2. It is calculated by multiple the load passing score with a predetermined delay factor. The delay factor can be set to 100ms, 200ms or 300ms, where the choice is dependent on the system capability. In the above example, the delay factor was set to 100ms. Further explanation on the selection of delay factor will be discussed in Section 5.4.3. Table 5.3: Example of calculation to determine the process priority at time, t =100ms Process (Client) Priority Score Ranking (step-2) (step-1) Cumulative Score Delay Time 100ms (step-3) (step-4) Delay Time After t=100ms (step-5) A 0.21 6 9.18 B 1.32 4 7.86 C 1.43 3 6.43 D 1.58 2 4.85 E 1.27 5 F 1.98 1 1.98 + 1.58 + 1.43 + 1.32 6.91 2.87 818ms (918 -100) 686ms (786-100) 543ms (643-100) 385ms (485-100) 691ms (another new data) 187ms (287-100) Table 5.3 shows the calculation of load passing procedure when the process time, t = 100ms. Each of the assigned delay time is reduced by 100 ms from the previous delay time. For example, the waiting time for Client A is reduced from 918 ms to 818 ms, Client B reduced from 786 ms to 686 ms, and Client C reduced from 643 ms to 543 ms. For the Client E, which has been served by the Pattern Recognizer at t = 0 gets a new process data appended. Thus, a new load passing score is recalculated for this newly updated client. For the rest of Clients (A,B,C,D,F), the delay timing will keep counting down until it reach 0 ms. When the delay time reach 0 ms, then the related client will be allowed to receive the server service (Pattern Recognition). The method to calculate the new load passing score for client E is similar to the one explained 94 earlier. Table 5.3 shows that, Client E obtains a new load passing score of 6.91 which is then transformed into computing delay time which is equivalent to 691ms. Table 5.4 shows the generalized the load passing procedure. Table 5.5 summarizes how each process is queued and take turn to receive the server service. Those shaded cell in Table 5.5 represents the client with the highest priority for the specified instance (t) and assigned delay time of 0 ms. This client received the server service (pattern recognition) without any delay . Table 5.4: Load passing Algorithm Step 1. Calculate the priority score (eg: EWMA) for each client. Step 2. Based on the priority score rank the clients in ascending order. Max (EWMA) Æ Min (EWMA) = [EWMA 1, EWMA 2, EWMA 3, ….. EWMA n] Step 3. Calculate the load passing score for each client. Load Passing Weight, Wn Example : Assign Load passing weight (W 1) for priority 1st , W1 = 0 Assign Load passing weight (W 2) for priority 2nd , W2 = EWMA 1 Assign Load passing weight (W 3) for priority 3rd , W3 = EWMA 1 + EWMA 2 Assign Load passing weight (W 4) for priority 4nd , W4 = EWMA 1 + EWMA 2+ EWMA 3 Assign Load passing weight (W n) for priority Nnd , Wn = EWMA 1 + EWMA 2+ EWMA n-1 Step 4. Convert each load passing weight to delay time. Delay time (DTn) = Load passing weight Wn x Fs Fs = Scaling factor which depend on computing speed (In this study Fs=100ms). Example: DT1 = W1 x Fs DT2 = W2 x Fs …. DTn =Wn x Fs Step 5. Implement delay time for each client Selected client = Client with { min (DTn) } to proceed to web server tier. For client with priority rank 1, Delay time = 0 (no delay) For other client, delay time = DTi Step 6. When DT count down becomes 0, data stream will be appended with new observation data, recalculate new DT and restart with step 1. Table 5.5: Sample of clients being scheduled and waiting for process 95 96 Figure 5.5 presents the flow chart for the client-server based CCPR system. As shown in the figure, three alternative combinations of load passing procedures are can be used to calculate the priority score. The alternatives combinations are the ‘Run Rules and CUSUM test’, ‘Run Rules and EWMA test’ and ‘CUSUM and EWMA test’. The Run Rules test is sensitive to large magnitude shift while the CUSUM and EWMA test are sensitive to small magnitude shift. These alternative procedures are investigated for selecting the most effective load passing procedure. Manufacturing Process Data Process Data Streams Load Passing Procedure Continue Monitoring SPC monitoring window 1. Run Rules + CUSUM No 2. Run Rules + EWMA 3. CUSUM + EWMA Load Passing Decision ? Yes Pattern Recognition Predicted Pattern Correction Action Taken Figure 5.5: Basic Architecture for Client-Server based CCPR System Resume Process 97 5.3.1 Procedure 1 –Load Passing using Run Rules and CUSUM The procedure which combined Run Rules and CUSUM was the first procedure to be evaluated. Six types of control chart patterns were presented to this procedure. There were the random, trend up, trend down, cyclic, shift up and shift down pattern. Random pattern represents the stable process. Trending, cyclic and shifting patterns are the unstable process. Experiments were conducted using six datasets, each dataset compromising a total of 1840 control chart patterns. Table 5.6 shows the classification accuracy for the load passing procedures. For a stable process the higher percentage of stable process classification accuracy the better it is, while for the unstable process, the higher percentage of unstable process classification the better it is. From the classification result, it shows that the Procedure 1 is able to recognize 65.22 % of random pattern and more than 95 % of unstable process. It is an acceptable outcome since most of the unstable processes are correctly identified. For the stable process, the remaining 34.78 % of wrong classification is passed to the pattern recognizer for control chart patterns recognition purpose. Table 5.6: Classification of Stable and Unstable Process - Procedure 1 Data Pattern Stable Unstable Random Trend-up Trenddown Cyclic Shift-up Shift-down Stable 65.22 5.43 3.26 2.17 3.26 2.17 Unstable 34.78 94.56 96.74 97.82 96.74 97.82 All the computation processes consumed system resources. The same is applicable for web-enabled CCPR system. Table 5.6 shows the result for system resources utilization. Five types of system resources were evaluated in this study. There are the memory, processor usage, thread, handle count and page file usage. Detail 98 explanation on the evaluation methods are discussed in Section 3.5. For the system resources measurement, basically the smaller the value is the better it is. Its mean that the process uses lesser system resource. Table 5.7 shows that Procedure 1 used 72563 Kbytes of memory, 86% of processor time, 28.65 threads count, 635.2 handles count and 90,624 Kbytes of page files. Table 5.7: System Resource Usage - Procedure 1 System Resources Usage Memory Usage 72563.8 Kbytes Processor Usage Thread Count Handle Count 86.39 % 28.65 635.2 Page File Usage 90,624 Kbytes The load passing procedure was also evaluated based on the process time. Process time is the duration from the client sending the request until the client received feedback from the server. For this case, the shorter processing time the better it is. However, a bit different measurement criterion is implemented in this study. The selected load passing procedure should give higher priority to unstable process, which means the unstable process be processed first. On the other side, the stable process should be given lower priority. By doing so, the unstable process has shorter process time while the stable process has longer process time. As such, system resources are always allocated to the unstable process instead of the stable process. Table 5.8 shows the process time for Procedure 1 using three different delay factors. Selection of delay factor is provided in coming Section 5.4. Using the delay A, it took 21020 ms, delay B took 22541 ms and delay C took 23521 ms. For the unstable process, cyclic pattern took the longest time. It was due to the cyclic pattern characteristics, which move up and down continuously. More computation resource was needed to add and subtract the control chart value. For other unstable patterns, they do not have special characteristics. 99 Table 5.8: Process Time for Procedure 1 (millisecond) Data Pattern Stable 5.3.2 Unstable Random Trend-up Trenddown Cyclic Shift-up Shift-down Delay A 100ms 21020 8707 8636 14630 8065 8165 Delay B 200ms 22541 7954 8021 12451 7861 7901 Delay C 300ms 23521 8965 9212 13451 8512 8752 Procedure 2 – Load Passing using Run Rules and EWMA The Nelson Run Rules and EWMA test are the second procedure investigated. Similar to the first load passing procedure, Table 5.9 shows that the classification accuracy for this load passing procedure. Basically, Procedure 2 was able to recognize 71.74 % of the stable process. Compare to the Procedure 1 which obtained 65.22 %, Procedure 2 gave better result. For unstable process, Procedure 2 resulted in an average of 95% classification accuracy which is almost similar to the Procedure 1. Table 5.9: Classification of Stable and Unstable Process - Procedure 2 Data Pattern Stable Unstable Random Trend-up Trenddown Cyclic Shift-up Shift-down Stable 71.74 4.34 2.17 1.08 6.52 1.08 Unstable 28.26 95.65 97.83 98.91 93.48 98.91 100 Table 5.10 shows the system resources usage for Procedure 2. Basically, this procedure used 74, 866 Kbytes of memory, 84.68 % of processor time, 26.73 threads count, 642.55 handles count and 91,826 Kbytes page files or virtual memory. Compare with Procedure 1, there is not much difference. Both procedures used similar amount of resources to process the control chart data. Table 5.10: System Resource Usage - Procedure 2 System Resources Usage Memory Usage 74,866.3 Kbytes Processor Usage Thread Count Handle Count 84.68 % 26.73 642.55 Page File Usage 91,826 Kbytes Table 5.11 shows the process time for Procedure 2 using three different delay times. Generally, the result shows stable process took 21980 to 22956 ms while unstable process took 7561 to 11650 ms. For stable process, there is no big difference. For unstable process, cyclic pattern need took more time to process. It was due to the cyclic time characteristics as explained in Procedure 1. These two procedures got similar process time, because both of them using Run Rules and one of the cumulative tests (CUSUM or EWMA) as the combination of load passing procedure. . Table 5.11: Process Time for Procedure 2 Data Pattern Stable Unstable Random Trend-up Trenddown Cyclic Shift-up Shift-down Delay A 100ms 21980 7980 8534 11650 7860 7973 Delay B – 200ms 22507 7831 8201 10453 7561 7638 Delay C300ms 22956 8765 8603 10731 7960 8165 101 5.3.3 Procedure 3 – Load Passing using CUSUM and EWMA The CUSUM and EWMA test was the third procedure investigated. Table 5.12 shows the classification accuracy for the third procedure. Basically, this process was able to recognize 96% of the stable pattern. For the unstable patterns, shift-up (95%) and shiftdown (80%) pattern achieved higher accuracy compared to the trend-up and trend-down patterns. Shifting pattern has more obvious increment or decrement compared to the trending pattern. Hence it was more detectable by cumulative test. Another observation was the cyclic pattern which has 16% accuracy only. The cyclic pattern had a characteristic of deteriorating its value repeatedly from positive to negative and otherwise. Cyclic pattern was quite difficult and took time to be detected using the cumulative test. Table 5.12: Classification of Stable and Unstable Process - Procedure 3 Data Pattern Stable Unstable Random Trend-up Trenddown Cyclic Shift-up Shift-down Stable 96.56 20.65 25.43 83.69 4.34 19.56 Unstable 30.43 79.34 74.57 16.30 95.65 80.43 Table 5.13 shows the system resources used by the Procedure 3. This procedure used 60,712 Kbytes memory, 73% of processor, 22 threads count, 600 handles count and 85,238 Kbyte page files. From the result, it shows that this procedure used lesser system resources compared to Procedures 1 and 2. It was due to the Procedure 3 which only implementing the cumulative tests, without applying the eight Nelson Run Rules tests. Run Rules test took much more resource since each of the control chart data needed to go through all the eight Run Rules test. 102 Table 5.13: System Resource Usage - Procedure 3 System Resources Usage Memory Usage 60,712.5 Kbytes Processor Usage Thread Count Handle Count 73.38% 22.63 600.85 Page File Usage 85,238 Kbytes Table 5.14 shows the process time for the Procedure 3. On overall, this procedure took 22989 to 24538 ms to complete the process the stable data stream. It took 7945 to 18603 ms to complete the unstable process data stream. This procedure took slightly longer time compared to the Procedures 1 and 2. It was due to the cumulative test needed to refer back to previous cumulative value before making decision on the stability of a control chart data. While Run Rules test did not refer back to the previous value. Table 5.14: Process Time for Procedure 3 Data Pattern Stable Unstable Random Trend-up Trenddown Cyclic Shift-up Shift-down Delay A 22989 9813 9368 15785 9308 8738 Delay B 23654 8730 8214 12067 8935 7945 Delay C 24538 10345 11788 18603 13540 9867 103 5.4 Analysis and Comparison Among the Load Passing Procedure Analysis and comparison of the three candidate load passing procedures are discussed in this section. Comparison is presented in term of classification accuracy, system resource usage and process time. The bar chart and the radar chart are used to analysis the data in graphical format. 5.4.1 Classification Accuracy Load passing procedure was used for filtering the dataset and passing the unstable control chart data to pattern recognizer for further pattern classification. Without the load passing procedure, all the dataset were directly passed to the pattern recognizer. It was a heavy burden to the pattern recognizer since it may needed to perform unnecessary pattern recognition. Stable and unstable data classification was one of the important decision factors in selecting a suitable load passing procedure. Table 5.15 shows the stable and unstable data classification accuracy using the three candidate load passing procedures. Basically, the higher percentage of correct data classification, the better the procedure it is. For the stable process classification, Procedure 1 was able to recognize 65.22 % of the stable process, Procedure 2, 71.74 % and Procedure 3, 96.56 %. Procedure 3 was the best procedure since it successfully classified 96.56 % of the stable process. While Procedure 1 was the worst, since it wrongly classify 44.88 % of the stable process as unstable process. On the other side, Procedure 2 is the best procedure in classifying the unstable data. Procedure 2 can identify more then 95% of the unstable process. Following by the Procedure 1, which slightly lower but also can identify more then 93 % of unstable process. The worst case went to Procedure 3, not all the unstable pattern able to achieve high accuracy rate. 104 Table 5.15: Summary of Classification Accuracy for Candidate Procedures Classification Accuracy Stable Process Procedure 1 (RR & CUSUM) Procedure 2 (RR & EWMA) Procedure 3 (CUSUM & EWMA) Unstable Process Random Trend-up Trenddown Cyclic Shift-up Shiftdown 65.22 94.56 96.74 97.82 93.74 97.82 71.74 95.65 97.83 98.91 95.48 98.91 96.56 79.34 44.57 16.30 95.65 80.43 From the bar chart shows in Figure 5.6, Procedure 3 unable to achieve more than 90 % accuracy for all the unstable patterns. The worst chart pattern went to cyclic pattern which only reached 16.3 %. This was due to the characteristic of cyclic pattern which periodically moved up and down. Cyclic pattern with periodically up and down behavior was quite difficult to be detected by using the cumulative test only. This issue didn’t happened for the Procedures 1 and 2. Procedures 1 and 2 used Run Rules tests to Classification Accuracy overcome the limitation of the cumulative test. 110 100 90 80 70 60 50 40 30 20 10 0 Procedure 1 Procedure 2 Procedure 3 Random Trend-up TrendCyclic down Data Pattern Shift-up Shift-down Figure 5.6: Summarize of Classification Accuracy using Bar Chart. 105 Figure 5.7 shows the radar chart for classification accuracy. For a radar chart, the bigger the web (the connected line), the better it is the overall performance. Radar chart was used as the graphical comparison method when making selection. As illustrated in radar chart, Procedure 2 had a slightly bigger web line compare with Procedure 1 and the smallest one was belonged to Procedure 3. Hence, in term of classification accuracy, Procedure 2 was the best procedure. Random 100 80 60 Trend-up Shift-down 40 20 Procedure 1 0 Procedure 2 Procedure 3 Shift-up Trend-down Cyclic Figure 5.7: Radar Chart for Classification Accuracy 5.4.2 System Resources Another benchmark used for analysis of the result was the system resources usage. System resources usage was measured using the memory, processor usage, threads, handles count and page file usages. Memory usage was referring to the physical memory usage, while Page files usage were referring to the virtual memory. Compare with physical memory, virtual memory was used as the secondary additional memory storage to spend up the computation process. 106 Table 5.16: Summary of System Resources Usage Procedure 1 (RR + CUSUM) Procedure 2 (RR + EWMA) Procedure 3 (CUSUM + EWMA) Memory Usage 72563.8 Kbytes 74866.3 Kbytes 60712.5 Kbytes Processor Usage Thread Count Handle Count 86.39 28.65 635.2 84.68 26.73 642.55 73.38 22.63 600.85 Page File Usage 90,624 Kbytes 91,826 Kbytes 85,238 Kbytes Table 5.16 shows the summary of system resources usage for three candidate load passing procedures while Figure 5.8 presents the data in bar chart format. From the bar chart, it shows that Procedure 3 used lesser resource compare with Procedure 1 and 2. It was due to Procedure 3 only implementing the cumulative statistical test, while Procedure 1 and 2 also implementing the Run rules test. Run rules test was a zone test, which divided the control chart into 3 zones. Subsequently, 8 different rules were tested against the chart pattern. If fail any rules, then the chart pattern was considered as the unstable pattern. Since it needed to go though 8 different rules before can declare the stability of the control chart data, more system resources was allocated. 100.00 90.00 80.00 70.00 60.00 50.00 40.00 30.00 20.00 10.00 0.00 Measurement Procedure 1 Procedure 2 Procedure 3 Memory Usage Processor Usage Thread Count Handle Count Page File Resource Figure 5.8: Summarize of System Performance using Bar Chart 107 Compare with others’ performance measurement method, which higher value the better it is, for system resources, the lower value the better it is. Since it represented lesser system resources was used to perform the tasks. Figure 5.9 presents the result using the Radar Chart. For this radar chart, the smaller web the better is it. From the radar chart, it show Procedure 3 had the smaller web line, while Procedure 1 and 2 almost overlapped each other. Hence it means Procedure 3 was the best procedure to be selected for system resources usage. Nevertheless, Procedure 3 was implementing CUSUM and EWMA test, the cumulative statistical test has the weakness of not sensitive to the big shift. Procedure 1 Memory Usage 100.00 80.00 Procedure 2 Procedure 3 60.00 40.00 Page File Processor Usage 20.00 0.00 Handle Count Thread Count Figure 5.9: Radar Chart for System Performance 108 5.4.3 Process Time Process time was last measurement method. Process time was referred as the waiting time from the client sent the request to server, until the client received feedback from the server. It is crucial to ensure the client can receive timely feedback from the server. Table 5.17 compares the process time for the candidate procedures. Basically, random or stable process took longer time compare with unstable process. On overall, the three candidate procedures able to achieve the purpose of load passing. The special intention of this load passing procedure was to delay the stable process, while gave higher priority to the unstable process. On time correction action was crucial for the unstable process while no action is needed for stable process. Table 5.17: Summary of Process Time for Candidate Procedure (millisecond) Stable Process Unstable Process Random Trend-up Trenddown Cyclic Shiftup Shiftdown Procedure 1 – (RR + CUSUM) 22,360 8542 8623 13,677 8146 8272 Procedure 2 – (RR + EWMA) 22,481 8192 8446 10,944 7793 7925 22,727 9629 9790 16,151 10594 8850 Procedure 3 – (CUSUM + EWMA) Figure 5.10 shows the bar chart for three candidate procedures. From the chart, it shows the random pattern took the longest time which around 22,000 ms for all procedures. For the portion of unstable patterns, cyclic pattern needed longer process time (10k – 16k) compare with other patterns (7k-10k). Longer time for cyclic pattern possible due to the characteristic of cyclic pattern which was periodically moving up and down. For other unstable pattern, it took averagely 8689 ms to complete the load passing test. 109 25,000 20,000 15,000 Procedure 1 Procedure 2 10,000 Procedure 3 5,000 0 Random Trend-up Trenddown Cyclic Shift-up Shift-down Figure 5.10: Summarize the Candidate Procedure Process Time using Bar Chart In term of best procedures for all six patterns, Figure 5.11 presents the overall process time using the radar chart. Basically, the smaller the web line the better it is, since it represent the smaller amount of waiting time. From the radar chart, Procedure 3 had the biggest web area which represented used the longest processing time. This was followed by Procedure 1 and then Procedure 2 had the smallest web line. Random 25,000 20,000 15,000 Shift-down Trend-up 10,000 5,000 Procedure 1 Procedure 2 0 Procedure 3 Shift-up Trend-down Cyclic Figure 5.11: Radar Chart for Candidate Procedures Process Time 110 To make the selection of procedure based on the purpose of unstable process always received higher priority then stable process, Table 5.18 summaries the comparison between the stable and unstable process. For the stable process, the longer the process time the better it was. Procedure 3 was the best procedure since it had the longest process time. For the unstable process, the smaller the process time, the better it is. Procedure 2 was the best procedure for unstable process since it had the shortest process time. It is quiet difficult to make a good decision, since stable (Procedure 3) and unstable process (Procedure 2) gave different selection answer. Table 5.18: Comparison of Process Time among the Candidate Procedure Stable Process Unstable Process Difference (Stable – Unstable) Procedure 1 22,360 9452 12,908 Procedure 2 22,481 8660 13,820 Procedure 3 22,727 11,003 11,723 Hence third column was added into the Table 5.18 to make a comparison between the stable and unstable process. Value of third column was calculated by minus the stable process with unstable process. The client-server based CCPR system needed a load passing procedure which can give priority to the unstable process (problem process) instead of stable (normal process). The best procedure is the procedure can delay the stable process, and priories the unstable process. Unstable process needed timely attention and corrective action. From the comparison column, Procedure 1 had a difference of 12,908 ms, Procedure 2 had a difference of 13,820 ms and Procedure 3 had a different of 11,723 ms. This comparison assist us in making a better judgment by differentiating the process time for stable and unstable processes. Therefore the Procedure 2 was selected since it gave the biggest differentiation between the stable and unstable process. 111 Beside the process time, this chapter made a selection of the suitable delay factor. The delay factor was a constant variable added into the system. It was used to convert the load passing score into some kind of implementable computing action. Table 5.19 shows three different delay factors used to carry out the experiments. Delay A represents 100 ms, Delay B represents 200 ms and Delay C represents 300 ms. Compare with Table 5.17 grouping the process based on the load passing procedure, Table 5.19 grouped the process time based on three different delay factors. Since the same data sets were used, the experiments gave the same results whereby the unstable process resulted in shorter process time. Table 5.19: Summary of Process Time in term of Different Delay Time Stable Unstable Random Trend-up Trenddown Cyclic Shift-up Shiftdown Delay A (100ms) 21,663 8833 8846 14,021 8411 8292 Delay B (200ms) 22,567 8171 8145 12,323 8119 7828 Delay C (300ms) 23,338 9358 9867 14,428 10,004 8928 The same policy was applied for delay factor grouping. The selection of delay was based on the capability to differentiate the process time between the stable and unstable processes. Table 5.20 shows the difference between stable and unstable processes. From the result, Delay A had the capability to differentiate 11,982 ms, Delay B able to achieve 13,649 ms and Delay C had the capability to differentiate 12,821 ms. From the comparison, Delay B was the best delay factor, followed by delay C and then lastly delay A. 112 Table 5.20: Comparison among the Different Delay Time (millisecond) 5.5 Stable Unstable Difference (Stable – Unstable) Delay A (100ms) 21,663 9680 11,982 Delay B (200ms) 22,567 8917 13,649 Delay C (300ms) 23,338 10,517 12,821 Selection of Suitable Load Passing Procedure After analyzing the performance of three candidates of load passing procedures, Table 5.21 compares the rank of each procedures. These ranking was drawn based on the results presented in Sections 5.4.1, 5.4.2 and 5.4.3. A ranking of 1 indicated the best procedure and a ranking value of 3 represented the worst procedure. The same ranking indicated no significant difference for that particular measurement. Table 5.21: Overall Ranking for the Candidate Load Passing Procedures Classification Accuracy System Resource Process Time Procedure 1 (RR + CUSUM) 2 2 3 Procedure 2 (RR + EWMA) 1 2 1 Procedure 3 (CUSUM + EWMA) 3 1 2 From the above comparison, it indicates that Procedure 2 is the best procedure from the view of classification accuracy, system resources and process time. This procedure almost scored the highest ranking for all the measurement methods. Although this procedure only capable in getting second place in system resource, but compare with other two factor: classification accuracy and process time, this factor was the third important decision factor. The most important decision factor should be the classification 113 accuracy and then process time. Classification accuracy and process time was crucial to ensure unstable pattern could be identified on time and then corrective action could be taken earlier. From the perspective of system resource, more computing hardware could be added to achieve better performance. As such, the above analysis suggested that Procedure 2 was the most appropriate procedure to be used. 5.6 Summary The objective of this chapter is to develop a load passing procedure for a clientserver based CCPR system. The experiments had been conducted for selecting a suitable load passing procedure. The procedure design with the combination of the Nelson Run Rules + EWMA test had shown the best results for classification accuracy, process time as well as good result for the system resource usage. This chapter had identified an effective load passing procedure for the client-server based CCPR system. The next chapter discusses the prototype system implementation and evaluation. CHAPTER 6 PROTOTYPE SYSTEM IMPLEMENTATION AND VALIDATION 6.1 Introduction After identified the suitable CS architecture and load passing procedure, the next phase is prototype system implementation and evaluation. This chapter describes the techniques and methods used for the prototype system implementation and evaluation. Web-enabled CCPR system was used as the prototype system implementation and evaluation for the client-server based CCPR system. Section 6.2 describes the system implementation from the user perspective. Typical web-enabled CCPR system users are consisted of the manager, the operator and the customer. Each user is given different functions and access right. Section 6.3 shows the data flow diagram for web-enabled CCPR system. Section 6.4 presents the database structure to store the manufacturing process information and control chart data. Section 6.6 presents graphical user interface for the web-enabled CCPR system. Section 6.7 explains the evaluation methods used for validation purpose. White and black box testing are used to validate the system functionality. Section 6.8 provides the guideline for transforming the standalone system to client-server based CCPR system. The summary of system implementation and evaluation are given in Section 6.9. 115 6.2 Web-enabled Control Chart Patterns Recognition System Operational Framework Basically the web-enabled CCPR system are designed for three types of users, the system administrator, the operator and the customers. Each category of user has different role to the system. The system are designed in three modules: system management and administration module for administrator, operational module for operator and lastly client module for customer. Different functions are provided in each user module. Explanation on each particular module is given in Sections 6.2.1 – 6.2.3. 6.2.1 System Management and Administration Module As shown in Figure 6.1, the management module provides all the function needed by administrator to manage the web-enabled CCPR system. The intended user for this module is the manager. After log-in into the system, the manager can view, add, edit and delete the customer, operator, machine, product and manufacturing process information. In additional, the manager also can change his personal details. As the role of system administrator, the manager also can upload the control chart data and view the control chart monitoring and patterns recognition result. 116 Customer Inform ation Management Operator Inform ation Management Login Manager System Administrator Machine Information Management Product Information Management Manufacturing Process Management Manage Personal Information Control Chart Data Management Control Chart Monitoring Figure 6.1: Functions provided for Administration Module 6.2.2 Operational Module As the name implied, the operation module is intended for the operator. Basically, this module only provides the functions for adding and uploading the control chart data and then viewing the control chart analyzed result. Compare with the administration module, lesser privileges are given in this module. The user for this module is allowed to edit his particular and change personal password. As shown in Figure 6.2, an operator can key-in and add the control chart data. They can either choose to key-in manually or upload a text file or upload a zip file. The operator can choose to manually enter the data into the system. It is used by the operator 117 who collecting the manufacturing data manually. However, there is prone to data collection error. A better approach is for the operator to upload a text file. Uploading a text file is only possible for the automated data collection machine. The uploaded data need to be preprocessed into a suitable text file format. Alternatively, the operator can choose to upload a compressed file. By compressing the text file before upload, it can minimize the file size, indirectly minimize the network bandwidth usage and protect the integrity of data transfer. Key-in Manual Control Chart Data Input Imported From File (Text File) Login Operator Imported From File (Zip File) View Control Chart Manage Personal Information Figure 6.2: Functions for Operational Module 6.2.3 Client Module The client module is designed for customer. Compare with other modules, this module has the least privilege. As shown in Figure 6.3, a customer only allowed to view the recognition result and modify his personal particular. This function enables the customer to view the status of the selected production line. This control chart can be used as a marketing tool to convince the potential customer on the quality of a manufacturing process. 118 View Control Chart Customer Login Manage Personal Information Figure 6.3: User Functions provided at Client Side 6.3 Data Flow Diagram Data flow diagram was used to gather and analyze the user requirements. Data flow diagram level 0 also known as context diagram. Figure 6.4 shows the context diagram for web-enabled CCPR system. The entities of web-enabled CCPR system are consisted of the operator, customer and system administrator. Each entity can input and obtain different output from the system. For example operator input the control chart data and retrieve the control chart information and analyze result from the system. Figure 6.5 shows the level 1 of data flow diagram. The level 1 diagram elaborate more about the system functionality. Different process used to process the data given by the entities. The processed data was kept in database for further analyze and reference. Figure 6.4: Context Diagram for Web-enabled CCPR System Figure 6.5: Data Flow Diagram for Web-enabled CCPR System 119 120 6.4 Database Design A good database design is critical to a successful system development and deployment. As presented in Figure 6.6, this section provides an overview on the database structure for the web-enabled CCPR system. Each table has its own function. The database connection library developed by Mathematic Department from University of Toronto is used for connecting the MySQL database with Matlab engine. This library is crucial for this web-enabled CCPR system since no standard library provided by Matlab to access the MySQL database server. More detail explanation on the database scheme, please refer to Appendix B. Figure 6.6: Web-enabled CCPR System Database Structure 121 6.5 System Integration The system integration for the web-enabled CCPR system is illustrated in Figure 6.7. The main components of the proposed web-enabled CCPR system are the client tier, server tier and engine tier. The functions of each component are summarized as below: i. The client tier consists of a personal computer with internet connection. User can use a standard web browser with Java Applet capability to access the webenabled CCPR system. This client tier communicate with server tier using Java Server Pages (JSP) and Java Applet is used to plot the control chart. ii. The server tier consists of a Tomcat World Wide Web (WWW) server and a MySQL server. The Tomcat server acts like an intermediate machine to process and response to all user requests. MySQL is a database server used to keep all the control chart related data and user information. JDBC library is used to establish the database connectivity between the WWW server and database server. iii. The engine tier consists of a patterns recognizer. The patterns recognizer uses to monitor and detect abnormal patterns exist in the control chart. The patterns recognizer is adapted from Adnan (2002). For the development of a webenabled CCPR system, several toolboxes are implemented in this project. These toolboxes are included the data acquisition and the database toolbox. 122 Figure 6.7 : System Integration for the Web-enabled CCPR System 6.6 Graphical User Interface User interface design is an important element to be considered. It determines the system usability. A good graphical user interface (GUI) should make the user feel easy and comfortable while interacting with the system. It enables the user to understand what inputs are needed to obtain the required output. The web-enabled CCPR system comes with several graphical user interfaces. Example of user interfaces are manufacturing process, machine and customer information. Only selected interfaces with important features are shown in this section. Figure 6.8 shows the interface in the client module for retrieving the manufacturing process information. A customer is allowed to access and view his own manufacturing process information. Figure 6.9 shows the interface for adding a new 123 manufacturing process and control chart data. This function used by the operator to manually key-in the process information. Figure 6.10 shows the interface for the manager to view and monitor the manufacturing process. The manufacturing process information and its characteristic are displayed in this screen. (Client Module) Figure 6.8: Client Module Interface: Manufacturing Process Listing (Operation Module) Figure 6.9: Operational Module Interface: Adding Manufacturing Process Data 124 (Administration Module) Figure 6.10: Administration Module: Display the Control Chart Information 6.7 System Validation All the newly developed system as well as the modified system must be validated. System testing and validation is an important task to make sure the developed system is completed; bugs free and ready to be deployed. In this study, white box and black box testing were used for the system validation. 6.7.1 White Box Testing White box testing is a detail testing towards the programs logic flows. All the functions developed in this system need to be tested to ensure the program logic being correctly coded. Figure 6.11 shows the example of white box testing for procedure “user authentication”. All the system functional went through the informal white box testing during the coding process. 125 Process: User Authentication 1. User key-in their username and password. 2. If username or password empty, show warning message, redirect to login page (step 1). 3. else, pass the username and password to server 4. Verify the username and password with the one kept in database. 5. If username and password correct, redirect to user module. 6. else, display error message, redirect to login page (step 1). 7. Redirect user to correspondent module. 8. end. 1 3 2 4 5 6 7 8 Figure 6.11: White Box Testing for User Authentication 6.7.2 Black Box Testing Black box testing is a kind of system validation where the logic of a function is ignored. This testing is focus on whether output from the system is same as what the user expected. Black box testing can be used to detect error such as user interface, data collecting and data processing error. As shown in Figure 6.12, two set of published data and two set of industrial data were used for the system validation. 126 Figure 6.12: Web-enabled CCPR System Validation Framework using Published and Industrial Dataset a) Using Published Data Published data is the dataset used by other researchers to carry out their research experiment. Two different data sets from the published resources were selected for system validation. The first data set was the ‘measurement on the silicon wafer width in a semiconductor process’, taken from the National Institute of Science and Technology (NIST). A completed measurement value referred at Appendix D. Figure 6.13 shows the control chart plotting while Table 6.1 shows the system performance and system calculated output. The client side took 13.28 second, 10,902 Kbytes of memory and 48.46 % of CPU processing time to complete the given task. This web-enabled CCPR system is capable in detecting abnormal shift in process mean. For example, this system is capable in detecting certain data points which falling beyond the control limits. 127 R2 – Nine points in Zone C R1 – One point beyond Zone A EWMA Test CUSUM Test Figure 6.13: Control Chart Plotting for Published Dataset 1 Table 6.1: System Validation Result for the Published Dataset 1 Process : Measurement of Silicon Wafer Width Source : NIST / SEMATECH e-Handbook of Statistical Methods System Performance Calculation Time 13.28 second Memory Usage 10,902 K Processor Usage 45.56 % Thread Count 16 Handle Count 302 Page File Usage 12,952 K System Output Outside Control Limit Detection Stability Test and PR Result Run Rules 1 (Point 66 and Point 71) EWMA Test Unstable (Point 39 … 82) CUSUM Test Unstable (Point 41 ….86) Cyclic (Point 41 ) 128 The second data set was the “Measurement on the Metallic Firm Thickness”, taken from Process Quality Control, Trouble Shooting and Interpretation of Data (Ott et al., 2000). All the measurement value for this dataset can be found at Appendix E. The control chart is shown in Figure 6.14 while the system performance is shown in Table 6.2. For this dataset, it took 14.89 second, 11,514 Kbytes memory and 49.64 % of the CPU processing time. Compare with first dataset, this dataset took longer time and more system resource. It was due to this dataset was more complex and it had more out of control points compare with previous dataset. R2 R2 – Nine points in Zone C R5 – 2 out of 3 in Zone A or beyond. EWMA Test R1 R1 – One point beyond Zone A EWMA Test CUSUM Test CUSUM Test Figure 6.14: Control Chart Plotting for Published Dataset 2 Table 6.2: System Validation Result for the Published Dataset 2 Process : Measurement on the Metallic Film Thickness (in μm) Source : Process Quality Control, Trouble Shooting and Interpretation of Data, 3rd USA: McGraw-Hill. System Performance Calculation Time 14.89 second Memory Usage 11,514 K Processor Usage 49.64 % 129 Table 6.2: System Validation Result for the Published Dataset 2 (continue) Thread Count 12 Handle Count 292 Page File Usage 11,547 K System Output Outside Control Limit Detection Stability Test and PR Result b) Run Rules 1 (Point 4, 69, 72) EWMA Test Unstable (Point 3 … 27, 59 ….. 80) CUSUM Test Unstable (Point 8 ….37, 52 ,,,,, 100) Trend-Up (Point 52, 55) Using Industrial Data Industrial data is the dataset collected from real industrial manufacturing process. Similar to the published data, the industrial data were used for the system validation. Industrial data is the dataset collected from production measurement. It is useful for validate the web-enabled CCPR system functionality in production environment. The first two dataset with limited data were use to validate the system processing and analyst accuracy. Hence the control chart was drawn out to compare with the system result. The third data set has more control chart data. It is use to validate the load passing capability for the client-server based CCPR system. The first data set for industrial data was the ‘PCB solder height’ from Solectron Technology Sdn. Bhd adopted from Tan (2004). The detail measurement value for this dataset can be found at Appendix F. Figure 6.15 shows the control chart plotting while Table 6.3 shows the system performance. This dataset took 10.74 second, 11,114 Kbytes memory and 43.44 % of the CPU processing time to complete process the given dataset. From the control chart, it indicated this dataset was coming from a stable process. However using the web-enabled CCPR system, some abnormal control chart patterns were detected in the early stage of data collection. 130 EWMA Test Figure 6.15: Control Chart Plotting for Industrial Dataset 1 Table 6.3: System Validation Result for the Industrial Dataset 1 Process : PCB Solder Height Source : Solectron Technology Sdn. Bhd. (Tan, 2004) System Performance Calculation Time 10.74 second Memory Usage 11,114 K Processor Usage 43.44 % Thread Count 11 Handle Count 284 Page File Usage 10,047 K System Output Outside Control Limit Detection Stability Test and PR Result ---EWMA Test Unstable (Point 2 … 8) The second data set was the “Measurement of Edge Wave Using Taper Gauge”, taken from Jabatan Kualiti Perusahaan Sadur Timah Malaysia (Ahmad, 2005). All the measurement value for this dataset can be referred at Appendix G. The control chart plotting shown in Figure 6.16 and the system performance shown in Table 6.4. Compare 131 with first dataset, this dataset took longer time and more resources. It was due to the industrial dataset 1 was randomly distributed within the control chart limits, so it didn’t require the patterns recognition service. On the other side, industrial dataset 2 had shown some abnormal patterns which were detected by Run Rules and EWMA test. Hence it took longer time to complete process this dataset. R5 – Two out of 3 in Zone A or Beyond. EWMA CUSUM Figure 6.16: Control Chart Plotting for Industrial Dataset 2 Table 6.4: System Validation Result for the Industrial Dataset 2 Process : Measurement of Edge Wave Using Taper Gauge. Source : Jabatan Kualiti Perusahaan Sadur Timah Malaysia (Ahmad, 2005) System Performance Calculation Time 11.56 second Memory Usage 12,281 K Processor Usage 46.87 % Thread Count 13 Handle Count 294 Page File Usage 12,578 K 132 Table 6.4: System Validation Result for the Industrial Dataset 2 (continue) System Output ---- Outside Control Limit Detection Run Rules 5, EWMA Test Unstable, (Point 27 … 30, 45) CUSUM Test Unstable (Point 28 ….30, 44, 45), Trend Down (Point 27,28) Stability Test and PR Result Third dataset was the tin platting process data collected from Perstima Berhad, Pasir Gudang (Azrina, 2008). All the process data can be referred at Appendix H. This dataset was use to validate the system load passing capability. Table 6.5 show the dataset load passing results. In this table, six process parameter were monitored together. Each measurement was given a priority score. measurement 4 is the most unstable process, hence it get the higher priority score. Measurement 4 get the first ranking and was processed immediately. Following by measurement 1, 2, 6, 3 and lastly 5. Table 6.5: Calculation for dataset 3 to determine the process priority (t=a) Process Priority Score Ranking Calculation Load Passing Score 1.642 Delay Time (100ms) Measure 1 0.334 2nd 1.642 Measure 2 0.140 3rd 1.642 +0.334 1.976 198ms Measure 3 0.107 5th 1.642+0.334+0.14+ 0.113 0 2.229 223ms Measure 4 1.642 1st 0 0ms Measure 5 0.016 6th 1.642+0.334+0.14+ 0.113+0.107 1.642 +0.334+0.14 2.336 234ms Measure 6 0.113 4th 2.116 212ms *Note: Ranking 1st mean most unstable process. Ranking 6th mean most stable process. 164ms 133 After 100ms, Table 6.6 show the delay time for each measurement. Each measurement has their own count-downing delay time. On the same time, each delay time will be reduce by 100ms. Only the measurement 4 which data was previously processed, will received a new data point. From the table, it show dataset 4 get the priority score of 1.109. Once again, compare with other dataset, 1.109 is the highest priority score. It means it is the most unstable data. Hence measurement 4 received the first ranking again and will be process immediately. For other measurement, when their delay time reach zero, then it will be process immediately on that particular time. The experiment has illustrated the normal scenario, an unstable manufacturing process has the greater chance of deteriorate into unstable. It maybe due to improper or no corrective action has been taken on problem process. Table 6.7 illustrated the next few coming measurement data being scheduled by the load passing procedure. Table 6.6: Calculation for dataset 3 to determine the process priority (t=a+100ms) Process Priority Score Ranking Calculation Load Passing Score 1.642 Delay Time (100ms) Measure 1 0.334 2nd 1.642 Measure 2 0.140 3rd 1.642 +0.334 1.976 98ms Measure 3 0.107 5th 1.642+0.334+0.14+ 0.113 0 2.229 123ms Measure 4 1.109 1st 0 0ms Measure 5 0.016 6th 1.642+0.334+0.14+ 0.113+0.107 1.642 +0.334+0.14 2.336 134ms Measure 6 0.113 4th 2.116 112ms 64ms *Note: Ranking 1st mean most unstable process. Ranking 6th mean most stable process. Two set of published and three set of industry data were use to validate the features of client-server based CCPR system. The client-server based CCPR system is capable to recognize the stable and unstable control chart data. The load passing procedure is proven capable to give way to unstable process. Hence the functionality and feasibility of client-server based CCPR system is validated. Table 6.7: Sample of measurement data schedule by load passing procedure. 134 135 6.8 Guideline for Transforming the Standalone to Client-Server based CCPR system. Table 6.8: Guideline for converting the standalone to Client-server based system 1. User requirement study (Use Case and Data flow diagram). 2. Understand the current standalone system architecture. 3. Divide the standalone system into individual functional tier. 4. Identify the functions which can be assigned to client tier (web browser). 5. Identify the functions which can be assigned to server tier (web server). 6. Identify the functions which can be assigned to engine tier (patterns recognizer). 7. Design the Database (database diagram) and select a suitable database server (MySQL, Oracle or Microsoft SQL database server). 8. Select a suitable web server (Tomcat or IIS) and dynamic webpage script (JSP / PHP / ASP.NET). 9. Identify the suitable connectivity to access the database and code development for dynamic webpages and code customization for engine tier. Table 6.8 discusses the steps used to convert the standalone into the client-server based CCPR system. The first step is the user requirement study. User requirements is presented in the format of use case and the data flow diagram. The system users are consisted of the customer, the operator and the engineer. The data flow diagram is used to demonstrate how the input data is being process to produce the user desired output. The second step is to understand the standalone system architecture. After that, divide the standalone system into individual functional tiers. The functional tiers for standalone CCPR system are consisted of the user input interface, the stability test and the patterns 136 recognizer. Next step is to identify what function can be assigned to each individual functional tier. For this study, the user input interface is assigned to the client tier, the stability test is assigned to the server tier and the pattern recognizer is assigned to the engine tier. Next step is designed the database and select a suitable database server. In this study, MySQL database server which is open license has been selected. For more features, the well-known Oracle or Microsoft SQL database server can be implemented. The following step of conversion is to identify a suitable dynamic webpage programming language. Among the multiple webpage programming languages, the Java Server Page (JSP) has been selected. Compare with other language, JSP language is free, open source and can be easily deployed into most of the commercialize web servers. In this study, the Tomcat web server has been chosen. This web server is an open source server and supporting most of the processor platform such as Intel, AMD, Sun and HP Unix. Next step is to identify the database connectivity. The ODBC library created by Toronto University is used to create the connectivity between the Matlab patterns recognizer and the MySQL database server. On another side, the JDBC library is used to establish data connectivity between the Tomcat web server and the MySQL database server. After carried out the user requirement study, identified the functions provided in each functional tiers, selecting a suitable web, database server and the connectivity between the servers, programming task can be started. The user interface on matlab code was converted in client tier using the Java applet. The stability test was converted from the matlab code to JSP code. All the Run Rules, EWMA and CUSUM test was running is the JSP code. Lastly, the pattern recognizer is reminded in the Matlab. The Toronto – ODBC connection was used in the matlab for accessing the control chart data from MySQL database. The stability test will mark the pass or fail status of control chart inside the database. Only the control chart 137 data which marked as fail was passed to patterns recognizer for the additional control chart patterns recognition. After code development, synthetic and industrial dataset are used to validate the client-server based system. Manual calculation is done for both datasets. Manual calculation is used to compare and verify between the manual and the system calculated result. After go through the above steps, finally the standalone system is converted into the client-server based CCPR system. This guideline should be used as a reference for those who want to enhance the standalone system into the client-server based CCPR system. This guideline is dedicated for the CCPR system, however it also should be useful for other client-server based application. 6.9 Summary This chapter discussed the operational framework for the client-server based CCPR system using the prototyped web-enabled CCPR system. The database and user interface design for web-enabled CCPR were discussed. System validation were conducted using the published and industrial data. The prototype system implementation and validation showed the client-server based CCPR system can lead to better utilization of the system resource through data sharing and remote access. On the other side, it provided better documentation and housekeeping of the control chart data. CHAPTER 7 DISCUSSION AND CONCLUSION 7.1 Introduction This chapter discusses the research findings and relates them with the existing body of knowledge. Some of the main points noted in the earlier chapters are repeated here where necessary. This chapter is organized as follows: Section 7.2 presents the research achievement and contribution. Section 7.3 discusses the research findings within the existing literature. Section 7.4 discusses the limitation of the study. Section 7.5 provides the research implication and practicality from the perspective of control chart monitoring. Section 7.6 describes the possible areas for further enhancement. Finally, Section 7.7 gives the concluding note to end this study. 7.2 Research Achievement and Contribution In this study, three candidate CS designs for the client-server based CCPR had been evaluated. Experiments were conducted to compare the performance of the three candidate designs. Out of three candidate designs, the CS design 2 with the load passing procedure at server tier and patterns recognizer at engine tier had been selected. This design was capable to support more users and process more data. Beside that, three load passing schemes had been proposed and one customized scheme (Nelson Run Rules and 139 EWMA test) was being selected as the client-server based CCPR system load balancing procedure. System validation had been conducted using the synthetic and published data. After went through all the phases as described in research methodology, an architecture for the development of a client-server based CCPR system was produced. Figure 7.1 shows the proposed architecture. This architecture serve as a guideline for the developer to design and build a client-server based CCPR system. Figure 7.1: An Architecture for the Development of a Client-Server based CCPR System 140 7.3 Comparison with Previous Research Table 7.1 shows the differences and enhancements were done for converting the original standalone local system into the improved client-server based system. Basically, the improved system inherits the features provided by the standalone CCPR system such as control chart plotting, features extraction and patterns recognition. In additional, several additional features were added into the client-server based system. These features are included remote accessible, single patterns recognizer for multiple processes monitoring, better document control and record housekeeping, improve data confidentiality and it is more economic and affordable by manufacturer. However, the accessible speed for original system is much faster compare with the client-server based system. Since all the system resource for the standalone system are local and fully utilize for single process monitoring only. In such, the process time for local system is much more faster than the client-server based system. Table 7.1: Comparison between standalone and the proposed system. Original System (Standalone System) Feature Improved System (Client-Server based System) • Plotting Control Chart • Plotting Control Chart • Local and Standalone Monitoring System • Web-enabled & Remotely Accessible Process Monitoring • Single PR Module for Single Process Monitoring • Single PR Module for Multiple Process Monitoring Documentation of Control Chart • Data Not Shareable • Better Document Control and Record Keeping. Security • Data Confidential Not Protected • Data Confidential Protected Implementation Cost • High Implementation Cost • More Economic and Affordable Extendable • Not Extendable and Scalable • Extendable and Scalable Process Time • Faster, Local Access. • Slower, Remote Access. Plots Accessibility 141 Table 7.2 summarizes the main difference between the previous researches and the author’s research. It is not possible to compare quantitatively with other SPC system proposed by researchers such as Thompson et al (1998), Soperi et al (2000), Han and Oh (2001) and Lee et al (2003), since they did not publish the detail results of their performance. As such, the main outcome of the previous researches are compared in term of patterns recognizer, web-enabled SPC chart system, load passing procedure and CS architecture (Hwarng 1997, Pham and Wani 1997, Guh 2003, Hwarng 2005, Yang and Yang 2005, Thompson et al. 1998, Lee et al. 2003, Hui and Samuel 1997, Zahir et al. 2005, Zhong et al. 2005, Alfredo et al. 2001, Hamada and Eric 2004). Other entries in the comparison table are self-explanatory. Table 7.2: Comparison between the Previous and Author’s Research Comparison Previous Research Patterns Concentrate Recognizer patterns on design recognizer. Author’s Research of the No investigation was done Good patterns recognizer. recognizer is capable in recognizes existing patterns the unstable patterns correctly on developed by Adnan (2002). Used on the recognizer time (Hwarng,1997). Web-enabled SPC Provide the control chart plotting, Convert Chart System remote monitoring, user access system into a client-server based control CCPR system. Provide the control and record assignable cause (Han and Oh, 2001). the standalone CCPR chart plotting, remote monitoring, user access recognition feature. and patterns 142 Table 7.2: Comparison between the Previous and Author’s Research (continue) Client and Server Different application has different Propose and investigate a suitable Architecture kind of CS design. Allocation of CS architecture for the client-server specific module into dedicate CS based CCPR system. Suitable CS tier is crucial to optimize the system architecture ensure the system can resource (Martin, 2006). process more data and support more users. The CS design with the load passing procedure at server tier and patterns recognition at engine tier was selected. Load Passing Design the load passing procedure Propose Procedure which only suited for the need of customized load passing procedure particular as which suits for the application of computer network, cellular network, client-server based CCPR system. P2P application and DNS server. It Using is not suitable to be implemented algorithm to process the control into the client-server based CCPR chart data, system workload can be system. Since different field of distributed application needs specific algorithm characteristic of input data. The to procedure application distribute the such processing workload (Zhu and Hu, 2005). and a investigate specific a mathematic based on design the with the combination of the Nelson Run Rules + EWMA test had shown promising results for classification accuracy, process time as well as the system resources usage was being selected. Main Contribution Different authors done different Customized a client and server researches. Limited investigation architecture had been done on integrating the statistical test into a load passing client-server based features for the procedure CCPR system. based CCPR system. This CS architecture and for converted the and a client-server load passing procedure serve as a guideline for the development of a client-server based CCPR system. 143 The main outcome of this study is the new knowledge to convert a standalone CCPR system into a client-server based CCPR system. As a proof-of-concept, a prototype system was developed. This client-server based CCPR system enables data sharing, remote access and better utilization of system resource. The proposed CS architecture enables each module to be integrated. An effective load passing procedure ensures the system workload can be fairly distributed among the functional tiers. With all these features, this client-server based CCPR system has significantly improved the limitation of the standalone system. 7.4 Research Limitation The research finding is limited to the scope outlined in Section 1.4 of Chapter 1. In additional, several limitations became apparent during the process of research are summarized as follow: a) The experiments were carried out on local area network. The network congestion and public network condition were not taken into consideration. b) Sometimes the computer may hang and malfunction if the system memory was fully utilized. It does happen during high intensity of incoming traffic and high volume of incoming data experiments. In such a condition, computer needs to be restarted and experiment need to be started over again. c) The same computer with the same processing capability was used for all experiments. If there are enough resources, the experiments can be done on separate computer which has higher processing capability. 144 7.5 Research Implication and Practicality This architecture serves as a guideline for the developer to design and build a client-server based CCPR system. In this guideline, a customized client and server architecture and a load passing procedure had been selected. The proposed client and server tier architecture ensures the system can process more data and support more user access. The selection of suitable load passing approach ensures the system workload can be fairly distributed among each tier and ensures the unstable control chart data always received higher priority then the stable process. This client-server based CCPR system has provided data sharing and remote access. Beside that, this initiative is towards making the CCPR system more affordable by the small and medium industries. In wider perspective, this client-server based CCPR system can be used as a marketing tool to convince potential customer to view the manufacturing quality remotely without physically visiting the manufacturing side. Such system also allows remote or teleconsultation for remote process diagnosis. Last but not the least, the proposed system provides better documentation and record keeping for the process data. 7.6 Recommendation for Future Works Recommendations for future work are as follow: a) Clustering computer network can be used to perform patterns recognition for the time critical process such as electricity generation plant and petrol chemical plant. b) Other than HTTP protocol, other communication protocol can be investigated for control chart data collecting purpose. 145 c) Expert system which can fulfill the needed of the special application can be added. Expert system can be used to interpret the control chart patterns. Experiment and specific knowledge of process are needed in designing the particular expert system. d) Automatic data collector agent can be added. Programmable Logic Controller (PLC), PIC microchip, robot and sensor can be used to automatically collecting the measurement data. It can minimize the human being reading and measurement error. e) Automatic failure recover module can be added. This module can automatic perform the correction action if case of failure. It is especially useful for unmanned night time production. f) Multivariate CCPR module can be added. Multivariate CCPR module can simultaneously monitor more than one control chart parameter. The autocorrelation between the control chart parameter can be calculated and analyzed. This is a challenging and worthwhile for further study. 7.7 Closing Note An architecture for the development of a client-server based CCPR system has been proposed. As a proof of the concept, a prototype system has been developed and validated. This architecture served as a basic guideline for the development of a clientserver based CCPR system. REFERENCES Adnan Hassan (2002). On-Line Recognition of Developing Control Chart Patterns Universiti Teknologi Malaysia : Ph.D. Thesis. Adnan Hassan, Mohd Shariff Nabi Baksh , Awaluddin Mohd Shaharoun and Hishamuddin Jamaluddin (2003). Improved SPC chart pattern recognition using statistical features. International Journal of Production Research. 41(7): 1587 – 1603. Ahmad Tarmizi Idris (2005), “ Penggunaan Run Rules dan Zone Test Untuk Mengesan Perubahan Anjakan Process Min”, UTM Undergraduate Project. Ahn, S. H. and Bharadwaj, B. (2002). Web-based design and manufacturing systems for automobile components: Architectures and usability studies. International Journal of Computer Integrated Manufacturing. 15(6): 555-563. Alan, D. S. (2004). Empirical Exploration for a Product Data Management (PDM) System at a Major Telecommunications Firm. Journal of Industrial Management & Data Systems. 104 (6): 513-525. Al-Assaf, Yusof. (2004). Recognition of control chart patterns using multi-resolution wavelets analysis and neural network. Journal of Computers & Industrial Engineering. 47: 17-29. 147 Alfredo, I. H., Fernando M., Guillermo, V., Gianfranco, P. and Guy C. ,(2001). RealTime ECG Transmission Via Internet for Nonclinical Applications. IEEE Transaction on Information Technology in BioMedicine. 5: 253-257. Andrew S. T. (2003). Computer Networks. New Jersey : Prentice Hall PTR. Anon (2005). On-line support for engines. Elsevier Engineering Information. 206: 45-50 Anosike, A. and Zhang, Z. W. (2004). Dynamic integration of manufacturing systems' operations using intelligent agents, Proceedings of the IASTED International Conference on Robotics and Applications. 23-25 August 2004. CA : Acta Press. 107-112 Ashaab Ahmed (2007). Knowledge web-based system to support e-manufacturing of injection moulded products, International Journal of Manufacturing Technology and Management. 10 (4) : 400-418. Azrina Lazim. (2008), "An Optimization of Plating Process Using DOE", UTM Thesis. Bunthit, W. and Jonathan H (2007). Neural network classification of extended control chart patterns, WSEAS Transactions on Computers. 6(1): 160-166. Bhavin V. M. and Zhou, Y. J. (2003). Middleware for Web-Based Manufacturing. 10th International Conference on High Performance Computing 17-20 December 2003, India: Hyderabad. 80-90 Biehl, M., Prater E. and McIntyre J. R. (2004). Remote repair, diagnostics and maintenance. Journal of Communications ACM. 47(11): 100-106. 148 Carey, M.J., Kiernan, J., Shanmugasundaram J., Shekita,E.J. and Subramanian, S.N. (2000). Middleware for publishing object-relational data as XML documents. Journal of Computer Data Modelling. 15: 646–648. Chad R. and Stephens J. (2004). Beginning MySQL Database Design and Optimization: From Novice to Professional. C.A.: Apress Inc. Chatterjee, D., Tari, Z.and Zomaya,A. (2005). A Task-Based Adaptive TTL Approach for Web Server Load Balancing. 10th IEEE Symposium on Computers and Communications : 877 - 884 Choudhury, A., Ramrattan, S. and Butt, S.(2003). Remote data collection and transfer as a teaching tool for process monitoring and control. ASEE Annual Conference Proceedings : 12843-12850 Claudio, G. A. (2003). Flexibility configurations for the supply chain management. International Journal of Production Economics. 85(2): 141–153. Das, S.K., Sen, S.K. and Jayaram, R.(1997). A structured channel borrowing scheme for dynamic load balancing in cellular networks. Proceedings of the 17th International Conference onDistributed Computing Systems. 27-30 May 1997, 116 -123. David A. and Michael (2005). MySQL Reference Manual. MySQL AB Group. Deependra M. and Ganesh J. (2005). Web services and flexible business processes: towards the adaptive enterprise. Journal of Information & Management. 42: 921-933. Dong, H.Z. and Liu, D.X. (2004). Fractal-agent based information security policies of Web-based collaborative manufacturing system. Journal of Computer Integrated Manufacturing Systems. 10: 166-171. 149 Doty, L.A. (1996). Statistical Process Control. 2nd ed. Industrial Press Inc. Edmond C. and Yu K.M. (2007). A concurrency control model for PDM systems. Journal of Computers in Industry 58(8): 823-831. Eugene L. G. and Richard S. L. (1996). Statistical Process Control. Seven Edition. McGraw-Hill Companies,Inc. Fabisiak B. and Boleslaw T. (2003). Threats, vulnerabilities and exposures to networked manufacturing systems. International Conference on Security and Management. 2: 461-466. Gauri, S. K. and Chakraborty, S. (2006). Feature-based recognition of control chart patterns. Journal of Computers and Industrial Engineering. 51(4): 726-742. Gillespie W. and Gordon M. (2003). Securing your process control networks. Journal Advanstar Communications. 20(7) : 14-23 Guh, R.S. and Tannock J.D.T. (1999). A neural network approach to characterize pattern parameters in process control charts. Journal of Intelligent Manufacturing. 10(5): 449-462 Guh , R.S. (2003). Integrating artificial intelligence into on-line statistical process control. Journal of Quality and Reliability Engineering. 19(1): 1 – 20 Guh, R. S. (2005). A hybrid learning-based model for on-line detection and analysis of control chart patterns. Journal of Computers and Industrial Engineering. 49(1): 35-62 Hartmut, E. and George, F.P. (2003). Client- Server and Gateway Systems for Remote Control. Conference on Instrumentation and Measurement Techology, 20-22 May 2003: 1428-1430 150 Hamada A. and Eric H. (2004). Emerging Client-Server and Ad-hoc approach Intervehicle communication Platform. Vehicular Technology Conference. 26-29 September 2004: 3955-3959 Han, S. and Oh, K.(2001). Web based rSPC(realtime Statistical Process Control) system supporting XML protocol. IEEE International Symposium on Industrial Electronics Proceedings, 12-16 June 2001 : 399-403 Hawkin, D. (1993). Cummulative Sum Control Charting : An Underutilized SPC Tool. Journal of Quality Engineering, 5(3): 463-477. He, J.S. (2000). An architecture for wide area network load balancing. IEEE International Conference on Communication. 12-16 June 2001: 1169 – 1173 Helen L., Peter B. and Julian G. (2004).The Management of Product Data in an Integrated Aircraft Analysis Environment. Journal of Computing and Information Science in Engineering 4(4):359-364 Hui, C.C and Samuel, T.C(1997). Efficient Load Balancing in Interconnected LANs Using Group Communication. Proceedings of the 17th International Conference on Distributed Computing Systems. 27-30 May 1997:141 – 148 Hunter, J.S. (1986). The Exponentially Weighted Moving Average. Journal of Quality Technologies, 18 : 203-210. Huang, G.Q. (2003). Collaborative Product Definition on The Internet : A Case Study. Journal of Materials Processing Technology 139(3): 51-57. Huang, M.Y., Lin, Y, J, and Hu Xu (2004). A Framework for Web-based Product Data Management Using J2EE. International Journal Advanced Manufacturing Technologies, 24(12): 847-852. 151 Hwarng, H. B. (1997).Neural network approach to identifying cyclic behaviors on control charts: a comparative study. International Journal of Systems Science. 28(1): 99-112. Hwarng, H.B. (2005). Simultaneous identification of mean shift and correlation change in AR(1) processes. International Journal of Production Research. 43(9): 1761 – 1783 Jay L. (2003). E-manufacturing – Fundamental, tools and transformation. Journal of Robotics and Computer-Integrated Manufacturing. 19(6): 501-507 Jon, E., Warner G. and Rupert J. (2003). Apache Tomcat Bible. Wiley Publishing Inc. Jun, S.H., Park, S.S., Ju, C.J. and Hyunbo C. (2003). CORBA-based integration framework for distributed shop floor control.Journal of Computers & Industrial Engineering. 45(3): 457-474 Lee, S.Y., Jang, J.S., Jung, K.H.and Choi, K.H. (2003). Web based SPC based on SNMP. International Journal of Industrial Engineering. 10(4): 497-503. Li, W.D., Lu. W.F., Fuh, Y.H. and Wong, Y.S. (2004). Collaborative Computer Aided Design - Research and Development Status. Computer Aided Design Journal. 37(9): 931-940. Liu, D., Du, J.H., Zhao, Y. and Song, N.L. (2004). Study on the time-delay of Internet-based industry process control system. Proceedings of the World Congress on Intelligent Control and Automation. 15-19 June 2004: 1376-1380. Marin, G.A. (2006). Network security basics. IEEE Journal of Security & Privacy. 3(6) : 68-72. 152 Martin Z. (2006).eLearning in manufacturing processes: Implementation by integrated Web services and streaming services.Proceedings - Advanced Industrial Conference on Telecommunications/Service Assurance : 492-497 Marty H. and Larry B. (2004). Core Servlets and Java Server Pages. Second Edition. Prentice Hall PTR Book. Michlin, Y., Sedan, B. and Ingman (2004). Reliability improvement of internet web servers through statistical process control. IEEE Transactions on Reliability. 53(4): 551-556 Ming R., Zhou J.M. and Yang H.M. (1998), Architecture of Integrated Distributed Intelligent Multimedia System for On-line Real-time Process Monitoring. IEEE International Conference on Systems, Man, and Cybernetics. 11-14 Oct. 1998. San Diego:IEEE, 1411 - 1416. Ming X.Y., Yan J.Q., Lu W.F. and Song B. (2007), Mass production of tooling product families via modular feature-based design to manufacturing collaboration in PLM. Journal of Intelligent Manufacturing. 18 (1): 185-195. Mohd Shariff Nabi Baksh. (2005). E-Manufacturing Addressing The Global Imperative. Syarahan Perdana Professor 20, Universiti Teknologi Malaysia. Mohd. Soperi Mohd. Zahid, Jafri Mohd Rohani and Suraj Govindan (2000). Webbased Statistical Process Control (SPC): A Proposal. Proceedings of the Second International Conference on Advanced Manufacturing Technology. Johor Bahru .16-17 August 2000: 243-251. Montgomery, D.C.(2004). Introduction to Statistical Quality Control. 5th Edition New York: Wiley. 153 Morita, T. and Hidaka T. (2004). Visual customer relationship management system that supports broadband network E-commerce. IEICE Transactions on Communications. 87(7): 1789-1796 Nelson, L.S. (1984). The Shewhart Control Chart Tests for Special Causes. Journal of Quality Technology. 16(4): 237-239 Nurmilaakso, J.M., Kettunen, J. and Seilonen, I. (2002). XML-based supply chain integration: a case study. Journal of Integrated Manufacturing Systems , 13(8): 586 - 595 Olaf K, Matthias O. B. and Roland S.(1998). Client - Server Based Mobile Robot Control. IEEE/ASME Transactions on Mechatronics. 3(2): 82-90 Ott, E.R. Schilling, E.G. and Neubauer, D.V. (2000). Process Quality Control, Trouble Shooting and Interpretation of Data. 3rd USA: McGraw-Hill. Park, N.S. and Lee G.H (2006). Agent-based web services gateway. Proceedings of SPIE - The International Society for Optical Engineering. 6387 : 63870 Peter, M.R and Henry S. R. (2003). XML for scientific publishing. Journal of OCLC Systems & Services. 19: 162-169. Pham, D.T. and Wani, M.A. (1997). Feature-based control chart pattern recognition. International Journal of Production Research. 35(7): 1975-1890. Pham, D.T. and Wani, M.A. (1999). Efficient Control Chart Pattern Recognitino through Synergisticand Distributed Artificial Neural Network. Proceedings of the Institution of Mechanical Engineer. Part B, 213:157-169. Rainer A. and Schahram D. (2005), Modeling and implementing medical Web services. Journal of Data & Knowledge Engineering. Vol. 55(2): 203-236 154 Rand Dixon (1996). Client / Server and Open Systems: A Guide to the Technologies and the Tools that Make Them Work, John Wiley & Sons, Inc. Renaud and Paul, E. (1996). Introduction to Client / Server System. 2nd Edition. New York:Wiley Inc. Robert, K. and Gordan, G. (2000). Balancing Web Server Workload. Conference on Knowledgebase-Based Intelligent System. 30 Aug 2000: 683-686 Rodolfo, E. H., Karina, C., Jose, E. and Jim, E. (2005). Networked sensing for highspeed machining processes based on CORBA. Journal of Sensors and Actuators. 119(2): 418-426. Saygin C. (2004). A manufacturing laboratory for integrated hands-on applications. ASEE 2004 Annual Conference and Exposition. 20-23 Jun 2004: 9335-9349 Schubert Foo , Siu, C. H. and Peng, C. L. (2002). Web-based intelligent helpdesksupport environment. International Journal of Systems Science. 33(6): 389-402 Schmidt D.C, Levine, S. and Mungee, (2003). The design of the TAO real time object request broker. Journal of Computer Communication. 21(4): 294-324. Sreenivas, G. and Zhang, A. D. (1996). NetMedia: A Client-Server Distributed Multimedia Environment. International Workshop on Multimedia Database Management Systems. 4-16 August 1996: 160-167 Sean S. and Teresa F. (2002). Virtual onsite support: using internet chat and remote control to improve customer service. Proceedings ACM SIGUCCS User Services Conference, US. 20-23 Nov 2002: 143 – 147 Silverston, L. (2001), The Data Model Resource Book : A Library of Universal Data Models for All Enterprises. 1st Edition. Wiley Publisher. 155 Shen, W.M., Wang, L.H. and Sherman, L. (2003).Distributed management, monitoring and control of manufacturing shop floors. Proceedings of the ASME Design Engineering Technical Conference. Chicago United States. 2-6 September 2003: 927-936 Sheremetov L. and Rocha, M. L. (2004). Collective Intelligence as Framework for Supply Chain Management. International IEEE Conference Intellegent Systems. Varna, Bulgaria. 22-24 Jun 2004: 417-422 Shi D. F. (2007). Development of an online machining process monitoring system: Application in hard turning. Journal of Sensors and Actuators Physical. 135 (2): 405-414. Stavros Goutsos and Nikos Karacapilidis (2004). Enhanced supply chain management for e-business transactions. Int. J. Production Economics. 89(2): 141–152. Stephen L. A. and Bruce R. (2003). XML for e-journal archiving. Journal of OCLC Systems & Services. 19: 155-161. Subu M.P., Waerstad, H., and Cortvriendt L. (2003). From sensor to web using PLC with embedded web server for remote monitoring of processes. Proceedings of IEEE Sensors 2003. 22-24 Oct. 2003. IEEE, 966 – 969. Swift, J. A. (1987). “Development of a Knowledge Based Expert System for Control Chart Pattern Recognition and Analysis.” Oklahoma State University: Ph.D. Dissertation. Szabados, B., Hodaie, P., Lu, J. and Ahluwalia, K. (2003). Application of remote instrumentation to manufacturing. Instrumentation and Measurement Technology Conference 2003. IEEE, 1370 – 1375. 156 Tan W. F. (2004), “A Characterization of Solder Paste Printing Process Using DOE”, UTM Thesis. Tserng, H. P., Dzeng, R.J., Lin, Y.C. and Lin, S.T. (2005). Mobile Construction Supply Chain Management Using PDA and Bar Codes. Blackwell Publishing Inc. 20: 242-264. Thompson D.M., Homer, G.R. and Thelwall, M. (1998). An examination of the potential role of the Internet in distributed SPC and quality systems. Conference on the Control of Industrial Processes. 9-11 Feb 2004: 51 – 57. Tony B. (2001). Server Load Balancing. First Edition. O’ Really Toussaint, J. and Cheng, K. (2002). Design Agility and Manufacturing Responsiveness on the Web. Journal of Integrated Manufacturing Systems. 13(5): 328-339. Vera d. C. , Luis F. D. , Adriano M. S. (2004). Comparative Study of The Performance of The CuSum and EWMA control charts. Journal of Computers and Industrial Engineering. 46(4): 707-724. Vivek C., Bakore, A. and Eaves J. (2004). Professional Apache Tomcat 5. John Wiley & Sons, Inc. Wang, M.D., Zhao, L.P. and Zhu, H.J. (2003). An application system of intelligent SPC based on the web. Proceedings of the International Conference on Agile Manufacturing. 4-6 Dec 2003:535-539 Wang, L.H., Samsa, R., Vernera, M. and Xib, F.F. (2003). Integrating Java 3D Model and Sensor Data for Remote Monitoring and Control. Journal of Robotics and Computer-Integrated Manufacturing. 19(2): 13-19 157 Wusteman J. (2003). XML and e-journals. Journal of OCLC Systems & Services. 19(1): 125 – 127. Wu, Y. Z. and Yi, M.H.(2003). Efficient, Proximity-Aware Load Balancing for Structured P2P Systems. Conference on Peer-to-Peer Computing. 1-3 Sept. 2003: 105-106 Wetherill, G.B. and Brown, W.D. (1990). Statistical Process Control: theory and practice. First Edition. T.J.Pewaa (Padstow) Ltd. William, S.E. and Jeffrey G.K. (2004). Improved Design Review Through Web Collaboration. Journal of Management in Engineering. 20(2): 55-60. William Xu and, Tony Liu (2003). A Web-enabled PDM system in a Collaborative Design Environment. Robotics and Computer-Integrated Manufacturing Journal, 19(4): 315-328. Yang, C.G. and Zhang, C.N.(2003). An XML-based administration method on rolebased access control in the enterprise environment. Journal of Information Management and Computer Security. 11(5): 249-257. Yang, H. and Xue, D. (2003). Recent Research on Developing Web-based Manufacturing System: A Review. Int. J. Prod. Res. 41(5) 3601-3629, Yang, J.H. and Yang, M.S. (2005). A control chart pattern recognition system using a statistical correlation coefficient method. Journal of Computers & Industrial Engineering. 48(2): 205-221. Yanmaz, E. and Tonguz, O.K. (2004), Dynamic load balancing performance in cellular networks with multiple traffic types. IEEE 60th Vehicular Technology Conference. 26-29 Sept. 2004 : 3491 – 3495 158 Zan, T, Fei, R.Y. and Wang, M. (2006). Research on abnormal pattern recognition for control chart based on neural network. Journal of Beijing University of Technology. 32 (8) :673-676. Zahir Tari, Broberga, J., Albert,Y.Z. and Baldonic, R. (2005). A least flow-time first load sharing approach for distributed server farm. Journal of Patallel Distribution Computer, 65(7): 832-842. Zeng, F. F. and Liu, Z. F. (2004). Model of Product Data Management and Its Application in PDM System. Journal of Huazhong University of Science. 32(10): 94-96. Zhao, L.P. and Wang, M.D. (2004). Quality control system model based on web workflow. Journal of Computer Integrated Manufacturing Systems. 10(5): 502507. Zhao W.D., Hong Y., Ni, Z.H. and Xing Y. (2003). Research on remote monitoring and control of CNC system based on Web and field bus. Journal of Southeast University (Natural Science Edition). 33(1): 45-48 Zheng, H. X. and Wan, Y. C. (2004). Distributed manufacturing system based on whole resource integration. Journal of Computer Integrated Manufacturing Systems. 10(4): 415-421. Zheng, X.L., Deren, C. and Wu, Z.G. (2004). Secure strategy for networked manufacturing system. IEEE International Conference on Systems, Man and Cyberneticz. 10-13 Oct. 2004 : 4232-4237 Zhong, X., Rong, H. and Bhu, Y. (2004). Load balancing of DNS-based distributed Web server systems with page caching. International Conference parallel and Distributed Systems. 7-9 Jul 2004: 587 – 594. 159 Zhou,S.Q. and Chin, K.S. (2003). Internet-based Intensive Product Design Platform for Product Design. Knowledge-based Systems, 16(1): 7-15 Zhu, X.M., Wang, Y.Z., Fu, H.Y. and Chen, Z.H. (2005). Research on key technologies of remote monitoring and control based on web for filament winding machine. Journal of Computer Integrated Manufacturing Systems. 11(2): 265-269. Zhu,Y.W. and Hu,Y.M. (2005). Efficient, Proximity-Aware Load Balancing for DHT-Based P2P Systems. IEEE Transaction on Parallel and Distributed Systems. 16: 349-361. Zorriassatine, F., Guh, R.S., Parkin,R.M. and Coy, J. (2005). Integrating novelty detection, neural networks and conventional tools for pattern recognition in multivariate processes. Journal of Engineering Manufacture. 218(7): 779 – 793. APPENDIX A Factor for computing control limits for x-bar chart 160 161 Appendix B – Database Scheme No. 1 Table Description Manager For keeping all the manager information. MID and MPassword would be used for module management login. 2 Operator For keeping all the operator information. OID and OPassword would be used for module operation login. 3 Customer For keeping all the customer information. CID and CPassword would be used for module Customer login. 4 Product For keeping all the product information. These information are included product name, type and size. 5 MProcess For keeping all Manufacturing Process Information. This is the primary table for system database. This has MPID as primary key and PID, CID, OID, MCID, MID as foreign key. 6 Machine For keeping all the machine information. These information are included Machine Name, Type, Buy Date, Next Service Data and Vendor Name. 7 CCD For keeping all the control chart’s data. PR_ID for keeping pattern recognition result. RR_ID for keeping Run Rules result. EStatus for keeping EWMA test result. CStatus for keeping CUSUM test result. 162 8 PatternRecognition For keeping the control chart pattern information. PR_ID =1 Æ Random Pattern PR_ID =2 Æ Trend Up Pattern PR_ID=3 Æ Trend Down Pattern PR_ID=4 Æ Shift Up Pattern PR_ID=5 Æ Shift Down Pattern PR_ID=6 Æ Cycle Pattern 9 RunRules For keeping the Run Rules Test description. RR_ID=1 Æ Outside CL RR_ID=2 Æ 9 consecutive pts on one side RR_ID=3 Æ six points in a row steadily increasing or decreasing RR_ID=4 Æ 14 points in a row alternating up-and down RR_ID=5 Æ 2 of 3 consecutive between 2 sigma & CL RR_ID=6 Æ 4 of 5 consecutive between 1 sigma & CL RR_ID=7 Æ 15 points in zone above and below center line RR_ID =8 Æ 8 points in a row on both sides of center line 10 Chart_Table For keeping related A2 value. 163 Appendix C: Measurement Result on Engine Tier and Server Tier Performance Engine Tier Performance E1 E2 E3 E4 25.38 98048 87.6 35 26.98 98048 86.3 35 30.67 85312 84.3 35 24.39 96351 85.3 36 26.67 85021 87.5 38 52.84 98260 86.3 19 54.15 92264 70.2 28 40.17 80152 80.3 22 58.45 90524 74.6 21 53.69 87501 78.4 24 38.17 99844 73.2 20 40.23 75424 70.5 18 36.22 98526 64 22 37.65 97521 69.5 22 38.56 53434 72.3 16 CS Design 1 CS Design 1 CS Design 1 CS Design 1 CS Design 1 CS Design 2 CS Design 2 CS Design 2 CS Design 2 CS Design 2 CS Design 3 CS Design 3 CS Design 3 CS Design 3 CS Design 3 E5 1028 856 995 1023 985 653 632 610 632 740 638 751 654 524 590 E6 155726 160141 158654 154120 148520 126656 115894 120541 103654 102454 99512 102651 95354 103451 90585 One-way ANOVA: E1 versus C1 Source C1 Error Total DF 1 8 9 S = 4.976 Level CS Design 2 CS Design 3 SS 468.8 198.1 666.9 MS 468.8 24.8 R-Sq = 70.30% N 5 5 Mean 51.860 38.166 F 18.93 P 0.002 R-Sq(adj) = 66.58% Individual 95% CIs For Mean Based on Pooled StDev -----+---------+---------+---------+---(-------*--------) (--------*-------) -----+---------+---------+---------+---36.0 42.0 48.0 54.0 StDev 6.885 1.455 Pooled StDev = 4.976 One-way ANOVA: E2 versus C1 Source C1 Error Total DF 1 8 9 S = 15103 SS 57369830 1824690482 1882060312 MS 57369830 228086310 R-Sq = 3.05% F 0.25 P 0.630 R-Sq(adj) = 0.00% Individual 95% CIs For Mean Based on Pooled StDev 164 Level CS Design 2 CS Design 3 N 5 5 Mean 89740 84950 StDev 6643 20299 -+---------+---------+---------+-------(---------------*--------------) (---------------*---------------) -+---------+---------+---------+-------70000 80000 90000 100000 Pooled StDev = 15103 One-way ANOVA: E3 versus C1 Source C1 Error Total DF 1 8 9 S = 4.984 Level CS Design 2 CS Design 3 SS 458.8 198.7 361.1 MS 458.8 24.8 F 18.5 R-Sq = 44.97% N 5 5 Mean 77.960 69.900 P 0.034 R-Sq(adj) = 38.10% StDev 6.057 3.605 Individual 95% CIs For Mean Based on Pooled StDev +---------+---------+---------+--------(---------*---------) (---------*---------) +---------+---------+---------+--------65.0 70.0 75.0 80.0 Pooled StDev = 4.984 One-way ANOVA: E4 versus C1 Source C1 Error Total DF 1 8 9 S = 3.041 Level CS Design 2 CS Design 3 SS 118.12 74.00 99.60 MS 118.12 9.25 R-Sq = 25.70% N 5 5 Mean 22.800 19.600 F 12.77 P 0.135 R-Sq(adj) = 16.42% StDev 3.421 2.608 Individual 95% CIs For Mean Based on Pooled StDev ----+---------+---------+---------+----(-----------*------------) (-----------*------------) ----+---------+---------+---------+----17.5 20.0 22.5 25.0 Pooled StDev = 3.041 One-way ANOVA: E5 versus C1 Source C1 Error Total DF 1 8 9 S = 69.29 Level CS Design 2 SS 1210 38406 39616 MS 1210 4801 F 0.25 R-Sq = 3.05% N 5 Mean 653.40 P 0.629 R-Sq(adj) = 0.00% StDev 50.74 Individual 95% CIs For Mean Based on Pooled StDev --------+---------+---------+---------+(--------------*-------------) 165 CS Design 3 5 631.40 83.83 (-------------*--------------) --------+---------+---------+---------+600 650 700 750 Pooled StDev = 69.29 One-way ANOVA: E6 versus C1 Source C1 Error Total DF 1 8 9 S = 8381 SS 602890132 561900290 1164790422 MS 602890132 70237536 R-Sq = 51.76% Level CS Design 2 CS Design 3 Level CS Design 2 CS Design 3 N 5 5 Mean 113840 98311 F 8.58 P 0.019 R-Sq(adj) = 45.73% StDev 10568 5365 Individual 95% CIs For Mean Based on Pooled StDev +---------+---------+---------+--------(--------*-------) (-------*--------) +---------+---------+---------+--------90000 100000 110000 120000 Pooled StDev = 8381 EE1 95.32 85.32 98.41 80.52 88.23 87 91.23 96.54 96.54 98.3 CS Design 2 CS Design 2 CS Design 2 CS Design 2 CS Design 2 CS Design 3 CS Design 3 CS Design 3 CS Design 3 CS Design 3 EE2 Server Tier Performance EE3 EE4 EE5 44936 63.4 40 720 45201 66.1 41 756 46541 63.4 42 741 40121 64.5 41 705 39871 65.5 42 780 45052 66.5 43 796 56012 64.3 44 765 54021 66.5 45 821 47012 62.1 42 805 43085 68.1 41 799 EE6 45212 46354 40782 41245 43571 49781 49851 47521 47651 50724 One-way ANOVA: EE1 versus C8 Source C8 Error Total DF 1 8 9 S = 6.134 Level CS Design 2 CS Design 3 SS 47.6 301.0 348.6 MS 47.6 37.6 F 1.26 R-Sq = 13.65% N 5 5 Mean 89.56 93.92 P 0.293 R-Sq(adj) = 2.85% StDev 7.30 4.69 Individual 95% CIs For Mean Based on Pooled StDev ----+---------+---------+---------+----(------------*------------) (------------*-----------) 166 ----+---------+---------+---------+----85.0 90.0 95.0 100.0 Pooled StDev = 6.13 MTB > Oneway 'EE2' C8. One-way ANOVA: EE2 versus C8 Source C8 Error Total DF 1 8 9 S = 4576 SS 81293414 167550713 248844128 MS 81293414 20943839 R-Sq = 32.67% Level CS Design 2 CS Design 3 N 5 5 Mean 43334 49036 F 3.88 P 0.084 R-Sq(adj) = 24.25% StDev 3109 5677 Individual 95% CIs For Mean Based on Pooled StDev ---+---------+---------+---------+-----(----------*-----------) (-----------*----------) ---+---------+---------+---------+-----40000 44000 48000 52000 Pooled StDev = 4576 MTB > Oneway 'EE3' C8. One-way ANOVA: EE3 versus C8 Source C8 Error Total DF 1 8 9 S = 1.861 Level CS Design 2 CS Design 3 SS 2.12 27.71 29.82 MS 2.12 3.46 F 0.61 R-Sq = 7.09% N 5 5 Mean 64.580 65.500 P 0.457 R-Sq(adj) = 0.00% StDev 1.219 2.332 Individual 95% CIs For Mean Based on Pooled StDev --------+---------+---------+---------+(---------------*---------------) (---------------*---------------) --------+---------+---------+---------+63.6 64.8 66.0 67.2 Pooled StDev = 1.861 MTB > Save "E:\KOH_MA~1\CHAPTE~3\ANOVA_CS.MPJ"; SUBC> Project; SUBC> Replace. Saving file as: 'E:\KOH_MA~1\CHAPTE~3\ANOVA_CS.MPJ' Existing file replaced. MTB > Oneway 'EE4' C8. One-way ANOVA: EE4 versus C8 Source C8 Error Total DF 1 8 9 SS 8.10 12.80 20.90 MS 8.10 1.60 F 5.06 P 0.055 167 S = 1.265 R-Sq = 38.76% Level CS Design 2 CS Design 3 N 5 5 Mean 41.200 43.000 R-Sq(adj) = 31.10% Individual 95% CIs For Mean Based on Pooled StDev --------+---------+---------+---------+(----------*----------) (----------*----------) --------+---------+---------+---------+40.8 42.0 43.2 44.4 StDev 0.837 1.581 Pooled StDev = 1.265 MTB > Oneway 'EE4' C8. One-way ANOVA: EE5 versus C8 Source C8 Error Total DF 1 8 9 SS 8066 5150 13216 S = 25.37 MS 8066 644 F 12.53 R-Sq = 61.03% Level CS Design 2 CS Design 3 N 5 5 Mean 740.40 797.20 P 0.008 R-Sq(adj) = 56.16% StDev 29.50 20.43 Individual 95% CIs For Mean Based on Pooled StDev --+---------+---------+---------+------(--------*--------) (--------*-------) --+---------+---------+---------+------720 750 780 810 Pooled StDev = 25.37 MTB > Oneway 'EE6' C8. One-way ANOVA: EE6 versus C8 Source C8 Error Total DF 1 8 9 S = 1993 SS 80451650 31789094 112240744 MS 80451650 3973637 R-Sq = 71.68% Level CS Design 2 CS Design 3 N 5 5 Mean 43433 49106 Pooled StDev = 1993 F 20.25 P 0.002 R-Sq(adj) = 68.14% StDev 2425 1437 Individual 95% CIs For Mean Based on Pooled StDev ----+---------+---------+---------+----(-------*-------) (-------*--------) ----+---------+---------+---------+----42500 45000 47500 50000 168 Appendix D : Measurement on Silicon Wafer Width in the Semiconductor Processing Source : NIST/SEMATECH e-Handbook of Statistical Methods http://www.itl.nist.gov/div898/handbook/pmc/section6/pmc611.htm (accessed on 15 May 2006) No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Value 3.19728 2.24908 2.06831 2.41021 2.38373 2.64295 1.98923 1.84527 2.1181 1.9565 2.86505 2.03724 1.59919 2.27631 2.20319 3.12823 2.48491 2.03621 2.24921 2.08045 2.02106 2.17322 1.42695 1.63658 1.85069 2.29425 2.11883 1.48054 1.90863 2.19158 2.13614 1.66478 1.29135 1.60516 1.35959 2.15929 1.48799 1.4441 1.98807 1.6976 No 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 Value 2.16274 1.66188 1.2809 1.52723 1.45086 2.83704 1.9419 1.69015 1.88232 2.06292 2.7538 2.00019 1.81351 1.91142 2.11871 3.10729 2.78643 2.05526 2.92325 3.0688 2.92923 2.38223 1.82449 2.33972 2.45188 3.72522 3.21334 2.39787 3.05238 3.22275 3.54831 3.25758 2.81712 2.79783 3.31612 2.78624 2.37257 1.78537 2.60785 2.22278 No 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 Value 3.05767 2.13201 2.0902 2.47793 2.25219 3.00835 2.67526 1.42529 2.63205 2.72298 1.98768 1.84251 1.4858 1.47276 2.12473 2.72084 2.12967 1.65822 2.19324 1.99607 3.11652 2.49874 1.75301 2.30452 2.61747 1.74602 1.14611 0.75519 1.72986 1.42358 2.13563 1.53373 0.93989 2.00314 1.08163 2.18969 1.75986 1.16654 1.77054 1.89937 No 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 Value 1.94868 2.04348 1.45294 1.67773 1.80744 2.1016 1.54224 0.98504 1.41943 1.58504 1.75067 1.25977 0.52479 1.73394 1.08005 2.55375 2.22845 1.66224 2.0715 2.03082 2.79258 1.77382 1.50762 1.57425 1.66675 2.78084 1.99704 1.57788 2.17764 1.72147 2.92684 2.4155 1.9012 2.08361 2.21559 2.5791 2.42401 1.35234 2.17843 2.09793 No 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 Value 3.2198 2.73477 1.86106 2.46226 2.94924 2.01566 1.04934 0.85117 1.35529 1.32407 2.04332 1.26378 0.88431 1.59742 1.55758 2.33958 1.58476 0.91941 1.41932 1.78616 2.85666 2.54818 1.97044 2.58804 2.05324 2.93022 2.43482 1.96439 2.41712 2.4858 2.61022 2.56811 1.7633 2.06005 2.11773 3.13811 2.54649 2.20236 2.50717 2.29208 169 Appendix E : Measurement on the Metallic Film Thickness (in μm) Source : Process Quality Control, Trouble Shooting and Interpretation of Data. (Ott et al., 2000). No. Data No. Data No. Data No. 1 80 21 93 41 89 61 2 92 22 94 42 100 3 100 23 83 43 4 61 24 82 5 93 25 6 85 7 Data No. Data 97 81 115 62 108 82 124 100 63 127 83 120 44 106 64 110 84 122 82 45 92 65 90 85 123 26 71 46 117 66 121 86 130 92 27 82 47 100 67 109 87 109 8 86 28 78 48 100 68 120 88 111 9 77 29 71 49 106 69 109 89 98 10 82 30 81 50 109 70 134 90 116 11 85 31 88 51 91 71 108 91 109 12 102 32 80 52 112 72 117 92 113 13 93 33 88 53 127 73 137 93 97 14 90 34 85 54 96 74 123 94 127 15 94 35 76 55 127 75 108 95 114 16 75 36 75 56 96 76 128 96 111 17 75 37 88 57 90 77 110 97 130 18 72 38 86 58 107 78 114 98 92 19 76 39 89 59 103 79 101 99 115 20 75 40 85 60 104 80 100 100 120 170 Appendix F : Measurement on PCB Solder Height (Printed Circuit Board Printing and Assembly). Source : Solectron Technology Sdn. Bhd. (Tan, 2004) No Value No 1 6.34 21 2 5.72 3 Value No Value 6.06 41 6.42 22 6.06 42 6.29 6.11 23 6.16 43 6.45 4 6.55 24 6.54 44 6.1 5 5.97 25 6.27 45 6.35 6 6.11 26 6.23 46 6.26 7 6.02 27 6.28 47 6.38 8 6.33 28 6.19 48 6.09 9 6.43 29 6.03 49 6.17 10 6.47 30 6 50 6.17 11 6.28 31 6.09 12 6.11 32 6.08 13 5.87 33 6.38 14 6.3 34 6.3 15 6.17 35 6.49 16 6.33 36 6.06 17 6.36 37 6.13 18 5.99 38 6.16 19 6.19 39 6.57 20 5.95 40 6.25 171 Appendix G Source : Measurement on Edge Wave Using Taper Gauge : Jabatan Kualiti Perusahaan Sadur Timah Malaysia (Ahmad, 2005) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Date 1-Apr-04 2-Apr-04 4-Apr-04 5-Apr-04 6-Apr-04 7-Apr-04 8-Apr-04 9-Apr-04 11-Apr-04 12-Apr-04 13-Apr-04 14-Apr-04 15-Apr-04 16-Apr-04 18-Apr-04 19-Apr-04 20-Apr-04 21-Apr-04 22-Apr-04 23-Apr-04 25-Apr-04 26-Apr-04 27-Apr-04 28-Apr-04 29-Apr-04 1-May-04 3-May-04 4-May-04 5-May-04 6-May-04 7-May-04 8-May-04 10-May-04 11-May-04 12-May-04 13-May-04 14-May-04 15-May-04 17-May-04 18-May-04 x1 0.088 0.074 0.08 0.085 0.068 0.085 0.075 0.081 0.09 0.07 0.085 0.084 0.073 0.081 0.075 0.075 0.09 0.085 0.09 0.083 0.059 0.074 0.082 0.085 0.087 0.094 0.075 0.083 0.085 0.098 0.083 0.069 0.062 0.08 0.065 0.093 0.077 0.057 0.09 0.06 x2 0.095 0.082 0.085 0.077 0.066 0.077 0.089 0.093 0.075 0.085 0.088 0.078 0.073 0.068 0.083 0.085 0.092 0.087 0.055 0.082 0.085 0.078 0.077 0.076 0.097 0.093 0.082 0.091 0.075 0.09 0.085 0.069 0.06 0.08 0.093 0.094 0.084 0.085 0.065 0.07 x3 0.09 0.08 0.08 0.08 0.088 0.089 0.085 0.052 0.085 0.077 0.08 0.09 0.078 0.065 0.057 0.082 0.079 0.075 0.08 0.079 0.079 0.07 0.065 0.056 0.095 0.084 0.083 0.089 0.081 0.091 0.06 0.08 0.082 0.099 0.1 0.085 0.093 0.088 0.075 0.065 x4 0.093 0.085 0.089 0.075 0.093 0.085 0.087 0.082 0.082 0.08 0.082 0.089 0.065 0.068 0.077 0.09 0.087 0.077 0.075 0.099 0.086 0.065 0.07 0.053 0.085 0.095 0.079 0.092 0.082 0.065 0.061 0.08 0.095 0.088 0.09 0.095 0.076 0.097 0.07 0.08 x-bar 0.092 0.080 0.084 0.079 0.079 0.084 0.084 0.077 0.083 0.078 0.084 0.085 0.072 0.071 0.073 0.083 0.087 0.081 0.075 0.086 0.077 0.072 0.074 0.068 0.091 0.092 0.080 0.089 0.081 0.086 0.072 0.075 0.075 0.087 0.087 0.092 0.083 0.082 0.075 0.069 172 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 Date 19-May-04 20-May-04 21-May-04 22-May-04 24-May-04 25-May-04 26-May-04 27-May-04 28-May-04 29-May-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 1-Jun-04 x1 0.097 0.097 0.1 0.082 0.072 0.078 0.087 0.079 0.1 0.092 0.089 0.075 0.085 0.093 0.09 0.09 0.08 0.083 0.09 0.074 0.092 0.095 0.095 0.09 0.076 0.098 0.077 0.08 0.08 0.085 0.089 0.1 0.087 0.08 0.089 x2 0.082 0.082 0.067 0.073 0.075 0.083 0.085 0.063 0.071 0.093 0.09 0.07 0.09 0.094 0.08 0.08 0.083 0.081 0.087 0.087 0.078 0.085 0.09 0.077 0.085 0.08 0.075 0.075 0.075 0.089 0.092 0.085 0.088 0.087 0.085 x3 0.09 0.09 0.071 0.092 0.08 0.065 0.07 0.054 0.095 0.092 0.1 0.08 0.09 0.085 0.085 0.085 0.075 0.087 0.081 0.085 0.095 0.085 0.1 0.09 0.075 0.076 0.098 0.07 0.084 0.08 0.089 0.098 0.088 0.086 0.097 x4 0.062 0.062 0.059 0.065 0.09 0.062 0.059 0.08 0.099 0.099 0.094 0.092 0.085 0.078 0.085 0.079 0.08 0.09 0.081 0.095 0.083 0.087 0.085 0.085 0.082 0.085 0.085 0.085 0.09 0.085 0.088 0.085 0.085 0.087 0.097 x-bar 0.083 0.083 0.074 0.078 0.079 0.072 0.075 0.069 0.091 0.094 0.093 0.079 0.088 0.088 0.085 0.084 0.080 0.085 0.085 0.085 0.087 0.088 0.093 0.086 0.080 0.085 0.084 0.078 0.082 0.085 0.090 0.092 0.087 0.085 0.092 173 Appendix H Source : Tin Plating Process : Perstima Berhad, Pasir Gudang (Azrina, 2008). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 D1 T/ Sn 19.35 19.11 17.21 20.42 18.16 18.87 19.11 21.36 20.18 21.13 19.58 20.77 20.77 20.18 18.16 21.36 18.40 21.48 20.18 19.82 20.89 19.23 19.35 19.24 20.77 19.35 19.70 19.35 18.99 20.89 21.84 20.65 19.47 19.23 20.89 18.99 19.11 20.18 22.55 19.47 D2 Sn2+ 15.79 16.14 15.31 15.67 16.02 15.71 16.02 16.39 16.02 17.67 18.40 17.92 17.33 16.97 16.25 17.33 16.85 17.33 16.97 16.86 16.86 16.62 16.74 16.50 16.62 15.91 16.50 16.14 16.86 17.45 18.04 15.91 16.97 17.09 16.62 16.86 16.74 16.02 18.16 17.33 D3 F30.19 29.58 26.81 30.50 30.81 28.35 27.73 28.04 28.35 28.35 27.73 29.58 30.50 27.73 28.35 32.04 30.84 31.12 28.96 29.27 29.58 30.81 30.81 30.50 30.81 30.81 27.42 27.11 29.58 29.56 30.47 28.04 28.04 29.25 28.64 27.43 29.25 30.18 31.08 31.69 D4 Cl48.50 50.97 47.58 44.62 41.76 49.92 50.62 41.44 38.97 44.97 44.19 47.09 47.80 47.09 44.27 45.33 41.09 48.50 48.15 47.09 45.33 44.27 45.33 47.09 47.45 49.56 43.56 43.92 46.03 43.92 44.62 41.09 40.74 42.86 47.09 42.51 46.03 40.03 38.27 38.27 D5 F/Sn2+ 11.95 11.45 10.94 12.16 12.02 11.14 10.82 10.69 11.06 10.03 9.42 10.32 11.00 10.21 10.90 11.55 11.43 11.22 10.67 10.85 10.97 11.59 11.50 11.55 11.59 12.10 10.39 10.50 10.97 10.59 10.56 11.02 10.33 10.86 10.77 10.17 10.92 11.77 10.70 11.43 D6 F/T.Sn 9.75 9.67 9.74 9.33 10.60 9.39 9.07 8.20 8.78 8.38 8.85 8.90 9.18 8.59 9.76 9.37 10.46 9.05 8.97 9.23 8.85 10.01 9.95 9.91 9.27 9.95 8.70 8.76 9.74 8.84 8.72 8.49 9.00 9.51 8.57 9.02 9.57 9.35 8.61 10.17 174 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 20.77 20.89 21.37 20.30 18.99 18.87 18.99 18.99 19.70 19.58 19.11 20.10 18.28 19.70 19.23 19.70 19.35 18.99 19.70 18.99 18.75 19.58 19.94 19.58 19.70 18.99 18.75 20.77 20.06 21.37 20.89 20.99 20.42 20.65 20.54 17.57 20.18 18.99 18.40 19.86 17.57 17.92 18.28 17.57 16.79 16.26 16.62 16.86 16.50 16.62 17.21 17.45 16.26 16.38 15.55 16.61 16.97 16.38 16.38 16.62 16.02 16.02 16.97 17.09 16.62 16.62 16.50 17.57 18.16 17.80 17.09 16.86 16.02 17.09 16.97 14.84 16.14 16.97 16.86 15.91 32.30 31.39 32.91 32.30 31.69 30.78 32.91 30.47 33.83 32.30 33.52 30.47 32.00 28.95 27.73 28.64 28.95 29.86 29.86 30.78 28.64 29.74 32.30 34.74 31.39 30.47 26.21 28.95 30.17 28.64 29.89 28.95 26.51 28.03 31.65 28.83 26.72 30.59 26.02 28.13 40.74 43.56 43.56 47.80 51.32 47.09 52.38 50.62 52.03 48.86 50.62 47.09 49.56 52.74 54.50 55.91 54.15 51.33 50.35 52.39 49.56 49.91 46.03 49.91 53.44 52.39 47.80 48.50 42.86 41.09 49.21 47.80 43.56 52.38 48.86 44.62 45.33 37.21 37.54 51.33 11.49 10.95 11.25 11.49 11.67 11.83 12.37 11.29 12.81 12.15 12.17 10.91 12.30 11.05 11.15 10.78 10.66 11.39 11.39 11.57 11.17 11.21 11.89 12.70 11.80 11.45 9.93 10.30 10.38 10.06 10.81 10.73 10.34 10.25 11.66 12.14 10.35 11.54 9.64 11.05 9.72 9.39 9.62 9.94 10.43 10.19 10.83 10.03 10.73 10.31 10.96 9.44 10.94 9.18 9.01 9.09 9.35 9.83 9.47 10.13 9.56 9.49 10.12 11.09 9.96 10.02 8.74 8.71 9.40 8.38 8.84 8.66 8.11 8.48 9.63 10.26 8.27 10.07 8.84 8.85