[go: up one dir, main page]

WO2014035684A2 - Subscription and notification for multi-user enabled engineering and lifecycle management - Google Patents

Subscription and notification for multi-user enabled engineering and lifecycle management Download PDF

Info

Publication number
WO2014035684A2
WO2014035684A2 PCT/US2013/055251 US2013055251W WO2014035684A2 WO 2014035684 A2 WO2014035684 A2 WO 2014035684A2 US 2013055251 W US2013055251 W US 2013055251W WO 2014035684 A2 WO2014035684 A2 WO 2014035684A2
Authority
WO
WIPO (PCT)
Prior art keywords
segments
interest
client terminal
status information
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2013/055251
Other languages
French (fr)
Other versions
WO2014035684A3 (en
Inventor
Yufeng Li
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Corp
Original Assignee
Siemens Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Corp filed Critical Siemens Corp
Publication of WO2014035684A2 publication Critical patent/WO2014035684A2/en
Publication of WO2014035684A3 publication Critical patent/WO2014035684A3/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services

Definitions

  • the present disclosure relates to engineering and lifecycle management and, more specifically, to systems and methods for subscription and notification for multi-user enabled engineering and lifecycle management.
  • PLM Product lifecycle management
  • PLM software may be used to ensure that the various authors all work on the code in an orderly fashion that is free of conflicting additions, deletions and modifications.
  • a method for providing subscription and notification in an engineering design system includes using a client terminal of a plurality of client terminals to define one or more segments of interest of a plurality of segments of an engineering design maintained on a server.
  • the server is periodically polled, from the client terminal, to request status information pertaining to each of the one or more segments of interest.
  • the status information is received from the server.
  • the received status information is compared with prior status information obtained during a previous receipt of status information to determine whether one or more of the one or more segments of interest have been modified since the previous receipt of status information.
  • a user of the client terminal is alerted when it is determined that one or more of the one or more segments of interest has been modified.
  • the engineering design system may be a computer code development platform, the engineering design may be computer code, and the plurality of segments may be elements of computer code.
  • the engineering design system may be a product lifecycle management (PLM) platform.
  • PLM product lifecycle management
  • Each of the plurality of segments may be maintained by one or more users of a plurality of users, that includes the user of the client terminal and the one or more segments of interest, are segments maintained by the user of the client terminal.
  • Defining the one or more segments of interest of the plurality of segments may be manually performed by the user of the client terminal.
  • the defining of the one or more segments of interest of the plurality of segments may be automatically performed by the client terminal by determining which of the plurality of segments influences execution of one or more segments of the plurality of segments maintained by the user of the client terminal.
  • Periodically polling the server to request status information pertaining to each of the one or more segments of interest may include sending a single combined call covering all of the one or more segments of interest.
  • the modifications of the one or more segments of interest may include additions, deletions, changes, or approvals to a design of the segments of interest.
  • the previously received status information may be stored by the client terminal.
  • the received status information may be used as prior status information in a subsequent periodic polling.
  • Alerting the user of the client terminal may include displaying a message on the client terminal.
  • Alerting the user of the client terminal may include sending an email or text message to the user.
  • An engineering design system having subscription and notification includes a server maintaining an engineering design divided into a plurality of segments.
  • the engineering design system also includes a plurality of terminals, each accessing the plurality of segments.
  • Each of the plurality of terminals includes an adaptor for interfacing with the server, a user interface (UI) for interfacing with a corresponding user of a plurality of users, and a business logic unit.
  • UI user interface
  • the business logic unit is configured to define one or more segments of interest of the plurality of segments, periodically poll the server to request status information pertaining to each of the one or more segments of interest, receive status information from the server, compare the received status information with prior status information obtained during a previous receipt of status information to determine whether one or more of the one or more segments of interest have been modified since the previous receipt of status information, and alert the corresponding user when it is determined that one or more of the one or more segments of interest has been modified.
  • the engineering design system may be a computer code development platform.
  • the engineering design may be computer code.
  • the plurality of segments may be elements of computer code.
  • the defining of the one or more segments of interest of the plurality of segments may be manually performed by the corresponding user.
  • the defining of the one or more segments of interest of the plurality of segments may be automatically performed by the business logic by determining which of the plurality of segments influences execution of one or more segments of the plurality of segments maintained by the corresponding user.
  • Periodically polling the server to request status information pertaining to each of the one or more segments of interest may include sending a single combined call covering all of the one or more segments of interest.
  • Alerting the corresponding user may include displaying a message on the client terminal.
  • Alerting the corresponding user may include sending an email or text message to the corresponding user.
  • a method for providing notification in a computer code development system includes using a client terminal of a plurality of client terminals to define one or more segments of interest of a plurality of code segments of computer code under development maintained on a server.
  • the server is periodically polled, from the client terminal, to request status information pertaining to each of the one or more segments of interest.
  • the status information is received from the server.
  • the received status information is analyzed to determine whether the one or more segments of interest have been modified.
  • a user of the client terminal is alerted when it is determined that one or more of the one or more segments of interest has been modified.
  • the segments of interest may be those code segments of the plurality of code segments that affect execution of one or more code segments authored by a user of the client terminal.
  • Determining which code segments of the plurality of code segments affect execution of one or more code segments authored by a user of the client terminal may be automatically performed by the client terminal by analyzing each of the plurality of code segments from the server.
  • Periodically polling the server, from the client terminal, to request status information pertaining to each of the one or more segments of interest may include sending a single combined call covering all of the one or more segments of interest.
  • Alerting the user of the client terminal may include displaying a message on the client terminal, or sending an email or text message to the user of the client terminal.
  • FIG. 1 is a schematic diagram of a system for providing subscription and notification for multi-user enabled engineering and lifecycle management in accordance with exemplary embodiments of the present invention
  • FIG. 2 is a flowchart illustrating an approach for providing subscription and notification for multi-user enabled engineering and lifecycle management in accordance with exemplary embodiments of the present invention.
  • FIG. 3 shows an example of a computer system capable of implementing the method and apparatus according to embodiments of the present disclosure.
  • Exemplary embodiments of the present invention provide for various systems and approaches for notifying engineers and programmers ("authors") of changes made to code segments that are of interest to the particular authors so that the efforts of each author may be better harmonized with those of the other authors working on the same programming project.
  • Exemplary embodiments of the present invention utilize a subscription model in which each author, operating from a client terminal, is able to define or otherwise establish a list of code segments that are of particular interest to that author. Then, the author's client terminal may periodically poll a server, for example, a PLM software server, to obtain information on the status of each segment of interest. The client terminal may then compare the obtained status against prior-obtained status to identify when changes have occurred to one or more of the segments of interest. When it is determined that one or more changes have occurred, the author may be notified of these changes so that the author may be kept current on the status of those code segments that are of particular interest to that author.
  • a server for example, a PLM software server
  • FIG. 1 is a schematic diagram of a system for providing subscription and notification for multi-user enabled engineering and lifecycle management in accordance with exemplary embodiments of the present invention.
  • FIG. 2 is a flowchart illustrating an approach for providing subscription and notification for multi-user enabled engineering and lifecycle management in accordance with exemplary embodiments of the present invention.
  • a server 1 1 may host a software platform for collaborative development of computer code.
  • This server 11 may be embodied by one or more computer systems operating in tandem to provide access, by a plurality of engineers and programmers (authors) to a collection of computer code being developed.
  • the server 1 1 may be embodied by multiple computer systems providing a distributed framework for load sharing and failover.
  • the server may include product lifecycle management (PLM) software or any other platform for collaborative engineering. While exemplary embodiments of the present invention are described with reference to authors engaged in the collaborative development of computer code, it is to be understood that exemplary embodiments of the present invention may include other collaborative engineering projects such as hardware development, microchip architecture, etc.
  • the server 1 1 may include computer code, for example, divided into segments. Segments A through H have been provided as an example, although it is to be understood that there may be any number of segments, for example, hundreds or thousands of segments. Each code segment may be fully independent or at least partially dependent upon other code segments. As used herein, dependency is understood to be the arrangement in which modification of one segment alters the function of the execution of another segment.
  • Dependency may be two way, in which changes to either segment affects the other, or, perhaps more commonly, dependency may be one way, in which changes to a parent segment may influence the execution of a child segment, but changes to a child segment would not influence the execution of a parent segment.
  • FIG. 1 illustrates an example of dependencies by lines dawn between segments.
  • segment A is shown to be dependent upon segments B, F, and G
  • segment D is shown to be dependent upon segments C, F, G, and H.
  • each line shows two way dependency, however, this scenario is offered merely for the purpose of illustrating dependencies and other arrangements are certainly possible, and indeed, expected.
  • clients 12 there may be a plurality of clients, each of which is connected directly to the server. For the purposes of simplicity, only client 12a, 12b, and 12n are shown. However, it is to be understood that there may be fewer or more than three clients 12 (12a, 12b, ..., 12n) each in communication with the server 11. Although not shown, the clients 12 may additionally be connected to each other across a computer network such as a local area network (LAN) or a wide area network (WAN) such as the Internet.
  • LAN local area network
  • WAN wide area network
  • Each client may be embodied as a computer system, for example, a personal computer. However, alternatively, clients may include tablet computers, smart phones, and/or connected appliances.
  • Authors may utilize one or more clients for creating, removing and modifying code segments. Additionally, other users may use clients for the review and approval of program segments.
  • the program segment code itself may be stored and maintained by the server and the server 11 may be responsible for checking out code segments to particular authors/user and locking those segments to other authors/users while the code segments are checked out.
  • the server 11 may also maintain a record of the status of each segment, for example, whether the segment is available, checked out and locked, recently updated, etc.
  • the server 11 may also manage permissions for each code segment, for example, who may write to it, who may view it, whose approval is needed to approve changes made to it, etc.
  • the client may provide a means for a corresponding author to access and contribute to the code.
  • the client 12 may be a general-purpose computer and need not be exclusively devoted to the interaction with the server 1 1.
  • the client 12 may also function as a general-purpose workstation for a particular author and that author may also use that client for other tasks such as Internet browsing, email management, etc.
  • the client 12 may accordingly be outfitted with software for interfacing with the server for the
  • Exemplary embodiments of the present invention may rely upon each client 12 for the periodic polling of the server 13 to determine when segments of interest for a particular author have been created, modified or deleted.
  • the segments of interest to a particular author may be those segments that affect the operation of the segments that the user is directly involved with developing and/or those segments that the user is directly involved with developing themselves.
  • exemplary embodiments of the present invention are not so limited and indeed each author may decide for him or herself which segments are of interest. Thus, the author may manually select which code segments to subscribe to.
  • exemplary embodiments of the present invention may automatically determine which segments are of interest to the corresponding author and automatically subscribe the author to those automatically determined segments. This may be performed, for example, by analyzing the various segments of code and determining which segments of code influence the execution of the segments of code that the author is responsible for contributing to. This processing may be performed by the client 12 itself upon accessing the code segments of the server 13. Where this automatic approach is utilized, the author may then be provided with an opportunity to add or remove to the subscriptions automatically established.
  • one or more subscriptions may be created (Step S21) either manually, automatically or by a combination of both approaches.
  • Each subscription may be registered within a list of subscriptions maintained by the client.
  • Each client 12 may maintain its own subscription list.
  • the author may create, view, and/or modify the subscription list using a user interface (UI) of the client 12. Where the list is at least partially automatically generated, the automatic generation may be handled by the client 12, for example, by a business logic element 14 in communication with the server 11 through an adaptor 13.
  • UI user interface
  • each client 12, under the direction of the business logic 14, may poll the server 11 trough the adaptor 13 (Step S22). Polling may be performed periodically, for example, every one minute. The polling period may be greater or less than once every one minute and the author may modify this polling period as desired.
  • the polling may include generating a status call.
  • a single status call may include a request for information pertaining to each subscribed to segment. Thus, at each period, computational resources may be conserved by each client 12 sending the server 1 1 only a single status call.
  • Generation of the status call may include consulting the subscription list to determine which segments are subscribed to.
  • the server may, upon receiving the status call, respond with the status and other requested information concerning each segment noted in the combined call.
  • This status information may then be received by the client (Step S23).
  • the client for example, the business logic 14, may compare the received status and other information with a list of status and other information previously received, for example, at the most recent previous poll period. The objective of the comparison is to determine whether there have been any substantive changes made to any of the subscribed to segments (Step S24). While some changes may be considered to be too insignificant to warrant alerting the author, some changes that may be considered adequately significant may include an updated version number, changes made to the code of the segment, approval of tentative changes, introduction of tentative changes, etc. Each author may change settings to define what sorts of changes may be considered significant. However, according to exemplary embodiments of the present invention, the changes may be automatically analyzed to determine whether the changes would influence the execution of the segments under the responsibility of the author, and only those changes determined to be influential may be considered significant from the point of view of the author.
  • Step S24 When there have been no significant changes (No changes, S24), then the server may be polled again at the next polling period (Step S22). Where there have been significant changes made (Yes changes, S24), an alert may be generated (Step S25) and then the server may be polled again at the next polling period (Step S22).
  • An alert may be one or more attempts to communicate to the author that a change to a subscribed to segment has been made.
  • an alert may include a popup message displayed on a display device of the client 12 alerting the author of the changes made.
  • the popup message may be displayed regardless of whether the author is presently using the client 12 to interact with the server 11 , for example, to work on coding.
  • the popup message may be displayed while the author is using the client terminal to run unrelated applications.
  • the alert itself may simply inform the user that changes have been made to subscribed to segments or the alert itself may describe the changes made.
  • the alert may also ask for acknowledgement. Failure to acknowledge the alert within a predetermined period of time may lead to an alert escalation, which may include other alerts being sent to the user by other means.
  • the alert may be an email sent to the author's email address, a text message sent to the author's mobile phone, or even a voice call placed to the author's home, work, or mobile telephone number.
  • Generation of the alerts may be performed by the client 12 itself. For example, where the alert is a popup message, the client may display the popup message on its display device. Where the alert is an email, the client 12 may automatically generate and send an email either using an independent email protocol such as POP3 or by interfacing with a desktop email client also running on the client 12. Where the alert is a text message, the client may generate the text message by interfacing with a mobile service provider over the Internet.
  • exemplary embodiments of the present invention may
  • segment subscriptions by analyzing code of other segments to determine whether the execution of the segments being developed by a particular author may be affected by changes made to the other segments. Segments that are determined to be influential on the execution of the segments that the author is developing may then be subscribed to. Exemplary embodiments of the present invention may then periodically update these automatic subscriptions, for example, by analyzing the other segments to see if subscribed to segments are still influential and to determine whether previously un- influential segments and/or new segments are now influential. Influential segments may then be subscribed to while un-influential segments may then be un-subscribed.
  • This automatic subscription updating may be performed by the client, for example, by polling the server. However, this periodic action may be performed significantly less frequently than the periodic polling described above with respect to Step S22 of FIG. 2.
  • FIG. 3 shows an example of a computer system which may be suitable for use as a client in accordance with exemplary embodiments of the present invention.
  • the Adaptor, business logic, and UI may each be implemented in the form of a software application running on a computer system, for example, a mainframe, personal computer (PC), handheld computer, server, etc.
  • the software application may be stored on a recording media locally accessible by the computer system and accessible via a hard wired or wireless connection to a network, for example, a local area network, or the Internet.
  • One or more of the client's software elements including the adaptor, business logic, and/or UI may continuously run in the background of the client computer system even when the client computer system is not being used specifically for the purpose of facilitating the author's interaction with the server. By staying resonant and operating in the background, the client's software may continue to poll the server at regular intervals.
  • the computer system referred to generally as system 1000 may include, for example, a central processing unit (CPU) 1001, random access memory (RAM) 1004, a printer interface 1010, a display unit 1011 , a local area network (LAN) data transmission controller 1005, a LAN interface 1006, a network controller 1003, an internal bus 1002, and one or more input devices 1009, for example, a keyboard, mouse etc.
  • the system 1000 may be connected to a data storage device, for example, a hard disk, 1008 via a link 1007.

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Alarm Systems (AREA)
  • Computer And Data Communications (AREA)

Description

SUBSCRIPTION AND NOTIFICATION FOR MULTI-USER ENABLED
ENGINEERING AND LIFECYCLE MANAGEMENT
CROSS-REFERENCE TO RELATED APPLICATION
The present application is based on provisional application Serial No. 61/694,366, filed August 29, 2012, the entire contents of which are herein incorporated by reference.
TECHNICAL FIELD
The present disclosure relates to engineering and lifecycle management and, more specifically, to systems and methods for subscription and notification for multi-user enabled engineering and lifecycle management.
DISCUSSION OF THE RELATED ART
Product lifecycle management (PLM) software provides an integrated platform for the development and marketing of high-technology products and services. A large number of engineers and programmers may utilize PLM software for the co-development of
sophisticated computer code comprising a large number of partially independent segments. As the entirety of the code may be voluminous, various teams of engineers and programmers may be directed to the development of specific portions of the code. Accordingly, PLM software may be used to ensure that the various authors all work on the code in an orderly fashion that is free of conflicting additions, deletions and modifications.
Existing implementations of PLM software for the development of computer code may require each programmer and engineer to stay up to date on what changes are being made by the other programmers and engineers so that people are not working against each other.
Considerable time and effort may therefore be spent by the programmers and engineers utilizing PLM software to ensure that they are know how the changes being made by others affects the utility of their own code segments.
SUMMARY
A method for providing subscription and notification in an engineering design system includes using a client terminal of a plurality of client terminals to define one or more segments of interest of a plurality of segments of an engineering design maintained on a server. The server is periodically polled, from the client terminal, to request status information pertaining to each of the one or more segments of interest. The status information is received from the server. The received status information is compared with prior status information obtained during a previous receipt of status information to determine whether one or more of the one or more segments of interest have been modified since the previous receipt of status information. A user of the client terminal is alerted when it is determined that one or more of the one or more segments of interest has been modified.
The engineering design system may be a computer code development platform, the engineering design may be computer code, and the plurality of segments may be elements of computer code.
The engineering design system may be a product lifecycle management (PLM) platform.
Each of the plurality of segments may be maintained by one or more users of a plurality of users, that includes the user of the client terminal and the one or more segments of interest, are segments maintained by the user of the client terminal.
Defining the one or more segments of interest of the plurality of segments may be manually performed by the user of the client terminal.
The defining of the one or more segments of interest of the plurality of segments may be automatically performed by the client terminal by determining which of the plurality of segments influences execution of one or more segments of the plurality of segments maintained by the user of the client terminal.
Periodically polling the server to request status information pertaining to each of the one or more segments of interest may include sending a single combined call covering all of the one or more segments of interest.
The modifications of the one or more segments of interest may include additions, deletions, changes, or approvals to a design of the segments of interest.
The previously received status information may be stored by the client terminal.
The received status information may be used as prior status information in a subsequent periodic polling.
Alerting the user of the client terminal may include displaying a message on the client terminal.
Alerting the user of the client terminal may include sending an email or text message to the user.
An engineering design system having subscription and notification includes a server maintaining an engineering design divided into a plurality of segments. The engineering design system also includes a plurality of terminals, each accessing the plurality of segments. Each of the plurality of terminals includes an adaptor for interfacing with the server, a user interface (UI) for interfacing with a corresponding user of a plurality of users, and a business logic unit. The business logic unit is configured to define one or more segments of interest of the plurality of segments, periodically poll the server to request status information pertaining to each of the one or more segments of interest, receive status information from the server, compare the received status information with prior status information obtained during a previous receipt of status information to determine whether one or more of the one or more segments of interest have been modified since the previous receipt of status information, and alert the corresponding user when it is determined that one or more of the one or more segments of interest has been modified.
The engineering design system may be a computer code development platform. The engineering design may be computer code. The plurality of segments may be elements of computer code.
The defining of the one or more segments of interest of the plurality of segments may be manually performed by the corresponding user.
The defining of the one or more segments of interest of the plurality of segments may be automatically performed by the business logic by determining which of the plurality of segments influences execution of one or more segments of the plurality of segments maintained by the corresponding user.
Periodically polling the server to request status information pertaining to each of the one or more segments of interest may include sending a single combined call covering all of the one or more segments of interest.
Alerting the corresponding user may include displaying a message on the client terminal.
Alerting the corresponding user may include sending an email or text message to the corresponding user.
A method for providing notification in a computer code development system, includes using a client terminal of a plurality of client terminals to define one or more segments of interest of a plurality of code segments of computer code under development maintained on a server. The server is periodically polled, from the client terminal, to request status information pertaining to each of the one or more segments of interest. The status information is received from the server. The received status information is analyzed to determine whether the one or more segments of interest have been modified. A user of the client terminal is alerted when it is determined that one or more of the one or more segments of interest has been modified.
The segments of interest may be those code segments of the plurality of code segments that affect execution of one or more code segments authored by a user of the client terminal.
Determining which code segments of the plurality of code segments affect execution of one or more code segments authored by a user of the client terminal may be automatically performed by the client terminal by analyzing each of the plurality of code segments from the server.
Periodically polling the server, from the client terminal, to request status information pertaining to each of the one or more segments of interest may include sending a single combined call covering all of the one or more segments of interest.
Alerting the user of the client terminal may include displaying a message on the client terminal, or sending an email or text message to the user of the client terminal.
BRIEF DESCRIPTION OF THE DRAWINGS
A more complete appreciation of the present disclosure and many of the attendant aspects thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:
FIG. 1 is a schematic diagram of a system for providing subscription and notification for multi-user enabled engineering and lifecycle management in accordance with exemplary embodiments of the present invention;
FIG. 2 is a flowchart illustrating an approach for providing subscription and notification for multi-user enabled engineering and lifecycle management in accordance with exemplary embodiments of the present invention; and
FIG. 3 shows an example of a computer system capable of implementing the method and apparatus according to embodiments of the present disclosure.
DETAILED DESCRIPTION OF THE DRAWINGS
In describing exemplary embodiments of the present disclosure illustrated in the drawings, specific terminology is employed for sake of clarity. However, the present disclosure is not intended to be limited to the specific terminology so selected, and it is to be understood that each specific element includes all technical equivalents which operate in a similar manner.
Exemplary embodiments of the present invention provide for various systems and approaches for notifying engineers and programmers ("authors") of changes made to code segments that are of interest to the particular authors so that the efforts of each author may be better harmonized with those of the other authors working on the same programming project.
Exemplary embodiments of the present invention utilize a subscription model in which each author, operating from a client terminal, is able to define or otherwise establish a list of code segments that are of particular interest to that author. Then, the author's client terminal may periodically poll a server, for example, a PLM software server, to obtain information on the status of each segment of interest. The client terminal may then compare the obtained status against prior-obtained status to identify when changes have occurred to one or more of the segments of interest. When it is determined that one or more changes have occurred, the author may be notified of these changes so that the author may be kept current on the status of those code segments that are of particular interest to that author.
FIG. 1 is a schematic diagram of a system for providing subscription and notification for multi-user enabled engineering and lifecycle management in accordance with exemplary embodiments of the present invention. FIG. 2 is a flowchart illustrating an approach for providing subscription and notification for multi-user enabled engineering and lifecycle management in accordance with exemplary embodiments of the present invention.
As described above, a server 1 1 may host a software platform for collaborative development of computer code. This server 11 may be embodied by one or more computer systems operating in tandem to provide access, by a plurality of engineers and programmers (authors) to a collection of computer code being developed. For example, the server 1 1 may be embodied by multiple computer systems providing a distributed framework for load sharing and failover. The server may include product lifecycle management (PLM) software or any other platform for collaborative engineering. While exemplary embodiments of the present invention are described with reference to authors engaged in the collaborative development of computer code, it is to be understood that exemplary embodiments of the present invention may include other collaborative engineering projects such as hardware development, microchip architecture, etc.
The server 1 1 may include computer code, for example, divided into segments. Segments A through H have been provided as an example, although it is to be understood that there may be any number of segments, for example, hundreds or thousands of segments. Each code segment may be fully independent or at least partially dependent upon other code segments. As used herein, dependency is understood to be the arrangement in which modification of one segment alters the function of the execution of another segment.
Dependency may be two way, in which changes to either segment affects the other, or, perhaps more commonly, dependency may be one way, in which changes to a parent segment may influence the execution of a child segment, but changes to a child segment would not influence the execution of a parent segment.
FIG. 1 illustrates an example of dependencies by lines dawn between segments. For example, segment A is shown to be dependent upon segments B, F, and G, while segment D is shown to be dependent upon segments C, F, G, and H. Here each line shows two way dependency, however, this scenario is offered merely for the purpose of illustrating dependencies and other arrangements are certainly possible, and indeed, expected.
There may be a plurality of clients, each of which is connected directly to the server. For the purposes of simplicity, only client 12a, 12b, and 12n are shown. However, it is to be understood that there may be fewer or more than three clients 12 (12a, 12b, ..., 12n) each in communication with the server 11. Although not shown, the clients 12 may additionally be connected to each other across a computer network such as a local area network (LAN) or a wide area network (WAN) such as the Internet.
Each client may be embodied as a computer system, for example, a personal computer. However, alternatively, clients may include tablet computers, smart phones, and/or connected appliances. Authors may utilize one or more clients for creating, removing and modifying code segments. Additionally, other users may use clients for the review and approval of program segments. The program segment code itself may be stored and maintained by the server and the server 11 may be responsible for checking out code segments to particular authors/user and locking those segments to other authors/users while the code segments are checked out. The server 11 may also maintain a record of the status of each segment, for example, whether the segment is available, checked out and locked, recently updated, etc. The server 11 may also manage permissions for each code segment, for example, who may write to it, who may view it, whose approval is needed to approve changes made to it, etc.
The client may provide a means for a corresponding author to access and contribute to the code. However, the client 12 may be a general-purpose computer and need not be exclusively devoted to the interaction with the server 1 1. For example, the client 12 may also function as a general-purpose workstation for a particular author and that author may also use that client for other tasks such as Internet browsing, email management, etc. The client 12 may accordingly be outfitted with software for interfacing with the server for the
development of code segments.
Exemplary embodiments of the present invention may rely upon each client 12 for the periodic polling of the server 13 to determine when segments of interest for a particular author have been created, modified or deleted. The segments of interest to a particular author may be those segments that affect the operation of the segments that the user is directly involved with developing and/or those segments that the user is directly involved with developing themselves. However, exemplary embodiments of the present invention are not so limited and indeed each author may decide for him or herself which segments are of interest. Thus, the author may manually select which code segments to subscribe to.
Alternatively, or additionally, exemplary embodiments of the present invention may automatically determine which segments are of interest to the corresponding author and automatically subscribe the author to those automatically determined segments. This may be performed, for example, by analyzing the various segments of code and determining which segments of code influence the execution of the segments of code that the author is responsible for contributing to. This processing may be performed by the client 12 itself upon accessing the code segments of the server 13. Where this automatic approach is utilized, the author may then be provided with an opportunity to add or remove to the subscriptions automatically established.
Thus, according to exemplary embodiments of the present invention, one or more subscriptions may be created (Step S21) either manually, automatically or by a combination of both approaches. Each subscription may be registered within a list of subscriptions maintained by the client. Each client 12 may maintain its own subscription list. The author may create, view, and/or modify the subscription list using a user interface (UI) of the client 12. Where the list is at least partially automatically generated, the automatic generation may be handled by the client 12, for example, by a business logic element 14 in communication with the server 11 through an adaptor 13.
Then each client 12, under the direction of the business logic 14, may poll the server 11 trough the adaptor 13 (Step S22). Polling may be performed periodically, for example, every one minute. The polling period may be greater or less than once every one minute and the author may modify this polling period as desired. The polling may include generating a status call. A single status call may include a request for information pertaining to each subscribed to segment. Thus, at each period, computational resources may be conserved by each client 12 sending the server 1 1 only a single status call. Generation of the status call may include consulting the subscription list to determine which segments are subscribed to.
The server may, upon receiving the status call, respond with the status and other requested information concerning each segment noted in the combined call. This status information may then be received by the client (Step S23). The client, for example, the business logic 14, may compare the received status and other information with a list of status and other information previously received, for example, at the most recent previous poll period. The objective of the comparison is to determine whether there have been any substantive changes made to any of the subscribed to segments (Step S24). While some changes may be considered to be too insignificant to warrant alerting the author, some changes that may be considered adequately significant may include an updated version number, changes made to the code of the segment, approval of tentative changes, introduction of tentative changes, etc. Each author may change settings to define what sorts of changes may be considered significant. However, according to exemplary embodiments of the present invention, the changes may be automatically analyzed to determine whether the changes would influence the execution of the segments under the responsibility of the author, and only those changes determined to be influential may be considered significant from the point of view of the author.
When there have been no significant changes (No changes, S24), then the server may be polled again at the next polling period (Step S22). Where there have been significant changes made (Yes changes, S24), an alert may be generated (Step S25) and then the server may be polled again at the next polling period (Step S22).
An alert may be one or more attempts to communicate to the author that a change to a subscribed to segment has been made. For example, an alert may include a popup message displayed on a display device of the client 12 alerting the author of the changes made. The popup message may be displayed regardless of whether the author is presently using the client 12 to interact with the server 11 , for example, to work on coding. For example, the popup message may be displayed while the author is using the client terminal to run unrelated applications. The alert itself may simply inform the user that changes have been made to subscribed to segments or the alert itself may describe the changes made. The alert may also ask for acknowledgement. Failure to acknowledge the alert within a predetermined period of time may lead to an alert escalation, which may include other alerts being sent to the user by other means.
The alert may be an email sent to the author's email address, a text message sent to the author's mobile phone, or even a voice call placed to the author's home, work, or mobile telephone number. Generation of the alerts may be performed by the client 12 itself. For example, where the alert is a popup message, the client may display the popup message on its display device. Where the alert is an email, the client 12 may automatically generate and send an email either using an independent email protocol such as POP3 or by interfacing with a desktop email client also running on the client 12. Where the alert is a text message, the client may generate the text message by interfacing with a mobile service provider over the Internet.
As described above, exemplary embodiments of the present invention may
automatically generate segment subscriptions by analyzing code of other segments to determine whether the execution of the segments being developed by a particular author may be affected by changes made to the other segments. Segments that are determined to be influential on the execution of the segments that the author is developing may then be subscribed to. Exemplary embodiments of the present invention may then periodically update these automatic subscriptions, for example, by analyzing the other segments to see if subscribed to segments are still influential and to determine whether previously un- influential segments and/or new segments are now influential. Influential segments may then be subscribed to while un-influential segments may then be un-subscribed. This automatic subscription updating may be performed by the client, for example, by polling the server. However, this periodic action may be performed significantly less frequently than the periodic polling described above with respect to Step S22 of FIG. 2.
As described above, the clients 12 may each be implemented on a computer system. FIG. 3 shows an example of a computer system which may be suitable for use as a client in accordance with exemplary embodiments of the present invention. The Adaptor, business logic, and UI may each be implemented in the form of a software application running on a computer system, for example, a mainframe, personal computer (PC), handheld computer, server, etc. The software application may be stored on a recording media locally accessible by the computer system and accessible via a hard wired or wireless connection to a network, for example, a local area network, or the Internet.
One or more of the client's software elements including the adaptor, business logic, and/or UI may continuously run in the background of the client computer system even when the client computer system is not being used specifically for the purpose of facilitating the author's interaction with the server. By staying resonant and operating in the background, the client's software may continue to poll the server at regular intervals.
The computer system referred to generally as system 1000 may include, for example, a central processing unit (CPU) 1001, random access memory (RAM) 1004, a printer interface 1010, a display unit 1011 , a local area network (LAN) data transmission controller 1005, a LAN interface 1006, a network controller 1003, an internal bus 1002, and one or more input devices 1009, for example, a keyboard, mouse etc. As shown, the system 1000 may be connected to a data storage device, for example, a hard disk, 1008 via a link 1007.
Exemplary embodiments described herein are illustrative, and many variations can be introduced without departing from the spirit of the disclosure or from the scope of the appended claims. For example, elements and/or features of different exemplary
embodiments may be combined with each other and/or substituted for each other within the scope of this disclosure and appended claims.

Claims

What is claimed is:
1. A method for providing subscription and notification in an engineering design system, comprising:
using a client terminal of a plurality of client terminals to define one or more segments of interest of a plurality of segments of an engineering design maintained on a server;
periodically polling the server, from the client terminal, to request status information pertaining to each of the one or more segments of interest;
receiving the status information from the server;
comparing the received status information with prior status information obtained during a previous receipt of status information to determine whether one or more of the one or more segments of interest have been modified since the previous receipt of status information; and
alerting a user of the client terminal when it is determined that one or more of the one or more segments of interest has been modified.
2. The method of claim 1, wherein the engineering design system is a computer code development platform, the engineering design is computer code, and the plurality of segments are elements of computer code.
3. The method of claim 1, wherein the engineering design system is a product lifecycle management (PLM) platform.
4. The method of claim 1 , wherein each of the plurality of segments are maintained by one or more users of a plurality of users that includes the user of the client terminal and the one or more segments of interest are segments maintained by the user of the client terminal.
5. The method of claim 1 , wherein the defining of the one or more segments of interest of the plurality of segments is manually performed by the user of the client terminal.
6. The method of claim 1 , wherein the defining of the one or more segments of interest of the plurality of segments is automatically performed by the client terminal by determining which of the plurality of segments influences execution of one or more segments of the plurality of segments maintained by the user of the client terminal.
7. The method of claim 1, wherein periodically polling the server to request status information pertaining to each of the one or more segments of interest including sending a single combined call covering all of the one or more segments of interest.
8. The method of claim 1 , wherein the modifications of the one or more segments of interest include additions, deletions, changes, or approvals to a design of the segments of interest.
9. The method of claim 1, wherein the previously received status information is stored by the client terminal.
10. The method of claim 1, wherein the received status information is used as prior status information in a subsequent periodic polling.
11. The method of claim 1 , wherein alerting the user of the client terminal includes displaying a message on the client terminal.
12. The method of claim 1 , wherein alerting the user of the client terminal includes sending an email or text message to the user.
13. An engineering design system having subscription and notification, comprising: a server maintaining an engineering design divided into a plurality of segments; and a plurality of terminals, each accessing the plurality of segments,
wherein each of the plurality of terminals includes an adaptor for interfacing with the server, a user interface (UI) for interfacing with a corresponding user of a plurality of users, and a business logic unit, the business logic unit configured to:
define one or more segments of interest of the plurality of segments;
periodically poll the server to request status information pertaining to each of the one or more segments of interest;
receive status information from the server;
compare the received status information with prior status information obtained during a previous receipt of status information to determine whether one or more of the one or more segments of interest have been modified since the previous receipt of status information; and alert the corresponding user when it is determined that one or more of the one or more segments of interest has been modified.
14. The engineering design system of claim 13, wherein the engineering design system is a computer code development platform, the engineering design is computer code, and the plurality of segments are elements of computer code.
15. The engineering design system of claim 13, wherein the defining of the one or more segments of interest of the plurality of segments is manually performed by the corresponding user.
16. The engineering design system of claim 13, wherein the defining of the one or more segments of interest of the plurality of segments is automatically performed by the business logic by determining which of the plurality of segments influences execution of one or more segments of the plurality of segments maintained by the corresponding user.
17. The engineering design system of claim 13, wherein periodically polling the server to request status information pertaining to each of the one or more segments of interest including sending a single combined call covering all of the one or more segments of interest.
18. The engineering design system of claim 13, wherein alerting the corresponding user includes displaying a message on the client terminal.
19. The engineering design system of claim 13, wherein alerting the corresponding user includes sending an email or text message to the corresponding user.
20. A method for providing notification in a computer code development system, comprising:
using a client terminal of a plurality of client terminals to define one or more segments of interest of a plurality of code segments of computer code under development maintained on a server;
periodically polling the server, from the client terminal, to request status information pertaining to each of the one or more segments of interest;
receiving the status information from the server;
analyzing the received status information to determine whether the one or more segments of interest have been modified; and
alerting a user of the client terminal when it is determined that one or more of the one or more segments of interest has been modified.
21. The method of claim 20, wherein the segments of interest are those code segments of the plurality of code segments that affect execution of one or more code segments authored by a user of the client terminal.
22. The method of claim 21, wherein determining which code segments of the plurality of code segments affect execution of one or more code segments authored by a user of the client terminal is automatically performed by the client terminal by analyzing each of the plurality of code segments from the server.
23. The method of claim 20, wherein periodically polling the server, from the client terminal, to request status information pertaining to each of the one or more segments of interest including sending a single combined call covering all of the one or more segments of interest.
24. The method of claim 20, wherein alerting the user of the client terminal includes displaying a message on the client terminal, or sending an email or text message to the user of the client terminal.
PCT/US2013/055251 2012-08-29 2013-08-16 Subscription and notification for multi-user enabled engineering and lifecycle management Ceased WO2014035684A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261694366P 2012-08-29 2012-08-29
US61/694,366 2012-08-29

Publications (2)

Publication Number Publication Date
WO2014035684A2 true WO2014035684A2 (en) 2014-03-06
WO2014035684A3 WO2014035684A3 (en) 2014-05-30

Family

ID=49083775

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2013/055251 Ceased WO2014035684A2 (en) 2012-08-29 2013-08-16 Subscription and notification for multi-user enabled engineering and lifecycle management

Country Status (1)

Country Link
WO (1) WO2014035684A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888669A (en) * 2018-09-10 2020-03-17 福建天泉教育科技有限公司 Method and system for creating template engineering on IDE

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002003225A2 (en) * 2000-06-15 2002-01-10 Xis Incorporated Method and system for product lifecycle management
US8244745B2 (en) * 2005-12-29 2012-08-14 Nextlabs, Inc. Analyzing usage information of an information management system
US20110145056A1 (en) * 2008-03-03 2011-06-16 Spiceworks, Inc. Interactive online closed loop marketing system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888669A (en) * 2018-09-10 2020-03-17 福建天泉教育科技有限公司 Method and system for creating template engineering on IDE

Also Published As

Publication number Publication date
WO2014035684A3 (en) 2014-05-30

Similar Documents

Publication Publication Date Title
US11588858B2 (en) Monitoring a privacy rating for an application or website
US11876817B2 (en) Modeling queue-based message-oriented middleware relationships in a security system
CN108153670B (en) Interface testing method and device and electronic equipment
US9858550B2 (en) Techniques to manage remote events
CN111190888A (en) Method and device for managing graph database cluster
US11818152B2 (en) Modeling topic-based message-oriented middleware within a security system
CN109039733A (en) A kind of alarm method, system and electronic equipment and storage medium
CN108038665B (en) Business rule management method, device, equipment and computer readable storage medium
CN111190673A (en) Page display method, device and electronic device based on operation monitoring
CN114827157A (en) Cluster task processing method, device and system, electronic equipment and readable medium
CN112860505B (en) A distributed cluster control method and device
CN110515741A (en) A kind of degradation processing method and device based on local task queue
CN112463616B (en) A chaos testing method and device for Kubernetes container platform
CN102541563A (en) Method and system for generating monitoring interfaces
CN113378346A (en) Method and device for model simulation
US20200137008A1 (en) Communication frequency optimization
CN111600942B (en) Report processing method, device and equipment
CN111722986A (en) Software performance monitoring method and device
WO2014035684A2 (en) Subscription and notification for multi-user enabled engineering and lifecycle management
CN108011964B (en) Picture uploading method and device, electronic terminal and readable storage medium
US20140172955A1 (en) Distributed mobile enterprise application platform
CN115941444A (en) Alarm method and device for server cluster
CN113760720B (en) A method and device for displaying abnormal information of code
US20260030296A1 (en) Generating graph-based taxonomies via graphical user interface tools for generating representative data objects and customizing attributes
CN110781051A (en) Server-side interface field monitoring method and device and electronic equipment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13753961

Country of ref document: EP

Kind code of ref document: A2

122 Ep: pct application non-entry in european phase

Ref document number: 13753961

Country of ref document: EP

Kind code of ref document: A2