Source: http://www.google.nl/patents/US20070106998
Timestamp: 2017-12-18 01:16:22
Document Index: 369005578

Matched Legal Cases: ['§119', 'Application No. 60', 'art 200', 'art 200', 'art 1921', 'art 1935', 'art 1936', 'art 1959', 'art 1959', 'art 1975', 'art 1986', 'art 1986', 'art 1996', 'art 2011', 'art 2014', 'art 2009']

Patent US20070106998 - Mobility system and method for messaging and inter-process communication - Google Patenten
System, method, architecture, network device, and computer programs and computer program products for inter-process communications. Message structure, procedure for generating the message structure, applications of the message structure and messaging method for obtaining status, statistics, and other...http://www.google.nl/patents/US20070106998?utm_source=gb-gplus-sharePatent US20070106998 - Mobility system and method for messaging and inter-process communication
Publicatienummer US20070106998 A1
Aanvraagnummer US 11/588,849
Publicatienummer 11588849, 588849, US 2007/0106998 A1, US 2007/106998 A1, US 20070106998 A1, US 20070106998A1, US 2007106998 A1, US 2007106998A1, US-A1-20070106998, US-A1-2007106998, US2007/0106998A1, US2007/106998A1, US20070106998 A1, US20070106998A1, US2007106998 A1, US2007106998A1
Patentcitaties (99), Verwijzingen naar dit patent (12), Classificaties (4), Juridische gebeurtenissen (2)
US 20070106998 A1
1. A method for automatically generating an implementation data structure for an inter-process message to achieve a communication between a first process and a second process, the method comprising:
adopting a message input specification for specifying a message input language and a message input format;
adopting at least one rule for converting any input message complying with the message input specification into at least one executable message structure in a message implementation language different from the message input language;
receiving a particular input message complying with the message input specification; and
automatically generating a particular executable message implementation data structure corresponding to the particular input message from the particular input specification.
2. A method according to claim 1, wherein the automatically generating includes processing the received input message through a message converter to generate the executable message implementation data structure.
3. A method according to claim 1, wherein the message converter comprises a message compiler and the executable message implementation data structure comprises a executable implementation file and an interface file.
4. A method according to claim 1, wherein the input message includes XML language elements, the message compiler comprises an XML-language to C-language compiler, and the executable implementation language file comprises a C-language file.
5. A method according to claim 1, wherein the message input language comprises a high-level programming language file and the implementation data structure includes a low-level executable program code file; and the low-level executable program code file is generated from the high-level programming language specification of the message without programmer coding.
6. A method according to claim 1, wherein the message input language comprises an XML programming language and the input message is defined in a document type definition file.
7. A method according to claim 1, wherein the implementation data structure comprises at least one executable program code file.
8. A method according to claim 1, wherein the executable program code comprises executable program code in a C-programming language.
9. A method according to claim 1, wherein the executable program code comprises executable program code in a C-programming language and includes a plurality of C-language program components selected from the set of program components consisting of functions, routines, subroutines, procedures, libraries, and combinations thereof.
10. A method according to claim 1, wherein the implementation data structure further comprises an interface data structure.
11. A method according to claim 1, wherein the interface data structure comprises a header file.
12. A method according to claim 1, wherein said adopting a message input specification for specifying a message input language and a message input format, further comprises: defining said message input specification for specifying a message input language and a message input format.
13. A method according to claim 1, wherein said adopting at least one rule for converting any input message complying with the message input specification into at least one executable message structure in a message implementation language different from the message input language, further comprises: defining said at least one rule for converting any input message complying with the message input specification into at least one executable message structure in a message implementation language different from the message input language.
14. A method according to claim 1, further comprising preparing the particular input message complying with the message input specification; and the automatically generating a particular executable message implementation data structure is performed without human intervention.
15. A method according to claim 1, wherein the high-level message specification and rules completely enable automated generation of an executable message and any interface that may be required.
16. A method according to claim 1, wherein at least one rule for converting any input message includes at least one rule for marshalling message elements into a complete message.
17. A method according to claim 1, wherein the marshalled message is hardware agnostic.
18. A method according to claim 1, wherein at least one rule for converting any input message includes at least one rule for generating a message catalog.
19. A method according to claim 18, wherein a message catalog contains messages, messages contain parameters, parameters may optionally include sub-parameters, parameters have a parameter identifier (ID), and each parameter has a parameter type selected from among a set of defined parameter types.
20. A method according to claim 1, wherein the message input specification for specifying a message input language and a message input format comprises a formal specification that defines how to specify the message in terms of a high-level XML language so that executable code to implement the specified message may automatically be generated without human coding or intervention.
21. A method according to claim 1, wherein the message is an interprocess message.
22. A computer readable medium encoded with a computer program for directing a computer to generate a particular executable message implementation data structure corresponding to the particular input message from a particular input message, the computer program including a module that includes executable instructions for:
accessing at least one rule for converting an input message complying with a known message input specification into at least one executable message structure in a message implementation language different from the message input language;
23. An inter-process message definition structure comprising:
a formal message input specification wherein an interprocess message is defined in terms of a document type definition (dtd) file;
at least one message catalog element including a catalog name;
at least one parameter for at least one message catalog element; and
an optional sub parameter for at least one parameter.
24. An inter-process message catalog data structure comprising:
an XML version element;
a message catalog name element;
a message catalog call name element; and
at least one message parameter identifier element and at least one message parameter type element.
25. A method for communicating a message between a first process and a second process, the method comprising:
generating (marshalling) an encoded inter-process message data set, the inter-process message data set including an encoded message interface file and an encoded message implementation file; sending the encoded message from the sending first process to the destination second process, the sending first process not being required to wait for a response from the destination second process;
processing the received response; and
optionally extracting a state information.
26. A method according to claim 25, wherein the generation of the message includes marshalling of message elements into a message to be sent.
27. A method according to claim 25, wherein the processing of the received response includes unmarshalling the received response.
28. A method according to claim 25, wherein there is no client-server dependency relationship between the first process and the second process or between the second process and the first process.
29. A method according to claim 25, wherein the messaging between the first process and the second process is a peer-to-peer symmetric messaging.
30. A method according to claim 25, wherein the message may be sent from the first process to the second process and/or from the second process to the first process and is not a remote procedure call.
31. A method according to claim 25, wherein there is no dependency on the processing behavior or timing on either the sending first process side or the receiving destination second process side.
32. A method according to claim 25, wherein the message does not have a dependency on a processing behavior on either the sending first process side or on the destination receiving second process side.
33. A method according to claim 1, wherein for each message sent by a sender process, a response back to the sender process from the destination receiving process is optional and non-receipt of a response does not degrade operation in the first sending process.
34. A method according to claim 1, wherein in messaging, a message is sent, a acknowledgement of delivery may be returned, and a response may or may not be returned.
35. A method for sending an interprocess communication from a sending process to an external second process, the method comprising:
generating an encoded inter-process message data set, the inter-process message data set including an encoded message interface file and an encoded message implementation file, the generation of the message includes marshalling of message elements into a message to be sent; and
sending the encoded message from the sending first process to the destination second process, the sending first process not being required to wait for a response from the destination second process.
36. A network device adapted for coupling to a network including a plurality of other network devices by a communications link, the network device comprising:
a processor and random access memory coupled to the processor, the processor for executing computer program code instructions;
a persistent non-volatile memory for storing configuration information and said computer program code instructions;
a communications port for sending and receiving messages with other ones of said other network devices; and
means for sending and receiving messages.
This patent application claims the benefit of priority under 35 USC §119 to U.S. Provisional Application Ser. No. 60/732,038 filed Oct. 27, 2005 and entitled MOBILITY SYSTEM; which application is hereby incorporated by reference in its entirety.
This application is also related to U.S. Utility patent application Ser. No. 11/___,___ (Attorney Docket No. 43390-8010-US01) filed Oct. 26, 2006 and entitled Mobility System and Method for Messaging and Inter-Process Communication; U.S. Utility patent application Ser. No. 11/___,___ (Attorney Docket No. 43390-8011-US01) filed Oct. 26, 2006 and entitled Information and Status and Statistics Messaging Method and System for Inter-Process Communication; and U.S. Utility patent application Ser. No. 11/___,___ (Attorney Docket No. 43390-8012-US01) filed Oct. 26, 2006 and entitled Non-Persistent and Persistent Information Setting Method and System for Inter-Process Communication; each of which applications are hereby incorporated by reference.
Conventional interprocess communication schemes and techniques and even the messages themselves were also frequently difficult to implement and typically required highly skilled computer programmers with an ability to program code in relatively low-level and non- intuitive languages such as the C, C++, and similar programming languages.
This invention provides systems, methods, architectures, network device, and computer programs and computer program products for inter-process communications, and more particularly to a message structure, a procedure for generating the message structure, applications of the message structure and messaging method for obtaining status, statistics, and other information and for performing an information or parameter set operation across one or more process boundaries, and to other device and system architectures and methods for utilizing the messages and messaging methodology.
In one aspect, the invention provides a method for automatically generating an implementation data structure for an inter-process message to achieve a communication between a first process and a second process, the method including: adopting a message input specification for specifying a message input language and a message input format; adopting at least one rule for converting any input message complying with the message input specification into at least one executable message structure in a message implementation language different from the message input language; receiving a particular input message complying with the message input specification; and automatically generating a particular executable message implementation data structure corresponding to the particular input message from the particular input specification.
In another aspect, the invention provides a computer readable medium encoded with a computer program for directing a computer to generate a particular executable message implementation data structure corresponding to the particular input message from a particular input message, the computer program including a module that includes executable instructions for: accessing at least one rule for converting an input message complying with a known message input specification into at least one executable message structure in a message implementation language different from the message input language; receiving a particular input message complying with the message input specification; and automatically generating a particular executable message implementation data structure corresponding to the particular input message from the particular input specification.
In another aspect, the invention provides an inter-process message definition structure comprising: a formal message input specification wherein an interprocess message is defined in terms of a document type definition (dtd) file; at least one message catalog element including a catalog name; at least one parameter for at least one message catalog element; and an optional sub parameter for at least one parameter.
In another aspect, the invention provides an inter-process message catalog data structure comprising: an XML version element; a message catalog name element; a message catalog call name element; and at least one message parameter identifier element and at least one message parameter type element.
In another aspect, the invention provides a method for communicating a message between a first process and a second process, the method comprising: generating (marshalling) an encoded inter-process message data set, the inter-process message data set including an encoded message interface file and an encoded message implementation file; sending the encoded message from the sending first process to the destination second process, the sending first process not being required to wait for a response from the destination second process; receiving a response from the destination; processing the received response; and optionally extracting a state information.
In another aspect, the invention provides a method for sending an interprocess communication from a sending process to an external second process, the method comprising: generating an encoded inter-process message data set, the inter-process message data set including an encoded message interface file and an encoded message implementation file, the generation of the message includes marshalling of message elements into a message to be sent; and sending the encoded message from the sending first process to the destination second process, the sending first process not being required to wait for a response from the destination second process.
In yet another aspect, the invention provides a network device adapted for coupling to a network including a plurality of other network devices by a communications link, the network device comprising: a processor and random access memory coupled to the processor, the processor for executing computer program code instructions; a persistent non-volatile memory for storing configuration information and said computer program code instructions; a communications port for sending and receiving messages with other ones of said other network devices; and means for sending and receiving messages.
Exemplary Automated lnterprocess Communication Message Structure and Method
Aspects and features of this invention have been described in co-pending U.S. Provisional Patent Application No. 60/732,038 filed Oct. 27, 2005, entitled MOBILITY SYSTEM, including in the specification, drawings, and computer program code and pseudo-code that is included in one or more of the appendices of that application, and which application is hereby incorporated by reference in its entirety.
FIG. 1 depicts a diagram of components of an exemplary mobility system 100. The mobility system 100 includes a message database 102, a message converter 104, a library 106, operational systems code 108, and mobility systems software (MSS) 110. In the example of FIG. 1, the message database 102 may include message catalogs. In a non-limiting embodiment, XML language is used to define the message catalogs. In alternative embodiments, other languages or scripts may be used to define the message catalogs. Each message catalog may be a file or other data structure that includes one or more messages with none, one or more message parameters as may be appropriate to the message. In a non-limiting embodiment, each message catalog file includes a single message. However, in a non-limiting embodiment, a process can include as many message catalogs (such as message catalog files) as desired or required, though the message names in such embodiments should advantageously still only occupy a single name space. For example, a message named “message_foo” should not be defined in both a message catalog named “catalog_joo” and message catalog named “catalog_bar”. Exemplary Message Specification Using XML Document Type Definition (DTD)
Step 100 <!-dtd for message “aaa” -->
SEQUENCE) #REQUIRED >
In step 105, !ELEMENT PARAMETER defines the element PARAMETER as having one element “SUBPARAM*”.
definition 1.0//EN”“messages.dtd”>
Next (Step 112), the <CATALOG catalogname=“testcatalog”>refers back to the description in Table 1 (Steps 101 and 102) for the catalog with catalog name testcatalog.
Then (Step 113), <MESSAGE callname=“testone”>, specifies three parameters for the message testone: a first parameter having id=1 and type integer (<PARAMETER id=“1”type=“INT”/>), a second parameter having id=2 and having type string (<PARAMETER id=“2” type=“STR”/>), and a third parameter having id=3 and a type integer (<PARAMETER id=“3” type=“INT”/>), and ends with </MESSAGE></CATALOG>.
For ease of description, it will be understood that the use of the term C-file implies any implementation file having the properties described herein, and not merely to a C-language program file . In similar manner, reference to a header or h-file refers to any interface file having the properties described herein.
Exemplary Rule Set for Creating a Function
Prototype for the Interface File
Applying the first two rules to message named “testone” results in marshall_message_testone (see step 206 in Table 5) and unmarshall_message_testone (see step 212 in Table 5), and applying the second two rules to the catalog named “testcatalog” which results in register_mfunc_testcatalog (see step 205 in Table 5) and unmarshall_testcatalog (see step 218 in Table 5). More particularly, Step 206 of Table 5 (e.g., marshall_messagetestone) is the result of applying Rule 1 to Step 113 of Table 2 (e.g., <MESSAGE callname=“testone”>); Step 212 of Table 5 is the result of applying Rule 2 of Table 4 to Step 113 of Table 2; Step 218 of Table 5 is the result of applying Rule 3 of Table 4 to Step 113 of Table 2; and Step 205 of Table 5 is the result of applying Rule 4 of Table 4 to Step 112 of Table 2. It may be appreciated that other or alternative rules, or transformation tool, or compiler logic may be used to implement the desired message transformation, conversion, or compilation, and that the rule execution embodied in the examples are for purposes of illustration and not a limitation of the invention.
Exemplary Sample Automatically Generated Interface or Header File
or Data Structure
Step 205 extern int register_mfunc_testcatalog(char * name,
intfunc func);
Step 218 extern int unmarshall_testcatalog(char * buf, int size,
In the example of FIG. 2, the flowchart 200 continues at module 204 where the function is registered in a catalog. By way of example but not limitation, the function may be registered with a call to registration code: “register_mfunc_testcatalog(“testone”, testonefunc);”. See, e.g., the code “register_mfunc_testcatalog (char * name, inffunc func)” in Table 4 where in this example, char*name is “testone” and intfunc func is “testonefunc”. The registration code may include registering a callback function.
In the example of FIG. 2, the flowchart 200 continues at module 206 where a message is generated or created. By way of example but not limitation, the message may be generated or created with a call to marshalling code to create the message: marshall_message testone(buffer, 2048, 55, “test”, 28 );”. See for example, the C code for “marshall_message testone (char * buffer, int bufsize, int parameter 1, char * parameter_2, int parameter 3 )” in Table 4. Where the function may be registered at a first location or process, such as a first process (e.g., Process A), the message may be created at a second location or process, such as a at a second process (e.g., Process B). The marshalling code may include creating a message, encoding the message, deleting the message, and returning a result. Advantageously, the marshalling code does not require symmetry between the one process and another process.
Having described various embodiments of the inventive system, method, device, and computer program, attention is now directed to a highlighting of several non-limiting embodiments of the invention having particular combinations of features.
In another embodiment (4), the method of (1) provides that the input message includes XML language elements, the message compiler comprises an XML-language to C-language compiler, and the executable implementation language file comprises a C- language file.
US1481365 * 9 maart 1921 22 jan 1924 Hegel William Drinking device for poultry
US2034968 * 25 maart 1935 24 maart 1936 Bartlett Frederick E Poultry drinking fountain
US2366766 * 9 jan 1943 9 jan 1945 Charles Brodsky Poultry watering drip fountain
US2510252 * 4 aug 1945 6 juni 1950 Morton Pine W Drip valve
US2678630 * 14 nov 1952 18 mei 1954 Frederiksen Robert O Watering device for domestic house animals
US2877051 * 19 april 1957 10 maart 1959 Rork Recirculating fountain
US2878781 * 20 juli 1956 24 maart 1959 Otto Wingfield Raymond Bath installation, in particular for birds
US3228377 * 14 aug 1963 11 jan 1966 Vincent Grassano Automatic watering system for animals
US3505978 * 11 sept 1967 14 april 1970 Nilsen Norman P Poultry operated waterer with back flow check means
US3804064 * 16 nov 1972 16 april 1974 Aqua Sun Inc Amphibian terrarium for use with aquariums
US3868926 * 18 juli 1973 4 maart 1975 Olde Jarl Rune Automatic water dispenser
US4022159 * 17 nov 1975 10 mei 1977 Matthew Salvia Shipping cage for feeding animals water from disposable bags
US4248177 * 9 mei 1979 3 feb 1981 Ritchie Industries, Inc. Animal waterer with recirculating water system
US4386582 * 4 mei 1981 7 juni 1983 Adsit Gordon H Liquid storage container having animal feeding means
US4573433 * 3 aug 1984 4 maart 1986 Thompson Earl C Side activated animal watering valve
US4584966 * 1 april 1985 29 april 1986 Moore James G Livestock watering system
US4747538 * 10 maart 1986 31 mei 1988 Delta Tech, Inc. Water wall
US4807565 * 6 aug 1987 28 feb 1989 Hawthorne Mark A Gravity filter system aquarium
US4836142 * 8 dec 1986 6 juni 1989 Duback Clyde L Aquarium and waterfall system
US4924812 * 1 feb 1989 15 mei 1990 Bernays Jr Robert L Water bowl fountain
US5207182 * 29 juni 1992 4 mei 1993 Lorenzana Moises B Animal watering apparatus
US5501178 * 19 juli 1995 26 maart 1996 Kemp; Kay G. Pet watering apparatus with flowing water to simulate a mountain creek
US6055934 * 27 aug 1998 2 mei 2000 Burns; Mary V. Animal waterer
US20050020929 * 30 april 2002 27 jan 2005 Chase Medical, Lp System and method for facilitating cardiac intervention
US7908607 30 aug 2007 15 maart 2011 Microsoft Corporation Efficient marshalling between soap and business-process messages
US8707333 * 8 juni 2007 22 april 2014 Emc Corporation Message argument descriptors
US8732724 8 juni 2007 20 mei 2014 Emc Corporation Delayed rendering of messages
US8863150 * 22 feb 2012 14 okt 2014 Roundarch Corporation Device connectivity framework
US8954456 * 26 maart 2014 10 feb 2015 Measured Progress, Inc. Translation and transcription content conversion
US9003054 * 25 okt 2007 7 april 2015 Microsoft Technology Licensing, Llc Compressing null columns in rows of the tabular data stream protocol
US20090064175 * 30 aug 2007 5 maart 2009 Microsoft Corporation Efficient marshalling between soap and business-process messages
US20090112889 * 25 okt 2007 30 april 2009 Microsoft Corporation Compressing null columns in rows of the tabular data stream protocol
US20130219411 * 22 feb 2012 22 aug 2013 Roundarch Corporation Device Connectivity Framework
Classificatie in de VS 719/313
Internationale classificatie G06F9/46
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ZELDIN, PAUL E.;WILLIAMS, JOSEPH P.;REEL/FRAME:018760/0211;SIGNING DATES FROM 20061227 TO 20070103