0附錄 2原文Agent-based collaborative product design engineering:An industrial case studyAbstractGlobalization and rapid evolving of Internet and Web-based technologies have revolutionized the product development process. Engineering a product is a complex process involving the integration of distributed resources, such as human beings, engineering tools, and a large variety of product-related information systems. Software agents have been playing an increasingly important role in this area to reduce the need for large,complex, and centralized systems. This paper presents the results of an industrial case study in the development of a collaborative e-Engineering environment for mechanical product design engineering by applying intelligent software agents, Internet/Web, workflow, and database technologies. A software prototype system has been implemented on a FIPA-compliant agent platform, with a wheel–axle assembly being used as a test case for system validation.Keywords: Collaboration; Product design engineering; Internet-aided design; Software agents; Workflow1. IntroductionTo survive in an increasingly competitive business environment, manufacturing enterprises are under unprecedented pressure to become leaner and more agile. Innovation and 1utilization of advanced information and communication technologies (ICT) are becoming more and more important to an enterprise, because ‘‘agile manufacturing’’ can only be achieved through the re-engineering and continuous improvement of ICT infrastructures. A collaborative environmentintegrating diverse information systems can enable the creation of ‘‘virtual’’ enterprises with competencies to effectively and efficiently share their knowledge and collaborate with each other in order to compete in a global market.Product design engineering, not alone, consists of design and engineering activities that should be shared among a multidisciplinary team distributed within or beyond organizational boundaries. Complex engineering design projects generally require the cooperation of multidisciplinary design teams and the readily accessibility to various engineering tools (such as CAD, FEA, dynamic and kinematics analysis, simulation, and optimization packages), databases and knowledge bases. In order to coordinate multiple engineering design activities in a design project and to guarantee the integration of different engineering tools, it is very important to have an efficient collaborative engineering environment. The environment should not only automate individual tasks in the manner of traditional computer-aided engineering tools, but also mediate between individual tasks to promote collaboration within thecontext of a product design project. Multi-agent system (MAS) represents one of the most promising technological paradigms for the development of open, distributed, cooperative, and intelligent software systems. During the past several years, we have been working on the development of collaborative environments for multidisciplinary design optimization (MDO) and have developed a prototype software environment called WebBlow (a Web/agent-based blow molded parts design and optimization environment). In WebBlow, a multi-agent system was developed to 2integrate blow molding process simulation, performance simulation, and optimization algorithms. In a recent effort, we further extended the agent-based architecture of WebBlow to a service-oriented framework and validated its feasibility and advantages for application in the automotive blow molded parts design and optimization [3].This paper reports the results of our recent international collaborative research project on the development of an agentbased collaborative e-Engineering environment for product design engineering. The primary objective of this project was to develop a prototype software system based on the Web and software agents and demonstrate its viability through an industrial case study—the design and optimization of a wheel–axle assembly (part of a bogie system). Based on our comprehensive research of the FIPA specifications [4], agent development platforms, and other MAS applications, right weight FIPA-compliant agent framework called Autonomous Agent Development Environment (AADE) was developed and applied to support our engineering design application. The rest of this paper is organized as follows: Section 2 presents a literature review on the application of agent and Web-based technologies in engineering product design and development; Section 3 discusses the proposed system architecture for the agent-based e-Engineering environment,its major components and the AADE MAS platform; Section 4 describes the prototype implementation with an industrial case study; Section 5 concludes the paper and discusses future considerations.2. Literature reviewWeb- and agent-based approaches have been dominant during the past decade for the implementation of collaborative product environments. An extensive review can be found in [13]. This section provides a brief updated review of the applications of agents and Web-based technologies to collaborative product 3design engineering.2.1. Agent-oriented collaborative designIn agent-oriented collaborative design systems, intelligent software agents have mostly been used to enable cooperation among designers, to provide wrappers to integrate legacy software tools, or to allow better simulations. An earlier review of multi-agent collaborative design systems can be found in ref. [5]. Shen et al. [6] provide a detailed discussion on issues in developing agent-oriented collaborative design systems and a review of significant, related projects or systems.The use of agents in product design engineering has been demonstrated by a large number of R- DADS v 9.6 (for dynamic analysis);- ANASYS v 7.1 (for structural analysis);- AFAP (a program developed in KIMM for fatigue analysis).Q. Hao et al. / Computers 28More information about this project as well as our long-term 6strategies of e-Engineering services paradigm can be found in.3.1. Terminologies and data analysisFor the clarity of representation, we need to define the terminologies used in this paper. Fig. 1 illustrates some of the data objects, user roles, and relationships.A workflow is composed of a group of nodes and descriptions about node relationships. There are 21 types of commonly recognized workflow patterns for workflow management [30]. Among these patterns, only a small number of them were presented, recognized, and executed in the workflow engine. In particular, we introduced the concept of workflow in this project to describe a design project template, including aspects of user roles, design activities, and execution conditions along a design project.A project is an abstract (not concrete) specification of the design jobs. A project inherits a workflow and specifies the project template embedded in the workflow. According to each node in the workflow, there is a corresponding project task in the project definition with minor modifications against the workflow, i.e., enable/disable a node. Although the resulting project may not be exactly the same as the original workflow, it can be called an active instance of the workflow.A project is defined, controlled, and managed by the project manager.All concrete project working data (parameters, files) are related to the design jobs defined under a project. A design job is made up by a number of tasks. Because a job contains an individual data set for a project, it also can be viewed as a design version of a project. Thus, in a job, there are job/task identification, job/task status, job parameters, task files, etc., but not the task sequence, because the sequence information is already defined in the workflow and then in the project.A job is defined, controlled, and managed by the project designer. Jobs can be monitored by both the designer and project manager.In order for tasks in a job to be executed one by one 7automatically, the transformation and transportation of parameters and files between these tasks are also required to be accomplished automatically. Hence, the parameter/file requirements of design tasks, parameter–file, ile–parameter, and file–file relationships are designed as basic information in database tables accordingly. These basic data tables are maintained by the system administrator and can be queried to dynamically link the tasks at run time. The system dministrator is also responsible for other system level management issues, i.e.,user/role management, system configuration, monitoring, andcontrol of agents in the system. 3.2. System architectureThe system architecture of the agent-based e-Engineering environment for product design engineering is shown in Fig. 2.System functions include project management, design job management, user management, engineering data management, and system integration with different kinds of commercial or self-developed engineering software tools. A number of software agents have been designed.We describe the composed agents and their functions below briefly.3.2.1. e-Engineering server agent (ES)It is the gateway that users must get through to define, manage, and monitor the information about a design project and its affiliated design jobs. Therefore, all the engineering data related to the project, workflow, design job, and tasks are passing through the ES agent, though they are manipulated by the EDM agent (see below). Every time when a design job starts running, the ES agent generates a job agent dynamically. The reverse process happens when the ES detects that a job has been finished. Other functions of ES include:- collecting data from job agents (JA);- locating interface agent’s (IA) request to EDM or the correct JA;8- updating data/files through the EDM agent when necessary;- coordinating activities of multiple design jobs in multi-project multi-job situations.3.2.2. Engineering data management agent (EDM)The EDM agent is a proactive engineering data service agent. EDM has the knowledge of database location,connection configuration, table structures, location and con-figuration of the FTP server, directories of engineering files, etc.It provides database and file system operation services, such as creating data sets for a new job, updating design data, retrieving design tasks, and helping sending data files proactively to the target agents before a job starts.3.2.3. Job agent (JA)A job agent communicates with the EDM agent for storing and retrieving job data; with the DF agent for searching matched PS agents; and with the problem solving (PS) agents for negotiation based design tasks’ allocation. A job agent is created and dissolved dynamically by the ES agent to control the design job it represents. In some occasions, the user requests about a job must be directed to the corresponding job agent (rather than EDM) through the ES, because neither ES nor EDM knows all the details about an executing job.3.2.4. Directory facilitator agent (DF)The DF provides registration services for other agents residing in this system; keeps up-to-date agent registration information; and provides lookup and matchmaking services to job agents. In Fig. 2, there is one and only one such DF agent in the whole agent platform. In the future, we could consider an architecture composing of multiple DFs, in which the distributed DFs residing on different physical networks register with each other and form a much more complex MASarchitecture.3.2.5. Interface agent (IA)9In this agent-based e-Engineering environment, user requests (user refers to project manager or designer) enter the system through the Web-based user interfaces. There are several Servlets responsible for receiving these requests on the Web server. The IA then catches the user requests from Servlets, translates the requests to messages, and initiates corresponding conversations to related agents. On the other hand, when the system reaches a result, the IA receives reply messages from other agents and creates updates to related user interfaces. So, the IA is a kind of application that functions mainly as a two-way bridge connecting the Web-based user interfaces and the back-end multi-agent system.3.2.6. Problem solving agent (PS)PS is the actual engineering problem-solving agent. A PS agent not only carries out the communication and negotiation functions for an engineering software tool, but also executes the related analysis, imulation or optimization based on the parameters (and/or input files) provided by the EDM agent. In this project, four engineering software tools were required to be integrated: IRONCAD, DADS, ANASYS, and AFAP. Since IRONCAD is a standalone interactive 3D modeling software tool, which is difficult to execute automatically, its epresentative PS agent is treated differently as an empty node (shown as a dark shade circle in Fig. 2). In this special case, IRONCAD software must be installed on the designer’s local site. Its representing PS agent does not have the execution interface as other PS agents and the IRONCAD task is manipulated and submitted manually by its human user.3.2.7. Monitoring agent (MA)The MA is specially designed to facilitate the monitoring of agent behaviors behind the user interfaces so that agent activities could be visible to users. In a distributed computing system like MAS, because information is distributed and 10controlled by each individual agent, it is necessary to have an agent that can accumulate information from various resources when required. Through this monitoring agent, the ‘‘condition’’of the system, the behavior of this MAS environment as well as all individual agents can be conveniently monitored or reviewed through a graphical tool provided to the user.In Fig. 2, there are also some other non-agent components that are designed mainly for supporting the engineering application problems of product design engineering.3.2.8. User interfacesA Web-based user interface is very convenient for multiple members of a design project or a design job to work collaboratively. Web-based technology is very popular, and in reality, is almost a ‘‘must’’ choice for distributed, collaborative applications. In our system, the project manager can define, control and monitor a design project, while a designer can define, control, and monitor a design job by using Web-based user interfaces. Another kind of user interfaces isthe application clients of a traditional client/server (C/S) architecture. They are designed for the system administrator to maintain basic information in the database, i.e., users, roles, tasks, files, parameters, and relationships. Theoretically, the second type of user interfaces could also better be designed as Web-based; however, for the readiness of system implementation, we simplify some part of information maintenance since this part of data is not critical to major purposes of this system.3.2.9. Database (DB)MySQL is used in this project as the database management system (DBMS). Because we use the multiple-layered system architecture, the business logics manipulating database tables are carefully organized and developed in the middle layer agents, such as EDM and ES, rather than sending SQL queries directly from the user interfaces. However, according to our design, only 11the EDM agent has a permanent onnection with the database; all other agents either get their results through the EDM or connect to DB dynamically by using the authorization and SQL scripts given by the EDM.3.2.10. XML filesAll the files used by this system are in XML format,including agent configuration files, registration data files,message record data files, and system logging files. The system generated parameter input/output files of design tasks are also XML files conformed to their DTD definitions.3.2.11. ServletsSince the Web-based user interfaces are developed as Java Applets, Servlets are needed to reside on theWeb server side for catching user requests. User requests are then directed to the interface agent and are packed into messages to back-end system by the interface agent.3.2.12. Messages linkMessage links are depicted as dashed lines to show roughly the interactions between agents. Some examples are: agents register with DF; JA searches the registration data in DF for matched PSs; JA negotiates a task with PS agents.3.2.13. Data linkData links are bolded lines to illustrate the connections of agents with information in database or files in the file system. EDM agent has permanent connections with the database;while other agents (JA, ES, and IA) may only connect to the database dynamically with the permission of the EDM agent.Another kind of data link is drawn between the EDM and PSs.In order for a PS to run a design task, all the input files required by its external engineering program must be available to this PS agent. Similarly, the output files are required to upload to the FTP server behind the EDM agent for other design tasks to utilize. Therefore, between the EDM agent and the PS agent in Fig. 2, 12there is a link standing for the input/output file transportation over the network.3.2.14. Control linkControl links stand for the control or management flow of this system originated from the application point of view.3.3. AADE agent platformThe development of an agent-based industrial application is not an easy task. In building a multi-agent system (MAS) application, developers unavoidably face the challenge of insufficient support of agent-level infrastructures. In addition to the technical difficulties in developing multi-agent systems, the interoperability between heterogeneous agents and agent systems also has to be considered. For the above reasons, an agent platform is required for implementing multi-agent systems. Sound planning and design of basic infrastructures of an agent platform can greatly enhance the system’s scalability, flexibility, and interoperability.In this research, we chose to design and develop a lightweight FIPA-compliant agent framework that supports applications especially in engineering fields. The engineering-oriented agent platform called autonomous agent development environment (AADE) [31] provides programmers with reusable agentoriented classes (templates), which share useful relationships. The current AADE only implements a semantically closed agent community in which all agents communicate within the agent framework using a dedicated content language expressed in XML. The major characteristics of AADE include:- A loosely coupled agent communication infrastructure is adopted based on lower level peer-to-peer communication protocol (TCP/IP socket), rather than the tightly coupled RMI invocation.- The agent-level and domain dependant issues are identified and programming modules (classes) are encapsulated in multiple levels of abstractions.13- Multi-layered support for agent communication, message handling, and conversation management.- Multiple message queues and conversation lists that facilitate the buffering and scheduling of agent behaviors.- A very closely related agent community with the common understanding of domain ontology.- Providing reusable software libraries, interfaces and agent development templates that can be specified for agent implementation.- Multiple threads execution and central conversation management handling concurrent conversations.These characteristics provide a foundation for the development of open, dynamic, flexible, and reliable (fault tolerant) multiagent systems. In particular, this platform includes an EDM agent along with a Batabase server, a FTP server, and an engineering file management mechanism, which are specifically designed for engineering pplications. The architecture of agent abstract model in AADE is discussed in details in [31]. Although AADE currently does not have so many features as other FIPA-compliant open source platforms such as, JADE [32] and FIPA-OS [33], it is