DISPATCHING COMPONENT FOR ASSOCIATING MANUFACTURING FACILITY SERVICE REQUESTORS WITH SERVICE PROVIDERS

Abstract: The efficiency and productivity of a manufacturing facility are increased by providing a procedure for dynamically matching service requestors with service providers. In addition, embodiments of the present invention envision that those service providers currently capable of providing the requested service are matched with service requestors. In particular, during process plan execution, communications or messages are transmitted by service providers facilitating identification of services currently capable of being provided. Similarly, service requests are transmitted from service requestors. Subsequently, both the service offers and the services requests are placed in one dispatch station associated the requested service. There, the service requestors are grouped with the service providers to form service requestor/service provider groups. The service requestor/service provider groups may then be ranked and provided as options for dispatch. After ranking, a single service requestor/service provider group can be automatically selected, validated according to user-difined run rules, and then dispatched to fulfill the service demand.

Description: DISPATCHING COMPONENT FOR ASSOCIATING MANUFACTURING FACILITY SERVICE REQUESTORS WITH SERVICE PROVIDERS FIELD OF THE INVENTION The present invention relates generally to manufacturing automation and more particularly to automated processes for producing semiconductor devices. BACKGROUND OF THE INVENTION Semiconductor manufacturing is an extremely complex, multi-step process that is subject to strict manufacturing requirements and production schedules. These manufacturing processes are typically performed in large fabrication facilities, often incorporating dozens of tools involved in the various stages of the fabrication process. Typical semiconductor devices are manufactured using a complex procedure, involving, for example, numerous oxidation, etching, and photolithography processes. One example of such a process or service plan is depicted by process 10 in FIG. 1. Each step of process 10 generally requires a high degree of product and process control. For example, impurities and particulate contamination in the processing materials must be strictly controlled. Similarly, control processing parameters such as temperature, pressure, gas flow rates, processing time intervals and input sputter power must also be closely monitored. To complicate matters, each step of process 10 may, in turn, require hundreds of other intricate and complicated operations or sub-steps, any of which can be highly dependent on one or more preceding steps. For instance, during a photolithography procedure, precise alignment of a wafer with respect to a mask is critical. An error during alignment or in the overlay of the etch masks could form electrical short defects between too densely packed interconnects. Each step in the manufacturing process must therefore be closely monitored, with materials carefully regulated, and timing carefully controlled. To address these needs, automated systems or semiconductor manufacturing execution systems (MES) were implemented to allow process engineers and facility operators to control and supervise the entire manufacturing process. Typically accessed through a single user interface, these MES allowed plant managers to automate processing by managing tool and lot data, coordinating resources such as service requestors and service providers, scheduling the dispatch of services, etc., all in a centralized manner. While these systems allowed the scheduling and coordination of the various tools and material in a facility, these MES were static and comprehended only simple production tasks. For instance, little or no execution control was provided and, as a result, processing required the decision making of process engineers or operators. Thus, each process engineer or operator was required to initiate each individual action, such as matching a lot or material requiring a particular service with a tool or machine offering and capable of providing the corresponding operation. However, by placing the decision making responsibilities on the operators and engineers, the goal of automation was inadvertently frustrated. Furthermore, these MES failed to resolve equipment status and machine availability issues during execution of the process. Thus, urgent information regarding the status of a particular tool was oftentimes hidden or unavailable. Unscheduled maintenance or off-line time for tools resulted in interruptions in the process flow. As a result, "bottlenecks" were frequently created, ultimately reducing the processing facility's wafer fab yield. Consequently, there is a need for a manufacturing scheme capable of monitoring facility resources, such as tools and material, during service plan execution to provide information regarding resource status and/or machine states. Similarly, there is a need for a process capable of utilizing this information during the service plan execution to dynamically match or associate service providers currently capable of providing a particular service with a service requestor requiring that same service. SUMMARY OF THE INVENTION The present invention increases the efficiency and productivity of a manufacturing facility by providing a system, method and medium for dynamically matching service requestors with service providers that are currently capable of providing a requested service. In particular, communications or messages are initially transmitted by service providers indicating that they are capable of providing one or more services. Each of the services capable of being provided are then determined or identified by monitoring the individual service providers. For instance, any updates to the service providers' machine states are monitored to facilitate identification of the actual services currently capable of being provided. In a manner similar to the communications received from the service providers, service requestors transmit requests requesting required services. Subsequently, the services offered and the services requested are listed in a dispatch station that is associated with a corresponding service type (e.g., etching). At the dispatch station, the services offered and services requested are grouped together to form service requestor/service provider groups (e.g., a request for an etch that is paired with one or more providers of etching services is an example of one such group). From there, the service requestor/service provider groups may be ranked and provided as options for dispatch. Then, a single service requestor/service provider group is selected automatically, semiautomatically, or manually, and validated according to user-defined run rules before being dispatched to fulfill the service demand. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 illustrates a prior art semiconductor fabrication process; FIG. 2 depicts one example of manufacturing facility suitable for implementing and utilizing various aspects and principles of the present invention; FIG. 3 depicts one example of a block diagram illustrating various computing processes implemented in a computing system of FIG. 2 utilizable for carrying out various concepts of the present invention; FIG. 4 depicts one example of a set of dispatch stations implemented in a resource coordinator component of the present invention; FIG. 5 depicts one example of a modeling procedure used to model a service plan for the manufacturing facility of FIG. 2; FIGS. 6-8 depict one example of a process used to dispatch and execute services at run time in the manufacturing facility of FIG. 2; FIG. 9 is a flow diagram describing a processing routine used to model, dispatch and execute services in the manufacturing facility of FIG. 2; FIG. 10 is a flow diagram describing a modeling process implemented in the routine of FIG. 9; FIG. 11 is a flow diagram describing a process used to match service requestors with service providers, in accordance with the principles of the present invention; FIG. 12 is a flow diagram describing a number of dispatch modes used to select a dispatch option, in accordance with the principles of the present invention; FIG. 13 is a block diagram representation of one example of a computing system utilizable in the manufacturing facility of FIG. 2; and FIG. 14 illustrates one example of a memory medium which may be used for storing a computer implemented process of the present invention. DETAILED DESCRIPTION OF THE INVENTION FIG. 2 illustrates one example of manufacturing facility suitable for implementing and utilizing various principles of the present invention. Referring now to FIG. 2, an automated semiconductor fabrication facility 200 is depicted which may be used in the production of semiconductor devices by executing one or more manufacturing service plans. Facility 200 includes a number of resource nodes 202, connected to one another via data bus 220, and with a number of user interfaces 224 and computing main server 228. Each resource node 202 is associated with and used to monitor a resource (i.e., either a service provider or service requestor, as discussed below) of fabrication facility 200. In embodiments contemplated by the present invention, resources nodes 202 may be implemented by one or more computer processes or computing servers located at or in connection with their respective resource. For instance, the resource nodes may include hardware or software implemented in, for example, a computing processor located at a resource. In other instances, the resource nodes may include computing processors and/or interfaces used to read or monitor information such as a bar coded data written to a material carrier or the like. The resources associated with resource nodes 202 include the various processing tools and entities or material lots utilized in a typical semiconductor manufacturing plant. Individual resources may be classified as either service providers or service requestors depending on whether the resource requires services or is able to perform services. For example, resource nodes 204 may be associated with numerous instances of etching devices. When the etching devices offer provisioning of etch services, they are service providers. In contrast, when the etchers are due for maintenance or repair, they become service requestors. The same holds true for the nodes 206, 208, and 210, which are associated with other tools of exemplary facility 200 (e.g., oxidation, photolithography, implanting devices, and the like). On the other hand, nodes 212 and 214 are associated with particular lots or material requiring services such as those offered by the service providers listed above. In these cases, as mentioned above, the material or lots are typically stored on carriers or the like with any information regarding the lots being collected via, for example, a light pen or other similar device. It should also be noted that although the embodiment of FIG. 2 is depicted as being implemented in a semiconductor manufacturing facility, the concepts of the present invention can similarly be utilized in other settings as well. For example, the processes and concepts of the present invention may be implemented in any other automated manufacturing facilities such as, for instance, automobile factories, food or beverage production facilities, furniture factories, or the like. In addition to resource nodes 202 and the resources associated therewith, manufacturing facility 200 also includes a number of user interfaces 224, which advantageously may be used to monitor the status of the various components of facility 200 during execution of the facility service plans. Similarly, as will be discussed below, user interfaces 224 may also be used by, for example, a production engineer or operator, to enter modeling data and to select particular resources to effect certain results. In accordance with the principles of the present invention, the individual operations or services of the facility service plans as well as operation or processing of the resources are coordinated by one or more computing processes implemented in main computing server 228 (or a plurality thereof), one example of which is depicted in FIG. 3. Referring now to FIG. 3, a manufacturing execution system (MES) 310 is illustrated as being implemented in main computing server 228. Among other things, embodiments of the present invention contemplate that MES 310 is responsible for automating, integrating, and coordinating each of the services and resources required to execute or complete the facility service plans. In the exemplary embodiment depicted in FIG, 3, MES 310 is comprised of a number of computing components. For example, MES 310 includes a dispatching component 320, a work management component 350, an equipment management component 355, and a process director component 360. Dispatching component 320, in turn, includes a resource coordinator component 325, a dispatch processing component 330, an event manager 335, a run rules component 340 and a service management component 345. In conjunction with the other components of MES 310, dispatching component 320 advantageously facilitates modeling of the facility resources before run time, including each of the service requestors and service providers, and subsequently allows execution of the facility service plans in a manner which matches service requestors requesting a particular service with service providers currently capable of providing the requested service. Specifically, during service plan modeling, (an example of which is discussed in conjunction with Figure 5, below) process director component 360 serves as an editor to accept workflows or the preprogrammed sequence of steps for a job. For example, in some embodiments, an operator or engineer utilizes process director component 360 to enter any or all such modeling data. For instance, process director component 360 accepts the steps which control, for example, the operation of a particular tool (i.e., material or entity job). Similarly, the steps could be directed to the services required for a certain lot or material (i.e., material or lot job). Likewise, the steps could include each task required to perform an individual service (i.e., run job). Then, at run time, process director component 360 executes these workflows or jobs. More particularly, as will be discussed below, process director component 360 accepts requests from work management component 350 or equipment management component 355 to launch these jobs thereby fulfilling the service requests. Equipment management component 355, on the other hand, allows, for example, an operator to define a list of services capable of being provided by a particular service provider (e.g., a particular tool or machine). In addition, equipment management component 355 is also utilized to define the conditions or machine states under which each service may be performed. For example, during modeling, an operator indicates that in order for a particular etcher to provide a certain etch service, the etcher must have at least two currently operational chambers. If these chambers are not operational, then that etcher is not capable of providing the etch service. At run time then, the current availability of each service provider to, e.g., provide a certain service may be obtained by querying equipment management component 355. In addition, also at run time, equipment management component 355 may be utilized (in conjunction with process director component 360) to launch or start a workflow relating to a particular service provider. Like equipment management component 355, work management component 350 is also utilized during a modeling stage. However, instead of modeling service providers, work management component 350 is directed to service requestors (e.g., particular products). For instance, during modeling, work management component 350 is used to define attributes for a particular lot or material. Thus, each of the attributes required for particular product, such as a chip, can be entered into work management component 350. As depicted in FIG. 3, dispatching component 320 is comprised of, for example, five individual components, each responsible for a variety of processing functions. For instance, service management component 345 is used to model the list of services utilized in the manufacturing process of the facility. To do this, it is envisioned that the services required to effect the plan, which when executed result in a final product, are entered into service management component 345. For example, each step required to produce a particular product, including any required or necessary order or sequence (i.e., any sequential steps) is entered. Furthermore, the steps may be conditional steps requiring satisfaction of certain specifications or requirements. For example, an etching service may be required to be repeated until certain specifications are met, before allowing the process to continue to a deposition step. In addition, run rules component 340 implements a set of run or business rules used to govern each service plan. More particularly, these run rules may be implemented to increase efficiency or for some other similar purpose. For example, one run rule may require that a particular etcher be loaded with at least three lots before commencing an etching service. In the same manner, another run rule may require services to be performed only on non-test lots. Still yet another exemplary run rale may include requiring a common tool recipe for a particular lot. These run rules may also be weighted to identify preferred methods of performing a service. For instance, it may be preferable to have a service performed by a first etcher, which can provide a particular service using only a single chamber, rather than a second etcher, which requires two chambers. In this case, a run rule for that service would place a greater weight or ranking on the first etcher. In these embodiments, the rules are entered during modeling by, for instance, an operator or engineer via user interface 224 or the like. At run time, run rules component 340 generates dispatch lists comprised of weighted service requestor/service provider groups. (As discussed previously in the Summary section, and further discussed below) Upon selecting one service requestor/service provider group, either automatically by MES 310 or manually by an operator (as mentioned further below), run rules component 340 is used to validate or ensure that the selected group complies with all applicable run rules. Dispatching component 320 also includes resource coordinator component 325. Resource coordinator component 325, during modeling, receives information concerning a number of user defined dispatch stations. For example, a user may wish to define a dispatch station to include all of the service providers located in a particular location in facility 200. In the same manner, a user may define a dispatch station to include a number of similar tools (e.g., a number of etchers). Whatever the case, these dispatch stations are implemented in resource coordinator component 325 and facilitate matching or grouping of service providers and service requestors according to the respective services provided or services requested. As will be discussed below, at run time, resource coordinator component 325 receives communications or requests from the service providers and service requestors respectively indicating the services currently capable of being provided and the services requested. The services offered and the services requested are placed or associated with a corresponding dispatch station. Upon this addition to a dispatch station, resource coordinator component 325 publishes a message indicating that a dispatch station has been updated. Then, if a valid resource requestor/resource provider group ultimately results from the addition to the dispatch station, resource coordinator component 325 launches a run job by invoking process director component 360. After completion thereof, resource coordinator component 325 releases the resources associated with the completed job from their dispatch station. The messages published by resource coordinator component 325 are monitored by event manager 335 or a special instance of event manager 335. Upon receiving a message, event manager 335 invokes dispatch processing component 330 to query resource coordinator component 325 for a list of options or candidate resources. Event manager 335 then passes this list to run rules component 340 which in turn generates a prioritized list of dispatch options. As will be discussed below, these dispatch options constitute each of the resource requestor/resource provider groups from a dispatch station weighted according to the run rules implemented by run rules component 340. In addition to querying rales component 340 for the prioritized dispatch options, dispatch processing component 330, in a fully automatic embodiment of the present invention, automatically selects the first or highest ranked option from the dispatch list for validation and dispatch. Furthermore, as will be discussed below, semiautomatic and manual embodiments are also possible. In the former case, a ranked list of dispatch options is presented to, for example, an operator, who in turn selects an option for validation and dispatch. In the manual embodiments, an option is selected by an operator without assistance from dispatching component 320. As mentioned above, each job is validated by run rules component 340, and dispatch is initiated by calling resource coordinator component 325. Although processing facility 200 is described as being operated in conjunction with 310 MES of FIG. 3, it is to be understood that other alternatives are possible, this regard, it is to be understood that utilization of the distinct processing components of FIG. 3 is for convenience only, and that any number of computing processes may just as easily be implemented. For instance, any single component or any combination of components of FIG. 3 may be replaced with any one or more similar computing processes. For example, it is possible that a single process may be substituted in place of resource coordinator component 325 and process director component 360. Likewise, event manager 335 may be replaced with two functionally distinct processes. Other alternatives are also possible. Furthermore, it is also possible within the scope of the present invention that the components of FIG. 3 may reside in physically distinct computing nodes or systems, such as, for instance some type of distributed computing environment. For example, it is possible that run rules component 340 could be implemented in a system located off-site. Similarly, equipment management component 355 could be implemented at a resource node. Referring to FIG. 4, embodiments of the present invent contemplate that a number of dispatch stations 410 are implemented in resource coordinator component 325. As mentioned above, each dispatch station 410 is associated with one or more services, and may represent the points within a factory where there is a need to prioritize work. The services associated with each dispatch station 410 may be defined during, for example, a modeling stage by a process engineer or operator. As one example, the services may be grouped with other similar services. Thus, a number of etch services may be grouped in one dispatch station. Likewise, a number of oxidation services may be grouped in a second distinct dispatch station. As another example, the services may be grouped according to physical location. Hence, all of the resources in one location in facility 200 may be placed in one dispatch station and all of the resources in a second location may be placed in a second dispatch station. Each dispatch station 410 serves as an exchange or marketplace for matching service requests with service offers by managing a list of services and also a list of resources (i.e., service providers and/or service requestors) for each service. For example, at run time, service offers and service requests received by resource coordinator component 325 are associated with an appropriate dispatch station 410, where they may be matched. As illustrated in FIG. 4, each dispatch station 410 implements a list of services 420, with each service on the list, in turn, maintaining a list of resources. When service offers and service requests are received, they are placed or associated with an appropriate service. Thus, a service offer or request from a service provider or requestor is placed in a resource list of a specific service in each dispatch station associated with that offered service. Each match between service providers and service requestors forms a matched service provider/service requestor group, which is then listed as one dispatch option on a dispatch list 430. For example, if Etcher 10 can provide Service A on Lots A, B, and C, then one dispatch option on a dispatch list for Service A indicates that Etcher 10 is capable of providing the service requested by Lots A, B, and C. Similarly, if the same service can be provided by Etcher 20 for Lots A, E, F, and G, then a second dispatch option on the same list indicates that Etcher 20 is capable of providing the service requested by Lots A, E, F, and G. In embodiments contemplated by the present invention, if a dispatch list is selected and a run job is launched for execution, these service providers and service requestors remain on a resource list for a specific service, at the dispatch station where the run job was launched, until after their service has been completed by the run job. At that time the resources are released. Referring now to FIG. 5, one example of a modeling step utilized by the present invention is depicted. During this step, information and data regarding a service plan are entered. For example, data pertaining to the resources of the facility are entered into work management component 350 and equipment management component 355. In particular, the operations or services required to process each lot or material are inputted into work management component 350 (step 502). Likewise, the tool or machine rules, including the services capable of being provided by a tool as well as the conditions under which those services may be provided, are entered into equipment management component 355 (step 506). In addition, the run, material, and entity jobs or workflows are entered into process director component 360 (step 510). The dispatch station information, including the services associated with each dispatch station 410, are entered into resource coordinator component 325 (step 514). Also, the run rules are entered into rules component 340 (step 518). After modeling has been completed, processing continues with launching of the modeled material or tool workflows (or jobs). An example of the execution of one service or operation is now described with reference to FIGS. 6-9. As depicted in FIG. 6, after a material workflow has been launched, a request is transmitted from lot node 212 to resource coordinator component 325 via process director component 360 requesting a particular service (step 602). A similar request or communication is transmitted from tool node 204 to resource coordinator component 325 via process director component 360 indicating that it is available to provide one or more services (step 606). In addition to this communication, tool node 204 also reports any changes in its status or machine states to equipment manager component 355 (step 610). For example, a etcher may at this time report that one of its chambers is in use. After receiving the tool node's report, equipment manager component 355 provides an updated list of services that can be provided by the tool to resource coordinator component 325 (step 614). By doing so, resource coordinator component 325 identifies the actual services currently capable of being provided by an individual tool. Using this information, resource coordinator component 325 associates or places each service into an appropriate dispatch station (not shown). In other embodiments, the communication may include an indication of a dispatch station to be joined. As depicted in FIG. 7, after a resource is added to a dispatch station, resource coordinator component 325 publishes a resource event (step 702). In addition to dispatch station changes, resource coordinator component 325 also publishes resource events in response to pauses in processing, or if processing is aborted. Similarly, a resource event is also published when a resource is released from a dispatch station after a run job has been completed. Subscribing to the resource coordinator component's publications is event manager 335. Upon receiving a publication, in this example event manager 335 invokes dispatch processing component 330 in an attempt to execute a ran job (step 706). In response to the event manager's invocation, dispatch processing component 330 first queries resource coordinator component 325 for a dispatch list (step 710). Subsequently, one dispatch option (i.e., a service requestor/service provider group) is selected. As will be discussed below, the method used to select an option depends on whether an automatic, semiautomatic, or manual mode is being utilized. Whatever method is used, the selected dispatch option is next validated by ran rules component 340 (step 714). As mentioned above, run rules component 340 ensures that the selected dispatch option complies with each of the service rules. Referring to FIG. 8, subsequent to validating the selected dispatch option, resource coordinator component 325 dispatches the selected option's ran job by calling process director component 360 (step 804). From there, process director component 360 executes provisioning of the service by, for example, calling a material handler to move a lot or material to a machine and start execution of a run job to fulfill the service demand. Once the service has been completed, process director component 360 informs resource coordinator component 325 (step 808). In response, resource coordinator component 325 releases each of the resources to return to process director component 360 (step 812). Furthermore, each resource associated with the completed service is removed from the resource list of the service associated with the dispatch station that launched the ran job. The processing undertaken by the present invention is now described with reference to FIGS. 9- 12. Referring first to FIG. 9 as an overview, processing commences with modeling of the workflows for material, tools, and run jobs (step 904). Subsequently, the workflows are executed (step 908). During the course of processing or execution, one or more ran jobs are dispatched to perform a number of requested services (step 912). FIG. 10 illustrates a modeling stage or process of the present invention. Starting with the tools or service providers, each service capable of being provided by a particular resource is entered into equipment management component 355 (step 1010). Subsequently, the conditions which must be met in order for a particular resource to provide each of its services are entered (step 1012). In a similar manner, the services required by each lot or material are entered into work management component 350 (step 1020). Likewise, each of the ran rules utilized in the service plan are entered into rules component 340 (step 1030). As indicated above, these ran rales ran may be used to govern each service plan by requiring compliance before dispatching a job. In addition, the ran, material, and entity jobs or workflows are also entered (step 1040), along with dispatch station information, including the services associated with each station 410 (step 1042). Modeling then ends once the above information has been entered. After modeling has been completed, the workflows may be initiated. Referring to FIG. 11, one example of an entity/tool/service provider workflow or job is depicted by steps 1110-1114. More specifically, the workflow directs the tool to join a dispatch station to provide one or more services (step 1110). As will be discussed below, the tool or service provider then is matched with one or more service requestors and provides a service before it is ultimately released (see, steps 1120-1138). After being released, the tool workflow checks whether maintenance is due (step 1112). If maintenance is not due, the tool workflow returns to step 1110 prompting the tool to again join a dispatch station to provide service. This workflow repeats until it is terminated. However, if maintenance is due, the tool joins a dispatch station and makes a maintenance request (step 1114). At that point, the tool or service provider becomes a lot or service requestor, and follows a material or lot workflow rather than the tool workflow. One example of a material/lot/service requestor workflow or job is depicted by steps 1150- 1154. Initially, the lot or material queries work management component 350 for its next required operation or service (step 1150). After identifying the next required service or operation, the material or lot is directed to request resource coordinator component 325 for its required service (step 1152). From there, as will be discussed below, the material or lot is matched with a service provider and possibly other service requestors to receive a service before it is ultimately released (see, steps 1122- 1138). After resource coordinator component 325 releases the lot or material, the material workflow checks whether the plan is complete (step 1154). If the plan has been completed, processing ends. However, if the plan has not been completed, processing for the material advances to provide the remaining services required before completion. After being directed to provide a service (step 1110), a tool indicates to resource coordinator component 325 that it is now available to provide a service (step 1120). Then, as discussed above, resource coordinator component 325 identifies which services are currently capable of being provided from equipment management component 355 as determined according to the tool status. Subsequently, the service capable of being provided is placed in each dispatch station associated with that service (step 1124). Likewise, after being directed to request a service, a lot transmits the request to resource coordinator component 325 (step 1122). Subsequently, the request is placed in each dispatch station associated with the requested- service (step 1126). From there, each service request is matched with a service offer to form a number of dispatch options or service provider/service requestor groups (step 1128). Furthermore, it is important to note that any number of service requestors and/or service providers may be encompassed by a single group. For instance, a single etcher may be able to provide a requested etch service to three individual lots. This service provider/service requestor group would then consist of four resources. Subsequently, the dispatch options or service provider/service requestor groups are ranked according to the run rules of ran rule component 340 (step 1130). As described above, one dispatch option is then selected, either automatically by the system, semiautomatically in conjunction with an operator, or manually by an operator and then validated using run rules component 340 (step 1132). After validation, the run job is initiated (step 1134), and completed (step 1136) before releasing the service providers/service requestors from the dispatch station where the run job was launched (step 1138). The dispatch modes mentioned above are now described with reference to FIG. 12. Initially, the process identifies or determines whether the ran job is to be dispatched manually, semiautomatically, or automatically (step 1204). If dispatch is to be made manually, a process engineer or operator manually selects via, for example, user interface 224, the tools to be utilized for performing a particular service, without any assistance from the system (step 1208). If dispatch is semiautomatic, the weighted dispatch options are presented to an operator, who then selects based on the available options (step 1224). If dispatch is automatic or fully automatic, the highest ranked option is automatically selected by dispatch processing component 330 (step 1230). Furthermore, if a number of options are equally ranked, dispatch processing component 330 selects an option according to a first-in, first-out policy (FIFO) or other similar method. After an option has been selected, run rules component 340 validates the selected option to ensure compliance with the process rales (step 1240). It should be understood that the flow diagrams depicted herein are exemplary in nature. There may be variations to these diagrams without departing form the spirit of the invention. For instance, the steps may be performed in a different order, or steps may be added, deleted or modified. It is, therefore, to be understood that within the scope of the appended claims the invention may be practiced otherwise than as specifically described. FIG. 13 illustrates a block diagram of one example of the internal hardware of main computing server 228 of FIG. 2. A bus 1356 serves as the main information highway interconnecting the other components of system 228. CPU 1358 is the central processing unit of the system, performing calculations and logic operations required to execute the processes of the instant invention as well as other programs. Read only memory (ROM) 1360 and random access memory (RAM) 1362 constitute the main memory of the system. Disk controller 1364 interfaces one or more disk drives to the system bus 1356. These disk drives are, for example, floppy disk drives 1370, or CD ROM or DVD (digital video disks) drives 1366, or internal or external hard drives 1368. These various disk drives and disk controllers are optional devices. A display interface 1372 interfaces display 1348 and permits information from the bus 1356 to be displayed on display 1348. Display 1348 is also an optional accessory. For example, display 1348 could be substituted or omitted. Communications with external devices such as the other components of the system described above, occur utilizing, for example, communication port 1374. For example, port 1374 may be interfaced with bus/network 220 of FIG. 2. Optical fibers and/or electrical cables and/or conductors and/or optical communication (e.g., infrared, and the like) and/or wireless communication (e.g., radio frequency (RF), and the like) can be used as the transport medium between the external devices and communication port 1374. Peripheral interface 1354 interfaces the keyboard 1350 and mouse 1352, permitting input data to be transmitted to bus 1356. In addition to these components, system 228 also optionally includes an infrared transmitter 1378 and/or infrared receiver 1376. Infrared transmitters are optionally utilized when the computer system is used in conjunction with one or more of the processing components/stations that transmits/receives data via infrared signal transmission. Instead of utilizing an infrared transmitter or infrared receiver, the computer system may also optionally use a low power radio transmitter 1380 and/or a low power radio receiver 1382. The low power radio transmitter transmits the signal for reception by components of the production process, and receives signals from the components via the low power radio receiver. The low power radio transmitter and/or receiver are standard devices in industry. Although system 228 in Fig. 13 is illustrated having a single processor, a single hard disk drive and a single local memory, the system 228 is optionally suitably equipped with any multitude or combination of processors or storage devices. For example, system 228 may be replaced by, or combined with, any suitable processing system operative in accordance with the principles of the present invention, including sophisticated calculators, and hand-held, laptop/notebook, mini, mainframe and super computers, as well as processing system network combinations of the same. FIG. 14 is an illustration of an exemplary computer readable memory medium 1484 utilizable for storing computer readable code or instructions. As one example, medium 1484 may be used with disk drives illustrated in FIG. 13. Typically, memory media such as floppy disks, or a CD ROM, or a digital video disk will contain, for example, a multi-byte locale for a single byte language and the program information for controlling the above system to enable the computer to perform the functions described herein. Alternatively, ROM 1360 and/or RAM 1362 illustrated in FIG. 13 can also be used to store the program information that is used to instruct the central processing unit 1358 to perform the operations associated with the instant processes. Other examples of suitable computer readable media for storing information include magnetic, electronic, or optical (including holographic) storage, some combination thereof, etc. In general, it should be emphasized that the various components of embodiments of the present invention can be implemented in hardware, software or a combination thereof. In such embodiments, the various components and steps would be implemented in hardware and/or software to perform the functions of the present invention. Any presently available or future developed computer software language and/or hardware components can be employed in such embodiments of the present invention. For example, at least some of the functionality mentioned above could be implemented using Visual Basic, C, C++, or any assembly language appropriate in view of the processors) being used. It could also be written in an interpretive environment such as Java and transported to multiple destinations to various users. It is also to be appreciated and understood generally that the specific embodiments of the invention described hereinbefore are merely illustrative of the general principles of the invention. Various modifications may be made by those skilled in the art consistent with the principles set forth hereinbefore.

Claims: CLAIMS We claim: 1. A method for associating a service provider with one of a plurality of service requestors, said method comprising the steps of: (1) receiving a communication from the service provider, said communication including a list indicating one or more services capable of being performed by the service provider; (2) associating each service offered by the service provider into one ormore dispatch stations; (3) receiving a service request from each of the plurality of service requestors; (4) assigning each said service request to said one or more dispatch stations; and (5) matching one of the plurality of service requestors with the service provider using one of said one or more dispatch stations, said one of said one or more dispatch stations having associated therewith the service provider capable of providing said requested service, thereby forming a matched service requestor/service provider group. 2. The method of claim 1, further comprising the step of applying a rank to said matched service requestor/service provider group according to one or more run rales for use with comparing against other ranked and matched service requestor/service provider groups. 3. The method of claim 1, further comprising the step of publishing a resource event after associating a service offer or assigning a service request to a dispatch station. 4. The method of claim 1, further comprising the step of: (6) attempting to dispatch a service after associating a service offer or assigning a service request to a dispatch station. 5. The method of claim 1, wherein each dispatch station of said step (2) includes a list of services corresponding to each service associated therewith, each entry in said list of services includes a list of resources, and each entry in said list of resources may be associated with one or more service providers or service requestors. 6. The method of claim 5, wherein a service provider and a service requestor listed in a list of resources constitutes at least a portion of a matched service provider/service requestor group. 7. A method for executing a manufacturing facility process plan, said manufacturing facility comprising a plurality of resources including service providers for providing services and service requestors for requesting services, said manufacturing facility also implementing one or more dispatch stations for matching service requestors with service providers, said method comprising the steps of: (1) modeling said process plan, including generating: (a) a list of services required for said process plan, (b) resource provider information identifying each of said services that are capable of being provided by said resource providers and the conditions under which each said service may be provided, (c) dispatch station information, including a list of services associated with each of said one or more dispatch stations, and (d) a list of ran rales for governing execution of said process plan; and (2) executing said process plan by performing said services required for said process plan, said step of executing comprising the substeps of: (a) associating each service currently capable of being provided by said service providers, as determined by said resource provider information, with a corresponding dispatch station, (b) associating each service requested by said service requestors with a corresponding dispatch station, (c) forming matched service requestor/service provider groups in each dispatch station by grouping service requestors requesting a service with service providers capable of providing said same service, (d) identifying one matched service requestor/service provider group for performing each service according to said ran rules, (e) verifying compliance by said one matched service requestor/service provider group with said ran rales, and (f) dispatching each matched service requestor/service provider group. 8. The method of claim 7, wherein said list of services associated with each dispatch station is user-defined. 9. The method of claim 7, wherein said step (2) further comprises the step of: (g) disassociating each service of a matched service requestor/service provider group from a corresponding dispatch station after dispatching. 10. A method for associating service requestors with service providers, said method comprising the steps of: (1) receiving a communication from each of a plurality of resources, each resource comprising either a service requestor or a service provider, each communication also including one of an offered or requested service; (2) associating each resource with each dispatch station of a plurality of dispatch stations associated with a service offered or requested by said resource; and (3) matching service requestors with service providers in each of said one or more dispatch stations according to said offered and said requested services, thereby forming one or more matched service requestor/service provider groups. 11. The method of claim 10, wherein said communication of said step (1) further includes an indication of one or more dispatch stations for association with said resource. 12. A method for coordinating resources in a manufacturing facility comprising a plurality of service providers and a plurality of service requestors, said method comprising the steps of: (1) receiving service provider and service requestor information including services currently capable of being provided by the service providers and services requested by the service requestors; (2) matching service requestors with service providers according to said services currently capable of being provided by the service providers and said services requested by the service requestors to form one or more service provider/service requestor groups; (3) identifying a selected service provider/service requestor group; (4) verifying compliance of said selected service provider/service requestor group with one or more ran rules; and (5) launching a workflow for said selected service provider/service requestor group if said selected service provider/service requestor group complies with said one or more ran rales. 13. The method of claim 12, wherein said selected service provider/service requestor group is identified by ranking said one or more service provider/service requestor groups according to said one or more ran rales, and automatically selecting a highest ranked group. 14. The method of claim 12, wherein said selected service provider/service requestor group is identified by allowing a user to select from a list of said one or more service provider/service requestor groups ranked according to said one or more run rales. 15. A manufacturing resource coordinating system comprising: a plurality of service provider servers, each service provider server monitoring one service provider and capable of transmitting a communication indicating that said one service provider is available to provide one or more services; a plurality of service requestor servers, each service requestor server monitoring one service requestor and capable of transmitting a service request indicating a service required by said one service requestor; a resource coordinator for associating service requestors with service providers, said resource coordinator comprising a processor for receiving communications from each service provider server including a list of services currently capable of being performed by said service provider and for receiving service requests from each service requestor server, said resource coordinator also comprising a memory for implementing one or more dispatch stations capable of being associated with one or more service requestors and service providers; and wherein said processor associates each service offered by each service requestor with a dispatch station, and each requested service of each service requestor with all dispatch stations having associated therewith service providers capable of providing said requested service, thereby forming one or more matched service requestor/service provider groups. 16. The system of claim 15, further comprising a rales component for applying a rank to said matched service requestor/service provider groups according to one or more run rales for use with comparing said one or more ranked and matched service requestor/service provider groups against one another. 17. The system of claim 15, wherein said processor publishes a resource event after associating a service offer or assigning a service request to a dispatch station. 18. The system of claim 15, wherein said processor attempts to dispatch a service after associating a service offer or assigning a service request to a dispatch station. 19. The system of claim 15, wherein each dispatch station includes a list of services corresponding to each service associated therewith, each entry in said list of services includes a list of resources, and each entry in said list of resources may be associated with one or more service providers or service requestors. 20. The system of claim 19, wherein a service provider and a service requestor listed in a list of resources constitutes at least a portion of a matched service provider/service requestor group. 21. A system for executing a manufacturing facility process plan, said system comprising: a plurality of resources including service providers for providing services and service requestors for requesting services, a computing processor for implementing one or more dispatch stations, each dispatch station implemented to match service requestors with service providers, said processor comprising: a modeling component for generating a list of services required to execute said process plan, resource provider information identifying each service capable of being provided by said resource providers as well as conditions under which each service may be provided, dispatch station information including a list of services associated with each dispatch station, and a list of ran rales for governing execution of said process plan; and a dispatching component for executing said process plan by performing each service required for said process plan, wherein said dispatching component executes said process plan by: associating each service currently capable of being provided by said service providers, as determined by said resource provider information, with a corresponding dispatch station, associating each service requested by said service requestors with a corresponding dispatch station, forming matched service requestor/service provider groups in each dispatch station by grouping service requestors requesting a service with service providers capable of providing said same service, identifying one matched service requestor/service provider group for performing each service according to said run rales, verifying compliance by said one matched service requestor/service provider group with said run rales, and dispatching each matched service requestor/service provider group. 22. The system of claim 21, wherein said list of services associated with each dispatch station is user-defined. 23. The system of claim 21, wherein said dispatching component further disassociates each service of a matched service requestor/service provider group from a corresponding dispatch station after dispatching. 24. A manufacturing resource coordinating system comprising: a plurality of resource servers, each resource server associated with one resource, each resource comprising either a service requestor or a service provider, each said resource server capable of transmitting a communication including a requested or offered service; a resource coordinator for associating service requestors with service providers, said resource coordinator comprising a processor for receiving said communications from said resource servers, and a memory for implementing a plurality of dispatch stations, wherein each dispatch station is associated with one or more services; wherein, upon receiving said communications, said processor associates each resource with a corresponding dispatch station, and matches service requestors with service providers in each of said dispatch stations according to said offered and said requested services, thereby forming one or more matched service requestor/service provider groups. 25. The system of claim 24, wherein said communication further includes an indication of one or more dispatch stations for association with said resource. 26. A coordinator component comprising: a computing processor capable of receiving service provider information including services currently capable of being provided by the service providers and service requestor information including services requested by the service requestors; a memory implementing one or more dispatch stations for matching service requestors with service providers according to said services currently capable of being provided by the service providers and said services requested by the service requestors, thereby forming one or more service provider/service requestor groups; and wherein upon identifying a selected service provider/service requestor group and verifying compliance of said selected service provider/service requestor group with one or more run rales said processor launches a workflow for said selected service provider/service requestor group. 27. The component of claim 26, wherein said processor identifies said selected service provider/service requestor group by ranking said one or more service provider/service requestor groups according to said one or more run rales, and automatically selecting a highest ranked group. 28. The component of claim 26, wherein said processor identifies said selected service provider/service requestor group by allowing a user to select from a list of said one or more service provider/service requestor groups ranked according to said one or more ran rales. 29. An apparatus for associating a service requestor with a service provider, said apparatus comprising: means for receiving a communication from each of a plurality of service providers, each communication including a list of one or more services currently capable of being performed by a corresponding service provider; means for associating each service offered by said plurality of service providers into one or more dispatch stations; means for receiving a service request from each of a plurality of service requestors; means for assigning each service request to one or more dispatch stations having associated therewith one or more service providers capable of providing said requested service; and means for matching said service requestors with each service provider in said one or more dispatch stations having associated therewith one or more service providers capable of providing said requested service, thereby forming one or more matched service requestor/service provider groups. 30. The apparatus of claim 29, further comprising means for applying a rank to said matched service requestor/service provider groups according to one or more run rales, and means for comparing said one or more ranked and matched service requestor/service provider groups against one another. 31. The apparatus of claim 29, further comprising means for publishing a resource event after associating a service offer or assigning a service request to a dispatch station. 32. The apparatus of claim 29, further comprising means for attempting to dispatch a service after associating a service offer or assigning a service request to a dispatch station. 33. The apparatus of claim 29, wherein each dispatch station includes a list of services corresponding to each service associated therewith, each entry in said list of services includes a list of resources, and each entry in said list of resources may be associated with one or more service providers or service requestors. 34. The apparatus of claim 33, wherein a service provider and a service requestor listed in a list of resources constitutes at least a portion of a matched service provider/service requestor group. 35. An apparatus for executing a manufacturing facility process plan, said manufacturing facility comprising a plurality of resources including service providers for providing services and service requestors for requesting services, said manufacturing facility also implementing one or more dispatch stations for matching service requestors with service providers, said apparatus comprising: means for modeling said process plan including generating a list of services required for said process plan, resource provider information identifying each service capable of being provided by said resource providers as well as conditions under which each service may be provided, dispatch station information including a list of services associated with each dispatch station, and a list of run rules for governing execution of said process plan; and means for executing said process plan by performing each service required for said process plan, said means for executing including: means for associating each service currently capable of being provided by said service providers, as determined by said resource provider information, with a corresponding dispatch station, means for associating each service requested by said service requestors with a corresponding dispatch station, means for forming matched service requestor/service provider groups in each dispatch station by grouping service requestors requesting a service with service providers capable of providing said same service, means for identifying one matched service requestor/service provider group for performing each service according to said ran rules, means for verifying compliance by said one matched service requestor/service provider group with said run rules, and means for dispatching each matched service requestor/service provider group. 36. The apparatus of claim 35, wherein said list of services associated with each dispatch station is user-defined. ' 37. The apparatus of claim 35, further comprising means for disassociating each service of a matched service requestor/service provider group from a corresponding dispatch station after dispatching. 38. An apparatus for associating service requestors with service providers, said apparatus comprising: means for receiving a communication from each of a plurality of resources, each resource comprising either a service requestor or a service provider, each communication also including one of an offered or requested service; means for associating each resource with each dispatch station of a plurality of dispatch stations associated with a service offered or requested by said resource; and means for matching service requestors with service providers in each of said one or more dispatch stations according to said offered and said requested services, thereby forming one or more matched service requestor/service provider groups. 39. The apparatus of claim 38, wherein said communication further includes an indication of one or more dispatch stations for association with said resource. 40. An apparatus for coordinating resources in a manufacturing facility comprising a plurality of service providers and a plurality of service requestors, said apparatus comprising: means for receiving service provider and service requestor information including services currently capable of being provided by the service providers and services requested by the service requestors; means for matching service requestors with service providers according to said services currently capable of being provided by the service providers and said services requested by the service requestors to form one or more service provider/service requestor groups; means for identifying a selected service provider/service requestor group; means for verifying compliance of said selected service provider/service requestor group with one or more run rales; and means for launching a workflow for said selected service provider/service requestor group if said selected service provider/service requestor group complies with said one or more run rules. 41. The apparatus of claim 40, wherein said means for identifying further comprises means for ranking said one or more service provider/service requestor groups according to said one or more ran rales, and means for automatically selecting a highest ranked group. 42. The apparatus of claim 40, wherein said means for identifying further comprises means for ranking said one or more service provider/service requestor groups according to said one or more run rales, and means for allowing a user to select from a ranked list of said one or more service provider/service requestor groups. 43. A computer program embodied on a computer-readable medium for associating a service requestor with a service provider, said program comprising: computer-readable instructions for receiving a communication from each of a plurality of service providers, each communication including a list of one or more services currently capable of being performed by a corresponding service provider; computer-readable instructions for associating each service offered by said plurality of service providers into one or more dispatch stations; computer-readable instructions for receiving a service request from each of a plurality of service requestors; computer-readable instructions for assigning each service request to one or more dispatch stations having associated therewith one or more service providers capable of providing said requested service; and computer-readable instructions for matching said service requestors with each service provider in said one or more dispatch stations having associated therewith one or more service providers capable of providing said requested service, thereby forming one or more matched service requestor/service provider groups. 44. The computer program of claim 43, further comprising computer-readable instructions for applying a rank to said matched service requestor/service provider groups according to one or more run rales, and computer-readable instructions for comparing said one or more ranked and matched service requestor/service provider groups against one another. 45. The computer program of claim 43, further comprising computer-readable instructions for publishing a resource event after associating a service offer or assigning a service request to a dispatch station. 46. The computer program of claim 43, further comprising computer-readable instructions for attempting to dispatch a service after associating a service offer or assigning a service request to a dispatch station. 47. The computer program of claim 43, wherein each dispatch station includes a list of services corresponding to each service associated therewith, each entry in said list of services includes a list of resources, and each entry in said list of resources may be associated with one or more service providers or service requestors. 48. The computer program of claim 47, wherein a service provider and a service requestor listed in a list of resources constitutes at least a portion of a matched service provider/service requestor group. 49. A computer program embodied on a computer-readable medium for executing a manufacturing facility process plan, said manufacturing facility comprising a plurality of resources including service providers for providing services and service requestors for requesting services, said manufacturing facility also implementing one or more dispatch stations for matching service requestors with service providers, said program comprising: computer-readable instructions for modeling said process plan including generating a list of services required for said process plan, resource provider information identifying each service capable of being provided by said resource providers as well as conditions under which each service may be provided, dispatch station information including a list of services associated with each dispatch station, and a list of ran rules for governing execution of said process plan; and computer-readable instructions for executing said process plan by performing each service required for said process plan, said computer-readable instructions for executing including: computer-readable instructions for associating each service currently capable of being provided by said service providers, as determined by said resource provider information, with a corresponding dispatch station, computer-readable instructions for associating each service requested by said service requestors with a corresponding dispatch station, computer-readable instructions for forming matched service requestor/service provider groups in each dispatch station by grouping service requestors requesting a service with service providers capable of providing said same service, computer-readable instructions for identifying one matched service requestor/service provider group for performing each service according to said run rules, computer-readable instructions for verifying compliance by said one matched service requestor/service provider group with said run rales, and computer-readable instructions for dispatching each matched service requestor/service provider group. 50. The computer program of claim 49, wherein said list of services associated with each dispatch station is user-defined. 51. The computer program of claim 49, further comprising computer-readable instructions for disassociating each service of a matched service requestor/service provider group from a corresponding dispatch station after dispatching. 52. A computer program embodied on a computer-readable medium for associating service requestors with service providers, said program comprising: computer-readable instructions for receiving a communication from each of a plurality of resources, each resource comprising either a service requestor or a service provider, each communication also including one of an offered or requested service; computer-readable instractions for associating each resource with each dispatch station of a plurality of dispatch stations associated with a service offered or requested by said resource; and computer-readable instractions for matching service requestors with service providers in each of said one or more dispatch stations according to said offered and said requested services, thereby forming one or more matched service requestor/service provider groups. 53. The computer program of claim 52, wherein said communication further includes an indication of one or more dispatch stations for association with said resource. 54. A computer program embodied on a computer-readable medium for coordinating resources in a manufacturing facility comprising a plurality of service providers and a plurality of service requestors, said program comprising: computer-readable instructions for receiving service provider and service requestor information including services currently capable of being provided by the service providers and services requested by the service requestors; computer-readable instractions for matching service requestors with service providers according to said services currently capable of being provided by the service providers and said services requested by the service requestors to form one or more service provider/service requestor groups; computer-readable instructions for identifying a selected service provider/service requestor group; computer-readable instractions for verifying compliance of said selected service provider/service requestor group with one or more run rales; and computer-readable instructions for launching a workflow for said selected service provider/service requestor group if said selected service provider/service requestor group complies with said one or more ran rales. 55. The computer program of claim 54, further comprising computer-readable instractions for ranking said one or more service provider/service requestor groups according to said one or more run rales, and computer-readable instractions for automatically selecting a highest ranked group. 56. The computer program of claim 54, further comprising computer-readable instructions for ranking said one or more service provider/service requestor groups according to said one or more ran rales, and computer-readable instructions for allowing a user to select from a ranked list of said one or more service provider/service requestor groups. 57. A computer readable medium comprising a computer program for associating a service provider with one of a plurality of service requestors, by performing the steps of: (1) receiving a communication from the service provider, said communication including a list indicating one or more services capable of being performed by the service provider; (2) associating each service offered by the service provider into one or more dispatch stations; (3) receiving a service request from each of the plurality of service requestors; (4) assigning each said service request to said one or more dispatch stations; and (5) matching one of the plurality of service requestors with the service provider using one of said one or more dispatch stations, said one of said one or more dispatch stations having associated therewith the service provider capable of providing said requested service, thereby forming a matched service requestor/service provider group. 58. The computer program of claim 57, further comprising the step of: (6) applying a rank to said matched service requestor/service provider groups according to one or more ran rules for use in comparing said one or more ranked and matched service requestor/service provider groups against one another. 59. The computer program of claim 57, further comprising the step of: (6) publishing a resource event after associating a service offer or assigning a service request to a dispatch station. 60. The computer program of claim 57, further comprising the step of: (6) attempting to dispatch a service after associating a service offer or assigning a service request to a dispatch station. 61. The computer program of claim 57, wherein each dispatch station includes a list of services corresponding to each service associated therewith, each entry in said list of services includes a list of resources, and each entry in said list of resources may be associated with one or more service providers or service requestors. 62. The computer program of claim 61, wherein a service provider and a service requestor listed in a list of resources constitutes at least a portion of a matched service provider/service requestor group.

Inventors: CHI YUEHSHIAN T, HAWKINS PARRIS C M, HUANG CHARLES Q, JIN QIAOLIN, MOHAN SHANTHA, WARD NICHOLAS A, CHI, YUEHSHIAN, T., HAWKINS, PARRIS, C., M., HUANG, CHARLES, Q., JIN, QIAOLIN, MOHAN, SHANTHA, WARD, NICHOLAS, A.
Applicants: APPLIED MATERIALS INC, APPLIED MATERIALS, INC.
Application year: 2001
Main classification: G05B19
IPC codes: G05B19, G06Q50