CROSS REFERENCE TO RELATED APPLICATION(S)
FIELD OF THE INVENTION
This is a divisional of co-pending U.S. patent application Ser. No. 09/853,978 filed on May 10, 2001, which is hereby incorporated herein by reference.
The invention relates generally to processes for assembling products in a data center or warehouse environment.
Companies and other large entities increasingly rely on distributed computing where many user terminals connect to one or more servers that are centrally located. These locations called “data centers” may be facilities owned by the company or may be supplied by a third-party. These data centers house not only computers, but may also have persistent connections to the Internet and thus, conveniently house networking equipment such as switches and routers. Web servers and other servers that need to be network accessible are often housed in data centers. Where a third-party owns the data center, the entity in question rents a “cage” or enclosure that has racks upon which assembled/standalone units, such as computers and routers, can be installed. The entity may also simply lease the units that are rack-mountable from the third-party. In any case, the data center is usually divided into a number of predefined areas, including a shipping/docking area, assembly area, and area where enclosures and their constituent racks are kept.
Typically, the business process of installing and operating new computer or networking systems involves a series of independent stages. First, based on determined requirements, components of the systems are ordered through a vendor or supplier. Once the components for these systems are received, inventory logs the “asset” tag for the assembled rack-mountable unit which identifies it for future reconciliation/audits. While the order for the units or components thereof themselves may identify a number of attributes that each unit/component should have (i.e. amount of memory, number of ports, model number etc.), the inventory systems often do not, and may only be concerned with the fact that the item was in fact received, and what the serial number or other distinguishing identifier is. Conventional asset IDs track accounting information such as depreciation, but not other attribute information.
Once a unit or set of components which assemble to form a unit is received it is ready to be installed in the data center. Installation and assembly of components that make up a deployable “asset” is not typically performed by those employed in the receiving/warehousing department or by those who track inventory. The current environment relies on highly skilled employees for all aspects of component assembly. Because such skilled workers are in short supply, the assembly of new components into rack-mountable units in a data center can take weeks. Further, such assembly takes a longer time because the installer must first discover the configuration and other attributes of the components as well as the plan for assembly. The assembly of such components is controlled by management systems how the components are to be connected etc (i.e. the plan).
The management system is the product/care of the administrative or Information Technology (IT) departments within a large entity such as a corporation. The management system must identify, once products are received, what they consist of, and how to configure or install them. This information must be decided by the skilled technician by looking at parts that have been received or looked up by tracking the items received in the warehouse back to the original purchase order which originated the items. As is often the case, the skilled assembler must take the received components and inspect/test them to find out its attributes and configuration because the original order data and the received physical component cannot be easily correlated.
There is thus needed a more efficient assembly process that requires less use of skilled workers and increases the reliability of the assembly job and time-to-assembly of units.
BRIEF DESCRIPTION OF THE DRAWINGS
The detailed description discloses a method to obtain assembly instructions, such as might be needed to assemble a computer system located in the cage of a data center. After receiving component parts, a customer may scan the bar code of each component part into a customer server as a component parts list. Utilizing component grouping application software, a request for instructions to assemble the component parts may be built from the component parts list. This assembly instruction request may be sent from the customer server to a manufacturer server over the Internet, where assembly instructions may be compiled and returned to the customer server.
FIG. 1 is a flowchart of the primary methodology in using the Internet for the assembly of parts according to one or more embodiments of the invention.
FIG. 2 is a flowchart illustrating a workflow for receiving components in a warehouse or shipping area according to one or more embodiments of the invention
FIG. 3 is a flowchart illustrating the process of deploying an asset in accordance with one or more embodiments of the invention.
FIG. 4 is a flowchart illustrating a workflow for a components assembly according to one or more embodiments of the invention.
FIG. 5 is a flowchart illustrating a workflow for a manufacturer to return assembly instructions according to one or more embodiments of the invention.
FIG. 6 illustrates the interaction among a manufacturer and a customer according to at least one embodiment of the invention.
FIG. 7 is a diagram of a computer implementation of one or more embodiments of the invention.
Referring to the figures, exemplary embodiments of the invention will now be described. The exemplary embodiments are provided to illustrate aspects of the invention and should not be construed as limiting the scope of the invention. The exemplary embodiments are primarily described with reference to block diagrams or flowcharts. As to the flowcharts, each block within the flowcharts represents both a method step and an apparatus element for performing the method step. Depending upon the implementation, the corresponding apparatus element may be configured in hardware, software, firmware or combinations thereof.
The invention primarily consists of communicating the instructions for assembling of components automatically to the assembler(s). When an order for components (i.e. computers, routers, switches etc.) is received by a customer, the outside of the shipping boxes will have machine-readable stickers (e.g. barcodes) containing identifying information for the component(s) inside. These machine-readable stickers are scanned. The scanned information is then sent to the appropriate manufacturer(s) directly. The manufacturer then returns instructions for assembly of the component to the ordering customer. These instructions are forwarded to the appropriate party responsible for assembly and installation.
FIG. 1 is a flowchart of the primary methodology in using the Internet for the assembly of parts according to one or more embodiments of the invention. First, the assembly of components implies that the customer has received the components ordered (block 110). For instance, if a computer system were ordered, for assembly to begin, at least some of the components that will be put into the computer system (such as memory or network interface cards) should have been received. This type of order often results in components arriving in separate cartons which then need to be assembled into the computer chassis. The computer chassis may itself be one of these components that should be received. Next, a scan of the identifying bar-codes is performed on the shipping cartons of the components to be assembled into a chassis (block 120). The identifying bar-codes or other such information is ordinarily readable using an optical scanning device such as a bar-code reader.
The scanned information (e.g. bar-codes) is then wrapped (packaged) into a message that is capable of being transported by a network (block 130). For instance, the bar-codes or other scanned information could be placed into a TCP/IP (Transmission Control Protocol/Internet Protocol) packet and sent over Ethernet—a very common method of networking computers in a local area network (LAN) using copper cabling. [Alternately, the scanned information could be placed into an XML (Extensible Markup Language) document and sent over the Internet using HTTP (Hypertext transport protocol)]. The message containing the bar-codes or other information is then sent to the manufacturer (block 140). The manufacturer of the base unit (e.g. computer) will be the target of the message because that company will have groupings of known supported configurations for their product. Currently, most installation documentation comes with information on how to put together all of the supported configurations.
At this point, the customer who had sent the message would be expecting a reply from the manufacturer that includes assembly instructions. Thus, the customer waits for a reply until one is received (block 160). When a reply message is received (checked at block 150), then the instructions received can be printed and given to the assemblers (block 170). Alternatively, where assemblers are equipped with PDAs (Personal Digital Assistants) or other display devices capable also of receiving data (even, for instance, computer displays), the instructions can be output on the screens of those devices. The instructions can be for instance placed in the form of a web page. The instructions given to the assemblers are “custom” in that they are specific to the particular components ordered and may include certain instructions the manufacturer would suggest which other parties may not. Once the assemblers have been given the instructions, they can then assemble the components using those instructions (block 180).
FIG. 2 is a flowchart illustrating a workflow for receiving components in a warehouse or shipping area according to one or more embodiments of the invention. First, component parts are received by the customer's warehouse, shipping area or shipping dock, or even, in the case of a small company, by the mail room or at the front door (block 210). According to the invention, a component grouping application software, which could be running on a PDA, is started and the bar-codes on the shipping crates are swiped (block 220). In an alternate embodiment the scanned bar-codes may simply be sent by the PDA to a management server located remotely from the scanning device, which may instead run the component grouping application software.
The component grouping application tracks all components from a purchase order that are grouped together for assembly purposes. Once all components have been received and scanned in, the component grouping application software combines the information for all components to build a request for assembly instructions for those components. In one embodiment, the request could be an XML document request or merely, packets of data containing, among other information, the bar-code information (block 230). The assembly instruction request is then sent, according to one embodiment, to the management server (block 240) (see FIG. 3). Once the request is sent to the management server, or alternatively, during or after the raw bar-code information is sent to the management server, the components can be moved to an assembly staging area (block 250). This ends the process of receiving and scanning and can be independent of the time when the components are finally assembled.
FIG. 3 is a flowchart illustrating a workflow for a management server according to one or more embodiments of the invention. The processes of the management server, according to one embodiment of the invention, do not initiate until an assembly instruction request is received. Thus, the management server must wait for an assembly instruction request (which is formulated at receiving) (block 310). The management server then formats the instruction request in accordance with required manufacturer specifications (block 320). For instance, one manufacturer may want the request to be in the form of an HTTP (HyperText Transfer Protocol) request, while another manufacturer may want the request as a database query. The management server will be able to identify who the manufacturer of the components to be assembled is based on the bar-code information.
Once the instruction request for a base unit and components is properly formatted into a message understood by the manufacturer, the message can be sent to the manufacturer (block 330). The customer (acting through the management server) must then wait for a reply to the request from the manufacturer (block 350). When a reply is received from the manufacturer (checked at block 340), the instructions are received by the management server and any needed format changes are made (block 360). For instance, the assembly instructions may need to be paginated or partitioned to fit the needs of a PDA screen. Once formatted appropriately, the instructions are sent to the assemblers when assembly begins (block 370).
FIG. 4 is a flowchart illustrating a workflow for a components assembly according to one or more embodiments of the invention. The components requiring assembly are received by the customer and the marked for assembly (block 410). For instance, the base unit (such as chassis of a computer system) may be marked as undergoing assembly (to prevent attempted premature deployment). The assemblers must then wait for assembly instructions to be received (block 430). The receipt of instructions is persistently checked for (block 420). In one embodiment of the invention, the assembly instructions received are “custom” instructions received from the manufacturer to fit the particular configuration/make up of the assembled unit. Using the “custom” assembly instructions that are received, the assemblers can then assemble the components (together with or into a base unit, such as chassis, if necessary) (block 440). Once assembled, the assembled unit can be marked as ready for deployment (block 450). The status of “ready for deployment” and “being assembled” can be maintained in a database or other information store.
Such custom instructions may have certain advantageous features over stock or generic instructions that are targeted to cover every possible scenario. Such generic instructions can be cumbersome, confusing or misleading. By contrast, the custom instructions, in accordance with the invention, are received directly from the manufacturer and are tailored to fit the grouping of components that are to be assembled. Thus, superfluous information is left out. Only that information which is necessary to perform the assembly is provided to the assemblers. Further, where a certain grouping of components has an ideally different order of assemblage over another group of components, this particular order can be preserved for the assemblers.
FIG. 5 is a flowchart illustrating a workflow for a manufacturer to return assembly instructions according to one or more embodiments of the invention. First, the manufacturer must wait for an assembly instruction request from a customer (block 510). This request will be recognized by a server controlled by the manufacturer (hereinafter “customer service server”) which will then generate a reply to the request in the following manner. Once the instruction is received, a knowledge base query is formulated to derive the custom instructions (block 520). The “knowledge base” is an artificially intelligent information store that is capable when queried of generating a dynamic set of responses. The knowledge base, which is maintained by the manufacturer is designed to anticipate possible configurations of components and has logic that can determine what a set of assembly instructions for the queried configuration should contain and what order these instructions should take. The knowledge base may also provide special precautionary statements based upon the type or manner of assembly or installation if appropriate.
Once a query for the knowledge base is formulated (based upon the received request for assembly instructions), it is then sent to the knowledge base (block 530). The knowledge base may be contained within the system comprising the customer service server or may be an external mechanism. The sending of the query to the knowledge base triggers a response from the knowledge base which consists of an ordered list of instructions specific to the query. The software processing the query retrieves from the knowledge base a set of assembly instructions for the specific component combination set forth in the query (block 540). The component combination may also specify, if applicable, a base unit (such as a computer system chassis) that is to be part of the finished assembly.
Once the instructions are retrieved from the knowledge base, they are formatted into a network message (block 540). The network message formatting may involve data compression and creation of a file/record that can be wrapped into a message or set of messages that can be carried over a network. For instance, the set of instructions could be placed in a data file and then the file sent using TCP/IP. Alternatively, the instructions could be conveyed as an HTML or XML (eXtensible Markup Language) document (both of which can be carried using HTTP over TCP/IP), one which can be accessed through a browser activated by the requesting customer.
Once formatted for network transport, the assembly instructions are sent to the requesting customer (block 560). The assembly instructions will be more precise than generically available instructions since they are based on the particular component combination stated in the request. The instructions can be distributed from a server of the requesting customer to those actually performing the assembly (the assemblers).
FIG. 6 illustrates the interaction among a manufacturer and a customer according to at least one embodiment of the invention. The invention utilizes a network cloud 600 which is representative any of a combination of private networks (such as X.25, frame relay etc.) and/or public networks such as the Internet. The network cloud 600 allows the transacting of information between a customer 610, who has purchased components, and a manufacturer 650 of those components. The customer 610 may have obtained the components through a reseller, distributor or other entity, but because of the availability of a network such as network cloud 600, can communicate readily with the manufacturer 650 of those components. The invention assumes that the customer 610 is part of a first entity company A, and that the manufacturer 650 is part of a second, independent entity company B. Alternatively, the customer 610 and manufacturer 650 could be part of the same entity or organization which due to its disparity of locations uses network cloud 600 when communicating.
At the customer 610, an internal LAN mechanism (Local Area Network mechanism) 630 is connected to the Internet cloud 600. LAN mechanism 630 may consist of mechanisms such as Ethernet for carrying LAN information traffic and may include protocols for interaction between users of the LAN, such as TCP/IP or IPX. The LAN mechanism 630 ties together various devices, nodes and locations of the customer 610 and ties all of these also with nodes accessible via network cloud 600. According to the invention, a component grouping application software 615, which may be PDA based, is used to send a grouping of bar-codes scanned from the shipping cartons of the received components that need assembly instructions. The component grouping application software 615 generates a network message that groups all the component bar-code information together, such as by storing it in a data file. To make the creation of the network message easier, there may be a specific scan order for the shipping cartons being grouped or the component grouping application may create an ordered list from components which were scanned in arbitrary order. The network message is generated such that it can be understood by and transported across the LAN mechanism 630.
The network message containing the grouping of bar-codes is sent over LAN mechanism 630 to a customer's server 640. Server 640 has an application software that will receive the sequenced bar-codes and create a message for the manufacturer 650's query system. Server 640 formats the message in a manner/sequence specified by or appropriate for the manufacturer 650. The message is a query for assembly instructions and contains all of the bar-codes for the components to be assembled. This message may be a query string, an XML document request or a simple raw data message (such as a data file). When the message is ready, server 640 utilizes its connection to the network cloud 600 to send the message to the manufacturer's server 660.
At the manufacturer 650, an internal LAN (Local Network Mechanism) 670 is connected to the Internet cloud 600. Manufacturer's server 660 (which resides at manufacturer 650) has an application that will receive the assembly instructions request message from customer's server 640 and build a set of custom assembly instructions. LAN mechanism 670 may consist of mechanisms such as Ethernet for carrying LAN information traffic and may include protocols for interaction between users of the LAN, such as TCP/IP or IPX. The LAN mechanism 670 ties together various devices, nodes and locations of the manufacturer 650 and ties all of these also with nodes accessible via network cloud 600. For instance, manufacturer's server 660 is connected by the manufacturer's LAN mechanism 670 to a knowledge base 680.
The knowledge base 680 is a database, neural network or other information store that contains assembly instructions for all of the components that may accompany an assembly instruction request. Also, knowledge base 680, operating in conjunction with one or more applications on server 660, logic to determine which instructions should be placed in what order. The manufacturer 650 maintains the knowledge base 680 to service customers such as customer 610 that may request assembly instructions. The manufacturer's server 660 uses a received assembly instruction request, which contains component bar-codes, to formulate a query to the knowledge base 680. This query is sent over LAN mechanism 670, and results in the knowledge base 680 returning to server 660 the set of custom assembly instructions which is specific to the component combination at the customer 610. Server 660 formats these custom assembly instructions and sends them back to customer's server 640 over network cloud 600.
Customer's server 640 receives the custom assembly instructions and places them in a format convenient for the assembler. Where there is an assembler's PC (Personal Computer) 620 with a full size screen and larger storage capability, these instructions could be accessed via a HTTP interface or by downloading an entire data file containing the entire set of custom instructions, or by printing it out to a local printer. Where the assembler has only a PDA, the instructions may be streamed or paged down in order, and can be fed as needed, preserving the sequencing-suggested by the manufacturer. The instructions may be presented to the assembler in any combination of audio, video, graphical or textual formats as appropriate. The manufacturer 650 could send assembly diagrams or an audio tour or any type of data that may aid the assembler in his assembly task. Using these custom instructions, the assembler will be able to assemble the components together more accurately and efficiently. This affords the customer 610 a possible decrease in deployment time and increased reliability of the assembled components.
is a diagram of a computer implementation of one or more embodiments of the invention. Illustrated is a computer system 707
, which may be any general or special purpose computing or data processing machine such as a PC (personal computer), coupled to a network 700
. One of ordinary skill in the art may program computer system 707
to act as a management database server that is capable of acting as a customer server 640
or a manufacturer server 660
. The manufacturer server 660
and customer server 640
are, in accordance with some embodiments of the invention, two separate and independently operating systems. According to one or more embodiments of the invention, the system 707
or systems similar to it, would be programmed to perform the following functions when deployed as a customer server 640
- Receiving component bar-code groupings and formatting these into a request for assembly instructions;
- Sending the request over network 700 or a network connected to network 700 to a manufacturer;
- Receiving from the manufacturer a reply containing custom assembly instructions;
- Formatting and presenting/sending the custom assembly instructions to assemblers.
According to one or more embodiments of the invention, the system 707
or systems similar to it, would be programmed to perform the following functions when deployed as a manufacturer server 660
- Receiving a request for assembly instructions;
- Formulating a knowledge base query based upon the request;
- Sending the query to the knowledge base and retrieving custom assembly instructions;
- Formatting and sending the custom assembly instructions to the customer.
In either role, system 707 has a processor 712 and a memory 711, such as RAM, which is used to store/load instructions, addresses and result data as desired. The implementation of the above functionality in software may derive from an executable or set of executables compiled from source code written in a language such as C++. The instructions of those executable(s) may be stored to a disk 718, such as a hard drive, or memory 711. After accessing them from storage, the software executables may then be loaded into memory 711 and its instructions executed by processor 712. The result of such methods may include calls and directives, in the case that the asset records (and related information) are stored on disk 718, or a simple transfer of native instructions to the user database via network 700 if it is stored remotely. The knowledge base may be stored on disk 718, as mentioned, or stored remotely and accessed over network 700 by system 707.
Computer system 707 has a system bus 713 which facilitates information transfer to/from the processor 712 and memory 711 and a bridge 714 which couples to an I/O bus 715. I/O bus 715 connects various I/O devices such as a network interface card (NIC) 716, disk 718 and to the system memory 711 and processor 712. The NIC 716 allows software, such as server software, executing within computer system 707 to transact data, such as assembly instructions or requests for assembly instructions, to other nodes or servers connected to network 700. Network 700 is also connected to the data center or passes through the data center, so that sections thereof, such as assembly, or receiving, can communicate with system 707.
The exemplary embodiments described herein are provided merely to illustrate the principles of the invention and should not be construed as limiting the scope of the invention. Rather, the principles of the invention may be applied to a wide range of systems to achieve the advantages described herein and to achieve other advantages or to satisfy other objectives as well.