AN ARCHITECTURE AND AN OBJECT-ORIENTED MODEL OF SUPPLY CHAIN MANAGEMENT SYSTEMS Bao-Yi Tuang 1) and Woo-Tsong Lin 2) 1) 2) National Chengchi University (tby@ccca.nctu.edu.tw) National Chengchi University (lin@mis.nccu.edu.tw) Abstract Supply chain management (SCM) is the integration of business processes from end consumers through original suppliers that provides product, services and information. By this definition, we know that SCM is a series of management processes across firms forming a supply chain network. Cooper et al. [1] stated that those processes are customer relationship management, customer service management, demand management, order fulfillment, manufacturing flows management, procurement, product development and commercialization. In this paper we propose an architecture and an object-oriented (OO) model of SCM systems. This architecture contains three main components. The first one is “System Portal”, which is an interface between users and the system objects. The second one named “Object Repository”, which is used to store objects of the SCM system, makes the development, management and usage of these objects easier. The third one is “Database”, which is a universal database to store all data of the SCM system. Then, an OO Model is developed based on this proposed architecture. This OO model is graphically depicted using Unified Modeling Language (UML). We believe that the proposed architecture and OO model in this paper can be used as a reference architecture and a reference model to help system developers to easily build their-owned SCM systems. 1. Introduction Supply chain management (SCM) is the integration of business processes from end consumers through original suppliers that provides product, services and information. By this definition, we know that SCM is a series of management processes across firms forming a supply chain network. In this paper, at first we will describe what supply chain management is, including definition, characteristics 1 and architecture of supply chain management. Then, we will introduce object-oriented software engineering and web services. In this part, the UML notations, UDDI and SOAP will be introduced. At last, we propose a component architecture of SCM systems, and then an OO Model is developed based on this proposed architecture. This OO model is graphically depicted using UML. We believe that the proposed architecture and OO model in this paper can be used as a reference architecture and a reference model to help system developers to easily build their-owned SCM systems. 2. Supply Chain Management 2.1 Definition of Supply Chain Management A supply chain is a network of facilities that procures raw materials, transforms them into intermediate subassemblies and final products and then delivers the products to costumers through a distribution system [2]. According to the definition of supply chain management proposed by The International Center for Competitive Excellence in 1994: Supply chain management is the integration of business processes from end user through original suppliers that provides products, services and information that add value for customers [3]. By this definition, we know that supply chain management is a serial management process across firms among the supply chain network. This network begins from material suppliers to product manufacture that is provided to end-user. And supply chain network contains three flows through the network, which are information flow, mater flow and cash flow. The three flows to make the members among the network to exchange information, cash and material with each other. 2.2 Characteristic of Supply Chain Management The most challenge of supply chain management is how to maintain a visible level of warehousing. In order to minimize the uncertainty among the supply chain, members in supply chain network would like to see information what they want. However, this kind of uncertainty will make firms to use safer amount of warehousing or other not ideal management method. For example, purchasing earlier. Using this point helps to compare the difference between traditional logistics management and modern enterprise-oriented supply chain management [4]. The difference between traditional logistics management and modern supply chain management is shown as Table 1. 2 Effect Traditional logistics factors management Warehousing Enterprise oriented Management Flow of Interrupted (base on unit of enterprise) warehousing Cost Minimize in single enterprise Information Controlled in enterprise Risk Enterprise oriented Planning Enterprise oriented Relationship among cross Enterprise focus on low lost organizations Supply cha in management Coordinate among supply chain Seamless/Visible Base on end cost of product Shared by all members in supply chain Share All members in supply chain Companion relationship focus on end cost Table 1 2.3 Framework of Supply Chain Management The SCM framework as Figure 1 consists of three major and closely related elements: business processes, management components, and the structure of the supply chain. Business processes are the activities that produce a specific output of value to the customer. The management components are the components by which the business processes are structured and managed. The supply chain structure is the configuration of companies within the supply chain [1] . Supply Chain Business Processes Supply Chain Management Components 2) What processes should be linked with each of these key supply chain members. Spply Chain Network Structure 3) What level of integration and management should be applied for each process link? 1) Who are the key supply chain members with whom to link processes? Figure 1 By this framework, we could view what is included in the supply chain management, the supply chain business processes is processes through the supply chain, this enables three flows, material flow, cash flow, and material flow, could be active, visible through the supply chain. Supply chain structure could view the members and relationships among the supply chain network. 3 3. Object-Oriented Software Engineering and Web Services 3.1 Object-oriented development life cycle The object-oriented development life cycle, depicted in Figure 2, consists of progress developing an object representation through three phases-analysis, design, and implementation. In the early stage of development, the model is abstract, focusing on external qualities of the application system. As the model evolves, which becomes more and more detailed, shifting the focus to how the system will be built and how it should function-system architecture, data structures, and algorithms. Ultimately, the system developer must generate code and database access routines. The emphasis in modeling should be on analysis and design, focusing on front-end conceptual issues, rather than back-end implementation issues [5] . Figure 2 3.2 Unified Modeling Language (UML) The Unified Modeling Language (UML) is “a language for specifying, visualizing, and constructing the artifacts of software systems, as well as for business modeling” [6]. The UML notation is useful for graphically depicting object-oriented analysis and design models. It not only allows you to specify the requirements of a system and capture the design decisions, but it also promotes communication among key persons involved in the development effort. In analysis model, we would use four types of notations-use-case diagram, class diagram, state diagram, and sequence diagram. The first two diagrams is static diagram to describe the system architecture, and the last two diagrams is dynamic diagram to describe the dynamic behavior of the objects. 1) Use-Case: Jacobson et al. [7] pioneered the application of use-case modeling for analyzing the 4 functional requirements of a system. Because it focuses on what an existing system does or a new system should do, as opposed to how the system delivers or should deliver those functions, a use-case model is developed in the analysis phase of the object-oriented system development life cycle. 2) Class Diagram: A class diagram shows the static structure of an object-oriented model: the object classes, their internal structure, and the relationships in which they participate. 3) State Diagram: State transitions are shown using state diagrams. A state diagram depicts the various state transitions or changes an object can experience during its lifetime, along with the events that cause those transitions. 4) Sequence Diagram: A sequence diagram depicts the interactions among objects during a certain period of time. Because the pattern of interactions varies from one use case to another, each sequence diagram shows only the interactions pertinent to a specific use case. 3.3 Web Services Web Services are self-contained, modular applications that can be described, published, located and invoked over a network, generally, the Web. The Web Services architecture is the logical evolution of the object-oriented analysis and design, and the logical evolution of the components geared toward the architecture, design, implementation and deployment of e-business solutions. Both approaches have been proven in dealing with the complexity of large systems. As in object-oriented systems, some of the fundamental concepts in Web Services are encapsulation, message passing, dynamic binding and service description and querying. Fundamental to Web Services, then, is the notion that everything is a service, publishing an API for use by other services on the network and encapsulating implementation details [8] . The Figure 3 is the Web Services protocol stack. Interop Stack Universal Service Interop Protocols (these layers are not defined yet) Universal Description, Discovery Integration (UDDI) Simple Object Access Protocol (SOAP) Extensible Markup Language (XML) Common Internet Protocols (HTTP, TCP/IP) 5 Figure 3 (1) UDDI The Universal Description, Discovery and Integration (UDDI) specifications define a way to publish and discover information about Web Services. UDDI includes the shared operation of a business registry on the Web. For the most part, programs and programmers use the UDDI Business Registry to locate information about services and, in the case of programmers, to prepare systems that are compatible with advertised Web Services or to describe their own Web Services for others to call. The UDDI Business Registry can be used at a business level to check whether a given partner has particular Web Service interfaces, to find companies in a given industry with a given type of service, and to locate information about how a partner or intended partner has exposed a Web Service in order to learn the technical details required to interact with that service [9] . (2) SOAP SOAP provides a simple and lightweight mechanism for exchanging structured and typed information between peers in decentralized, distributed environment using XML. SOAP does not itself define any application semantics such as a programming model or implementation specific semantics; rather it defines a simple mechanism for expressing application semantics by providing a modular packaging model and encoding mechanisms for encoding data within modules. This allows SOAP to be used in a large variety of systems ranging from messaging systems to RPC [10] . 4. The System Architecture of SCM Systems According to the discussion of supply chain system components and system requirements, we propose an simple architecture as Figure 4. This architecture consists of three components. They are system portal, object repository, and database. Firm C Firm B Firm C Firm A SCM System Portal (System Interface, Object Request Broker) Extranet SCM Object Repository Database 6 Extranet Figure 4 1) SCM System Portal: This interface between supply chain management system and environment. It has two main functions. First, the function receiving and retrieving external data sources, and making system to process and deal with the data in right way. Second, providing data or information for other system or system users. 2) SCM Object Repository: This is the primary part of the SCM system. All processes are stored in this repository, and logically designed in object-oriented architecture. 3) Database: This component provides the functionality of storage of various data format. Including the supply chain network member data, product, and production information, etc. 5. Components Design of SCM Systems According to the above description, and discussion of supply chain management process. This study combines the management processes and basic system architecture. Further, this study processes the abstract supply chain manage system architecture and components as Figure 5. SCM System Portal Object Request Broker SCM System Managment Components Executing System Planning System Advanced Planning and Scheduling Extranets Order Management System Manufacturing Execute System Transportation Management System Warehouse Management System Common Components Database Management Component Data Concurrency Supply Chain Member Management Security Control Database System Figure 5 7 Extranet Base on the previous section, and the discussion about SCM system required components, the analysis model about components is as Figure 6. <<layer>> Portal order (from Portal) bom (from Portal) wip (from Portal) production (from Portal) capacity (from Portal) warehouse (from Portal) catalog (from Portal) <<layer>> SCM Components capacity (from SCM Components) order (from SCM Components) warehouse (from SCM Components) bom (from SCM Components) catalog (from SCM Components) production (from SCM Components) wip (from SCM Components) <<layer>> Common Components auth (from Common Components) member (from Common Components) db (from Common Components) Figure 6 The system is consists of three main components: “Portal, SCM Components, Common Components”. (1) Components in Portal provide the interface to be accessed by other system or users, are implemented by SOAP, so they have SOAP characteristics, and could be called by external system and are also beyond the platform. (2) SCM Components provide the supply chain management core business process and basic entity, and are implemented by J2EE components, so they have J2EE characteristics, such as load balance, transaction, and object pool. It could be called by Portal components to provide the scm business process. (3) Common Components provide basic functionality to be used by SCM components, these functions contains the database access function, the authentication about the supply chain members. 8 6. Object Modeling of of SCM Systems From now on, we start to use the use cases to analyze the supply chain management system. By using the use cases, we could get the system operate situations. Therefore we could analyze the system to design the classes and the interaction between the classes. In this paper, six main use cases used to analyze the system, and these use cases are: “bill of material (bom), capacity, order, production, warehouse and work in process (wip). In the use case modeling, five actors interact with the system, “Customer, Production Engineer, Product Engineer, Tracking System, and Material Supplier”. The Figure 7 is to show their responsibility and how to interact with the components in the SCM system. Production Engineer Customer (from Actors) (from Actors) Product Engineer (from Actors) capacity (from Use Cases) order (from Use Cases) production (from Use Cases) wip (from Use Cases) bom (from Use Cases) warehouse (from Use Cases) Material Supplier Tracking System (from Actors) (from Actors) Figure 7 1) Customer: Customer is the client who makes the requirement for the manufacturer. So customer will interact with order directly. By the way, customer needs to know how the capacity of the manufacturer in the future. This information is for them to make decision to make order. 2) Material Supplier:This actor is responsible to provide the source materials which are customer needed to use for manufacturing. Therefore, Material Supplier has to monitor materials inventory level to decide when to replenish materials. 3) Tracking System:This is a system used to do the shop floor control functionality. It must monitor the Lot status (which stage the lot flowed in) and collects these lots status as the WIP status. 4) Production Engineer:This actor has to maintain the production detail of a product. The production detail is the production flow of a product in the factory. 5) Product Engineer:Product Engineer holds a responsible position about the “Bill of Materials”. Product 9 Engineer maintains the materials needed to be used when manufacturing in the factory, and set relationship with the product. This could let to know the materials required when manufacturing. 6.1 BOM Bill of material provides the functionality to maintain the table contains information about required materials. And the relationship between materials, the relationship is the “contains” relationship, such as the IC contains the silicon. (1) Use Case The product engineer uses the BOM management interface to set the required materials and the relationship between these materials. And then set the materials to the product. (2) Class Diagram (see Figure 8) The classes in BOM contains the materials and material manager, the material manager is the control object to be called by portal object to access the material object. 1 -aggregateMaterial 0..n Material Creator MaterialManager Material (from bom) Material Query (from bom) Figure 8 (3) Scenario a. Scenario1:Add Material Add the material to BOM table, and set the mapping between the materials as the relationship (see Figure 9). 10 : Product Engineer : MaterialManager : Material Creator : Material 1: add material 2: create a material 3: create 4: set material info 5: set material relationship Figure 9 b. Scenario2: Set Material to Product Set the required materials to the product (see Figure 10). : Production Engineer : Catalog Query : Material Query 1: get product 2: *get Material 3: *add material Figure 10 11 : Product 6.2 Order Customer uses order functionality to query the order status, and make new order. The SCM system will automatically update the order status by shop floor control. (1) Use Case Customer can query the order status by order management interface. If a customer has a new order to make, he just use the make new order interface to make a new order. When making a new order, one new order is consist of multiple order line. Every order line contains one product, to be produced, deadline, and item count. After making new order, system will dispatch the new order to production lot by deadline, produce life cycle, and the current wip status. (2) Class Diagram (see Figure 11) The classes in Order contain order, order line, and order management. And associate with product. Order and order line are the entity classes, and the order management is the control class to manage the order and order line. Order creator and order query are the interface between SCM system and external system. The class diagram is as the following drawing. -customer OrderQuery 1 (from order) 1 Order OrderManager -order Customer 1 (from member) -orderline 1..n -product OrderCreator -orderline (from order) 1 OrderLine 1 1 Product (from catalog) -lot 1..n Lot (from wip) Figure 11 12 (3) Scenario a. Scenario1:Query Order Status by OrderID Customer can check the order status made before by using order management interface (see Figure 12). : Customer : OrderManager : OrderQuery : Order 1: Get Order by OrderID 2: Get Order by OrderID 3: Get Order 4: Get Order Status Figure 12 b. Scenario2:Make New Order Customer makes new order by making new order interface. And one new order contains multiple order line; every order line contains product, deadline, and item count (see Figure 13). : Customer : OrderManager : OrderCreator : Order : OrderLine 1: Create Order 2: Add Order 3: Create One Order 4: Set Product 5: Set DeadLine Figure 13 c. Scenario3:Dispatch Order to Production Lot SCM system will dispatch the new order to production lot by deadline, produce life cycle, and the current wip status (see Figure 14). 13 : LotDispatcher : OrderManager : CapacityManager : Order : LotManager : Lot 1: Get Orders which doesn't transfer to lot 2: creat lot info by order 3: Get DeadLine 4: Get Product 5: Get Capacity by Product Here Will determine when will this lot be started 6: create lot 7: create 8: set start time Figure 14 6.3 Production Production Engineer can use the production functionality to maintain the production process. The Production uses stage and recipe to represent the production process. The production process can provide the shop floor control to maintain the wip status. (1) Use Case Production engineer is responsible to maintain the production process and the contents about the production process. So production engineer can query and modify the production process. The production process consists of stages, and a stage consists of recipes. (2) Class Diagram (see Figure 15) Because of the production consists of stages and a stage consists of recipes, we make three entity classes, “production, stage, and recipe”, are managed by Production Manager. The portal interface are Production Creator, and Production Query. 14 ProductionCreator Production ProductionManager 1 (from production) -stage 1..n 1..n 1 -recipe ProductionQuery (from production) Recipe Stage Figure 15 (3) Scenario a. Scenario1:Create a Stage The production engineer creates a new stage, and also adds the recipes to the new stage (see Figure 16). : Production Engineer : ProductionCreator : ProductionManager 1: Create A Stage 2: create a stage 3: create 4: *get recipe 5: *add recipe Figure 16 15 : Stage b. Scenario2:Create a Production Process Create a new production process, and add the required stages to the process in the order (see Figure 17). : Production Engineer : ProductionManager : ProductionCreator : Production 1: Create Production 2: Create Production 3: create 4: *get Stage 5: *Add Stage Figure 17 c. Scenario3:Query Production Detail by Product Query the production detail by one product number, and the production detail contains the stages and recipes in order (see Figure 18). : Production Engineer : ProductionManager : ProductionQuery 1: Get Production Detail by Product 2: Get Production By Product 3: Get Production 4: *Get Stages 5: *Get Recipe 6: *Get Recipe Info Figure 18 16 : Production : Stage : Recipe 6.4 Warehouse Warehouse management is used to maintain the material inventory status. Material supplier can use the warehouse management component to query the inventory status to decide if deliver new materials to the company. (1) Use Case Material supplier can query the inventory status by inventory management interface. The query method can be supplier or material. (2) Class Diagram (see Figure 19) The class diagram contains one entity class “inventory”, and one inventory has a material to indicate the inventory material. And the material can be also traced to find the supplier. So by the relationship, material supplier can use “warehouse status query” portal interface to query the inventory status by material or supplier. Calendar (from util) 1 1 1 Warehouse Status Query Inventory InventoryManager (from warehouse) 1..n 1 -supplier 1..n Material (from bom) Supplier (from member) (3) Scenario Figure 19 a. Scenario1:Get material inventory by material The material supplier gets the inventory status by one material and date (see Figure 20). 17 : Material Supplier : Warehouse Status Query : InventoryManager : Inventory 1: Get Material Inventory By Material and Date 2: Get Material Inventory by Material and Date 3: Get Inventory 4: Get Inventory Status Figure 20 6.5 Work In Process (WIP) WIP represents the product manufacturing status in the factory. The WIP status can be used to trace the order status. Besides, the WIP status could be used to trace the capacity the predict the future status, and also influence the future start manufacture product schedule. (1) Use Case Tracking system will record the in-produced product status when passing one stage and recipe. At this time, tracking system will also subtract the inventory status of the required material. Customer can monitor the manufacture status of orders by management console. The management console can monitor by order number or lot number. (2) Class Diagram (see Figure 21) The WIP management contains one entity class “lot”, which maintains the manufacture status by production process. Lot Tracker and Lot Status Query are the classes in the portal layer, they use lot manager to query or track the lot status. 18 -production 1 Lot Tracker (from wip) 1 Product Production (from catalog) (from production) Lot LotManager LotStatusQuery LotDispatcher (from wip) Order (from order) Figure 21 (3) Scenario a. Tracking Lot Status of WIP Tracking system modifies the lot status when passing one stage and recipe to record the manufacturing status (see Figure 22). : Tracking System : Lot Tracker : LotManager : Lot 1: Set Lot Status of WIP 2: Get Lot By LotID 3: Set Production Status 4: Return Update Status Figure 22 6.6 Capacity Capacity management is responsible to manage the production capacity. The information about capacity is provided for customer to determine if making new order in the future. The capacity status is planed by production plan engineer and influenced by WIP status. (1) Use Case Customer can get the different product current and future capacity status by capacity management to make decision about making new order. The capacity data is planned by production plan, and the current and future 19 capacity status will be influence by future WIP status. (2) Class Diagram (see Figure 23) The capacity entity class has characteristics about product and date. Because customer would like to get the capacity status by product and date, capacity manager can query the capacity by these two parameters. Capacity Query is the portal class. Calendar (from util) -calendar 1 1 1 CapacityQuery 0..n Capacity CapacityManager (from capacity) -category 1 1 Category (from catalog) CapacityCollector Lot (from wip) (3) Scenario Figure 23 a. Scenario1:Get Capacity Status by Product and Date Customer queries the capacity status by product and date to make decision if making new order (see Figure 24). : Customer : CapacityQuery : CapacityManager : Capacity 1: get capacity by product 2: get capacity by product and date 3: get capacity info Figure 24 7. Summary In this paper, we propose an architecture and an OO model of supply chain management systems. Through this architecture we could view relationships of components of supply chain management systems. This 20 architecture gets the whole functionality of supply chain management, and the basic concept of this architecture hopes to make the system flexible enough to connect with other system and to transform data automatically. At the same time, we have the object model of the SCM system, and we can view more details about the SCM system including the dynamic interaction view and the static classes relationship view. We believe that the proposed architecture and OO model in this paper can be used as a reference architecture and a reference model to help system developers to easily build their-owned SCM systems. Reference 1) Cooper, M. C., Lambert, D. M. & Pagh, J. D., “Supply Chain Management: More Than a New Name for Logistics,” The International Journal of Logistics Management, 8(1), 1997, 1-13. 2) The International Center for Competitive Excellence, University of North Florida, D. M. Lambert, co-coordinator, 1994. 3) Ellram, L. M. & Cooper, M. C. “Characteristics of Supply Chain Management and the Implications for Purchasing and Logistics Strategy,” International journal of Logistics Management, 4(2), 1993, 1-10. 4) Billington, C., “Strategic Supply Chain Management,” OR/MS Today, April 1994, 20-27. 5) Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F. & Lorensen, W., Object-Oriented Modeling and Design, Englewood Cliffs, Prentice-Hall Inc., 1991. 6) UML Document Set, Version 1.0, Santa Clara, Rational Software Corp., January 1997. 7) Jacobson, I., Christerson, M., Jonsson, P. & Overgaard, G., Object-Oriented Software Engineering: A User-Case Driven Approach, Addison Wesley Longman, 1992. 8) IBM Web Services Architecture Team, Web Services Toolkit Overview, International Business Machines Corporation, 2000. 9) UDDI Technical White Paper, Ariba, Inc., International Business Machines Corporation & Microsoft Corporation, 2000. 10) Simple Object Access Protocol (SOAP) 1.1, DevelopMentor, International Business Machines Corporation, Microsoft Corporation, Lotus Development Corporation & UserLand Software Corporation, 2000. 21