Processing method and device of semiconductor manufacturing execution system, electronic equipment and storage medium
By introducing a business object manager and persistence layer in the semiconductor manufacturing execution system, the risk problems caused by users' direct operation of entity data are solved, and a lower development threshold and higher system stability are achieved.
Patent Information
- Application Number
- CN202411930521.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-25
- Publication Date
- 2025-04-18
AI Technical Summary
In the semiconductor manufacturing execution system, users directly operate physical data, resulting in high data exposure risks, disrupting business logic, and high development thresholds.
Introduce the business object manager interface and persistence layer, create and operate business objects through the business object manager, and persist these operations into the database, reducing direct operations on entity data.
Reduces the exposure risk of entity data, simplifies the business development process, and improves the stability and maintainability of the system.
Smart Images

Figure CN119849930A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of semiconductor manufacturing technology, and specifically to a processing method, device, electronic device and storage medium of a semiconductor manufacturing execution system. Background Art
[0002] The production process of semiconductors is complex, which leads to the complexity of the semiconductor manufacturing execution system (MES). The semiconductor manufacturing execution system has super strong cohesion, and the semiconductor business is very complex. In related technologies, when users perform business operations, they directly operate on the entity data in the semiconductor execution system. The risk of external exposure of the entity data is high, which can easily destroy the business logic of the semiconductor manufacturing execution system itself. There is a risk of sensitive attribute data or table structure information being exposed in the entity data. Summary of the invention
[0003] The embodiments of the present application provide a processing method, device, electronic device and storage medium for a semiconductor manufacturing execution system, which introduces the concept of business objects into the semiconductor manufacturing execution system, thereby reducing the risk of exposing entity data to the outside and lowering the threshold for business development.
[0004] In a first aspect, an embodiment of the present application provides a processing method of a semiconductor manufacturing execution system, wherein the semiconductor manufacturing execution system includes a business object manager interface, a business object manager, and a persistence layer; the method includes:
[0005] Obtaining an interface specification for creating a business object from the business object manager interface;
[0006] Creating a business object using the business object manager according to the business attributes of the semiconductor manufacturing entity and the interface specification for creating the business object;
[0007] According to the relationship between the semiconductor manufacturing entity and the table in the database, configuring the mapping relationship between the business object and the table in the database;
[0008] Using the persistence layer, a persistence operation is performed on the mapping relationship between the business object and the table in the database;
[0009] Calling the business object manager interface to operate the business object; and
[0010] The operations on the business objects are synchronized to the database using the persistence layer.
[0011] In one embodiment, calling the business object manager interface to operate the business object includes:
[0012] Calling the business object manager interface to obtain information about the business object;
[0013] Modify information of the business object based on an operation on the business object;
[0014] When the modification of the information of the business object involves the sub-table, acquiring the data transmission object data of the sub-table through the business object manager interface according to the modification of the information of the business object;
[0015] Modify the data transfer object data of the sub-table;
[0016] When the modification of the information of the business object involves the grandchild table, according to the modification of the data transfer object data of the child table, the data transfer object data of the grandchild table is obtained through the business object manager interface;
[0017] Modify the data transfer object data of the grandchild table;
[0018] The modified data is saved using the persistence layer.
[0019] In one embodiment, calling the business object manager interface to operate the business object includes:
[0020] Calling the business object manager interface to obtain the business object;
[0021] Based on the persistence layer, acquiring data of the business object and operating the data of the business object;
[0022] The using the persistence layer to synchronize the operation on the business object to the database includes:
[0023] Before submitting an operation on the business object, verifying the data of the business object based on the persistence layer;
[0024] The verified data of the business object is saved in the database, and the operation on the business object is submitted.
[0025] In one embodiment, the method further comprises:
[0026] Acquire the configuration of the business object, and determine the configuration information of the subtable according to the configuration of the business object;
[0027] Searching the database corresponding to the sub-table to obtain the information of the sub-table;
[0028] The conversion between the data transmission object data of the semiconductor manufacturing entity and the sub-table is completed through the mapping configuration of the business object.
[0029] In one embodiment, the method further comprises:
[0030] Obtaining configuration of the business object;
[0031] Determine the configuration information of the child table and the configuration information of the grandchild table according to the configuration of the business object;
[0032] Searching the database corresponding to the sub-table to obtain the information of the sub-table;
[0033] Query the information of the grandchild table through the configuration information of the child table and the configuration information of the grandchild table;
[0034] The conversion between the data transmission object data of the semiconductor manufacturing entity and the grandchild table is completed through the mapping configuration of the business object.
[0035] In one embodiment, the method further comprises:
[0036] For the same type of business objects:
[0037] In response to the subject data query statement, query the subject data of each of the business objects in batches;
[0038] Grouping the main body data of each of the business objects queried, and determining the business object corresponding to each of the main body data;
[0039] In response to the target sub-table query statement, batch query the data of the target sub-table of each of the business objects;
[0040] Grouping the data of the target sub-table of each of the business objects queried, and determining the target sub-table corresponding to the data of each of the target sub-tables;
[0041] In response to a target grandchild table query statement, batch query the data of the target grandchild tables of each target subtable;
[0042] The data of the target grandchild table of each of the queried target child tables are grouped to determine the target grandchild table corresponding to the data of each of the target grandchild tables.
[0043] In one embodiment, the method further comprises:
[0044] For the same type of business objects:
[0045] When the data of the child tables and grandchild tables of each of the business objects are fully updated, the data of the child tables of each of the business objects are batch deleted;
[0046] Add data of each sub-table of the business object;
[0047] Batch delete the data of each grandchild table corresponding to the same type of child table;
[0048] Add data of the grandchild table of each business object.
[0049] In one embodiment, the method further comprises:
[0050] When a first operation of acquiring a sub-table based on the business object is monitored, the first operation is intercepted, and data of the sub-table is acquired from a database;
[0051] Processing the data of the sub-table and returning the processed data of the sub-table;
[0052] When monitoring the second operation of the data transfer object of the child table to obtain the grandchild table, intercept the second operation and obtain the data of the grandchild table from the database;
[0053] The data of the grandchild table is processed, and the processed data of the grandchild table is returned.
[0054] In one embodiment, the method further comprises:
[0055] When a subtable of a target business object is expanded, an entity of the subtable is mounted on the target business object;
[0056] Configuring the target business object to obtain a mapping relationship between the target business object and the sub-table;
[0057] The persistence layer is used to pull the data of the sub-table and write the data of the sub-table into the sub-table mapping data of the target business object.
[0058] In one embodiment, the semiconductor manufacturing execution system supports a distributed cache, and the data in the distributed cache has data consistency with the data in the database; the method further includes:
[0059] Write the data of the target business object whose change frequency is lower than the preset frequency into the distributed cache;
[0060] When the data of the target business object needs to be read, the data of the target business object is read from the distributed cache.
[0061] In one embodiment, the data in the cache of the persistence layer has data consistency with the data in the database; the method further includes:
[0062] When a first request requests to update data of a first business object and a second request requests to query data of the first business object, adding a write lock to the first business object according to the first request;
[0063] Execute an update operation on the first business object, save the updated data, and release the write lock;
[0064] According to the second request, after the write lock is released, adding a read lock to the first business object;
[0065] Execute a query operation on the first business object, and store the query result in the cache of the persistence layer.
[0066] In one embodiment, the method further comprises:
[0067] When multiple requests all request to perform the same update on the first version of the data of the second business object, based on each of the requests, respectively obtain the first version of the data of the second business object from the database;
[0068] In response to any one of the multiple requests, updating the first version of data to a second version of data, and saving the second version of data to the database after passing a data consistency check;
[0069] In response to another request among the multiple requests, updating the data of the first version to data of a third version, and acquiring the data of the second version from the database;
[0070] When it is verified that the data of the second version is different from the data of the third version, an error is reported or the transaction is rolled back.
[0071] In a second aspect, an embodiment of the present application provides a processing device of a semiconductor manufacturing execution system, wherein the semiconductor manufacturing execution system includes a business object manager interface, a business object manager, and a persistence layer; the device includes:
[0072] An acquisition module, used to acquire an interface specification for creating a business object from the business object manager interface;
[0073] A creation module, used to create a business object using the business object manager according to the business attributes of the semiconductor manufacturing entity and the interface specification for creating the business object;
[0074] A configuration module, configured to configure a mapping relationship between the business object and the table in the database according to a relationship between the semiconductor manufacturing entity and the table in the database;
[0075] A persistence module, used to use the persistence layer to perform a persistence operation on the mapping relationship between the business object and the table in the database;
[0076] A calling module, used for calling the business object manager interface to operate the business object;
[0077] The synchronization module is used to synchronize the operation on the business object to the database by using the persistence layer.
[0078] In a third aspect, an embodiment of the present application further provides an electronic device, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the computer program is executed by the processor, the steps in the processing method of the above-mentioned semiconductor manufacturing execution system are implemented.
[0079] In a fourth aspect, an embodiment of the present application further provides a storage medium having a computer program stored thereon, and when the computer program is executed by a processor, the steps in the processing method of the semiconductor manufacturing execution system described above are implemented.
[0080] In a fifth aspect, the embodiments of the present application further provide a computer program product or a computer program, the computer program product or the computer program including computer instructions, the computer instructions being stored in a storage medium. The processor of the computer device reads the computer instructions from the storage medium, and the processor executes the computer instructions, so that the computer device executes the method provided in the various optional implementations described in the embodiments of the present application.
[0081] In summary, in the embodiment of the present application, the business object manager interface defines an interface specification, the business object manager can implement operations on business objects based on the interface specification, and the persistence layer can persist related configurations and operations on business objects. According to the business attributes of the semiconductor manufacturing entity and the interface specification for creating business objects, the business object manager can be used to create business objects; according to the relationship between the semiconductor manufacturing entity and the table in the database, the mapping relationship between the business object and the table in the database can be configured; the business object can be operated by calling the business object manager interface; using the persistence layer, the mapping relationship between the business object and the table in the database can be persisted, and the operations on the business object can be synchronized to the database. In this way, the concept of business objects is introduced into the semiconductor manufacturing execution system. When performing business operations, users only need to operate business objects, which can reduce the risk of exposing entity data to the outside world and lower the threshold for business development. BRIEF DESCRIPTION OF THE DRAWINGS
[0082] In order to more clearly illustrate the technical solutions in the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative work.
[0083] Figure 1 It is a module schematic diagram of a semiconductor manufacturing execution system provided by an embodiment of the present application;
[0084] Figure 2 It is a schematic diagram of the steps of a processing method of a semiconductor manufacturing execution system provided by an embodiment of the present application;
[0085] Figure 3 This is a flowchart of an operation business object provided by an embodiment of the present application;
[0086] Figure 4 This is a schematic diagram of the data persistence process provided by an embodiment of the present application;
[0087] Figure 5 It is a schematic diagram of a method for configuring business object subject data shown in an embodiment of the present application;
[0088] Figure 6 It is a schematic diagram of a method for configuring a sub-table of a business object shown in an embodiment of the present application;
[0089] Figure 7 It is a schematic diagram of a configuration method of a grandchild table of a business object shown in an embodiment of the present application;
[0090] Figure 8 It is a schematic diagram of the principle of batch query shown in an embodiment of the present application;
[0091] Fig. 9 is a schematic diagram of the data structure of a business object shown in an embodiment of the present application;
[0092] Fig.10 is a schematic diagram of a batch query shown in an embodiment of the present application;
[0093] Fig.11 It is a schematic diagram of the principle of batch operation shown in an embodiment of the present application;
[0094] Fig.12 This is a schematic diagram of a lazy loading workflow shown in an embodiment of the present application;
[0095] Fig.13 is a schematic diagram of lazy loading and saving data shown in an embodiment of the present application;
[0096] Fig.14 is a schematic diagram of a configuration method of an extension table shown in an embodiment of the present application;
[0097] Fig.15 This is a schematic diagram of a cache in a transaction dimension provided by an embodiment of the present application;
[0098] Fig.16 This is another cache schematic diagram of transaction dimension provided by an embodiment of the present application;
[0099] Fig.17 This is a schematic diagram of a distributed dimensional cache provided by an embodiment of the present application;
[0100] Fig.18 This is a flow chart of data consistency assurance provided by an embodiment of the present application;
[0101] Fig.19 It is a flowchart of data version control provided by an embodiment of the present application;
[0102] Fig. 20 It is a structural schematic diagram of a processing device of a semiconductor manufacturing execution system provided by an embodiment of the present application;
[0103] Fig.21 It is a schematic diagram of the structure of an electronic device provided in one embodiment of the present application. DETAILED DESCRIPTION
[0104] The following will be combined with the drawings in this application to clearly and completely describe the technical solutions in this application. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of them. Based on the embodiments in the present invention, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present invention.
[0105] Figure 1 It is a module schematic diagram of a semiconductor manufacturing execution system provided by an embodiment of the present application. The semiconductor manufacturing execution system is responsible for tracking and recording production progress, monitoring whether each link meets the standards, coordinating different production equipment and departments to better cooperate, and providing various useful information and reports for factory managers. The semiconductor manufacturing execution system includes an interface of business object manager (Interface of Business Object Manager, IBOManager), a business object manager (Business Object Manager, BOManager) and a persistence layer (Persistent Layer). It is understandable that the processing method of the semiconductor manufacturing execution system of the embodiment of the present application is not only applicable to MES, but also to other similar systems for managing semiconductor manufacturing execution.
[0106] The business object manager interface defines the interface specifications for operating business objects and provides a unified business object management interface for the entire system. In the embodiment of the present application, the interface specifications for operating business objects are data management for business objects within the semiconductor manufacturing execution system. The interface specifications defined by the business object manager interface can ensure the consistency and compatibility of operating business objects. The business object manager interface provides developers with a clear interface specification so that different developers can follow a unified standard to operate business objects. Operating business objects include but are not limited to: creating business objects, obtaining business objects and / or deleting business objects. The business object manager interface has high flexibility and can be expanded and modified according to changes in business requirements without affecting the business object manager implementation class that has implemented the interface. New business requirements can be met by adding new interface methods or modifying the definition of existing interface methods.
[0107] The business object manager is used to implement various management operations on business objects. According to the interface defined by the business object manager interface, the specific management functions of the business objects are implemented. Developers implement various operations on business objects by calling specific methods of the business object manager.
[0108] The persistence layer can persist the data of business objects to a certain storage medium (such as a database). The persistence layer is responsible for managing and maintaining the stored data. By letting the persistence layer handle the data persistence operation, the business logic and data storage are separated. Developers can focus on the implementation of business logic without having to worry about how the data is stored and managed. This separation makes the business code clearer, easier to maintain and expand. Due to the separation of business logic and data storage, each part of the system can be maintained and expanded independently. When business requirements change, you can only modify the business logic module without worrying about the impact on data storage.
[0109] In the embodiment of the present application, the persistence layer may have the following characteristics and functions:
[0110] The ORM (Object-Relational Mapping) framework can be shielded, so that the business logic layer can completely get rid of its dependence on the ORM framework and can switch between different ORM frameworks;
[0111] It has a built-in efficient transaction management mechanism and supports intra-transaction caching, which can ensure that the data obtained within the same transaction is consistent;
[0112] Supports distributed cache, which can write data with low frequency of change into distributed cache, ensure data consistency and reliability, and improve data access performance;
[0113] Through the transaction hook mechanism, data update, deletion, and addition operations are centrally processed, and data persistence operations can be completed without additional coding, which greatly improves development efficiency and code quality. The business layer no longer needs to worry about data persistence and only needs to focus on business.
[0114] Through business objects, business logic is decoupled from database entity objects and other database-related components, allowing business objects to focus more on business processing and improving code readability and maintainability;
[0115] Strong scalability. In the future, the ORM framework can be independently developed or replaced according to actual needs, and it is completely unaware to users, ensuring the smoothness of future development and upgrades of the system;
[0116] Supports the loading mechanism of associated sub-table data, can efficiently load and manage complex data associations, and provides a convenient data operation interface;
[0117] It provides a powerful extension mechanism, allowing users to mount custom data to specified business objects through the extension mechanism, thus achieving personalized customization and functional expansion.
[0118] Supports data lazy loading mechanism, ensuring on-demand loading of data, reducing unnecessary waste of resources, and improving system performance and response speed.
[0119] Business Object (BO) is a unified name for business attributes in a business domain in a semiconductor manufacturing execution system. All objects related to the business domain are called business objects.
[0120] Business objects are generated based on business entities, which usually represent specific and identifiable things in the real world, such as equipment, products, and personnel in semiconductor manufacturing. They are objects with actual existence in the business field, containing specific data and status information. For example, a specific model of lithography machine is a business entity, which has its own actual attributes such as equipment number, operating status, and maintenance history.
[0121] A business object is an abstract representation of a business entity at the software level. Business objects encapsulate the attributes and behaviors of business entities and present them in a way that is more suitable for software system processing. Business objects describe the characteristics and operations of business entities by defining attributes and methods. For example, for the business entity of a lithography machine, the corresponding business object may contain attributes such as equipment model, status, production efficiency, etc., and provide methods such as starting the equipment, stopping the equipment, and performing maintenance.
[0122] Business entities have corresponding business objects in the software system to represent them. This correspondence enables the software system to manage and process actual business entities by operating business objects. For example, in a semiconductor manufacturing execution system, each equipment entity has an equipment business object to represent it. The system can obtain equipment status information and arrange equipment production tasks through equipment business objects.
[0123] The attributes of business objects are usually a mapping of business entity attributes. Business objects extract key attribute information from business entities and represent them in a way that is suitable for software system processing. At the same time, the methods of business objects also reflect the behavior of business entities. For example, the attributes of a product business object may include product model, batch number, quality status, etc. These attributes correspond to the attributes of the actual product entity. The methods of a product business object may include producing products, inspecting product quality, etc. These methods reflect the behavior of the actual product during the production process.
[0124] Business entities in a semiconductor manufacturing execution system include, but are not limited to, products, production, equipment, and / or quality. Business objects in a semiconductor manufacturing execution system include, but are not limited to, product-related business objects, production-related business objects, equipment-related business objects, and / or quality-related business objects.
[0125] Product-related business objects include, but are not limited to, basic raw materials for semiconductor manufacturing (e.g., wafers), semiconductor integrated circuits, and / or packaged semiconductor products. Business attributes of business objects include, but are not limited to, product specifications, batches, models, functional parameters, production status, quality parameters, and other information.
[0126] Production-related business objects include, but are not limited to: production orders, process flows and / or production batches, etc. Business attributes of business objects include, but are not limited to: order number, product type, priority, process name, process sequence, process parameters, equipment requirements, production schedule and / or quality status, etc.
[0127] Equipment-related business objects include, but are not limited to: manufacturing equipment and / or testing equipment. Business attributes of business objects include, but are not limited to: equipment number, equipment type, equipment status and / or equipment performance parameters, etc.
[0128] Quality-related business objects include, but are not limited to, quality inspection reports and / or defective products. Business attributes of business objects include, but are not limited to, inspection items, inspection standards, measured values, qualified or unqualified judgments, defect types, causes and / or disposal methods, etc.
[0129] In one embodiment, Figure 2As shown, a processing method for a semiconductor manufacturing execution system is provided. Although the logical order is shown in the step diagram, in some cases, the steps shown or described may be performed in an order different from that shown in the figure. Specifically, the processing method of the semiconductor manufacturing execution system can be applied to a terminal or a server, wherein the terminal may include but is not limited to one or more of a smart phone, a tablet computer, a portable computer, a desktop computer, and a car computer; the server may be a physical server or a cloud server that provides various cloud services. It is worth noting that the present application does not limit the number of terminals or servers. According to the implementation requirements, there can be any number of terminals or servers. For example, the server can be a single server or a server cluster composed of multiple servers, etc.
[0130] It should be noted that the order of description of the following embodiments is not intended to limit the priority order of the embodiments.
[0131] according to Figure 2 The processing method of the semiconductor manufacturing execution system shown in the figure at least includes steps S110 to S160, which are described in detail as follows:
[0132] In step S110, an interface specification for creating a business object is obtained from the business object manager interface.
[0133] The business object manager interface defines the interface specification of the business object. The interface specification is a series of clear rules and conventions for the interface in the software system, including but not limited to: the specific functional operations provided by the interface, the input parameters and expected output results of each operation, the data format transmitted by the interface and / or the format specification of the data returned by the interface. The interface specification can ensure that different software components can interact and collaborate effectively, and improve the maintainability, scalability and reliability of the system.
[0134] The business object manager interface defines interface specifications for creating a business object, interface specifications for obtaining a business object, and / or interface specifications for deleting a business object.
[0135] When a business object needs to be created, the interface specification for creating the business object can be obtained from the business object manager interface. It can be understood that each interface is not open to the outside.
[0136] In step S120, the business object manager is used to create a business object according to the business attributes of the semiconductor manufacturing entity and the interface specification for creating the business object.
[0137] The attributes of the business object are a mapping of the attributes of the business entity. In order to create a business object, the business attributes of the corresponding semiconductor manufacturing entity can be obtained, and the business object can be created using the business object manager based on the business attributes of the semiconductor manufacturing entity and the interface specifications for creating the business object.
[0138] In step S130, a mapping relationship between the business object and the table in the database is configured according to the relationship between the semiconductor manufacturing entity and the table in the database.
[0139] Tables in a database are used to store actual data. In a relational database, a table consists of rows and columns, where each row represents an instance of an entity and each column represents an attribute of the entity. For example, in a semiconductor manufacturing execution system, there may be a "product table" that stores information about a product, including attributes such as product number, name, and / or specifications.
[0140] When creating a business object, the data related to the semiconductor manufacturing entity corresponding to the business object will be queried from the database table, and the mapping relationship between the business object and the table in the database will be configured according to the relationship between the semiconductor manufacturing entity and the table in the database, thereby completing the creation of the business object. The mapping relationship between the business object and the table in the database is established by matching the attributes of the business object with the columns of the database table. For example, the "product name" attribute of a product business object can be mapped to the "name" column in the product table in the database, and the "product specification" attribute can be mapped to the "specification" column, etc.
[0141] In step S140, the persistence layer is used to perform a persistence operation on the mapping relationship between the business object and the table in the database.
[0142] The persistence layer stores the mapping relationship between business objects and database tables in the database so that the mapping relationship between business objects and database tables can be read and used at any time during the operation of the semiconductor manufacturing execution system. For example, a special table can be created in the database to store the mapping relationship between business objects and database tables, or the mapping relationship can be recorded in the metadata of the database.
[0143] By persisting the mapping relationship between business objects and database tables, data consistency between business objects and database tables can be ensured. When the attributes of business objects change, the persistence layer can automatically update the corresponding data in the database table according to the mapping relationship. When reading data from the database table, the persistence layer can convert the data into the attribute value of the business object according to the mapping relationship.
[0144] In step S150, the business object manager interface is called to operate the business object.
[0145] The business object can be operated on a newly created business object or a previously created business object.
[0146] The operations performed on the business object may include, but are not limited to, obtaining the business object, deleting the business object, and / or querying the business object.
[0147] When operating on a business object, you can call the corresponding method in the business object manager interface. The business object manager is used to actually perform operations on the business object. The operations on the business object may interact with the database. For example, obtaining a business object may query the corresponding data from the database and create a business object instance and return it to the caller.
[0148] In step S160, the operations on the business object are synchronized to the database using the persistence layer.
[0149] The semiconductor manufacturing execution system monitors the operations on business objects. When the operations on business objects are detected, in order to ensure that the data after the operation is not lost after the system is shut down or fails, the semiconductor manufacturing execution system can call the persistence layer to synchronize these operations to the database. The persistence layer will perform corresponding database operations according to the type of operation (create, update or delete, etc.), such as inserting a new record, updating the field value of an existing record, or deleting a record.
[0150] The persistence layer synchronizes the operations on business objects to the database, ensuring that the data in the database is consistent with the state of the business objects in memory. In this way, when the system restarts or other modules need to access data, the latest and accurate data can be obtained from the database. At the same time, data loss or inconsistency can be prevented.
[0151] Adopting the technical solution of the embodiment of the present application, the business object manager interface defines the interface specification. The business object manager can implement operations on business objects based on the interface specification, and the persistence layer can persist the relevant configurations and operations on business objects. According to the business attributes of the semiconductor manufacturing entity and the interface specification for creating business objects, the business object manager can be used to create business objects; according to the relationship between the semiconductor manufacturing entity and the table in the database, the mapping relationship between the business object and the table in the database can be configured; the business object can be operated by calling the business object manager interface; using the persistence layer, the mapping relationship between the business object and the table in the database can be persisted, and the operations on the business object can be synchronized to the database. In this way, the concept of business objects is introduced into the semiconductor manufacturing execution system. When performing business operations, users only need to operate business objects, which can reduce the risk of exposing entity data to the outside world and lower the threshold for business development.
[0152] Based on the above technical solution, as an embodiment, Figure 3 As shown, calling the business object manager interface to operate the business object may include: calling the business object manager interface to obtain information of the business object; modifying the information of the business object based on the operation on the business object; when the modification of the information of the business object involves a child table, according to the modification of the information of the business object, obtaining the data transmission object data of the child table through the business object manager interface; modifying the data transmission object data of the child table; when the modification of the information of the business object involves a grandchild table, according to the modification of the data transmission object data of the child table, obtaining the data transmission object data of the grandchild table through the business object manager interface; modifying the data transmission object data of the grandchild table; and saving the modified data using the persistence layer.
[0153] After the concept of business objects is introduced into the semiconductor manufacturing execution system, business development operates business objects through the business object manager interface, and persistence operations are implemented by the persistence layer. The business can use the interface class of the specific business object, as well as the data transfer object (DTO) related classes of the associated child table and grandchild table. All business object operations are called through the interface. The implementation of the business object and the data loading behind it, including the entity corresponding to the business object itself, as well as the child table, grandchild table, etc., are all loaded through the persistence layer. Users only need to pay attention to the interface provided by the business object itself and perform specific business operations. Among them, the child table is a table structure that carries some detailed and subsidiary data associated with the business object; the grandchild table is a table structure that carries some detailed and subsidiary data associated with the child table.
[0154] Before the concept of business objects was introduced into the semiconductor manufacturing execution system, operations such as obtaining data and updating data involved a large amount of logic for interacting with the database, and these logics were irrelevant to the subject of concern to business developers. Both obtaining data and updating data required the operation of business developers, who also needed to clearly know the relationship between the main table and each sub-table and grandchild table. Many database operation logics were interspersed in business processing, making the overall business processing logic more complex and less focused.
[0155] By adopting the technical solution of the embodiment of the present application, after the concept of business object is introduced into the semiconductor manufacturing execution system, the business developers only need to pay attention to the business objects associated with the business, obtain specific business objects through the business object manager, and can only operate various interface operations of the opened business objects. The relationship between the sub-table, grandson table, etc. and the main table has been configured in the implementation class of the business object, and the business development does not need to pay attention to these complex associations. In addition, the acquisition of data such as sub-tables and grandson tables is handled by the persistence layer. In the business logic, there will be no logic that directly interacts with the database, making the overall business logic more pure. Business developers only need to pay attention to specific businesses, and do not need to pay attention to which tables to obtain data from. Through the concept of business objects, the associated sub-tables and grandson tables have been maintained in the configuration of the business objects. The acquisition of data is handled uniformly by the persistence layer, and finally the persistence layer will perform data synchronization operations before the transaction is submitted. For business developers, data preservation is imperceptible and transparent.
[0156] In the semiconductor manufacturing execution system in the related art, when dealing with complex business scenarios, business relevance is not reflected in the system, and the data persistence operation is too flexible, resulting in too fragmented persistence operations; there is no unified interface for persistence, and data persistence cannot be monitored and centrally processed; this may cause dirty data risks. In order to address the problem of fragmented business data persistence, the embodiment of this application deeply combines the persistence layer and business objects.
[0157] Based on the above technical solution, as an embodiment, Figure 4 As shown, calling the business object manager interface to operate the business object may include: calling the business object manager interface to obtain the business object; based on the persistence layer, obtaining the data of the business object, and operating the data of the business object.
[0158] The step of synchronizing the operation on the business object to the database by using the persistence layer may include: verifying the data of the business object based on the persistence layer before submitting the operation on the business object; saving the verified data of the business object to the database, and submitting the operation on the business object.
[0159] When the transaction starts, business processing is performed. When business processing needs to obtain business object data, the persistence layer is delegated to obtain the business object data. Business object data is operated based on the business object manager interface, where the operation of business object data includes but is not limited to: configuring business object data, adding lists, removing lists and / or configuring attributes. Before the transaction is committed, there will be a hook to transfer the process to the persistence layer to process business object data. The persistence layer verifies the business object data, and after the business object data verification passes, the business object data is saved to the database. After the transaction is committed, the operation of saving the business object data to the database in the hook will be synchronized to the database to complete the real preservation of the data.
[0160] By adopting the technical solution of the embodiment of the present application, a unified interface is implemented for data persistence, which is easy to manage. Data is automatically saved and is completely transparent and imperceptible to business developers.
[0161] In one embodiment, in response to a received business request, a transaction is opened, and the identifier of the business object corresponding to the transaction is obtained. Based on the opened transaction, a cache instance is created in the cache of the persistence layer. Based on the identifier of the business object, the data of the business object is obtained from the cache of the persistence layer. When the data of the business object exists in the cache of the persistence layer, the data of the business object is directly obtained from the cache of the persistence layer, and the data of the business object is returned to the transaction. When the data of the business object does not exist in the cache of the persistence layer, the data of the business object is obtained from the persistence layer, and on the one hand, the data of the business object obtained from the persistence layer is cached in the cache of the persistence layer, and on the other hand, the data of the business object obtained is returned to the transaction. The transaction processes the business according to the data of the obtained business object, such as modifying the value of the data of the business object.
[0162] When the current transaction is not completed and the business object data needs to be obtained again, the business object data can be directly obtained from the cache of the persistence layer. After processing the business, if you are ready to submit the transaction, it will be handed over to the persistence layer for processing through the hook. The persistence layer verifies the business object data and saves the business object data to the database after the business object data verification passes. Clean up the cache instance under the current transaction in the persistence layer's cache, complete the saving of business data, submit the transaction, return after the transaction is completed, and end the business request.
[0163] Based on the above technical solution, as an embodiment, the method may also include: obtaining the configuration of the business object, and determining the configuration information of the sub-table based on the configuration of the business object; searching the database corresponding to the sub-table to obtain the information of the sub-table; and completing the conversion between the data transmission object data of the semiconductor manufacturing entity and the sub-table through the mapping configuration of the business object.
[0164] Figure 5 It is a schematic diagram of a configuration method of the main data of a business object shown in an embodiment of the present application. The persistence layer can realize the conversion between the business object (EqpBO) and the entity (EqpEntity), and realize the conversion between the attribute of the entity (EqpNoteEntity) and the attribute of the data transfer object (EqpNoteBO). There is an association relationship between the attributes of the business object and the data transfer object, and there is an association relationship and a conversion relationship between the attributes of the entity and the attributes of the data transfer object. Based on the association relationship and conversion relationship between the attributes of the entity and the attributes of the data transfer object, the relationship between the attributes of the entity and the attributes of the data transfer object can be configured. The configuration can be performed based on the existence of an association relationship and a conversion relationship between the business object and the entity, and the business object is implemented through the interface of the business object.
[0165] Figure 6 It is a schematic diagram of a configuration method of a subtable of a business object shown in an embodiment of the present application. The persistence layer can obtain the relevant configuration information of the subtable through the configuration on the business object, dynamically search the database (repository) corresponding to the subtable to query the subtable information, and complete the conversion of the data transfer object from the entity to the subtable through the mapping configuration on the business object. There is an association relationship and a conversion relationship between the data transfer object of the subtable and the entity of the subtable. Based on the association relationship and the conversion relationship between the data transfer object of the subtable and the entity of the subtable, the relationship between the data transfer object of the subtable and the entity of the subtable can be configured. The configuration of the subtable can be performed on the basis of the configuration of the main data.
[0166] Based on the above technical solution, as an embodiment, the method may also include: obtaining the configuration of the business object, and determining the configuration information of the sub-table based on the configuration of the business object; searching the database corresponding to the sub-table to obtain the information of the sub-table; and completing the conversion between the data transmission object data of the semiconductor manufacturing entity and the sub-table through the mapping configuration of the business object.
[0167] Figure 7This is a schematic diagram of a configuration method for a grandchild table of a business object shown in an embodiment of the present application. The persistence layer obtains the relevant configuration information of the child table and the grandchild table through the configuration on the business object, dynamically searches the database corresponding to the child table to query the child table information, queries the grandchild table information corresponding to the child table through the configuration information of the child table and the grandchild table, and completes the conversion between the entity of the grandchild table and the data transmission object of the grandchild table through the mapping configuration on the business object. The configuration of the grandchild table can be performed on the basis of the configuration of the child table.
[0168] By adopting the technical solution of the embodiment of the present application, the configuration information related to the business object is solidified into the business object through various configurations, which can lower the threshold of business development for business understanding and enable more focus on the processing and development of business scenarios.
[0169] The processing method of the semiconductor manufacturing execution system provided in the embodiment of the present application supports batch processing and lazy loading to improve the overall performance of the persistence layer.
[0170] Based on the above technical solution, as an embodiment, Figure 8 As shown, the method also includes: for the business objects of the same type: responding to the main data query statement, batch querying the main data of each business object; grouping the main data of each business object queried, and determining the business object corresponding to each main data; responding to the target sub-table query statement, batch querying the data of the target sub-table of each business object; grouping the data of the target sub-table of each business object queried, and determining the target sub-table corresponding to the data of each target sub-table; responding to the target grandson table query statement, batch querying the data of the target grandson table of each target subtable; grouping the data of the target grandson table of each target subtable queried, and determining the target grandson table corresponding to the data of each target grandson table.
[0171] Batch processing is performed on business objects of the same type. Only business objects and tables of the same type can be processed in batches.
[0172] For a batch of business object identifier (ID) data of the same type, a main data query statement of Structured Query Language (SQL) can be used to batch obtain the main data of the business object. Similarly, a target subtable query statement of SQL can be used to batch query the data of the target subtable of each business object; a target grandchild table query statement of SQL can be used to batch query the data of the target grandchild table of each target subtable; a property table query statement of SQL can be used to batch query the data of the property table of each business object; and a extended table query statement of SQL can be used to batch query the data of each extended table. After obtaining each data, the data can be grouped to achieve batch query of business object data.
[0173] Fig. 9 The data structure of a business object is shown, in which BO has three different types of child tables: ChildA, ChildB and ChildC, in which ChildA has three different grandchild tables GrandA, GrandB, GrandC, ChildB has two different grandchild tables GrandD, GrandE, and ChildC has no grandchild table.
[0174] against Fig. 9 The BO shown, such as Fig.10 As shown in the figure, only five query statements are needed to fill in the data of BO, ChildA, ChildB, GrandA and GrandB. Compared with a single query of BO, the number of database queries is greatly reduced. Each vertical rectangular box represents an SQL query statement. BO1, BO2 and BO3 will perform a batch query of BO main data. In the following, BO1 and BO2 are used as examples, and the query operations of BO3's child table and grandchild table are ignored. The child table ChildB of BO1 and BO2 will perform an SQL query and process the grouping in memory; similarly, the child table ChildA of BO1 and BO2 will perform an SQL query and process the grouping in memory; then the grandchild table GrandA under ChildA will be queried. Here, ChildA1, ChildA2, ChildA3, ChildA4, and ChildA5 under BO1 and BO2 are used to retrieve the grandchild table data corresponding to these children of the same type from the database. After obtaining a batch of GrandA grandchild table data, they are grouped in memory and assigned to the corresponding Child; similarly, GrandB will perform the same operation as GrandA, which is also an SQL.
[0175] By adopting the technical solution of the embodiment of the present application, by batch querying multiple data and then grouping the multiple data, the interaction with the database can be effectively reduced, thereby improving the query efficiency.
[0176] Based on the above technical solution, as an embodiment, Fig.11 As shown, the method may further include: for the same type of business objects: when fully updating the data of the sub-tables and grand-child tables of each of the business objects, batch deleting the data of the sub-tables of each of the business objects; adding the data of the sub-tables of each of the business objects; batch deleting the data of the grand-child tables corresponding to the same type of sub-tables; and adding the data of the grand-child tables of each of the business objects.
[0177] Fig.11 The batch operation shown in is a batch update operation. For BOs of the same type, when the main data of the BOs needs to be updated, the new and old data of the BOs can be directly compared, and each BO can be updated separately.
[0178] For the same type of BO, when it is necessary to fully update the data of the child tables and grandchild tables of each business object, you can execute a SQL to batch delete the data of all the child tables of this batch of BO data, and then add the data of the child tables of each business object after deleting the data of the child tables to update the data of the child tables. For the same type of BO, summarize all the sub-table data of the same type, and fully update the grandchild table data corresponding to these sub-table data. By executing a SQL, batch delete the data of all the grandchild tables under the same type of sub-tables under this batch of BO data, and then add the data of the grandchild tables of each business object after deleting the data of the grandchild tables to update the data of the grandchild tables.
[0179] For the same type of BO, when the attribute data of each business object needs to be fully updated, you can execute a SQL to batch delete all the attribute data of this batch of BO data, and then add each attribute data after deleting the attribute data to implement the update of the attribute data.
[0180] For the same type of BO, when the extended table data of each business object needs to be fully updated, you can execute a SQL to batch delete all the extended table data of this batch of BO data, and then add each extended table data after deleting the extended table data to update the extended table data.
[0181] By adopting the technical solution of the embodiment of the present application, batch operations can be performed on the data of business objects, which can avoid the repetitive work of operating each object individually and improve efficiency; batch operations use the same processing logic to process multiple business objects, simplifying the business logic.
[0182] Based on the above technical solution, as an embodiment, Fig.12 As shown, the method may also include: when a first operation of obtaining a sub-table based on the business object is monitored, intercepting the first operation and obtaining the data of the sub-table from a database; processing the data of the sub-table and returning the processed data of the sub-table; when a second operation of obtaining a grandchild table by the data transmission object of the sub-table is monitored, intercepting the second operation and obtaining the data of the grandchild table from a database; processing the data of the grandchild table and returning the processed data of the grandchild table.
[0183] Obtaining the corresponding data from the database when an operation is detected is a kind of lazy loading. Lazy loading uses an agent to listen to the method logic of obtaining the child table in BO, and the logic of obtaining the grandchild table in the child table data transmission object. By intercepting the method call, it actively retrieves data from the database, and assigns it to the corresponding object after processing to achieve the purpose of lazy loading. In addition, the lazy loading of the attribute table and the extension table is handled by hard coding, because the data acquisition entry of the attribute table and the extension table is standardized.
[0184] Interception means preventing the original method from being executed directly, and letting the proxy take over the subsequent operations. The proxy will actively query the database for the required data, and only go to the database to obtain data when it is really needed, rather than loading all the data that may be used at the beginning. After querying the data, the proxy will process the data, which may include data format conversion, filtering and other operations. The processed data is then assigned to the corresponding object, so that the program that calls the method can continue to execute normally and obtain the required data.
[0185] Fig.13 This is a schematic diagram of lazy loading and saving data shown in an embodiment of the present application; in the lazy loading state, the saving of BO data and the closing of lazy loading are both incremental saves, saving only the changed data, not the data of the entire object. When saving sub-table data, the sub-table data that has been lazy loaded will be processed, and the sub-table data that has not been loaded will not be processed. By comparing with the data in the cache, the changes in the sub-table data can be determined, and the sub-table data can be added, deleted, and updated respectively.
[0186] When adding or deleting data, if there are multiple data, batch processing is performed. For example, when adding child table data in batches, if there is data in the grandchild table at the same time, the grandchild table data will also be added in batches. When deleting child table data in batches, if there is data in the grandchild table, the grandchild table data will also be deleted in batches.
[0187] When updating the child table data, if there is a grandchild table configuration, it will be compared with the grandchild table data in the cache. Then the grandchild table data is split and the addition, deletion and update of the grandchild table data are processed separately. When adding and deleting the grandchild table data, batch processing operations are also performed. When updating, incremental updates are performed to keep the primary key identifier unchanged. This ensures that when updating the child table data, the association between the child table and the grandchild table will not be affected.
[0188] The data update of the attribute table and the extended table is judged by separate conditions. If the attribute table data or the extended table data has been obtained, regardless of whether the data has been modified, the system will perform a comprehensive update operation on the data of these two types of tables. Although the full update is performed, the original data primary key identifier will be guaranteed to remain unchanged. This is very important for the consistency and relevance of the data, ensuring that the relationship between the data is not destroyed during the update process. For example, other tables may use these primary key identifiers to associate the data of the attribute table and the extended table. Keeping the primary key unchanged can avoid association errors.
[0189] By adopting the technical solution of the embodiment of the present application, specific data is loaded only when it is actually needed through lazy loading, which can significantly reduce the initial loading time, reduce memory usage, avoid unnecessary waste of resources, and improve the stability and performance of the system.
[0190] Based on the above technical solution, as an embodiment, Fig.14 As shown, the method may also include: when expanding the subtable of the target business object, mounting the entity of the subtable onto the target business object; configuring the target business object to obtain a mapping relationship between the target business object and the subtable; using the persistence layer to pull the data of the subtable, and writing the data of the subtable into the subtable mapping data of the target business object.
[0191] Different semiconductor companies have their own process flow and production management requirements. The previous semiconductor manufacturing execution system has low scalability for business data and cannot expand existing business data. In one embodiment of the present application, the concept and processing method of the extension table are introduced to address the problem of low scalability of business data.
[0192] The target business object can be any business object. Mounting represents the establishment of an association relationship. By associating the entity corresponding to the sub-table with the target business object, the entity of the sub-table is mounted on the target business object. The target business object is configured so that the system can clearly understand the mapping relationship between the target business object and the sub-table.
[0193] The persistence layer can obtain sub-table data from the database and fill the obtained sub-table data into the sub-table mapping data area corresponding to the target business object. For example, if the semiconductor manufacturing execution system wants to display a work order and the raw material details it contains, it first pulls out the raw material records corresponding to this work order from the "Work Order Raw Material Details" sub-table from the database through the persistence layer, and then writes these raw material record data to the part of the data structure (i.e., sub-table mapping data) associated with the "Work Order" business object that is used to store raw material details. In this way, these complete associated data can be conveniently used in subsequent business operations (such as displaying work order details on the front-end page, etc.).
[0194] The @MountBO annotation can be used to mount the entities of a sub-table to a specified business object. Annotation is a way to add metadata to code in software development. It does not change the logic of the program itself, but can provide additional information to the compiler, framework, etc. for specific processing. The @MountBO annotation is an identification mechanism for mounting the entities of a sub-table to the target business object. For example, for a "customer" business object, when a new "customer contact information" sub-table needs to be added, the @MountBO annotation is used in the corresponding code to tell the program to associate the entity representing the "customer contact information" (that is, the data structure related to each specific contact record) with the "customer" business object.
[0195] By mounting the sub-table entity to the target business object, a clear hierarchy and association relationship can be established in object-oriented programming or code organization based on business logic. In this way, when processing business object-related operations, the sub-table data associated with it can be found according to the business object, which conforms to the inherent association characteristics between business data and makes the code more organized when processing complex business scenarios.
[0196] To mount the entities of the sub-table onto the target business object, you also need to determine how the entities of the sub-table correspond to the target business object. Therefore, configure the target business object to obtain the mapping relationship between the target business object and the sub-table.
[0197] The persistence layer can identify the information configured in the @MountBO annotation, extract the data of the child table from the corresponding storage location according to these configuration requirements, and write these data into the childData Map attribute of the business object. The childData Map attribute is a container for the business object to store child table data. It uses the Map data structure to organize and store the pulled child table data in an orderly manner for subsequent use.
[0198] In object-oriented programming, the interface defines a set of methods, such as getChildData, which specify how the outside world can interact with an object and obtain its internal data. The getChildData interface is used to obtain the data of the newly added child table. For other modules or code parts, as long as the getChildData interface is called, the data of the newly added child table in the business object can be obtained according to the established rules, which realizes the encapsulation and standardization of data acquisition operations, making the responsibilities between different parts of the code clearer and the coupling lower.
[0199] By adopting the technical solution of the embodiment of the present application, the semiconductor manufacturing execution system has a powerful extension mechanism, allowing users to mount custom data to the target business object through the extension mechanism, thereby realizing personalized customization and functional expansion.
[0200] Semiconductor manufacturing execution systems often require a lot of custom development, and manufacturers may choose different ORM frameworks. ORM is used to map objects to tables in the database in an object-oriented programming language, allowing developers to interact with the database in an object-oriented way without having to write SQL statements directly.
[0201] The semiconductor manufacturing execution system in the related technology basically does not allow switching of ORM to meet the needs of manufacturers, or the cost of switching ORM is too high and can only support one ORM framework; if customers require the use of other ORM frameworks, redevelopment and adaptation are required.
[0202] In response to the high cost of switching ORM, an embodiment of the present application decouples from ORM through the interface of the persistence layer. The persistence layer will define a set of interfaces for the business object manager to use. The persistence layer will shield the differences between different persistences and facilitate switching between different persistence frameworks in the future. In this way, the business layer of the semiconductor manufacturing execution system does not need to worry about the adaptation of the persistence framework without custom development. The persistence layer provides a set of interfaces for interacting with the business object manager. In this way, the business logic is isolated from the specific ORM framework. The business layer only needs to interact with the interface of the persistence layer, without directly understanding the specific ORM framework used at the bottom layer. In this way, the decoupling of the business layer and the ORM framework is achieved.
[0203] The persistence layer is responsible for handling operations related to data persistence. It shields the differences between different persistence frameworks. Regardless of which ORM framework is used at the bottom layer, the interface provided by the persistence layer should be consistent. For example, for data query, insert, update, and delete operations, the persistence layer will convert these operations into general interface calls that are unrelated to the specific ORM framework, and then perform specific implementations internally based on the actual ORM framework used.
[0204] In this way, the semiconductor manufacturing execution system of the embodiment of the present application has strong scalability, and can independently develop or replace the ORM framework according to actual needs, and it is completely imperceptible to the user, ensuring the smooth development and upgrading of the system.
[0205] On the basis of the above technical solution, as an embodiment, the processing method of the semiconductor manufacturing execution system supports the object lock mechanism. Object locks are different from locks in databases. Object locks are lock controls performed at the business level. The locked objects are generally business objects, and the UID (unique identifier) in the business object is generally locked. In order to ensure concurrency, a read-write lock strategy is introduced, and a read lock is added to the data that only needs to be queried, and a write lock is added to the data that needs to be modified. On the other hand, the introduction of a business-level object lock mechanism can minimize the occurrence of abnormal database deadlocks.
[0206] Object locks can be implemented using existing middleware (such as Redis, Dragonfly, or KeyDB). Without middleware, object locks can also be implemented using databases. The object lock mechanism abstracts a layer of interfaces that can be switched between Redis, Dragonfly, and database implementations, meeting the needs of different vendors while minimizing code changes.
[0207] In one embodiment, when the information of the object EQP1 needs to be modified, a write lock may be added to the EQP1 business object to prevent other requests from modifying the EQP1 business object.
[0208] In another embodiment, if an object in a grandchild table needs to be modified, a write lock needs to be added to the object in the grandchild table. Because modifying an object in a grandchild table requires reading the data in the corresponding parent table and child table first, a read lock needs to be added to the data in the parent table and child table. For example, by reading the object EQP1 in the parent table EQP, the child table Carrier is obtained, and the object Carrier1 in the child table Carrier is read, thereby obtaining the grandchild table Lot, and modifying the object Lot2 in the grandchild table Lot; during the whole process, a read lock needs to be added to the object EQP1, then a read lock needs to be added to the object Carrier1, and a write lock needs to be added to the object Lot2.
[0209] Based on the above technical solution, as an embodiment, the processing method of the semiconductor manufacturing execution system supports transaction dimension cache and distributed cache. The data in the distributed cache has data consistency with the data in the database. The method may also include: writing the data of the target business object whose change frequency is lower than the preset frequency into the distributed cache; when the data of the target business object needs to be read, reading the data of the target business object from the distributed cache.
[0210] The transaction dimension caches are all memory-level caches, which can be implemented by Guava, Caffeine, etc.
[0211] For transaction dimension cache, please refer to Fig.15 Request 1 and request 2 will start different transactions. In each transaction, the data of BO1 is obtained through the persistence layer and stored in the cache of the persistence layer. Because different requests generate different transactions, persistence layer cache 1 and persistence layer cache 2 are isolated from each other. They both store copies of BO1 data. If the copy of BO1 data in persistence layer cache 1 is modified, it will not affect the data in persistence layer cache 2.
[0212] For transaction dimension cache, please refer to Fig.16 In the same request, two transactions are opened. Both transactions obtain the data of BO1 and store it in the cache. The persistence layer cache 1 and persistence layer cache 2 corresponding to the two transactions are independent of each other and do not affect each other.
[0213] Distributed cache can refer to Fig.17 ,Distributed caching is generally implemented using middleware, and can also be implemented using databases.
[0214] For some BO business objects, data changes are very infrequent, or even just system-level business objects. In this case, in the case of multi-instance deployment, it is not necessary to retrieve values from the database every time for these BO business objects. You can directly retrieve data from the distributed cache. The consistency of these BO data in the database and in the cache can be ensured in many ways, such as scheduled tasks, monitoring database modifications, etc.
[0215] Based on the above technical solution, as an embodiment, the data in the cache of the persistence layer has data consistency with the data in the database; the method may also include: when a first request requests to update the data of a first business object and a second request requests to query the data of the first business object, according to the first request, adding a write lock to the first business object; executing an update operation on the first business object, saving the updated data, and releasing the write lock; according to the second request, adding a read lock to the first business object after the write lock is released; executing a query operation on the first business object, and storing the query result in the cache of the persistence layer.
[0216] Reference Fig.18 , Fig.18 It is a flowchart of data consistency guarantee provided by an embodiment of the present application. Request one updates BO1 data, and request two queries BO1 data. Request one first adds a write lock control to BO1, so when request two adds a read lock to BO1, it needs to wait for request one to release the write lock of BO1. After obtaining and modifying the data, request one performs a Diff (difference) operation on the data, compares the data difference between the persistence layer cache 1 and the database, and performs more detailed data operations after determining that there is data update. After that, the transaction is committed, the data in the database will be updated, and the write lock on BO1 will be released at this time.
[0217] After request 2 releases the write lock of BO1 while waiting for request 1, it can add the read lock normally, obtain the latest BO1 data in the database through the persistence layer, and store the latest BO1 data in persistence layer cache 2.
[0218] During the entire process, when BO1 data changes, other requests to obtain data will be in a waiting state. The latest data can only be obtained after the data is updated, ensuring the consistency of the data in the persistence layer cache and the data in the database.
[0219] Based on the above technical solution, as an embodiment, the method may further include: when multiple requests all request the same update of the first version of the data of the second business object, based on each of the requests, respectively obtaining the first version of the data of the second business object from the database; in response to any one of the multiple requests, updating the first version of the data to the second version of the data, and saving the second version of the data to the database after passing the data consistency check; in response to another request among the multiple requests, updating the first version of the data to the third version of the data, and obtaining the data from the database as the second version; and when verifying that the second version of the data is different from the third version of the data, reporting an error or rolling back the transaction.
[0220] Reference Fig.19 , Fig.19 This is a flowchart of data version control provided by an embodiment of the present application. Assume that the original version of BO1 data in the database is 1. Request 1 and Request 2 both request to update BO1 data, and both obtain BO1 data with version 1 from the database at the same time. At this time, Request 1 completes the modification operation first, and determines whether the data version is consistent. If it is consistent, the data is successfully updated, and the data version of BO1 is changed to 2.
[0221] Request 2 also completes the data modification operation and the data Diff operation. At this time, the latest BO1 data version 2 is pulled and compared with the current data version. If inconsistency is found, an error will be reported directly or the entire transaction will be rolled back, and the user will be prompted that the current operation has not taken effect.
[0222] The entire process relies on data versions to control the success or failure of the entire logic execution, which can maximize concurrency and reduce the occurrence of operation blocking. Even if the operation fails, the user can re-operate, and when re-operating, the data obtained is the latest.
[0223] In order to facilitate better implementation of the processing method of the semiconductor manufacturing execution system of the present application, the present application also provides a processing device of the semiconductor manufacturing execution system based on the processing method of the semiconductor manufacturing execution system. The meanings of the terms are the same as those in the processing method of the semiconductor manufacturing execution system, and the specific implementation details can refer to the description in the method embodiment.
[0224] See also Fig. 20 , Fig. 20 : is a structural schematic diagram of a processing device of a semiconductor manufacturing execution system provided in an embodiment of the present application, wherein the semiconductor manufacturing execution system includes a business object manager interface, a business object manager and a persistence layer, and the processing device of the semiconductor manufacturing execution system includes:
[0225] An acquisition module 501 is used to acquire an interface specification for creating a business object from the business object manager interface;
[0226] A creation module 502, configured to create a business object using the business object manager according to the business attributes of the semiconductor manufacturing entity and the interface specification for creating the business object;
[0227] A configuration module 503, configured to configure a mapping relationship between the business object and the table in the database according to a relationship between the semiconductor manufacturing entity and the table in the database;
[0228] A persistence module 504, used to perform a persistence operation on the mapping relationship between the business object and the table in the database using the persistence layer;
[0229] A calling module 505, used to call the business object manager interface to operate the business object;
[0230] The synchronization module 506 is used to synchronize the operation on the business object to the database by using the persistence layer.
[0231] In one embodiment, the calling module 505 includes:
[0232] A first calling unit, used for calling the business object manager interface to obtain information of the business object;
[0233] A first modification unit, configured to modify information of the business object based on an operation on the business object;
[0234] A first acquisition unit, configured to acquire data transmission object data of the sub-table through the business object manager interface according to the modification of the information of the business object when the modification of the information of the business object involves the sub-table;
[0235] A second modifying unit, used for modifying the data transmission object data of the sub-table;
[0236] A second acquisition unit is used to acquire the data transmission object data of the grandchild table through the business object manager interface according to the modification of the data transmission object data of the child table when the modification of the information of the business object involves the grandchild table;
[0237] A third modification unit, used to modify the data transfer object data of the grandchild table;
[0238] The saving unit is used to save the modified data using the persistence layer.
[0239] In one embodiment, the calling module 505 includes:
[0240] A second calling unit, used for calling the business object manager interface to obtain the business object;
[0241] An operation unit, used to obtain the data of the business object based on the persistence layer, and operate on the data of the business object;
[0242] The synchronization module 506 includes:
[0243] A verification unit, used for verifying the data of the business object based on the persistence layer before submitting the operation on the business object;
[0244] The submitting unit is used to save the verified data of the business object to the database and submit the operation on the business object.
[0245] In one embodiment, the device further comprises:
[0246] A subtable configuration determination module, used to obtain the configuration of the business object and determine the configuration information of the subtable according to the configuration of the business object;
[0247] A subtable search module is used to search the database corresponding to the subtable to obtain the information of the subtable;
[0248] The first conversion module is used to complete the conversion between the data transmission object data of the semiconductor manufacturing entity and the sub-table through the mapping configuration of the business object.
[0249] In one embodiment, the device further comprises:
[0250] A configuration acquisition module, used to acquire the configuration of the business object;
[0251] A grandchild table configuration determination module, used to determine the configuration information of the child table and the configuration information of the grandchild table according to the configuration of the business object;
[0252] A subtable information obtaining module is used to search the database corresponding to the subtable to obtain the information of the subtable;
[0253] A grandchild table query module, used to query the information of the grandchild table through the configuration information of the child table and the configuration information of the grandchild table;
[0254] The second conversion module is used to complete the conversion between the data transmission object data of the semiconductor manufacturing entity and the grandchild table through the mapping configuration of the business object.
[0255] In one embodiment, the device further comprises:
[0256] Batch query module, used for the business objects of the same type:
[0257] In response to the subject data query statement, query the subject data of each of the business objects in batches;
[0258] Grouping the main body data of each of the business objects queried, and determining the business object corresponding to each of the main body data;
[0259] In response to the target sub-table query statement, batch query the data of the target sub-table of each of the business objects;
[0260] Grouping the data of the target sub-table of each of the business objects queried, and determining the target sub-table corresponding to the data of each of the target sub-tables;
[0261] In response to a target grandchild table query statement, batch query the data of the target grandchild tables of each target subtable;
[0262] The data of the target grandchild table of each of the queried target child tables are grouped to determine the target grandchild table corresponding to the data of each of the target grandchild tables.
[0263] In one embodiment, the device further comprises:
[0264] Batch update module, used for the business objects of the same type:
[0265] When the data of the child tables and grandchild tables of each of the business objects are fully updated, the data of the child tables of each of the business objects are batch deleted;
[0266] Add data of each sub-table of the business object;
[0267] Batch delete the data of each grandchild table corresponding to the same type of child table;
[0268] Add data of the grandchild table of each business object.
[0269] In one embodiment, the device further comprises:
[0270] A first interception module is used to intercept the first operation of acquiring the sub-table based on the business object and acquire the data of the sub-table from the database when the first operation is monitored;
[0271] A first processing module, used for processing the data of the sub-table and returning the processed data of the sub-table;
[0272] A second interception module is used to intercept the second operation of acquiring the grandchild table when monitoring the data transmission object of the child table to acquire the second operation of the grandchild table, and acquire the data of the grandchild table from the database;
[0273] The second processing module is used to process the data of the grandchild table and return the processed data of the grandchild table.
[0274] In one embodiment, the device further comprises:
[0275] A mounting module, used for mounting the entity of the sub-table to the target business object when the sub-table of the target business object is expanded;
[0276] A configuration module, used to configure the target business object to obtain a mapping relationship between the target business object and the sub-table;
[0277] The pulling module is used to use the persistence layer to pull the data of the sub-table and write the data of the sub-table into the sub-table mapping data of the target business object.
[0278] In one embodiment, the semiconductor manufacturing execution system supports a distributed cache, and the data in the distributed cache has data consistency with the data in the database; the device further includes:
[0279] A data writing module is used to write the data of the target business object whose change frequency is lower than the preset frequency into the distributed cache;
[0280] The data reading module is used to read the data of the target business object from the distributed cache when the data of the target business object needs to be read.
[0281] In one embodiment, the data in the cache of the persistence layer has data consistency with the data in the database; the device further comprises:
[0282] a write lock adding module, configured to add a write lock to the first business object according to the first request when a first request requests to update data of the first business object and a second request requests to query the data of the first business object;
[0283] A write lock release module, used to execute an update operation on the first business object, save the updated data, and release the write lock;
[0284] a read lock adding module, configured to add a read lock to the first business object after the write lock is released according to the second request;
[0285] The query execution module is used to execute a query operation on the first business object and store the query result in the cache of the persistence layer.
[0286] In one embodiment, the device further comprises:
[0287] A first version data acquisition module, configured to acquire the first version data of the second business object from the database based on each of the requests when multiple requests all request to perform the same update on the first version data of the second business object;
[0288] a second version data storage module, configured to update the first version data to the second version data in response to any one of the multiple requests, and save the second version data to the database after passing the data consistency check;
[0289] A second version data acquisition module, configured to update the first version of data to a third version of data in response to another request among the multiple requests, and acquire the data as the second version from the database;
[0290] The error reporting module is used to verify that the data of the second version is different from the data of the third version, and then report an error or roll back the transaction.
[0291] The specific definition of the processing device of the semiconductor manufacturing execution system can be found in the definition of the processing method of the semiconductor manufacturing execution system mentioned above, which will not be repeated here. Each module in the processing device of the semiconductor manufacturing execution system can be implemented in whole or in part by software, hardware and a combination thereof. The above modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory of the computer device in the form of software, so that the processor can call and execute the operations corresponding to the above modules.
[0292] In addition, the present application also provides an electronic device, such as Fig.21 As shown, it shows a schematic diagram of the structure of the electronic device involved in this application, specifically:
[0293] The electronic device may include one or more processing cores of the processor 601 and one or more storage media of the memory 602 and other components. Those skilled in the art will understand that Fig.21 The electronic device structure shown in the figure does not constitute a limitation on the electronic device, and may include more or fewer components than shown in the figure, or combine certain components, or arrange the components differently.
[0294] The processor 601 is the control center of the electronic device. It uses various interfaces and lines to connect various parts of the entire electronic device. By running or executing software programs and / or modules stored in the memory 602, and calling data stored in the memory 602, it performs various functions of the electronic device and processes data, thereby monitoring the electronic device as a whole. Optionally, the processor 601 may include one or more processing cores; preferably, the processor 601 may integrate an application processor and a modem processor, wherein the application processor mainly processes the operating system, user interface, and application programs, and the modem processor mainly processes wireless communications. It is understandable that the above-mentioned modem processor may not be integrated into the processor 601.
[0295] The memory 602 can be used to store software programs and modules. The processor 601 executes various functional applications and data processing by running the software programs and modules stored in the memory 602. The memory 602 may mainly include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function (such as a sound playback function, an image playback function, etc.), etc.; the data storage area may store data created according to the use of the electronic device, etc. In addition, the memory 602 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other volatile solid-state storage devices. Accordingly, the memory 602 may also include a memory controller to provide the processor 601 with access to the memory 602.
[0296] In one embodiment, the electronic device further includes a power supply 603 for supplying power to various components. Preferably, the power supply 603 can be logically connected to the processor 601 through a power management system, so as to manage charging, discharging, and power consumption through the power management system. The power supply 603 can also include any components such as one or more DC or AC power supplies, recharging systems, power supply device debugging circuits, power converters or inverters, and power status indicators.
[0297] In one embodiment, the electronic device may further include an input unit 604, which may be used to receive input digital or character information and generate keyboard, mouse, joystick, optical or trackball signal input related to user settings and function control.
[0298] Although not shown, the electronic device may further include a display unit, etc., which will not be described in detail herein. Specifically in this embodiment, the processor 601 in the electronic device will load the executable files corresponding to the processes of one or more application programs into the memory 602 according to the following instructions, and the processor 601 will run the application programs stored in the memory 602, thereby implementing the steps in any one of the processing methods of the semiconductor manufacturing execution system provided in the embodiments of the present application.
[0299] Those skilled in the art will understand that Fig.21 The structure shown in the figure is merely a block diagram of a partial structure related to the scheme of the present application, and does not constitute a limitation on the electronic device to which the scheme of the present application is applied. The specific electronic device may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.
[0300] In one embodiment, an electronic device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and when the processor executes the computer program, the method described in any embodiment of the present application is implemented.
[0301] In one embodiment, a storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the method described in any embodiment of the present application is implemented.
[0302] In some embodiments, a computer program product is also proposed, including a computer program or instructions, which implement the method described in any embodiment of the present application when executed by a processor.
[0303] The specific implementation of the above operations can be found in the previous embodiments, which will not be described in detail here.
[0304] A person skilled in the art will appreciate that all or part of the steps in the various methods of the above embodiments may be completed by instructions, or by controlling related hardware through instructions. The instructions may be stored in a storage medium and loaded and executed by a processor.
[0305] To this end, the present application provides a storage medium on which a computer program is stored. The computer program can be loaded by a processor to execute the steps in any processing method of a semiconductor manufacturing execution system provided in the present application.
[0306] The specific implementation of the above operations can be found in the previous embodiments, which will not be described in detail here.
[0307] The storage medium may include: a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, etc.
[0308] Since the instructions stored in the storage medium can execute the steps in any processing method of the semiconductor manufacturing execution system provided in the present application, the beneficial effects that can be achieved by any processing method of the semiconductor manufacturing execution system provided in the present application can be achieved. Please refer to the previous embodiments for details and will not be repeated here.
[0309] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or terminal device. In the absence of further restrictions, the elements defined by the sentence "including one..." do not exclude the existence of other identical elements in the process, method, article or terminal device including the elements.
[0310] The above is a detailed introduction to the processing method, device, electronic device and storage medium of a semiconductor manufacturing execution system provided by the present application. Specific examples are used in this article to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only used to help understand the method of the present invention and its core idea; at the same time, for technical personnel in this field, according to the idea of the present invention, there will be changes in the specific implementation method and application scope. In summary, the content of this specification should not be understood as a limitation on the present invention.
Claims
1. A processing method of a semiconductor manufacturing execution system, characterized in that: The semiconductor manufacturing execution system includes a business object manager interface, a business object manager and a persistence layer; the method includes: Obtaining an interface specification for creating a business object from the business object manager interface; Creating a business object using the business object manager according to the business attributes of the semiconductor manufacturing entity and the interface specification for creating the business object; According to the relationship between the semiconductor manufacturing entity and the table in the database, configuring the mapping relationship between the business object and the table in the database; Using the persistence layer, a persistence operation is performed on the mapping relationship between the business object and the table in the database; Calling the business object manager interface to operate the business object; and The operations on the business objects are synchronized to the database using the persistence layer.
2. The method according to claim 1, characterized in that The calling of the business object manager interface to operate the business object includes: Calling the business object manager interface to obtain information about the business object; Modify information of the business object based on an operation on the business object; When the modification of the information of the business object involves the sub-table, acquiring the data transmission object data of the sub-table through the business object manager interface according to the modification of the information of the business object; Modify the data transfer object data of the sub-table; When the modification of the information of the business object involves the grandchild table, according to the modification of the data transfer object data of the child table, the data transfer object data of the grandchild table is obtained through the business object manager interface; Modify the data transfer object data of the grandchild table; The modified data is saved using the persistence layer.
3. The method according to claim 1, characterized in that The calling of the business object manager interface to operate the business object includes: Calling the business object manager interface to obtain the business object; Based on the persistence layer, acquiring data of the business object and operating the data of the business object; The using the persistence layer to synchronize the operation on the business object to the database includes: Before submitting an operation on the business object, verifying the data of the business object based on the persistence layer; The verified data of the business object is saved in the database, and the operation on the business object is submitted.
4. The method according to claim 1, characterized in that: The method further comprises: Acquire the configuration of the business object, and determine the configuration information of the subtable according to the configuration of the business object; Searching the database corresponding to the sub-table to obtain the information of the sub-table; The conversion between the data transmission object data of the semiconductor manufacturing entity and the sub-table is completed through the mapping configuration of the business object.
5. The method according to claim 1, characterized in that The method further comprises: Obtaining configuration of the business object; Determine the configuration information of the child table and the configuration information of the grandchild table according to the configuration of the business object; Searching the database corresponding to the sub-table to obtain the information of the sub-table; Query the information of the grandchild table through the configuration information of the child table and the configuration information of the grandchild table; The conversion between the data transmission object data of the semiconductor manufacturing entity and the grandchild table is completed through the mapping configuration of the business object.
6. The method according to claim 1, characterized in that The method further comprises: For the same type of business objects: In response to the subject data query statement, query the subject data of each of the business objects in batches; Grouping the main body data of each of the business objects queried, and determining the business object corresponding to each of the main body data; In response to the target sub-table query statement, batch query the data of the target sub-table of each of the business objects; Grouping the data of the target sub-table of each of the business objects queried, and determining the target sub-table corresponding to the data of each of the target sub-tables; In response to a target grandchild table query statement, batch query the data of the target grandchild tables of each target subtable; The data of the target grandchild table of each of the queried target child tables are grouped to determine the target grandchild table corresponding to the data of each of the target grandchild tables.
7. The method according to claim 1, characterized in that The method further comprises: For the same type of business objects: When the data of the child tables and grandchild tables of each of the business objects are fully updated, the data of the child tables of each of the business objects are batch deleted; Add data of each sub-table of the business object; Batch delete the data of each grandchild table corresponding to the same type of child table; Add data of the grandchild table of each business object.
8. The method according to claim 1, characterized in that: The method further comprises: When a first operation of acquiring a sub-table based on the business object is monitored, the first operation is intercepted, and data of the sub-table is acquired from a database; Processing the data of the sub-table and returning the processed data of the sub-table; When monitoring the second operation of the data transfer object of the child table to obtain the grandchild table, intercept the second operation and obtain the data of the grandchild table from the database; The data of the grandchild table is processed, and the processed data of the grandchild table is returned.
9. The method according to claim 1, characterized in that: The method further comprises: When a subtable of a target business object is expanded, an entity of the subtable is mounted on the target business object; Configuring the target business object to obtain a mapping relationship between the target business object and the sub-table; The persistence layer is used to pull the data of the sub-table and write the data of the sub-table into the sub-table mapping data of the target business object.
10. The method according to claim 1, characterized in that The semiconductor manufacturing execution system supports a distributed cache, and the data in the distributed cache has data consistency with the data in the database; the method further includes: Write the data of the target business object whose change frequency is lower than the preset frequency into the distributed cache; When the data of the target business object needs to be read, the data of the target business object is read from the distributed cache.
11. The method according to claim 1, characterized in that: The data in the cache of the persistence layer has data consistency with the data in the database; the method further includes: When a first request requests to update data of a first business object and a second request requests to query data of the first business object, adding a write lock to the first business object according to the first request; Execute an update operation on the first business object, save the updated data, and release the write lock; According to the second request, after the write lock is released, adding a read lock to the first business object; Execute a query operation on the first business object, and store the query result in the cache of the persistence layer.
12. The method according to claim 1, characterized in that The method further comprises: When multiple requests all request to perform the same update on the first version of the data of the second business object, based on each of the requests, respectively obtain the first version of the data of the second business object from the database; In response to any one of the multiple requests, updating the first version of data to a second version of data, and saving the second version of data to the database after passing a data consistency check; In response to another request among the multiple requests, updating the data of the first version to data of a third version, and acquiring the data of the second version from the database; When it is verified that the data of the second version is different from the data of the third version, an error is reported or the transaction is rolled back.
13. A processing device of a semiconductor manufacturing execution system, characterized in that: The semiconductor manufacturing execution system includes a business object manager interface, a business object manager and a persistence layer; the device includes: An acquisition module, used to acquire an interface specification for creating a business object from the business object manager interface; A creation module, used to create a business object using the business object manager according to the business attributes of the semiconductor manufacturing entity and the interface specification for creating the business object; A configuration module, configured to configure a mapping relationship between the business object and the table in the database according to a relationship between the semiconductor manufacturing entity and the table in the database; A persistence module, used to use the persistence layer to perform a persistence operation on the mapping relationship between the business object and the table in the database; A calling module, used for calling the business object manager interface to operate the business object; The synchronization module is used to synchronize the operation on the business object to the database by using the persistence layer.
14. An electronic device, characterized in that: The method comprises a memory, a processor and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps in the processing method of the semiconductor manufacturing execution system as claimed in any one of claims 1 to 12 when executing the computer program.
15. A storage medium, characterized in that: The storage medium stores a computer program, and when the computer program is executed by the processor, the steps in the processing method of the semiconductor manufacturing execution system according to any one of claims 1 to 12 are implemented.
Citation Information
Cited By
Data updating method and device, electronic device and storage medium
CN120687471A