1. Introduction
As consumer demand has changed drastically and quickly, mass customization to deal with the customers’ demands has been popular in manufacturing. The main goal is to provide customized products or services effectively and efficiently, in terms of customer’s specified needs at reasonable prices [
1]. It is essential for an enterprise to retain various manufacturing resources, such as design, production, testing, and logistic resources, while being able to change the kinds, and the amounts, of resources in accordance with the demands of customers for realization of mass customization. Unfortunately, it is impossible for an enterprise, especially for small and medium-sized enterprises (SMEs), to retain all of these manufacturing resources, or change the amount of resources to satisfy all of the requirements of customers. This is why mass customization has largely not lived up to its promised potential [
2].
Sharing manufacturing resources among multiple enterprises may be a solution to realize mass customization, but it has been difficult to cooperate and share resources among enterprises because existing manufacturing models have been constructed independently of other enterprises and, as a result, they cannot share the resources efficiently. For this reason, a new integrated manufacturing model based on cloud computing technology, called cloud manufacturing (CM), has been proposed more recently [
3]. Owing to cloud computing technology that enables ubiquitous and on-demand network access to a shared pool of configurable computing resources [
4], CM can provide a shared manufacturing resource pool that can be managed and operated in a unified and intelligent way.
In this sense, various enterprises participating in CM can share manufacturing resources and cooperate with each other to produce highly-customized manufacturing services even though the services are too large or too complex to handle for one enterprise [
5]. In addition, CM can deliver reliable, high-quality, and on-demand manufacturing services for the whole lifecycle of manufacturing, such as design, production, testing, and logistics [
6], by enabling the enterprises to freely access every manufacturing service in the manufacturing cloud (MC), without certain expertise in the management of resources used. That is, MC is a main component of cloud manufacturing to utilize the manufacturing process in CM. Thus, we use the terms CM and MC separately to distinguish the manufacturing model (CM) and platform (MC), clarifying the manufacturing process in CM. The MC is a manufacturing platform made up of universal and renewable manufacturing resources with flexibility [
7]. In the MC, diversified manufacturing resources can be intelligently sensed and connected into the wider Internet, and automatically managed and controlled by means of the Internet of Things (IoT) and related technologies (e.g., radio frequency identification (RFID), wireless sensor network, embedded system, etc.). Then those are virtualized and encapsulated into the MC, which means they are enrolled in the MC with identification factors (e.g., name, inventory level, location). They can be accessed, invoked, and deployed by means of cloud computing technologies, virtualization technologies, and service-oriented technologies after that. MC automatically analyzes customers’ requests to estimate the required resources and the amount of them to complete the requests. After the estimation, MC finds the appropriate enterprise(s) that could successfully complete the request. If the request is so large that two or more enterprises are needed to complete the request, then MC composes the enterprise network for the request. The formal operation process to complete a customer request in MC is presented in
Figure 1. As seen in
Figure 1, if the request is too large for an enterprise to complete it (e.g., the request requires various resources or a lot of resources), MC finds and selects two or more enterprises and composes a network of enterprises [
8].
Cloud manufacturing is defined by many researchers: Xu [
9] defined CM as “a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable manufacturing resources (e.g., manufacturing software tools, manufacturing equipment, and manufacturing capabilities) that can be rapidly provisioned and released with minimal management effort or service provider interaction”. Meanwhile, Wu et al. [
10] defined CM as a “customer-centric manufacturing model that exploits on-demand access to a shared collection of diversified and distributed manufacturing resources to form temporary, reconfigurable production lines which enhance efficiency, reduce product lifecycle costs, and allow for optimal resource loading in response to variable-demand customer generated tasking”.
Figure 2 illustrates the whole life cycle process of CM [
11]: First of all, enterprises contract with CM and participate in CM. This contract generates the participation contract cost. Once the enterprise takes part in CM, it is possible to collect the resource information of each enterprise, such as the amount of resources the enterprise currently reserves, which is virtualized and encapsulated in the MC. Customers participating in CM invoke requirements about the products or services they want and the requirements are reorganized to be recognized as demands in CM. Types of resources, due dates, the amount of resources, and so forth, are included in the requests. After that, customer demands are matched with the adequate manufacturing service in the MC considering the information about the resource capabilities of each enterprise. The type of matching requirements and services could be either one-to-one (one enterprise is assigned to the service of one customer), N-to-one (two or more enterprises are assigned to the service of one customer), one-to-N (one enterprise is assigned to the service of two or more customers), or N-to-N (two or more enterprises are assigned to the service of two or more customers). N enterprises compose a temporary production network for one-to-N and N-to-N cases, while there is no need to compose the network for one-to-one and N-to-one cases. Finally, some enterprises in CM may leave CM, which generates a contract cancellation cost.
As an example of the operation process, suppose enterprises 1, 2, 3, … ,
n participate in CM as illustrated in
Figure 1. Suppose that customer 1 invokes a request including resource D (design), P (production), T (testing), and this request is newly organized in the requirement composition layer as shown in
Figure 1. For convenience, let the amount of every resource be 1. Then, the enterprise alliance that can handle the request from the customer 1 is one of {(enterprise 1, enterprise 2, enterprise 3), (enterprise 1, enterprise 2), (enterprise 1, enterprise 3), (enterprise 3), …}. For instance, (enterprise 1, enterprise 2) can handle the demand by sharing D (by enterprise 1), P, and T (by enterprise 2). This indicates that the request can be handled by two or more enterprises (N-to-one) or only one enterprise (one-to-one). Note that enterprise n is not included in any alliance because it does not have either D, P, or T. After an alliance (i.e., temporary production network) is decided to handle the request and the request is fully processed, the alliance is terminated.
Due to the appearance of CM, it is possible for SMEs to perform large-scale and highly customized production by collaborating with other SMEs, but there still remain issues to be solved for practical operation in many aspects. Service selection, scheduling, resource allocation, and capacity-sharing are such issues and, therefore, researchers have recently focused on resolving these issues. For example, Laili et al. [
12] analyzed the complex features of cloud services in cloud computing, and based on these features, they suggested a ranking chaos algorithm for service composition selection, and optimal computing resource allocation altogether in the private cloud. In Cao et al. [
13], the authors adopted a fuzzy decision-making theory to establish a manufacturing scheduling model in the MC considering four criteria: time, quality, cost, and service. Mai et al. [
14] proposed a framework for 3D printing services in the MC to handle several problems of the MC, such as evaluation, service matching, scheduling, etc. Li et al. [
15] developed a model to solve industrial robot task allocation problems in CM. This model has three sub strategies, which are the load-balance of robots, minimizing cost, and minimizing processing time, where a genetic algorithm (GA) implements these strategies. Wei et al. [
16] adopted an ant colony optimization algorithm for resource allocation problems in CM, where time, cost, quality, and load balance are considered as a multi-dimensional objective function. Tsai et al. [
17] employed an improved differential evolution algorithm to optimize task scheduling and resource allocation in a cloud computing environment. Ren et al. [
18] analyzed the impact of cooperative relationships between service providers on CM performances, such as the manufacturing task competition rate, service utilization, and service scheduling deviation degree. They showed that the cooperation among enterprises which participate in CM can utilize wasted manufacturing resources, such as idle machines. Argoneto and Renna [
19] proposed a framework for capacity-sharing among independent enterprises in CM. The framework, based on a cooperative game algorithm and a fuzzy engine, yields a stable matching among enterprises considering their capacity and geographical locations. Renna [
20] developed a decision model for a SME to decide whether to participate or leave a collaborative network, which could be practically applied to CM environments.
As introduced above, research regarding service selection, scheduling, resource allocation, and capacity sharing in CM has been conducted, but there is no previous research considering the dynamic aspects of operation process in CM. In other words, resource allocation or scheduling should be dynamically changed according to dynamically changing customer requests.
Unfortunately, dynamic aspects of the issues in CM have not been fully addressed by the previous researches. For example, the models developed in Cao et al. [
13] and Wei et al. [
16] yields a manufacturing schedule, and the model developed in Li et al. [
15] allocates tasks only before the manufacturing process begins. In other words, their models cannot be applied to real-time situations. As another example, Ren et al. [
18] showed the fact that the cooperative relationship between service providers can utilize wasted manufacturing resources, but do not consider the fact that the relationships among manufacturing service providers are changeable in CM.
Many researchers have recently focused on the dynamic manufacturing problems, such as real-time scheduling or resource allocation using genetic algorithm (GA). Rahman et al. [
21] suggested a GA-based approach to solve the permutation flow shop scheduling problem. The problem requires repeated optimization procedures as each new order arrives since it includes dynamic aspects (e.g., customer orders are randomly placed). The suggested approach in [
21] showed a stable performance despite the dynamic situation. Lei et al. [
22] proposed a GA-based framework for real-time dynamic voltage scaling with multiple objectives. Their experimental results clearly demonstrated that the proposed framework is superior to other frameworks. Ma et al. [
23] developed a dynamic task scheduling algorithm based on GA to effectively solve the task scheduling problems in cloud computing environments. Their simulation showed that the proposed algorithm significantly reduced the execution time of task scheduling. Sethanan et al. [
24] solved reentrant flow shop scheduling with time windows using hybrid GA, which yields the best solution among meta-heuristic algorithms (simulated annealing, GA, and hybrid GA).
Enterprises which participate in CM should be considered as an inventory unit for scheduling or resource allocation since their resources ensure the circulation of whole manufacturing activities by cooperating with each other in the production network. It is very important, therefore, to compose an enterprise network that handles the requirements from customers (i.e., demands) with minimal costs, and this problem is called the enterprise network composition problem in CM. It is a non-trivial problem since trade-offs exist between costs (e.g. contract cost and opportunity cost of production), and also probabilistic constraints such as forecasted demand and, therefore, it is almost impossible to find the optimal network analytically. This paper proposes a dynamic enterprise network composition algorithm (DENCA) based on a GA to solve the problem dynamically. In other words, DENCA constructs the initial enterprise network and changes the network as demand is changed.
The rest of this paper is organized as follows:
Section 2 describes a research problem called the enterprise network composition problem and introduces assumptions and notations used throughout this paper;
Section 3 proposes an algorithm to solve the problem, and each step of the algorithm is explained in detail;
Section 4 provides a numerical simulation to illustrate the suggested algorithm; and
Section 5 concludes the paper.