Detailed Description
In order to make the objects, technical solutions and advantages of the present application more apparent, the technical solutions of the present application will be described in detail and completely with reference to the following specific embodiments of the present application and the accompanying drawings. It should be apparent that the described embodiments are only some of the embodiments of the present application, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
In one or more embodiments of the present specification, the service publishing process may be regarded as a "gray-scale publishing" process, that is, a service provider provides (i.e., publishes) a new online service for a part of users, and the rest of users still use the original service and gradually replace the new online service with the original service.
It should be noted that the service described herein may include various software products or services of internet service and other software properties, such as: APP clients, software programs, financial products, cloud computing services, cloud storage services, and the like.
In addition, in some service scenarios in practical applications, hardware devices related to the service may also fall within the coverage of the "service" in the embodiments of the present description. The hardware devices related to the service may include, for example, a service server (or server cluster), a database (or database cluster), a block chain network, and the like. Some hardware components inside the device may also be included, such as a Central Processing Unit (CPU), a memory, a hard disk, a physical interface on the device, and so on.
The service publishing method in the embodiment of the present specification may adopt an architecture as shown in fig. 1. As can be seen in fig. 1, the architecture comprises: a business system and a general release model.
The business system may be considered as a system for providing business products or business services by a background of a business provider, for example: the payment service system is used for providing various payment services; the financial business system is used for providing various financial products. In practical applications, a service system may include a clustered or distributed service server, and may further include a service device in the form of a blockchain network.
The general publishing model can be regarded as a publishing model generally applicable to different services, that is, different services can be published through the publishing logic therein. The significance of adopting the universal publishing model is that the publishing logic of each new online service does not need to be independently edited, and the efficiency of service publishing can be improved. Of course, in practical applications, the generic publishing model may be run in a corresponding device (e.g., in a server).
Through the universal publishing model, various new online services can be published to users for use, the original services are gradually replaced, and gray-scale publishing of the services is realized.
Of course, fig. 1 is only a simple architecture example, and in different service scenarios, a user database may be further included in the architecture (data corresponding to a user using a service, such as a user ID, historical data of the user using the service, and the like, may be generally stored in the user database). The specific architecture to be adopted will be determined according to the requirements of practical application, and should not be taken as a limitation of the present application.
Based on the architecture shown in fig. 1, a service publishing process provided in the embodiment of the present application is shown in fig. 2, and the process specifically includes the following steps:
step S201: and acquiring service information corresponding to the service to be issued.
In the embodiment of the present specification, the service to be published may be considered as a service that needs to be published. In an actual service scenario, there may be various situations for the service to be published, such as: in case one, a new service (e.g., a certain software product) needs to be released online (i.e., has not been released yet); in the second case, the new service is already published for part of users, but needs to be published and popularized to other users; and in the third case, the service which is already put into use needs to be migrated (for example, to a new service system).
The services mentioned in the above cases can be regarded as the coverage of the services to be issued in the embodiments of the present specification.
For the service information, in an actual service scenario, after the user uses the corresponding service, the service system will generate corresponding information related to the user, for example: a service flow number (or a single number), service detail information, and the like, which can be considered to be within the scope of the service information described in the embodiments of the present specification. It should be noted that, as described above, some services to be distributed are services that are not put into use online, and in this case, considering that a service to be distributed may replace some original services, gray-scale distribution of a new service may be performed through related service information of the original service. Therefore, the service information also includes service information of the original service.
Certainly, in practical applications, the service information may further include distribution configuration information of the service to be distributed (i.e., a distribution logic of the service to be distributed).
The above should not be construed as limiting the present application.
Step S203: and issuing the service to be issued according to the service information and a preset universal issuing model.
As mentioned above, the generic publishing model is applicable to various new online services. Specifically, in a feasible embodiment, the generic publishing model may include a determination logic of the new online service related to the user behavior, a determination logic of the service record used by the user, and the like, so as to further determine a publishing manner of the new online service.
Then, on the basis of acquiring the service information, a general publishing model can be used to publish the new online service.
Through the steps, for various services which are newly on-line or need to be migrated, a universal publishing model is adopted to publish the services, so that the complex operation of setting a set of publishing logic for each service to be published can be reduced to a certain extent, and the publishing efficiency and convenience of the services to be published are improved.
For the service publishing method shown in fig. 2, there is a more specific implementation procedure in practical application. It should be noted here that, in practical applications, the timing of using the generic publishing model may be as shown in fig. 3 a. In fig. 3a, for a user, the user only needs to normally send out a corresponding service operation without knowing the difference between the new service and the old service. For the universal publishing model, after a user sends out a corresponding service operation, historical service information (such as a service ID of a service used by the user in the past, a generated service single number, a user ID and the like) attributed to the user can be acquired. Therefore, the universal publishing model can execute corresponding service publishing logic according to the historical service information to realize the publishing of the service.
The publishing process of the to-be-published service using the generic publishing model will be described in detail below. This process, which may be illustrated in fig. 3b, may include the following steps:
step S301: acquiring service information corresponding to a service to be issued, judging whether the service carries an independent issuing logic of the service according to the service information, and if so, executing a step S303; otherwise, step S305 is executed.
As an implementation manner in a practical application scenario, if a certain service itself has an independent publishing logic, it is usually stored in a manner of publishing logic configuration information, and the publishing logic configuration information belongs to one of the service information. In this way, it can be determined whether the service information of the service to be issued includes the issue logic configuration information (i.e., whether the service information carries an independent issue logic).
If the service to be issued has an independent issuing logic, then the service can be issued according to the independent issuing logic. Otherwise, the service is released by using the general release logic.
Step S303: and issuing the service according to the independent issuing logic of the service.
Step S305: judging whether the service to be issued depends on the service operation of the user, if so, executing a step S307; otherwise, step S309 is performed.
It should be noted here that, for a part of services in an actual service scenario, a complete service may include multiple links, and different links of the service may be considered to invoke different service services. As shown in fig. 4a, it is assumed that in the actual execution process of a service, when a service operation sent by a user is received, the service system needs to invoke a corresponding service A, B/C, so that the service can be completely executed. As can be seen from the architecture shown in FIG. 4a, whether a business system invokes services A-C is often associated with a business operation initiated by a user (i.e., a user-dependent business operation)
More specifically, in one simple example: assume that the service is an insurance product X, and the use of the insurance product X is divided into two links of insurance application and claim settlement. For an insurance business system, calling a corresponding insurance application service A in an insurance application link to realize the online insurance application of a user; calling a corresponding guarantee-withdrawal service B in a guarantee-withdrawal link to realize the online guarantee withdrawal of the user; and the claim settlement link calls a corresponding claim settlement service C to realize the on-line claim settlement of the user.
Based on this, in the embodiment of the present specification, if the business system issues a new business (including new services a 'to C') based on the original business for the architecture shown in fig. 4a, and the architecture shown in fig. 4b is formed, whether to invoke the services a 'to C' of the new business during the execution of the business is generally related to the business operation of the user. As in the above example: if the insurance business system issues a new insurance product Y (which includes a new insuring service a ', an insuring service B', and a claim settlement service C '), then the specific services of which insurance product is to be performed are related to the insurance product that the user has previously purchased (i.e., the insurance product in this example is dependent on the user's behavior). Assuming that the insurance product previously purchased by the user is product a ', when the user issues a refund operation, the generic publishing model will publish a refund service B' for the user to use.
Therefore, in this step S305, if a service to be distributed depends on the operation of the user, the distribution status of the service corresponding to the service operation needs to be further determined (i.e., step S307 is executed). If the service to be distributed does not depend on the operation of the user, the following step S309 can be directly performed.
Step S307: judging whether the business service corresponding to the business operation belongs to the business service to be released, if so, executing step S311; otherwise, step S309 is executed.
For step S307, if the service corresponding to the service operation of the user belongs to the service to be published, the user may be considered to be related to the service to be published. Otherwise, the user can be considered to be unrelated to the service to be issued.
Step S309: judging whether the service operation depends on the release identifier, if so, executing a step S313; otherwise, step S315 is executed.
In step S309, the release identifier may be considered as an identifier generated by an audience user for the new service, that is, if the user who issued the service operation has the release identifier, which indicates that the service used by the user is the newly released service, the service system may also invoke the service related to the newly released service to process the service operation.
The newly issued service can be understood as a service corresponding to the service to be issued, and at this time, the service to be issued is usually issued for part of users.
Similar to the step S307, if it is determined in the step S309 that the service operation depends on the publishing identifier, it may be considered that the user is related to the service to be published, otherwise, it is not related.
Step S311: and calling the newly issued business service to process the business operation.
Step S313: judging whether the user has a release identifier, if so, executing step S311; otherwise, step S315 is executed.
As described in step S309, if the user has a publication identifier, it indicates that the user is an audience user of the newly published service, whereas the user does not use the newly published service.
Step S315: and issuing the service to be issued to the user according to a preset issuing condition.
As a possible manner in the embodiment of the present specification, the preset distribution condition may further include a distribution condition according to a white list or a distribution condition according to a user ratio.
The white list may generally record identification information of the user, such as: the user ID. For the users added to the white list (i.e. white list conditions are met), the service to be published can be published to these users. In practical application, the user may be added to the white list in a randomly selected manner, or the frequency and degree of the service usage by the user may be used as the weight added to the white list. Of course, how to add the user to the white list should not be taken as a limitation of the present application, and redundant description is omitted here.
Under the condition of using a white list condition, the user can be inquired in the white list, the inquired user is determined as a target user, and the service to be issued is issued aiming at the user.
The user proportion condition can be generally considered that the proportion of the users in the whole service to the audience of the service to be released reaches a certain value. Specifically, under the condition of a distribution condition according to a user ratio, the ratio of a target user to the total amount of users at the time when the user sends the service request can be counted, and when the ratio does not exceed a set ratio threshold, the user is determined as the target user, and the service to be distributed is distributed.
Of course, the usage of the distribution condition based on the user ratio is not limited to this, and in a possible embodiment, the value of some characters in the user ID may also be used as the determination condition of the audience user, for example: audience users (50% each) are selected based on the last parity of the user ID. This is a simple example only and should not be taken as a limitation of the present application.
It should be understood that the service release method mentioned above in this specification can be applied to the new product online or product migration process to realize gray release.
Based on the same idea, the service publishing method provided in the embodiment of the present application further provides a service publishing device, as shown in fig. 5. The device comprises:
an obtaining module 501, configured to obtain service information corresponding to a service to be published;
the issuing processing module 502 issues the service to be issued according to the service information and a preset general issuing model.
Specifically, the obtaining module 501 determines an original service corresponding to the service to be published, obtains service information of the original service, and determines the service information as service information corresponding to the service to be published.
More specifically, the obtaining module 501 receives a service request sent by a user using an original service, and determines historical service information of the user as service information of the original service according to the service request.
The publishing processing module 502 determines whether the service to be published is related to the user according to the historical service information of the user, and if so, publishes the service to be published to the user; otherwise, the service to be issued is issued to the user according to the set issuing conditions.
The publishing processing module 502 determines whether the service to be published is related to the previous service operation of the user, and if so, determines that the service to be published is related to the user; otherwise, determining that the service to be issued is irrelevant to the user.
The publishing processing module 502 queries a publishing identifier included in the historical information of the user, determines that the user is related to the service to be published if the publishing identifier is queried, and determines that the user is not related to the service to be published if the publishing identifier is queried;
the publishing identification is generated aiming at audience users using the service to be published.
Further, the release condition may include: a user white list condition and/or a user proportion condition;
on this basis, the publishing processing module 502 queries the user in the white list, determines the queried user as a target user, and publishes the service to be published for the user, or,
and counting the proportion of the target user to the total amount of the users at the moment when the users send the service requests, determining the users as the target users and issuing the service to be issued when the proportion does not exceed a set proportion threshold value.
The device further comprises: the independent publishing module 503 determines, in the obtained service information, publishing configuration information belonging to the service to be published, and when the publishing configuration information is determined, publishes the service to be published according to the publishing configuration information. And the publishing configuration information is used for defining the publishing logic of the service to be published.
On the basis of the service distribution apparatus shown in fig. 5, an embodiment of this specification further provides a service distribution device, including:
a memory storing a service issuing program;
the processor calls the service release program stored in the memory and executes:
acquiring service information corresponding to a service to be issued;
and issuing the service to be issued according to the service information and a preset universal issuing model.
The embodiments in the present specification are described in a progressive manner, and the same and similar parts among the embodiments are referred to each other, and each embodiment focuses on the differences from the other embodiments. Especially, as for the device, apparatus and medium type embodiments, since they are basically similar to the method embodiments, the description is simple, and the related points may refer to part of the description of the method embodiments, which is not repeated here.
The foregoing description has been directed to specific embodiments of this disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps or modules recited in the claims may be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may also be possible or may be advantageous.
In the 90 s of the 20 th century, improvements in a technology could clearly distinguish between improvements in hardware (e.g., improvements in circuit structures such as diodes, transistors, switches, etc.) and improvements in software (improvements in process flow). However, as technology advances, many of today's process flow improvements have been seen as direct improvements in hardware circuit architecture. Designers almost always obtain the corresponding hardware circuit structure by programming an improved method flow into the hardware circuit. Thus, it cannot be said that an improvement in the process flow cannot be realized by hardware physical modules. For example, a Programmable Logic Device (PLD), such as a Field Programmable Gate Array (FPGA), is an integrated circuit whose Logic functions are determined by programming the Device by a user. A digital system is "integrated" on a PLD by the designer's own programming without requiring the chip manufacturer to design and fabricate application-specific integrated circuit chips. Furthermore, nowadays, instead of manually making an Integrated Circuit chip, such Programming is often implemented by "logic compiler" software, which is similar to a software compiler used in program development and writing, but the original code before compiling is also written by a specific Programming Language, which is called Hardware Description Language (HDL), and HDL is not only one but many, such as abel (advanced Boolean Expression Language), ahdl (alternate Hardware Description Language), traffic, pl (core universal Programming Language), HDCal (jhdware Description Language), lang, Lola, HDL, laspam, hardward Description Language (vhr Description Language), vhal (Hardware Description Language), and vhigh-Language, which are currently used in most common. It will also be apparent to those skilled in the art that hardware circuitry that implements the logical method flows can be readily obtained by merely slightly programming the method flows into an integrated circuit using the hardware description languages described above.
The controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro) processor, logic gates, switches, an Application Specific Integrated Circuit (ASIC), a programmable logic controller, and an embedded microcontroller, examples of which include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicone Labs C8051F320, the memory controller may also be implemented as part of the control logic for the memory. Those skilled in the art will also appreciate that, in addition to implementing the controller as pure computer readable program code, the same functionality can be implemented by logically programming method steps such that the controller is in the form of logic gates, switches, application specific integrated circuits, programmable logic controllers, embedded microcontrollers and the like. Such a controller may thus be considered a hardware component, and the means included therein for performing the various functions may also be considered as a structure within the hardware component. Or even means for performing the functions may be regarded as being both a software module for performing the method and a structure within a hardware component.
The systems, devices, modules or units illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product with certain functions. One typical implementation device is a computer. In particular, the computer may be, for example, a personal computer, a laptop computer, a cellular telephone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
For convenience of description, the above devices are described as being divided into various units by function, and are described separately. Of course, the functionality of the units may be implemented in one or more software and/or hardware when implementing the present application.
As will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include forms of volatile memory in a computer readable medium, Random Access Memory (RAM) and/or non-volatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
Computer-readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), Digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, a computer readable medium does not include a transitory computer readable medium such as a modulated data signal and a carrier wave.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The application may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The application may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
The embodiments in the present specification are described in a progressive manner, and the same and similar parts among the embodiments are referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the system embodiment, since it is substantially similar to the method embodiment, the description is simple, and for the relevant points, reference may be made to the partial description of the method embodiment.
The above description is only an example of the present application and is not intended to limit the present application. Various modifications and changes may occur to those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the claims of the present application.