US20030135547A1 - Extensible modular communication executive with active message queue and intelligent message pre-validation - Google Patents

Extensible modular communication executive with active message queue and intelligent message pre-validation Download PDF

Info

Publication number
US20030135547A1
US20030135547A1 US10/188,853 US18885302A US2003135547A1 US 20030135547 A1 US20030135547 A1 US 20030135547A1 US 18885302 A US18885302 A US 18885302A US 2003135547 A1 US2003135547 A1 US 2003135547A1
Authority
US
United States
Prior art keywords
message
component
buffer
delegator
electronic device
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.)
Abandoned
Application number
US10/188,853
Inventor
J. Kent
David Toot
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.)
Cognis Corp
Original Assignee
Cognis 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 Cognis Corp filed Critical Cognis Corp
Priority to US10/188,853 priority Critical patent/US20030135547A1/en
Priority to PCT/US2002/023247 priority patent/WO2003017111A1/en
Priority to PCT/US2002/022966 priority patent/WO2003010624A2/en
Priority to BRPI0211369-4A priority patent/BR0211369A/en
Priority to AU2002318275A priority patent/AU2002318275B2/en
Priority to EP02748208.2A priority patent/EP1525534B1/en
Priority to ARP020102737A priority patent/AR036238A1/en
Priority to TW91116255A priority patent/TW576986B/en
Assigned to COGNIS CORPORATION reassignment COGNIS CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KENT, J. THOMAS, TOOT, DAVID A.
Publication of US20030135547A1 publication Critical patent/US20030135547A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/17Systems in which incident light is modified in accordance with the properties of the material investigated
    • G01N21/25Colour; Spectral properties, i.e. comparison of effect of material on the light at two or more different wavelengths or wavelength bands
    • G01N21/27Colour; Spectral properties, i.e. comparison of effect of material on the light at two or more different wavelengths or wavelength bands using photo-electric detection ; circuits for computing concentration
    • G01N21/274Calibration, base line adjustment, drift correction
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/17Systems in which incident light is modified in accordance with the properties of the material investigated
    • G01N21/25Colour; Spectral properties, i.e. comparison of effect of material on the light at two or more different wavelengths or wavelength bands
    • G01N21/31Investigating relative effect of material at wavelengths characteristic of specific elements or molecules, e.g. atomic absorption spectrometry
    • G01N21/35Investigating relative effect of material at wavelengths characteristic of specific elements or molecules, e.g. atomic absorption spectrometry using infrared light
    • G01N21/359Investigating relative effect of material at wavelengths characteristic of specific elements or molecules, e.g. atomic absorption spectrometry using infrared light using near infrared light
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N35/00584Control arrangements for automatic analysers
    • G01N35/00594Quality control, including calibration or testing of components of the analyser
    • G01N35/00712Automatic status testing, e.g. at start-up or periodic
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N35/00584Control arrangements for automatic analysers
    • G01N35/00722Communications; Identification
    • G01N35/00871Communications between instruments or with remote terminals
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N35/00584Control arrangements for automatic analysers
    • G01N35/00722Communications; Identification
    • G01N35/00871Communications between instruments or with remote terminals
    • G01N2035/00881Communications between instruments or with remote terminals network configurations
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N2201/00Features of devices classified in G01N21/00
    • G01N2201/12Circuits of general importance; Signal processing
    • G01N2201/127Calibration; base line adjustment; drift compensation
    • G01N2201/12746Calibration values determination
    • G01N2201/12753Calibration values determination and storage
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N2201/00Features of devices classified in G01N21/00
    • G01N2201/12Circuits of general importance; Signal processing
    • G01N2201/127Calibration; base line adjustment; drift compensation
    • G01N2201/12792Compensating own radiation in apparatus

Definitions

  • the present invention relates to managing communications between sending and receiving electronic devices, and in particular, to message-based communications for interfacing independent electronic devices.
  • Data communication is an important aspect of any data processing system.
  • integrated circuit chips such as microprocessors
  • communication of data between various functional units is required when performing processing tasks.
  • microprocessors require communication with external devices, e.g., to receive input from a user or display input from a user, as well as to store or retrieve from a memory or storage device.
  • Computers and other electronic devices also have a need to communicate with other such devices, e.g., to distribute processing tasks among multiple devices or to exchange information managed by one device with another device that needs to utilize the information.
  • control devices such as machines, valves, actuators, etc. are typically managed by a controller, which receives feedback from one or more sensing devices that monitor the progress of a manufacturing operation.
  • control devices such as control valves that add ingredients to a chemical formulation or that transfer ingredients or finished products to and from storage tanks, environmental controls that control reaction temperatures, ambient pressures, and the like, etc.
  • sensing devices such as temperature gauges, pressure gauges, conductivity sensors, etc.
  • information must be communicated from sensing devices to the controller, and control signals must be output to the various control devices to manage the process according to desired process parameters.
  • data communication is required to communicate input data, output control signals, output status information, etc.
  • data communication must be as near to “real time” as possible, particularly where safety or product quality can be affected by responsiveness.
  • Some manufacturing control systems are highly centralized, whereby sensing devices gather data and forward the data to a central controller that processes the data and controls one or more control devices accordingly.
  • sensing devices gather data and forward the data to a central controller that processes the data and controls one or more control devices accordingly.
  • a more decentralized approach is often superior in many situations, particularly where sensing and control devices may be physically dispersed over a wide geographical area.
  • controllers are interfaced together, with individual controllers utilized to interface with selected subsets of sensing and/or control devices in the system.
  • Another aspect of a decentralized system is the ability to incorporate a wide variety of devices into a single system, often using devices that are manufactured by different entities and that may not be specifically adapted to work with other types of devices also used in the system.
  • devices are specifically configured to communicate information according to a particular communications protocol, which may include a specific message format, and even a particular type of electrical connector and/or wiring. Should different devices within a particular system not subscribe to the same communications protocol, often custom hardware and/or software is required to appropriately interface the devices.
  • one type of manufacturing control system utilizes a central database that receives input data from one or more sensing devices and stores the states of the input data in the database.
  • Software scripts run on the database, analyzing the current input data and generating control signals that are output to one or more manufacturing control devices based upon set points established for various input data combinations.
  • IR and NIR spectroscopy have been used in laboratory environments to perform quantitative analysis of chemical compositions. Spectroscopy provides the advantage that material samples can be analyzed relatively quickly and often without any preparation of the samples or any time-consuming wet chemistry. Many IR and NIR spectrum analyzers are principally designed to be used in laboratory environments, and traditionally, these types of laboratory instruments have not been particularly well-suited for use in manufacturing control systems.
  • IR and NIR spectrum analyzers also have other potential uses that would benefit from enhanced communication abilities.
  • a spectrum analyzer typically must incorporate some form of analysis engine to process the spectral information generated by an NIR or IR sensor.
  • a spectrum analyzer utilizes chemometrics or other multivariate regression methods to derive quantitative information about a particular sample from the sensor data. It has been found that a large number of outside factors, including various measurement conditions such as environmental parameters, instrument parameters and analysis techniques, as well as various sample conditions based upon the properties of the composition when the sensor data is obtained, can affect quantitative analysis results. For this reason, analysis is often a complex mathematical process requiring a relatively high performance computing system to process sensor data in a reliable and efficient manner.
  • Queues are often associated with queuing “strategies,” which essentially define how and by what means messages are received, stored, processed and ultimately responded to. These queuing strategies may ultimately affect response speed, processing speed, and other determining performance factors in both sending and receiving devices. As a result, when different devices are integrated into a message-based system, the queuing strategy used to interface those devices often must be specifically tailored to adequately handle the performance requirements of such devices. Where different devices have widely divergent performance characteristics, integration of the devices through a common queuing strategy can be difficult.
  • business rules that define the accepted format of messages, as well as what messages and message types are appropriate for a particular system.
  • business rules are implemented by whatever computer program handles a received message, e.g., by performing error checking and the like while handling the message.
  • the business rules are often highly application-specific.
  • the business rules are often applied only after a message is enqueued on a queue, so that unacceptable messages will still typically be placed on a queue before any problems are detected.
  • the invention addresses these and other problems associated with the prior art by providing an apparatus, program product and method that incorporate an extensible modular communication executive for use in integrating one or more electronic devices with one another, often with substantially reduced customization overhead as compared to conventional architectures.
  • a modular architecture is used to facilitate message-based communications in such a manner that queuing strategies, business rules and the like may be accommodated within a message-based environment in a reliable and efficient manner.
  • application-specific software components can be assembled together to readily adapt a generic message-based system for use in a specific application.
  • intelligent pre-validation of messages may be implemented in such a modular architecture to permit a business rule-independent messaging infrastructure to be readily adapted to support specific business rule requirements for a particular application.
  • an active message queue architecture is utilized within a modular environment to facilitate the processing of messages sent by a sending electronic device to a receiving electronic device.
  • the architecture includes a message buffer that is configured to receive messages, with each message associated with a message type among a plurality of message types.
  • a plurality of software-based processor components are utilized to perform tasks associated with messages received by the message buffer, and at least one processor component is configured to initiate an action on a receiving electronic device.
  • a plurality of software-based controller components are also utilized, with each associated with a message type among the plurality of message types, and each configured to handle a message associated with such associated message type by dynamically instantiating at least a subset of the plurality of processor components.
  • the architecture also utilizes at least one delegator component that is associated with at least one message type among the plurality of message types and is configured to monitor the message buffer for messages associated with such associated message type.
  • the delegator component dynamically executes a controller component associated with an associated message type in response to detecting an addition of a message associated with such associated message type to the message buffer.
  • a message buffer is integrated with a buffer services component and a plurality of message validation components, where each message validation component is associated with at least one of a message type and a receiving electronic device, with each message validation component configured to validate a message sent to the message buffer by a sending electronic device prior to addition of the message to the message buffer, and with each message validation component further configured to return a result that indicates whether the message should be accepted by the message buffer.
  • the buffer services component processes a first message sent to the message buffer by invoking a message validation component associated with the first message and selectively adding the first message to the message buffer based upon the result returned by the invoked message validation component.
  • FIG. 1 is a block diagram of a communication system incorporating a communication executive consistent with the invention.
  • FIG. 2 is a block diagram of an exemplary hardware environment for the communication executive of FIG. 1.
  • FIG. 3 is a layer diagram of the principal software components in the communication executive of FIG. 1.
  • FIG. 4 is a flowchart illustrating the program flow of a message received routine executed by the COM service of the communication executive of FIG. 1.
  • FIG. 5 is a flowchart illustrating the program flow of a routine executed by a delegator component in the communication executive of FIG. 1.
  • FIG. 6 is a flowchart illustrating the program flow of a routine executed by a controller component in the communication executive of FIG. 1.
  • FIG. 7 is a flowchart illustrating the program flow of a routine executed by a processor component in the communication executive of FIG. 1.
  • FIG. 8 is a sequence diagram illustrating various possible execution sequences of processor components in the communication executive of FIG. 1.
  • FIG. 9 is a flowchart illustrating the program flow of a routine executed by a message validation component in the communication executive of FIG. 1.
  • FIG. 10 is an object diagram illustrating the principal data structures utilized in connection with managing communications with the communication executive of FIG. 1.
  • FIG. 11 is a block diagram of one exemplary application of the communication executive of FIG. 1, for use in interfacing remote sensors with a central processor.
  • FIG. 12 is a block diagram of another exemplary application of the communication executive of FIG. 1, for use in a manufacturing control system.
  • FIG. 13 is a block diagram of another exemplary application of the communication executive of FIG. 1, for use in an inventory management system.
  • the hereinafter-described embodiments of the invention utilize a unique communication executive to provide a flexible, extensible and modular message-based interface between electronic devices, often in a manner that permits independent and disparate electronic devices, which may not have been specifically designed to communicate with one another, to communicate in a near real-time manner.
  • the modular and extensible architecture of the interface further often permits substantial code reuse to be employed when an interface is being adapted for use in a particular environment, thus reducing development time and increasing interface reliability.
  • FIG. 1 illustrates an exemplary communication system 10 incorporating a communication executive 12 consistent with the invention.
  • the communication executive 12 is utilized to interface sending electronic devices with receiving electronic devices via a message-based protocol.
  • a sending electronic device in this context may refer to any electronic device capable of sending or otherwise outputting information, while a receiving electronic device may refer to any electronic device capable of receiving or otherwise inputting information.
  • an electronic device may operate both as a sending electronic device and a receiving electronic device, and further, that a communication executive may be implemented within the same physical hardware as either or both of a sending and receiving electronic device (i.e., a communication executive may be used to manage communications within a single electronic device, and even within a single integrated circuit within an electronic device).
  • FIG. 1 One useful application of a communication executive consistent with the invention, which is illustrated in FIG. 1, is that of interfacing various data processing devices 14 (e.g., data collection devices, data display devices, data recording devices, controller devices, etc.) with various data resources 16 (e.g., databases, data analysis tools, etc.). Moreover, as represented by the double-ended arrows interconnecting communication executive 12 , devices 14 and resources 16 , it should be appreciated that any device or resource may function from time to time as a sending electronic device, a receiving electronic device, or both.
  • data processing devices 14 e.g., data collection devices, data display devices, data recording devices, controller devices, etc.
  • data resources 16 e.g., databases, data analysis tools, etc.
  • Communication executive 12 is typically interfaced with devices 14 and resources 16 via one or more network interconnections 18 , each of which may represent practically any type of networked interconnection, including but not limited to local-area, wide-area, wireless, public networks (e.g., the Internet), and combinations thereof, as well as point-to-point serial or parallel interconnects, buses, intra-chip interconnects, and embedded interconnects. Moreover, it will be appreciated that a wide variety of additional computers and other electronic devices may be networked through the network interconnections 18 as well.
  • Communication executive 12 is typically implemented in software that resides and executes upon a computer or other data processing system. As shown in FIG. 2, for example, communication executive 12 may reside on a computer 20 , specifically within a memory 22 thereof, and be executed by one or more processors 24 interfaced with memory 22 .
  • Processor 24 may represent one or more central processing units (e.g., microprocessors), and memory 22 may represent the random access memory (RAM) devices comprising the main storage of computer 20 , as well as any supplemental levels of memory, e.g., cache memories, non-volatile or backup memories (e.g., programmable or flash memories), read-only memories, etc.
  • RAM random access memory
  • memory 22 may be considered to include memory storage physically located elsewhere in the computer 20 , e.g., any cache memory in any processor 24 , as well as any storage capacity used as a virtual memory, e.g., as stored on a mass storage device or on another computer coupled to computer 20 via a network.
  • Computer 20 also typically receives a number of inputs and outputs for communicating information externally.
  • computer 20 may include a user interface 26 , including various user input devices (e.g., a keyboard, a mouse, a trackball, a joystick, a touchpad, and/or a microphone, among others) as well as various display devices (e.g., a CRT monitor, an LCD display panel, and/or a speaker, among others).
  • user interface 26 may alternatively be implemented on a terminal or workstation interfaced with the computer, as is well known in the art.
  • computer 20 also typically includes one or more mass storage devices 28 , e.g., a floppy or other removable disk drive, a hard disk drive, a direct access storage device (DASD), an optical drive (e.g., a CD drive, a DVD drive, etc.), and/or a tape drive, among others.
  • mass storage devices 28 e.g., a floppy or other removable disk drive, a hard disk drive, a direct access storage device (DASD), an optical drive (e.g., a CD drive, a DVD drive, etc.), and/or a tape drive, among others.
  • computer 20 may include an interface 30 with one or more ports to permit the communication of information between the sending and receiving devices coupled thereto, wherein each interface is dependent upon the particular network interconnection to which the computer is coupled to a particular sending or receiving device.
  • computer 20 typically includes suitable analog and/or digital interfaces between processor 24 and each of components 22 , 26 , 28 and 30 as is well known in the art.
  • Computer 20 generally operates under the control of an operating system (not shown separately), and executes or otherwise relies upon various computer software applications, components, programs, objects, modules, data structures, etc. (e.g., communication executive 12 , among others). Moreover, various applications, components, programs, objects, modules, etc. may also execute on one or more processors in another computer in communication with computer 20 , e.g., in a distributed or client-server computing environment, whereby the processing required to implement the functions of a computer program may be allocated to multiple computers.
  • an operating system not shown separately
  • various applications, components, programs, objects, modules, etc. may also execute on one or more processors in another computer in communication with computer 20 , e.g., in a distributed or client-server computing environment, whereby the processing required to implement the functions of a computer program may be allocated to multiple computers.
  • routines executed to implement the embodiments of the invention whether implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions will be referred to herein as “computer programs”, or simply “programs”.
  • the computer programs typically comprise one or more instructions that are resident at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause that computer to perform the steps necessary to execute steps or elements embodying the various aspects of the invention.
  • signal bearing media include but are not limited to recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, magnetic tape, optical disks (e.g., CD-ROM's, DVD's, etc.), among others, and transmission type media such as digital and analog communication links.
  • FIGS. 1 - 2 are not intended to limit the present invention. Indeed, those skilled in the art will recognize that other alternative hardware and/or software environments may be used without departing from the scope of the invention.
  • One implementation of communication executive 12 of FIGS. 1 - 2 is that of interfacing various electronic devices coupled over a communication network such as the Internet, a Local-Area Network, a Wide-Area Network, and combinations thereof, using a conventional network-based protocol such as TCP/IP. It is this specific implementation that will be focused upon hereinafter, it being understood that the present invention is not limited solely for use in such an implementation.
  • FIG. 3 illustrates the principal software components in communication executive 12 .
  • Several layers of software are defined at 40 - 54 , and are used to provide a flexible, extensible and modular communications service for linking electronic devices to one another in a structured manner.
  • External device layer 40 represents the source and destination devices that utilize the communication executive. It will be appreciated that each external device will typically include its own queuing strategy and may require various business rules to control the messages sent by or received by such devices.
  • Network services layer 42 represents the network protocol services required to interface the communication executive with the particular type of networks over which the external devices are accessible.
  • COM service layer 44 which represents a buffer services component, provides an external interface to a message repository or database, and in the illustrated embodiment, is implemented as a Visual Basic COM object that acts as the liaison between the message repository and any system that wishes to enter tasks into or retrieve information from the repository.
  • the COM service layer is called by the network services layer 42 , or other non-network based systems directly, e.g., via DCOM calls, in a manner well known in the art.
  • the network and COM service layers 42 , 44 may require customization for use in different environments.
  • the network services may require differing functionality.
  • the network services may function as a listening device, capable of receiving TCP/IP packets and forwarding packets in a predetermined format to the communication executive as required.
  • the COM service into the message repository may vary in other applications.
  • the COM service is instantiated whenever data is received, and the COM service is configured to dynamically generate requests from received data. Given the variable types of devices that may be coupled to a communication executive, however, the COM service will differ for various applications.
  • MV components 46 may also be provided in communication executive 12 .
  • Each MV component performs pre-validation of received messages for particular types of messages and/or for messages directed toward particular receivers.
  • the MV components typically implement desired business rules, and are used to validate a message using artificial intelligent techniques before the message is added to a message repository. In this manner high-level message processing may occur prior to the message being accepted onto a message repository. In other embodiments, however, MV components may not be used.
  • MV components are layered on top of a message repository, also referred to herein as a cube 48 , which represents the database or buffer within which messages are stored.
  • message repository 48 forms an active queue that actively manages messages placed on the buffer by the COM service.
  • Each delegator 50 functions as a monitor task that actively monitors for messages of a particular type.
  • a delegator in response to detecting a new message for which it is responsible, dynamically spawns (or otherwise executes) one or more controller components 52 to handle such messages.
  • controller components 52 to handle such messages.
  • a delegator will call a controller for each message type for which the delegator is responsible.
  • each delegator is implemented as a Visual Basic program such as an ActiveX executable, although other software implementations may be used in the alternative.
  • each controller component 52 is dynamically instantiated or spawned by a delegator to handle a particular message type.
  • controller components may remain resident at all times, and as a result, may be executed by a delegator on an as-needed basis. Instantiation or spawning in addition to execution is therefore optional in some embodiments.
  • each controller represents a logical layer split into two physical layers.
  • a controller is capable of handling complex chain processing, with a CBO layer implemented as a Visual Basic program, e.g., an ActiveX executable, that calls an SBO controller to process the requests from the cube for a particular message type.
  • the SBO layer may be implemented as a Visual Basic program such as a COM+ ActiveX DLL that calls one or more processor components 54 dedicated to handling a specific message type to process the relevant messages in the message repository.
  • a delegator may be allowed to process requests of different types without having to wait for any of the requests to complete.
  • other software implementations may be used for a controller consistent with the invention.
  • Each processor component 54 is implemented in the illustrated embodiment as a Visual Basic COM object that contains the business logic for a particular system using the communication executive as its queuing engine.
  • the processor components are typically resident outside of the communication executive, and are used to interact directly with destination devices to actually process messages in the manner appropriate for a particular device.
  • the processor components read messages from the message repository and interface with a destination device either directly or by adding new out-bound messages to the message repository via the CBO layer of the associated controller.
  • a processor component can perform any number of tasks associated with a message, including in many instances initiating some action on a destination device.
  • FIG. 3 also illustrates an optional system analyzer 56 , which may represent one or more self-diagnosis routines that constantly monitor the health of the communication executive. Typically, when an analyzer detects a problem, an entry may be logged in, and depending upon the severity of the error, a message may be sent to an administrator. In this regard, the system analyzer functions in a similar manner to other network monitoring products.
  • a device wishing to send a message via the communication executive to another device in the system will initiate a function call to the COM service associated with that device, which, if the message is acceptable, will place the message on the message repository. Then, a delegator associated with the particular type of message will dynamically spawn one or more controllers to handle the message. The appropriate controller will in turn call one or more processor components to actively handle the task. The result of handling a message may also incorporate sending a response message or initiating another message for another device coupled within the system. The details of this overall program flow are illustrated in greater detail in FIGS. 4 - 9 below.
  • FIG. 4 illustrates a message received routine 60 , executed for example by COM service 44 whenever a message needs to be placed on the message repository.
  • Routine 60 begins in block 62 by determining whether a message validation component needs to be called for the message.
  • a message validation component typically message validation components, if used, are associated with particular message types, and are used to pre-validate a message before the message is placed on the message repository, or cube. Therefore, if such a component exists for the particular message type with which the message is associated, block 62 passes control to block 64 to call the appropriate message validation component.
  • the message validation component typically has the ability to either accept, reject or modify an incoming message.
  • block 62 passes control directly to block 68 to enqueue the message onto the cube.
  • FIG. 5 illustrates a delegator routine 70 executed by one of the delegator components resident in the system.
  • a delegator component may be implemented as a Visual Basic ActiveX executable program, among other implementations.
  • a delegator will first connect to the message repository and create a list of available delegator components, as shown in block 72 . Once the initial connections have been established, the delegator is ready to receive events, and to monitor for new messages placed on the cube.
  • the delegator waits on a wait block 74 , for various types of events that may be directed to the delegator.
  • the delegator also periodically monitors the cube for the receipt of a new message.
  • events may be handled in a different thread from message monitoring.
  • a delegator may be disabled or enabled in response to suitable events, as shown in blocks 76 and 78 .
  • it may be desirable to shut down a delegator, as shown in block 80 .
  • block 74 also monitors for the placement of a new message on the cube.
  • block 82 is called to determine whether the delegator is currently enabled. If not, the message is ignored, and control returns to block 74 . If the delegator is enabled, however, block 82 passes control to block 84 to retrieve the message data from the cube.
  • Block 86 determines whether any other delegator is currently handling the message, e.g., by determining whether a flag or indicator set in the message record indicates that the message is associated with another delegator. If so, no further processing by the delegator occurs, and control returns to block 74 . Otherwise, control passes to block 88 to associate the message with a delegator by changing a flag or other indicator in the message record.
  • block 90 determines what controller is required for processing the message, typically based upon the type of message as found in the message record, as well as a known mapping between controllers and messages defined within the system.
  • Block 92 then dynamically instantiates, or spawns, such controller, which also incorporates execution of the spawned controller. Control then returns to block 74 to process other events and messages.
  • a delegator component may show an administrator the number of times a delegator has searched the cube for messages, and the number of times the delegator has completed the search.
  • a cycle time representing the period during which the delegator periodically checks the cube, may also be configurable and displayed to a user.
  • Status information may also be displayed illustrating whether the delegator is currently enabled or disabled, as well as indicating when messages are received and when controllers are spawned in response to reception of such messages.
  • a status window displayed to an administrator may also include various user interface controls such as START and STOP buttons that selectively enable or disable the delegator, as well as an END button that shuts down the delegator in the manner described above.
  • FIG. 6 next illustrates a controller routine 100 executed by a controller component consistent with the invention.
  • the controller component is typically divided into two physical layers, a CBO controller layer and an SBO controller layer, with the CBO controller layer configured as a single-use (class parameter) ActiveX executable, and the SBO controller layer being implemented as a COM+ ActiveX DLL Visual Basic program.
  • the CBO controller layer includes a hidden form with a timer control that is initially inactive when instantiated by a delegator component.
  • a method e.g., a start controller method, may be exposed by the controller, and include a controller ID parameter, delegator ID parameter, a delegator pointer and error information.
  • the method when called by a delegator, stores the parameters in private variables, loads the hidden form, and enables the time control on the form. Then, the method ends and returns control to the calling delegator, which frees the delegator to process messages of a different system ID/message type, while the controller proceeds with processing of messages.
  • the timer control may be set to fire some delay after being enabled, e.g., one second. Once the time control fires, an instance of an SBO controller is created and messages are processed as described below. Once the process messages method has completed, a DONE method exposed by the delegator may be called to return error and status information to the delegator.
  • a controller routine 100 generally begins in block 102 by connecting to the message repository and obtaining a list of messages that need to be processed.
  • block 104 obtains a list of processors that are to be launched, including the desired order.
  • Block 106 then initiates a FOR loop to process each of the processors necessary to be launched. For each such processor, control passes to block 108 to determine whether the processors needs a transaction.
  • processors may be grouped into transactions, with transactional groups defined within the message repository. Processors may be defined within the same transactional group based upon processing order and whether or not each processor is batch or single record. By being placed in a transactional group, multiple processors can apply multiple changes to a database or multiple databases and have the changes committed or rolled back as a group.
  • block 108 simply passes control to block 110 to launch the appropriate processor, e.g., by instantiating the processor or making a function call to the processor as appropriate. Control then passes to block 112 to determine whether the last processor has been reached, whereby control returns to block 106 to process additional processors as appropriate.
  • block 108 passes control to block 114 to determine whether the message is part of a previous transaction. If not, control passes to block 116 to begin the transaction, and then to block 118 to launch the appropriate processor. Otherwise, if the message is part of a previous transaction, block 114 passes control directly to block 118 . Once the appropriate processor has been launched, control passes to block 120 to determine whether the next processor is part of the same transaction. If not, control passes to block 122 to commit the transaction. Regardless of whether the next processor is part of the same transaction, control then passes to block 112 to determine whether the last processor has been launched. If not, control returns to block 106 . Otherwise, control passes to block 124 to commit any open transactions, and then to block 126 to update the statistics associated with the message. Upon completion of block 126 , routine 100 is complete.
  • the determination of what processors are to be launched for a particular type of message is made by accessing a database such as the message repository, within which such information is stored.
  • the settings may include information as to which processors to call and in what order, as well as whether each of these processor is a batch or single record processor.
  • the information is stored in connection with data records that map specific processors to specific controllers, e.g,. in the tblControllerProcessors table 196 discussed below in connection with FIG. 10.
  • each processor has one method, e.g., an execute method, that is called by a controller to invoke the functionality in the processor.
  • the execute method may include a record ID field, as well as option delegator ID, system ID, message type, text data, binary data, error code data, etc., with the record ID used to identify the function call as either a single record call, where the ID of the particular message record is passed, or a batch-type call, where a unique token, e.g., “ ⁇ 1” is used in the record ID field.
  • the error information and text and binary data may be provided to allow a controller to pass data from a previously-called processor to a next processor.
  • an execute method may be configured to return a status to the controller, indicating whether the execution was successful. If an unsuccessful execution occurs, the error information may be processed by the controller as appropriate, i.e., by rolling back the transaction, aborting processing of the message, and/or updating the message status. It may also be desirable to keep track in the controller of the time it takes to process a message, and use this information to store statistical information regarding the operation of the controller. The time to process may also be utilized to trigger a watchdog timer should a processor not process a message in an appropriate period of time.
  • FIG. 7 illustrates a processor routine 130 executed by generic processor component consistent with the invention.
  • routine 130 represents the execute method exposed by the respective processor.
  • block 132 is called to read the message record for the relevant data, and then to block 134 to perform processing on the message as required.
  • Block 136 determines whether the processor is being executed in batch mode (i.e., where a batch mode is indicated in the method call), and if so, control passes to block 138 to determine whether the last message has been processed.
  • block 132 when in batch mode, initially reads the first message matching the particular message type handled by the associated controller. Otherwise, in single record mode, the message record identified in the method call is read. Subsequent loops through block 132 when in batch mode will call additional unprocessed messages maintained in the message repository.
  • block 136 passes control to block 140 to return appropriate success or failure information to the calling controller, as well as provide state information (if applicable) to the controller. Also, as shown in block 138 , if the last message in a batch mode has been processed, block 138 passes control to block 140 .
  • routine 130 terminates.
  • a processor may be configured to send a message to its associated external device to perform tasks on that device, and in a format that is understood by the device. Moreover, a processor may respond to a particular message by returning status information or requested information, e.g., by modifying the message record as appropriate. A processor may also be configured to generate new messages, e.g., response messages, which are placed on the message repository and processed in a like manner. Other functions, e.g., updating the database, sending an email, posting data to a web page, interfacing with another system, or practically any other function capable of being performed by a computer, may also be performed by a processor consistent with the invention.
  • FIG. 8 illustrates an exemplary controller 150 and various function calls to a number of processors 152 in response to the reception of a particular type of message.
  • processors A, B and C a controller may be capable of spawning multiple processors that execute concurrently in different threads.
  • controller 150 may also spawn processors sequentially within the same thread.
  • processors E and F not only can a controller spawn a processor, but one processor may spawn one or more additional processors that are executed in the same or different threads, and which may execute sequentially or concurrently in those different threads.
  • the modular architecture by the herein-described communication executive provides substantial flexibility and maximizes the ability to reuse code from generic or pre-existing environments.
  • FIG. 9 next illustrates an exemplary message validation component routine 160 executed by a message validation component consistent with the invention.
  • a message validation component may be dynamically instantiated in response to reception of a message of a particular type and/or destined for a particular receiving device, and preferably before the message is placed on the message repository.
  • the purpose of a message validation component is to perform high-level message validation prior to placement of the message on the repository, so as to minimize the amount of custom high-level processing that must occur via the controllers and processors, and thus limit the degree of customization required in such components.
  • Routine 160 begins in block 162 by reading the message data passed from the COM service.
  • Block 164 analyzes the message data according to business rules that are encoded into the validation component.
  • the message validation component operates generally as a plug-in associated with a message type and/or a particular message receiver, and is configured to analyze, validate, modify or perform whatever tasks are necessary to properly format the message for processing by the communication executive.
  • a message validation component has the capability of accepting a message, modifying a message, or rejecting a message and returning any errors to the calling service.
  • An advantage of message validation is the ability to provide real-time validation of messages so a requester does not need to check back to see if the message was accepted or rejected.
  • Data analysis in block 164 generates a result that indicates whether the message should be accepted, rejected or accepted with changes. As shown in block 166 , if the message is to be rejected, control passes to block 168 to return “FALSE” to the COM service, indicating that the message has been rejected. Routine 160 is then complete.
  • FIG. 10 generally illustrates one exemplary implementation of the data structures maintained within a message repository 180 consistent with the invention.
  • Messages are maintained in message record table 182.
  • Binary and text data are respectively associated with a particular message using the tables shown at 184 and 186, respectively.
  • Message records are also associated with particular “systems” via a table 188 that maintains the valid system ID's and message types.
  • Controller records are stored in a controller table 190 with a mapping record 192 linking a controller to a delegator defined in a delegator record 194 .
  • each controller is linked to processors via a table 196, with processors defined by processor records in table 198.
  • Statistical data is maintained in a statistics table 200, with error data maintained in an error table 202, linked to binary and text data in tables 204 and 206.
  • TABLE 182 is the main queue (the Cube) for all tasks: Field Name Field Type Description MsgID Auto (Number) The ID generated for the Cube record. FromID VarChar2 The system ID that generated the message. ToID VarChar2 The target system ID for the message. MsgType VarChar2 The target message type. DateTime Date The date and time stamp when the record was entered into the Cube. Status Number The current status of the message. Valid values are: 0 (New), 1 (In Progress), 2 (Complete), or 3 (Error). Misc1 VarChar2 Free form text field. Contains any data necessary for the message to be processed. Misc2 VarChar2 Free form text field.
  • Misc3 VarChar2 Free form text field Contains any data necessary for the message to be processed.
  • Misc4 VarChar2 Free form text field Contains any data necessary for the message to be processed.
  • Misc5 VarChar2 Free form text field Contains any data necessary for the message to be processed.
  • DelegatorID Number The ID of the Delegator that is currently working on this task. Priority Number Priority of this task.
  • ErrorCode Number The ID of the error code (if the task failed).
  • ErrorMessage VarChar2 The error message generated (if the task failed).
  • tblCube Table TABLE 194 contains all the Delegators and their settings: Field Name Field Type Description DelegatorID Auto ID of the Delegator. (Number) DelegatorDescription VarChar2 Description of the Delegator. CycleTime Number Number of seconds this Delegator will wait before looking into the Cube for records for each system. OkToRun Number If set to Yes, then this Delegator has not been shut down.
  • tblDelegators TABLE 190 contains all the Controllers and their settings: Field Name Field Type Description ControllerID Auto (Number) ID of the Controller. SystemID VarChar2 The System ID that this Controller is responsible for. MsgType VarChar2 The type of message that this Controller is responsible for.
  • tblController TABLE 198 contains all the Processors and their settings: Field Name Field Type Description ProcessorID Auto (Number) ID of the Processor. ProcessorClass VarChar2 String used in the VB program to instantiate the COM object (i.e. ‘prjProcessor1.clsMain’). BatchProcessing Number This indicates whether the Controller will call the Processor for each message (single record), or once for all messages (batch). IsTransactional Number If Yes, transactional processes have been implemented and the system should check Object Context values when processing.
  • tblDelegatorControllers TABLE 196 links a Controller with its Processor: Field Name Field Type Description ControllerID Number The ID of the Controller that will call this Processor. ProcessorID Number The ID of the Processor that this Controller will call. ProcessOrder Number The order in which this Controller will call this Processor.
  • tblControllerProcessors TABLE 202 is updated with any errors that occur during the processing of a message: Field Name Field Type Description ID Auto (Number) ID of the error record. QueueID Number ID of the task from the Cube. From ID VarChar2 The system ID that generated the task. ToID VarChar2 The system ID that received the task. MsgType VarChar2 The message type. ErrorCode Number The error code generated during the processing of this message. ErrorMessage VarChar2 The error message generated during the processing of this message. DateTimeEntered Date The Date/Time stamp when the message was entered. DateTimeError Date The Date/Time stamp when the error occurred. Misc1 VarChar2 Value of the corresponding field from the Cube.
  • Misc2 VarChar2 Value of the corresponding field from the Cube Misc3 VarChar2 Value of the corresponding field from the Cube. Misc4 VarChar2 Value of the corresponding field from the Cube. Misc5 VarChar2 Value of the corresponding field from the Cube.
  • ErrorProcessor VarChar2 The Processor (description) where the error occurred. Priority The priority of the message from the Cube. DelegatorID Number The ID of the Delegator that was processing this message.
  • tblCube Error TABLE 188 includes the valid System ID's and message types: Field Name Field Type Description SystemID Varchar2 The name of the system. MsgType VarChar2 The message type. AIProcessorClass VarChar2 The string used in the CreateObject statement for the MV processor (optional). MaxTimeThreshold Number The maximum length of time in seconds that a message of this type should take to process. A value of ⁇ 1 indicates no threshold.
  • tblSystems TABLE 200 includes statistical data: Field Name Field Type Description StatisticalDate Date The date when the statistics were gathered. SystemID VarChar2 The ID of the System for these statistics. MsgType VarChar2 The message type. LastSuccess Date The last date/time when a message was successful. LastFailure Date The last date/time when a message failed. TotalAttempts Number Number of attempts. TotalFailed Number Number Number of failures. CurrentDate Number Current date.
  • tblStatistics TABLE 218 includes all long text data for a message: Field Name Field Type Description MsgID Number ID of the message. TextData Long Field that contains all text data that will be necessary to complete the task.
  • tblCubeText TABLE 188 includes all binary data for a message: Field Name Field Type Description MsgID Number ID of the message. BinaryData Long Raw Field that contains all binary data that will be necessary to complete the task.
  • tblCubeBinary TABLE 206 includes all long text for an error record: Field Name Field Type Description ID Number ID of the message. TextData Long Field that contains all text data that will be necessary to complete the task.
  • tblCubeErrorText TABLE 204 includes all binary data for an error record: Field Name Field Type Description ID Number ID of the message. BinaryData Long Raw Field that contains all binary data that will be necessary to complete the task.
  • system ID refers to the type of communication system utilized in the communication executive. As will be appreciated by one of ordinary skill in the art having the benefit of the instant disclosure, multiple systems may be interfaced through the same communication executive. In situations where only a single system is being interfaced in the manner described herein, the system ID-related fields may be omitted from the various tables.
  • message types defined for a particular system will vary from system to system. Message types may be distinguished based upon the type of receiving device, the type of sending device, the type of resource being utilized, the type of transaction (e.g., based upon logical distinctions between activities performed with the system), etc.
  • sp_SendMessage Writes a record from the Cube.
  • sp_RemoveMessage Deletes a record from the Cube.
  • sp_UpdateStatus Updates the status of a record to a supplied value.
  • sp_InsertError Inserts an error into the Error Log.
  • sp_AddStatistics Adds a new statistics record to the tblStatistics table.
  • sp_AutoAddStatistics Adds new statistical record for each calendar day. May be executed through a job that runs once every day at 12:00 a.m.
  • sp_UpdateStatistics Updates statistics from the tblStatistics table.
  • sp_UpdateMsgDelegatorID Updates the Delegator ID field in a Cube record with the ID of the Delegator that is processing the message.
  • sp_UpdateDelegatorStatus Updates the status of a Delegator. Read to determine if a Delegator is free to look for messages in the Cube.
  • sp_RemoveOldStatistics Removes statistics from the tblStatistics table that are older than 30 days. This procedure may be scheduled to run automatically each day.
  • sp_Update Delegator Status Updates the OkToRun field for the Delegator.
  • the COM services may expose the following methods to calling systems to execute.
  • the COM service object may be stateless—that is, all data needed for a method to function may be passed in as parameters, and all variable within the object may be declared as local variables:
  • the Messages parameter may be an XML stream with the following layout: ⁇ Messages> ⁇ MsgID> ⁇ /MsgID> ⁇ MsgID> ⁇ /MsgID> ... ⁇ /Messages>
  • This XML stream can then be parsed and the ReadMsgData method can be called to obtain individual record information from the Cube.
  • SendMsg FromID, ToID, MsgType, Priority, OUT — MsgID, OUT — Error — Code, OUT — Error — Description, Optional Misc 1 , Optional Misc 2 , Optional Misc 3 , Optional Misc 4 , Optional Misc 5 , Optional TextDataIn, Optional BinaryDataIn )
  • ReadMsgData ( MsgID, OUT — FromID, OUT — ToID, OUT — MsgType, OUT — Priority, OUT — Misc 1 , OUT — Misc 2 , OUT — Misc 3 , OUT — Misc 4 , OUT — Misc 5 , OUT — TextDataIn, OUT — BinaryDataIn, OUT — DelegatorID, OUT — Error — Code, OUT — Error — Description )
  • OUT_Error_Code and OUT_Error_Description may contain the error number and error description if any error occurs.
  • GenerateErrorRecord ( FromID, ToID, MsgType, Priority, MsgID, MsgError — Code, MsgError — Description, ErrorDate, Processor, DelegatorID, OUT — Error — Code, OUT — Error — Description, Optional Misc 1 , Optional Misc 2 , Optional Misc 3 , Optional Misc 4 , Optional Misc 5 , Optional TextDataIn, Optional BinaryDataIn )
  • the XML may have the following format: ⁇ Processors> ⁇ ProcessorID> ⁇ /ProcessorID> ⁇ ProcessorOrder> ⁇ /ProcessorOrder> ⁇ /Processor>
  • GetAllDelegatorControllers DelegatorID, OUT — Controllers, OUT — Error Code, OUT — Error — Description )
  • the XML may have the following format: ⁇ Controllers> ⁇ ControllerID> ⁇ /ControllerID> ⁇ ControllerOrder> ⁇ /ControllerOrder> ⁇ /Controllers>
  • the XML may have the following format: ⁇ Delegators> ⁇ DelegatorID> ⁇ /DelegatorID> ⁇ /Delegators>
  • GetDelegatorInformation ( DelegatorID, OUT — DelegatorDescription, OUT — CycleTime, OUT — DelegatorStatus, OUT — Error Code, OUT — Error — Description )
  • UpdateDelegatorStatus DelegatorID, NewStatus, OUT — Error — Code, OUT — Error — Description )
  • UpdateMsgDelegatorStatus MsgID, DelegatorID, OUT — Error — Code, OUT — Error — Description )
  • UpdateMsgStatus MsgID, NewStatus, OUT — Error — Code, OUT — Error — Description )
  • ProcessedOK may be a Boolean value.
  • the above-described communication executive has a wide variety of uses in various applications, particularly where it is desirable to interconnect electronic devices having different queuing strategies and/or business rules.
  • FIG. 11 illustrates a remote sensing environment 220 that utilizes a central processor 221 including a communication executive 222 that interfaces a plurality of remote sensing stations, or sensors, 224 with a data repository 225 and analysis engine 226 . Additional details regarding such a system are described, for example, in the aforementioned related U.S. Provisional Application No. 60/307,348, which is incorporated by reference herein.
  • centralized analysis functionality may be used to permit, for example, independent entities to contract for analysis services to be provided by the central processor, needing only access to an NIR sensor and appropriate networking capabilities.
  • the relatively complex processing required to perform quantitative analysis can be maintained in a central location, thus reducing the complexity and cost of the remote stations.
  • any required customization of remote stations can be minimized.
  • centralized analysis allows for greater control over the models used in the analysis, as well as facilitates updates or improvements to the models since they are typically not distributed to the remote stations.
  • Each remote sensor 224 may include, for example one or more near infrared (NIR) instruments 228 interfaced with a client-side computer, or user interface, 230 , e.g., a laptop or other single-user computer.
  • NIR near infrared
  • the NIR instruments 228 are utilized to generate spectral data for a material for the purpose of performing quantitative and/or identification analysis on materials or compositions located at remote locations.
  • the spectral data generated by the remote sensors is then transmitted either in raw or pre-processed form to a central processor including an analysis engine that analyzes the spectral data using chemometrics or other multivariate methods to determine the quantitative properties of a particular material or composition.
  • the analysis engine may also return the processed results to the remote station from which the data was generated.
  • Each remote sensor may utilize, for example, a Matrix-F NIR instrument available from Bruker Optics Inc.
  • a laptop or other web-enabled computer may then be used to provide user input and display capability for communicating with a central web server.
  • a client computer may not be required, e.g., if the instrument itself incorporates suitable networking and display capabilities.
  • Other NIR instruments or sensing systems may be used in the alternative as well.
  • the remote sensors would be coupled to the communication executive 222 via a network such as the Internet 232 .
  • a network such as the Internet 232 .
  • the spectral data (as well as other measurement data such as input data received from an operator) and the processed measurement results may be transmitted via HTML-compatible forms processed by a web server 234 , which is interposed between the sensors and the communication executive 222 .
  • the web server may incorporate practically any conventional web server technology, e.g., Active Server Page (ASP) services.
  • ASP Active Server Page
  • Analysis engine 226 includes an analysis controller 240 coupled to a model engine 242 , which relies on stored models 244 in data repository 225 to apply chemometric analysis to spectral data generated by the remote sensors.
  • An analysis database 246 is also provided in data repository 225 to store the spectral data and processed results. Databases 244 and 246 may be integrated into the same database management system, or may be maintained in separate such systems.
  • Communication executive 222 includes a cube 250 that is accessed via a COM Service 252 instantiation responsive to requests received by web server 234 .
  • a delegator 254 operates on messages received by cube 250 , resulting in the dynamic instantiation of a controller 256 responsive to an appropriate message.
  • Controller 256 has access to one or more processors 258 functioning as request handlers for the central processor. Each processor 258 is coupled to receive and transmit data from and to analysis database 246 , as well as to forward requests in an appropriate format to analysis controller 240 .
  • the herein-described system of FIG. 11 provides the capability for near real-time processing and scalability to permit a large number of remote sensors to access centralized models for the purpose of processing spectral data and returning measurement results to the remote sensors. As a result, the local processing required at each remote sensor can be minimized.
  • the herein-described communication executive provides first-in-first-out queuing, as well as automated message detection to enable near real-time processing.
  • the pipeline-processing framework facilitates extension of the message processing functionality of the communication executive due to the relative ease in which additional components can be added to the process.
  • support for the use of message validation components facilitates pre-processing of all incoming requests from remote sensors.
  • an operator at a remote sensor performs NIR spectroscopy on the material to generate measurement data, e.g., spectral data.
  • An application running on the associated computer for the NIR instrument then transmits the measurement data over the Internet to web server 234 .
  • Some preprocessing of the measurement data may also be performed prior to transmission to web server 234 .
  • the web server In response to the receipt of a request from a remote sensor, the web server instantiates a COM Service component 252 , and invokes a send message function to push the measurement data into the message repository (cube). The COM Service then waits for the status of the message to change. The web server also writes the measurement data to the analysis database at the same time as adding the message to the cube.
  • the delegator associated with that message detects a new message and instantiates an appropriate controller component.
  • the controller component subsequently launches one or more processor components as defined in the configuration tables for the cube.
  • the processor components then read the measurement data from the cube, and forward the data to the analysis engine (and optionally, the analysis database as well) to perform chemometric analysis of the data.
  • the request made by the processor is typically in a format that is native to the analysis engine.
  • the analysis engine performs the desired analysis of the measurement data, and stores the results in analysis database 246 .
  • the request in the cube is updated to a “complete” status by the processor, and the web server reads the information from the analysis database based upon a detected “complete” status in the cube. The web server then returns an HTML-compatible web page to the operator, presenting the requested results.
  • System 270 is an example of a manufacturing control system in which a communication executive 272 is utilized to interface a manufacturing automation system 274 (incorporating control devices and/or sensor devices), as well as additional sensors such as an NIR sensor 276 , with a manufacturing database 290 .
  • the manufacturing automation system 274 may incorporate a manufacturing process automation system such as the DeltaV automation system available from Fisher-Rosemount.
  • Communication executive 272 includes a message repository or cube 276 accessed by one or more instantiations of COM Service 278 .
  • a delegator 280 and controller 282 are also shown.
  • a plurality of processors 284 , 286 and 288 are illustrated for performing different tasks in response to messages placed on the cube.
  • a manufacturing database 290 is coupled to the processors, as well as to a task assembler 292 and at line processor 294 .
  • An analysis controller e.g., as described above in connection with FIG. 11, may also interface with processor 284 for the purpose of interacting with NIR sensor 276 , which provides additional feedback for a manufacturing process.
  • the system of FIG. 12 operates as a task-based control system, where tasks are performed in response to an indication that a new task is required by either the task assembler 292 or at line processor 294 .
  • Communication with the communication executive is established through the appropriate COM Service 278 , which writes a request to the cube 276 as appropriate.
  • the respective task assembler or at line processor then monitors the progress of the message through the COM Service.
  • processors 284 , 286 and 288 have the ability to communicate with manufacturing database 290 to retrieve appropriate information, as well as write the results to the database.
  • processor 288 may log events to the manufacturing database through its operation as an event log controller.
  • processor 284 may perform the function of an analysis request handler for interfacing with analysis controller 296 .
  • Processor 286 may function as a spreadsheet handler, e.g., to perform complex calculations.
  • the controller associated with that message updates the status of the message to “complete.”
  • the calling system e.g., task assembler 292 or at line processor 294
  • the task assembler 292 may then interact with the manufacturing automation system based upon the new information.
  • System 300 is an example of an inventory management system in which a communication executive 302 is utilized to interface one or more inventory measurement sensors 304 with an inventory database 306 .
  • Each sensor 304 may be implemented using any device capable of detecting a particular type of inventory (e.g., a fluid level, a particulate level, etc.), coupled with functionality for transmitting the sensed data for collection by the inventory management system.
  • sensors 304 may be grouped as illustrated at 308 into a tier of measurement devices located at supplier sites.
  • Other sensors 304 may be coupled to a data consolidator 310 using third party technology.
  • data generated by the sensors 304 is output over a communications network such as the Internet 312 to an Internet webserver 314 , e.g., providing ASP pages suitable for receiving the data in an appropriate format.
  • sensors 304 and/or consolidator 310 may be configured to generate XML data streams, and to post such XML-formatted data to an ASP page resident on the web server.
  • Consolidator 310 may be capable of pooling the data from multiple sensors 304 into a consolidated XML document.
  • some or all of the sensors 304 may be coupled to webserver 314 via other communication networks.
  • a non-Internet protocol implementation may be utilized, whereby webserver 314 may not be utilized.
  • Communication executive 302 includes one or more instantiations of COM Service 320 that submit messages to a message repository or cube 322 .
  • a delegator 324 and controller 326 are also shown.
  • one or more processors 328 are dynamically instantiated to perform actions in connection with inventory database 306 in response to messages placed on the cube.
  • the system of FIG. 13 collects inventory data from sensors 304 and forwards the data to database 306 .
  • processor 328 or alternatively, other program code, may be configured to track current inventories and, as necessary, notify purchasing personnel and/or automatically order or schedule the delivery of additional inventory.
  • feedback information may be provided to the various sites served by sensors 304 .

Abstract

An apparatus, program product and method incorporate an extensible modular communication executive for use integrating one or more electronic devices with one another with reduced customization overhead. A modular architecture is used to facilitate message-based communications in such a manner that queuing strategies, business rules and the like may be accommodated within a message-based environment in a reliable and efficient manner. Through the use of a modular architecture, application-specific software components can be assembled together to readily adapt a generic message-based system for use in a specific application. Moreover, intelligent pre-validation of messages may be implemented in such a modular architecture to permit a business rule-independent messaging infrastructure to be readily adapted to support specific business rule requirements for a particular application.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application claims the benefit of two U.S. Provisional Patent Applications, Serial Nos. 60/307,347 and 60/307,348, both filed on Jul. 23, 2001, the disclosures of which are incorporated by reference herein. This application is also related to U.S. patent application Ser. No. ______ , filed on even date herewith by Alan P. Lundstedt, et al., and entitled “ON-SITE ANALYSIS SYSTEM WITH CENTRAL PROCESSOR AND METHOD OF ANALYZING,” the disclosure of which is also incorporated by reference herein.[0001]
  • FIELD OF THE INVENTION
  • The present invention relates to managing communications between sending and receiving electronic devices, and in particular, to message-based communications for interfacing independent electronic devices. [0002]
  • BACKGROUND OF THE INVENTION
  • Data communication is an important aspect of any data processing system. Within integrated circuit chips such as microprocessors, communication of data between various functional units is required when performing processing tasks. Likewise, microprocessors require communication with external devices, e.g., to receive input from a user or display input from a user, as well as to store or retrieve from a memory or storage device. Computers and other electronic devices also have a need to communicate with other such devices, e.g., to distribute processing tasks among multiple devices or to exchange information managed by one device with another device that needs to utilize the information. [0003]
  • As an example, in a manufacturing control system, various control devices such as machines, valves, actuators, etc. are typically managed by a controller, which receives feedback from one or more sensing devices that monitor the progress of a manufacturing operation. In a chemical processing environment, for example, there are control devices such as control valves that add ingredients to a chemical formulation or that transfer ingredients or finished products to and from storage tanks, environmental controls that control reaction temperatures, ambient pressures, and the like, etc. Morever, in such an environment there are sensing devices such as temperature gauges, pressure gauges, conductivity sensors, etc. When managed by a central controller, information must be communicated from sensing devices to the controller, and control signals must be output to the various control devices to manage the process according to desired process parameters. Thus, data communication is required to communicate input data, output control signals, output status information, etc. Moreover, in many situations, such data communication must be as near to “real time” as possible, particularly where safety or product quality can be affected by responsiveness. [0004]
  • Whereas early manufacturing control systems relied on simple analog and/or digital control wires between relatively primitive sensors, relay switches, display indicators, etc., as technology has advanced, the sensors, displays, control devices and the like have become more sophisticated, whereby the manner of communication between such devices has become more complex and comprehensive. In particular, many sensing and control devices have incorporated processing logic that often reduces the amount of interaction required with a central controller, and thus permits a central controller to handle higher level tasks in a substantially more efficient manner. One or more networks, each representing point-to-point or shared electronic interconnects, are typically used to interface the devices to the controller. [0005]
  • Some manufacturing control systems are highly centralized, whereby sensing devices gather data and forward the data to a central controller that processes the data and controls one or more control devices accordingly. However, it has been found that a more decentralized approach is often superior in many situations, particularly where sensing and control devices may be physically dispersed over a wide geographical area. To implement a decentralized system, often one or more controllers are interfaced together, with individual controllers utilized to interface with selected subsets of sensing and/or control devices in the system. [0006]
  • In decentralized systems, communications between controllers, sensing devices and control devices are typically more sophisticated than centralized systems that utilize central controllers and relatively “dumb” sensing and/or control devices. For example, message-based communications are often used in decentralized systems, whereby information units known as messages are passed between devices using a particular format that is understood by both the sending and receiving devices. Messages are often processed as “events” that are capable of being responded to by a receiving device with a similar type of message. Messages may also be ordered to ensure timely delivery and eliminate race conditions that could compromise data integrity or result in incorrect control settings. [0007]
  • Another aspect of a decentralized system is the ability to incorporate a wide variety of devices into a single system, often using devices that are manufactured by different entities and that may not be specifically adapted to work with other types of devices also used in the system. In many instances, such devices are specifically configured to communicate information according to a particular communications protocol, which may include a specific message format, and even a particular type of electrical connector and/or wiring. Should different devices within a particular system not subscribe to the same communications protocol, often custom hardware and/or software is required to appropriately interface the devices. [0008]
  • In addition, different devices may have different performance capabilities, e.g., response time, processing speed, memory capacity, etc., and thus the responsiveness of certain devices may not be adequate for other devices that require relatively short response times. Moreover, given the nature of many manufacturing processes, and the criticality of the controls to the success of the processes, communication must often be as close as possible to real time to maintain safety and quality control. [0009]
  • A number of different architectures are utilized in the art to implement manufacturing control systems of the types described above. For example, one type of manufacturing control system utilizes a central database that receives input data from one or more sensing devices and stores the states of the input data in the database. Software scripts run on the database, analyzing the current input data and generating control signals that are output to one or more manufacturing control devices based upon set points established for various input data combinations. [0010]
  • Given the wide variety of sensors and control devices that may be required in a given manufacturing control system, typically a substantial amount of custom hardware and/or software is required to enable a database to both receive sensing device data and output appropriate control information to control devices. Moreover, despite the additional functionality that is often allocated to the sensing and control devices, such a system is still principally centralized since the status of the sensing device data and the control signals are maintained within the database. In such a system, typically the sensing devices and control devices are not capable of communicating directly with one another. [0011]
  • Other manufacturing control systems may be somewhat more decentralized, whereby relatively complex controllers are interfaced with a centralized database, with each controller responsible for a relatively greater number of sensing and/or control devices. Nonetheless, a central database is still utilized to maintain input data and output the control signals responsive thereto, and little or no direct communication between controllers, sensing devices and control devices is permitted. [0012]
  • Furthermore, as performance and complexity of the devices used in manufacturing control systems improve, maintaining “real time” operability becomes more and more difficult. A necessity for real-time response is especially problematic when complex devices from different manufacturers are utilized in the same system. Often a significant amount of custom hardware and/or software is required for each particular application. As a result, implementation time, effort, and expense are often significant. Preexisting systems are rarely, if ever, adaptable for use in other environments without substantial modification. [0013]
  • In other systems, it may also be desirable to utilize more sophisticated types of sensing and/or control devices that have conventionally not been integrated into manufacturing control environments. For example, infrared (IR) and near infrared (NIR) spectroscopy has been used in laboratory environments to perform quantitative analysis of chemical compositions. Spectroscopy provides the advantage that material samples can be analyzed relatively quickly and often without any preparation of the samples or any time-consuming wet chemistry. Many IR and NIR spectrum analyzers are principally designed to be used in laboratory environments, and traditionally, these types of laboratory instruments have not been particularly well-suited for use in manufacturing control systems. [0014]
  • Much of the incompatibility associated with such devices stems from difficulties communicating data with other components in a manufacturing control system, due to the fact that most commercially-available IR and NIR spectrum analyzers are not specifically designed for such applications. As a result, traditionally a manufacturing environment that relies on an IR or NIR spectrum analyzer requires that product samples be manually taken and physically brought to an analyzer for processing. In some environments, remote probes have been used within manufacturing equipment; however, substantial custom software and/or hardware is usually required to transmit the results generated by the probe to an analyzer for processing. Regardless of how the sample data is obtained, however, typically no control or direct communication is provided between an IR or NIR spectrum analyzer and the other components in a manufacturing control system. [0015]
  • IR and NIR spectrum analyzers also have other potential uses that would benefit from enhanced communication abilities. In particular, a spectrum analyzer typically must incorporate some form of analysis engine to process the spectral information generated by an NIR or IR sensor. Often, such an analyzer utilizes chemometrics or other multivariate regression methods to derive quantitative information about a particular sample from the sensor data. It has been found that a large number of outside factors, including various measurement conditions such as environmental parameters, instrument parameters and analysis techniques, as well as various sample conditions based upon the properties of the composition when the sensor data is obtained, can affect quantitative analysis results. For this reason, analysis is often a complex mathematical process requiring a relatively high performance computing system to process sensor data in a reliable and efficient manner. However, in a system whereby samples may require analysis in a large number of geographically dispersed locations, often analysis must be performed locally at each location, requiring costly and complex computer equipment at each location. Otherwise, if a central analysis system is used, communication incompatibilities complicate integration and adversely affect responsiveness. [0016]
  • In each of the foregoing environments, differences in the communication, performance and/or response requirements of different devices present challenges when such devices are being integrated into a common system. As one example, where message-based communications are used to interface devices, message buffers or “queues” are often used to temporarily store messages as they are being processed. Messages received by a device are typically enqueued on a message queue, and a computer program periodically polls the queue for new messages. Whenever a new message is detected, the computer program processes the message as appropriate. Messages are typically ordered for first-in-first-out processing, and in some instances prioritization rules may be applied to handle messages with differing degrees of urgency. [0017]
  • Queues are often associated with queuing “strategies,” which essentially define how and by what means messages are received, stored, processed and ultimately responded to. These queuing strategies may ultimately affect response speed, processing speed, and other determining performance factors in both sending and receiving devices. As a result, when different devices are integrated into a message-based system, the queuing strategy used to interface those devices often must be specifically tailored to adequately handle the performance requirements of such devices. Where different devices have widely divergent performance characteristics, integration of the devices through a common queuing strategy can be difficult. [0018]
  • Moreover, many message-based systems inherently support various forms of “business rules” that define the accepted format of messages, as well as what messages and message types are appropriate for a particular system. Typically, such rules are implemented by whatever computer program handles a received message, e.g., by performing error checking and the like while handling the message. The business rules are often highly application-specific. In addition, the business rules are often applied only after a message is enqueued on a queue, so that unacceptable messages will still typically be placed on a queue before any problems are detected. [0019]
  • Therefore, given the possible variations in different message-based communications systems, queuing strategies and business rules often must be specifically developed and implemented within individual devices in a particular system, often using custom hardware and/or software. As a result, integrating multiple disparate devices together into a system may not be possible in some instances, or in the least, may require substantial customization, leading to increased cost and reduced performance. [0020]
  • A need therefore exists in the art for a simplified manner of integrating disparate electronic devices together in a unified communications system, especially for a manner in which the degree of required customization is minimized. Moreover, a significant need exists for a manner of facilitating the integration of devices in particular into a message-based communications system so as to efficiently and reliably incorporate desirable queuing strategies and business rules with minimal customization. [0021]
  • SUMMARY OF THE INVENTION
  • The invention addresses these and other problems associated with the prior art by providing an apparatus, program product and method that incorporate an extensible modular communication executive for use in integrating one or more electronic devices with one another, often with substantially reduced customization overhead as compared to conventional architectures. A modular architecture is used to facilitate message-based communications in such a manner that queuing strategies, business rules and the like may be accommodated within a message-based environment in a reliable and efficient manner. Through the use of a modular architecture, application-specific software components can be assembled together to readily adapt a generic message-based system for use in a specific application. Moreover, intelligent pre-validation of messages may be implemented in such a modular architecture to permit a business rule-independent messaging infrastructure to be readily adapted to support specific business rule requirements for a particular application. [0022]
  • Consistent with one aspect of the invention, an active message queue architecture is utilized within a modular environment to facilitate the processing of messages sent by a sending electronic device to a receiving electronic device. The architecture includes a message buffer that is configured to receive messages, with each message associated with a message type among a plurality of message types. A plurality of software-based processor components are utilized to perform tasks associated with messages received by the message buffer, and at least one processor component is configured to initiate an action on a receiving electronic device. A plurality of software-based controller components are also utilized, with each associated with a message type among the plurality of message types, and each configured to handle a message associated with such associated message type by dynamically instantiating at least a subset of the plurality of processor components. The architecture also utilizes at least one delegator component that is associated with at least one message type among the plurality of message types and is configured to monitor the message buffer for messages associated with such associated message type. The delegator component dynamically executes a controller component associated with an associated message type in response to detecting an addition of a message associated with such associated message type to the message buffer. [0023]
  • Consistent with another aspect of the invention, a message buffer is integrated with a buffer services component and a plurality of message validation components, where each message validation component is associated with at least one of a message type and a receiving electronic device, with each message validation component configured to validate a message sent to the message buffer by a sending electronic device prior to addition of the message to the message buffer, and with each message validation component further configured to return a result that indicates whether the message should be accepted by the message buffer. In turn, the buffer services component processes a first message sent to the message buffer by invoking a message validation component associated with the first message and selectively adding the first message to the message buffer based upon the result returned by the invoked message validation component. [0024]
  • These and other advantages and features, which characterize the invention, are set forth in the claims annexed hereto and forming a further part hereof. However, for a better understanding of the invention, and of the advantages and objectives attained through its use, reference should be made to the Drawings, and to the accompanying descriptive matter, in which there is described exemplary embodiments of the invention. [0025]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of a communication system incorporating a communication executive consistent with the invention. [0026]
  • FIG. 2 is a block diagram of an exemplary hardware environment for the communication executive of FIG. 1. [0027]
  • FIG. 3 is a layer diagram of the principal software components in the communication executive of FIG. 1. [0028]
  • FIG. 4 is a flowchart illustrating the program flow of a message received routine executed by the COM service of the communication executive of FIG. 1. [0029]
  • FIG. 5 is a flowchart illustrating the program flow of a routine executed by a delegator component in the communication executive of FIG. 1. [0030]
  • FIG. 6 is a flowchart illustrating the program flow of a routine executed by a controller component in the communication executive of FIG. 1. [0031]
  • FIG. 7 is a flowchart illustrating the program flow of a routine executed by a processor component in the communication executive of FIG. 1. [0032]
  • FIG. 8 is a sequence diagram illustrating various possible execution sequences of processor components in the communication executive of FIG. 1. [0033]
  • FIG. 9 is a flowchart illustrating the program flow of a routine executed by a message validation component in the communication executive of FIG. 1. [0034]
  • FIG. 10 is an object diagram illustrating the principal data structures utilized in connection with managing communications with the communication executive of FIG. 1. [0035]
  • FIG. 11 is a block diagram of one exemplary application of the communication executive of FIG. 1, for use in interfacing remote sensors with a central processor. [0036]
  • FIG. 12 is a block diagram of another exemplary application of the communication executive of FIG. 1, for use in a manufacturing control system. [0037]
  • FIG. 13 is a block diagram of another exemplary application of the communication executive of FIG. 1, for use in an inventory management system. [0038]
  • DETAILED DESCRIPTION
  • The hereinafter-described embodiments of the invention utilize a unique communication executive to provide a flexible, extensible and modular message-based interface between electronic devices, often in a manner that permits independent and disparate electronic devices, which may not have been specifically designed to communicate with one another, to communicate in a near real-time manner. As will become more apparent below, the modular and extensible architecture of the interface further often permits substantial code reuse to be employed when an interface is being adapted for use in a particular environment, thus reducing development time and increasing interface reliability. [0039]
  • Hardware/Software Environment
  • Turning to the Drawings, wherein like numbers denote like parts throughout the several views, FIG. 1 illustrates an [0040] exemplary communication system 10 incorporating a communication executive 12 consistent with the invention. In general, the communication executive 12 is utilized to interface sending electronic devices with receiving electronic devices via a message-based protocol. A sending electronic device in this context may refer to any electronic device capable of sending or otherwise outputting information, while a receiving electronic device may refer to any electronic device capable of receiving or otherwise inputting information. Moreover, it will be appreciated that an electronic device may operate both as a sending electronic device and a receiving electronic device, and further, that a communication executive may be implemented within the same physical hardware as either or both of a sending and receiving electronic device (i.e., a communication executive may be used to manage communications within a single electronic device, and even within a single integrated circuit within an electronic device).
  • One useful application of a communication executive consistent with the invention, which is illustrated in FIG. 1, is that of interfacing various data processing devices [0041] 14 (e.g., data collection devices, data display devices, data recording devices, controller devices, etc.) with various data resources 16 (e.g., databases, data analysis tools, etc.). Moreover, as represented by the double-ended arrows interconnecting communication executive 12, devices 14 and resources 16, it should be appreciated that any device or resource may function from time to time as a sending electronic device, a receiving electronic device, or both.
  • [0042] Communication executive 12 is typically interfaced with devices 14 and resources 16 via one or more network interconnections 18, each of which may represent practically any type of networked interconnection, including but not limited to local-area, wide-area, wireless, public networks (e.g., the Internet), and combinations thereof, as well as point-to-point serial or parallel interconnects, buses, intra-chip interconnects, and embedded interconnects. Moreover, it will be appreciated that a wide variety of additional computers and other electronic devices may be networked through the network interconnections 18 as well.
  • [0043] Communication executive 12 is typically implemented in software that resides and executes upon a computer or other data processing system. As shown in FIG. 2, for example, communication executive 12 may reside on a computer 20, specifically within a memory 22 thereof, and be executed by one or more processors 24 interfaced with memory 22. Processor 24 may represent one or more central processing units (e.g., microprocessors), and memory 22 may represent the random access memory (RAM) devices comprising the main storage of computer 20, as well as any supplemental levels of memory, e.g., cache memories, non-volatile or backup memories (e.g., programmable or flash memories), read-only memories, etc. In addition, memory 22 may be considered to include memory storage physically located elsewhere in the computer 20, e.g., any cache memory in any processor 24, as well as any storage capacity used as a virtual memory, e.g., as stored on a mass storage device or on another computer coupled to computer 20 via a network.
  • [0044] Computer 20 also typically receives a number of inputs and outputs for communicating information externally. For interface with a user or operator, computer 20 may include a user interface 26, including various user input devices (e.g., a keyboard, a mouse, a trackball, a joystick, a touchpad, and/or a microphone, among others) as well as various display devices (e.g., a CRT monitor, an LCD display panel, and/or a speaker, among others). Given that computer 20 is typically implemented as a server, user interface 26 may alternatively be implemented on a terminal or workstation interfaced with the computer, as is well known in the art.
  • For additional storage, [0045] computer 20 also typically includes one or more mass storage devices 28, e.g., a floppy or other removable disk drive, a hard disk drive, a direct access storage device (DASD), an optical drive (e.g., a CD drive, a DVD drive, etc.), and/or a tape drive, among others. Furthermore, computer 20 may include an interface 30 with one or more ports to permit the communication of information between the sending and receiving devices coupled thereto, wherein each interface is dependent upon the particular network interconnection to which the computer is coupled to a particular sending or receiving device. It should be appreciated that computer 20 typically includes suitable analog and/or digital interfaces between processor 24 and each of components 22, 26, 28 and 30 as is well known in the art.
  • [0046] Computer 20 generally operates under the control of an operating system (not shown separately), and executes or otherwise relies upon various computer software applications, components, programs, objects, modules, data structures, etc. (e.g., communication executive 12, among others). Moreover, various applications, components, programs, objects, modules, etc. may also execute on one or more processors in another computer in communication with computer 20, e.g., in a distributed or client-server computing environment, whereby the processing required to implement the functions of a computer program may be allocated to multiple computers.
  • In general, the routines executed to implement the embodiments of the invention, whether implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions will be referred to herein as “computer programs”, or simply “programs”. The computer programs typically comprise one or more instructions that are resident at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause that computer to perform the steps necessary to execute steps or elements embodying the various aspects of the invention. Moreover, while the invention has and hereinafter will be described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various embodiments of the invention are capable of being distributed as a program product in a variety of forms, and that the invention applies equally regardless of the particular type of signal bearing media used to actually carry out the distribution. Examples of signal bearing media include but are not limited to recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, magnetic tape, optical disks (e.g., CD-ROM's, DVD's, etc.), among others, and transmission type media such as digital and analog communication links. [0047]
  • In addition, various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature. [0048]
  • Those skilled in the art will recognize that the exemplary environment illustrated in FIGS. [0049] 1-2 is not intended to limit the present invention. Indeed, those skilled in the art will recognize that other alternative hardware and/or software environments may be used without departing from the scope of the invention.
  • Network-Based Communication Executive
  • One implementation of [0050] communication executive 12 of FIGS. 1-2 is that of interfacing various electronic devices coupled over a communication network such as the Internet, a Local-Area Network, a Wide-Area Network, and combinations thereof, using a conventional network-based protocol such as TCP/IP. It is this specific implementation that will be focused upon hereinafter, it being understood that the present invention is not limited solely for use in such an implementation.
  • Overview of Principal Software Components [0051]
  • FIG. 3 illustrates the principal software components in [0052] communication executive 12. Several layers of software are defined at 40-54, and are used to provide a flexible, extensible and modular communications service for linking electronic devices to one another in a structured manner.
  • [0053] External device layer 40 represents the source and destination devices that utilize the communication executive. It will be appreciated that each external device will typically include its own queuing strategy and may require various business rules to control the messages sent by or received by such devices.
  • [0054] Network services layer 42 represents the network protocol services required to interface the communication executive with the particular type of networks over which the external devices are accessible. COM service layer 44, which represents a buffer services component, provides an external interface to a message repository or database, and in the illustrated embodiment, is implemented as a Visual Basic COM object that acts as the liaison between the message repository and any system that wishes to enter tasks into or retrieve information from the repository. Typically, the COM service layer is called by the network services layer 42, or other non-network based systems directly, e.g., via DCOM calls, in a manner well known in the art.
  • It will be appreciated that the network and COM service layers [0055] 42, 44 may require customization for use in different environments. For example, depending upon the type of networks over which various devices are coupled to the communication executive, the network services may require differing functionality. For example, where external devices are coupled over the Internet or another TCP/IP network, the network services may function as a listening device, capable of receiving TCP/IP packets and forwarding packets in a predetermined format to the communication executive as required. For other forms of network protocols, or in situations where listening or monitoring is not required, different network services functionality may be required, or the network services may be omitted altogether. Likewise, the COM service into the message repository may vary in other applications. In the illustrated embodiment, the COM service is instantiated whenever data is received, and the COM service is configured to dynamically generate requests from received data. Given the variable types of devices that may be coupled to a communication executive, however, the COM service will differ for various applications.
  • Next, as will be discussed in greater detail below, one or more message validation (MV) [0056] components 46 may also be provided in communication executive 12. Each MV component performs pre-validation of received messages for particular types of messages and/or for messages directed toward particular receivers. The MV components typically implement desired business rules, and are used to validate a message using artificial intelligent techniques before the message is added to a message repository. In this manner high-level message processing may occur prior to the message being accepted onto a message repository. In other embodiments, however, MV components may not be used.
  • The MV components are layered on top of a message repository, also referred to herein as a [0057] cube 48, which represents the database or buffer within which messages are stored. When coupled with one or more delegators 50, message repository 48 forms an active queue that actively manages messages placed on the buffer by the COM service.
  • Each [0058] delegator 50 functions as a monitor task that actively monitors for messages of a particular type. As will be discussed in greater detail below, a delegator, in response to detecting a new message for which it is responsible, dynamically spawns (or otherwise executes) one or more controller components 52 to handle such messages. Typically, a delegator will call a controller for each message type for which the delegator is responsible. In the illustrated embodiment, each delegator is implemented as a Visual Basic program such as an ActiveX executable, although other software implementations may be used in the alternative.
  • As discussed above, each [0059] controller component 52 is dynamically instantiated or spawned by a delegator to handle a particular message type. In other embodiments, controller components may remain resident at all times, and as a result, may be executed by a delegator on an as-needed basis. Instantiation or spawning in addition to execution is therefore optional in some embodiments.
  • In the illustrated implementation, each controller represents a logical layer split into two physical layers. A controller is capable of handling complex chain processing, with a CBO layer implemented as a Visual Basic program, e.g., an ActiveX executable, that calls an SBO controller to process the requests from the cube for a particular message type. The SBO layer may be implemented as a Visual Basic program such as a COM+ ActiveX DLL that calls one or [0060] more processor components 54 dedicated to handling a specific message type to process the relevant messages in the message repository. Through the use of a dual-layer implementation, a delegator may be allowed to process requests of different types without having to wait for any of the requests to complete. However, it should be appreciated that other software implementations may be used for a controller consistent with the invention.
  • Each [0061] processor component 54 is implemented in the illustrated embodiment as a Visual Basic COM object that contains the business logic for a particular system using the communication executive as its queuing engine. The processor components are typically resident outside of the communication executive, and are used to interact directly with destination devices to actually process messages in the manner appropriate for a particular device. The processor components read messages from the message repository and interface with a destination device either directly or by adding new out-bound messages to the message repository via the CBO layer of the associated controller. As with the other components in the communication executive, however, other software implementations may be used for processor consistent with the invention. In general, a processor component can perform any number of tasks associated with a message, including in many instances initiating some action on a destination device.
  • FIG. 3 also illustrates an [0062] optional system analyzer 56, which may represent one or more self-diagnosis routines that constantly monitor the health of the communication executive. Typically, when an analyzer detects a problem, an entry may be logged in, and depending upon the severity of the error, a message may be sent to an administrator. In this regard, the system analyzer functions in a similar manner to other network monitoring products.
  • In use, a device wishing to send a message via the communication executive to another device in the system will initiate a function call to the COM service associated with that device, which, if the message is acceptable, will place the message on the message repository. Then, a delegator associated with the particular type of message will dynamically spawn one or more controllers to handle the message. The appropriate controller will in turn call one or more processor components to actively handle the task. The result of handling a message may also incorporate sending a response message or initiating another message for another device coupled within the system. The details of this overall program flow are illustrated in greater detail in FIGS. [0063] 4-9 below.
  • Message Reception [0064]
  • FIG. 4 illustrates a message received routine [0065] 60, executed for example by COM service 44 whenever a message needs to be placed on the message repository. Routine 60 begins in block 62 by determining whether a message validation component needs to be called for the message. As discussed above, typically message validation components, if used, are associated with particular message types, and are used to pre-validate a message before the message is placed on the message repository, or cube. Therefore, if such a component exists for the particular message type with which the message is associated, block 62 passes control to block 64 to call the appropriate message validation component. The message validation component typically has the ability to either accept, reject or modify an incoming message. If the message is rejected, control passes to block 66 to terminate routine 60 and return an error, indicating to the calling component that the message was not accepted. Otherwise, control passes to block 68 to enqueue the message onto the cube, e.g., by storing the message in the message repository. Once the message has been placed on the repository, routine 60 is then complete.
  • Returning to block [0066] 62, if no message validation component is appropriate for the particular message that has been received, block 62 passes control directly to block 68 to enqueue the message onto the cube.
  • Delegator Component/Active Queue [0067]
  • Once a message has been placed on the message repository, an active monitoring process associated with the repository is utilized to automatically handle the message by dynamically instantiating one or more controller components associated with the message type for that message. FIG. 5, for example, illustrates a delegator routine [0068] 70 executed by one of the delegator components resident in the system. As discussed above, a delegator component may be implemented as a Visual Basic ActiveX executable program, among other implementations. Once initiated, a delegator will first connect to the message repository and create a list of available delegator components, as shown in block 72. Once the initial connections have been established, the delegator is ready to receive events, and to monitor for new messages placed on the cube. Thus, the delegator waits on a wait block 74, for various types of events that may be directed to the delegator. In addition, while waiting for events, the delegator also periodically monitors the cube for the receipt of a new message. In other embodiments, events may be handled in a different thread from message monitoring.
  • In some implementations, it may be desirable to selectively disable and enable a delegator, and as such, a delegator may be disabled or enabled in response to suitable events, as shown in [0069] blocks 76 and 78. Likewise, it may be desirable to shut down a delegator, as shown in block 80.
  • As discussed above, block [0070] 74 also monitors for the placement of a new message on the cube. In response to receipt of a new message, block 82 is called to determine whether the delegator is currently enabled. If not, the message is ignored, and control returns to block 74. If the delegator is enabled, however, block 82 passes control to block 84 to retrieve the message data from the cube. Block 86 then determines whether any other delegator is currently handling the message, e.g., by determining whether a flag or indicator set in the message record indicates that the message is associated with another delegator. If so, no further processing by the delegator occurs, and control returns to block 74. Otherwise, control passes to block 88 to associate the message with a delegator by changing a flag or other indicator in the message record.
  • Next, block [0071] 90 determines what controller is required for processing the message, typically based upon the type of message as found in the message record, as well as a known mapping between controllers and messages defined within the system. Block 92 then dynamically instantiates, or spawns, such controller, which also incorporates execution of the spawned controller. Control then returns to block 74 to process other events and messages.
  • It will be appreciated that additional information may be presented to an administrator by a delegator component consistent with the invention. For example, information such as total cycles started and total cycles completed may show an administrator the number of times a delegator has searched the cube for messages, and the number of times the delegator has completed the search. In addition, a cycle time, representing the period during which the delegator periodically checks the cube, may also be configurable and displayed to a user. Status information may also be displayed illustrating whether the delegator is currently enabled or disabled, as well as indicating when messages are received and when controllers are spawned in response to reception of such messages. A status window displayed to an administrator may also include various user interface controls such as START and STOP buttons that selectively enable or disable the delegator, as well as an END button that shuts down the delegator in the manner described above. [0072]
  • Controller Component [0073]
  • FIG. 6 next illustrates a [0074] controller routine 100 executed by a controller component consistent with the invention. As described above, the controller component is typically divided into two physical layers, a CBO controller layer and an SBO controller layer, with the CBO controller layer configured as a single-use (class parameter) ActiveX executable, and the SBO controller layer being implemented as a COM+ ActiveX DLL Visual Basic program.
  • In the illustrated implementation, the CBO controller layer includes a hidden form with a timer control that is initially inactive when instantiated by a delegator component. A method, e.g., a start controller method, may be exposed by the controller, and include a controller ID parameter, delegator ID parameter, a delegator pointer and error information. The method, when called by a delegator, stores the parameters in private variables, loads the hidden form, and enables the time control on the form. Then, the method ends and returns control to the calling delegator, which frees the delegator to process messages of a different system ID/message type, while the controller proceeds with processing of messages. The timer control may be set to fire some delay after being enabled, e.g., one second. Once the time control fires, an instance of an SBO controller is created and messages are processed as described below. Once the process messages method has completed, a DONE method exposed by the delegator may be called to return error and status information to the delegator. [0075]
  • As shown in FIG. 6, a [0076] controller routine 100 generally begins in block 102 by connecting to the message repository and obtaining a list of messages that need to be processed. Next, block 104 obtains a list of processors that are to be launched, including the desired order. Block 106 then initiates a FOR loop to process each of the processors necessary to be launched. For each such processor, control passes to block 108 to determine whether the processors needs a transaction.
  • In the illustrated embodiment, processors may be grouped into transactions, with transactional groups defined within the message repository. Processors may be defined within the same transactional group based upon processing order and whether or not each processor is batch or single record. By being placed in a transactional group, multiple processors can apply multiple changes to a database or multiple databases and have the changes committed or rolled back as a group. [0077]
  • If a processor does not need a transaction, block [0078] 108 simply passes control to block 110 to launch the appropriate processor, e.g., by instantiating the processor or making a function call to the processor as appropriate. Control then passes to block 112 to determine whether the last processor has been reached, whereby control returns to block 106 to process additional processors as appropriate.
  • On the other hand, if a processor requires a transaction, block [0079] 108 passes control to block 114 to determine whether the message is part of a previous transaction. If not, control passes to block 116 to begin the transaction, and then to block 118 to launch the appropriate processor. Otherwise, if the message is part of a previous transaction, block 114 passes control directly to block 118. Once the appropriate processor has been launched, control passes to block 120 to determine whether the next processor is part of the same transaction. If not, control passes to block 122 to commit the transaction. Regardless of whether the next processor is part of the same transaction, control then passes to block 112 to determine whether the last processor has been launched. If not, control returns to block 106. Otherwise, control passes to block 124 to commit any open transactions, and then to block 126 to update the statistics associated with the message. Upon completion of block 126, routine 100 is complete.
  • In the illustrated embodiment, the determination of what processors are to be launched for a particular type of message is made by accessing a database such as the message repository, within which such information is stored. The settings may include information as to which processors to call and in what order, as well as whether each of these processor is a batch or single record processor. In many instances, the information is stored in connection with data records that map specific processors to specific controllers, e.g,. in the tblControllerProcessors table 196 discussed below in connection with FIG. 10. [0080]
  • Typically, each processor has one method, e.g., an execute method, that is called by a controller to invoke the functionality in the processor. The execute method may include a record ID field, as well as option delegator ID, system ID, message type, text data, binary data, error code data, etc., with the record ID used to identify the function call as either a single record call, where the ID of the particular message record is passed, or a batch-type call, where a unique token, e.g., “−1” is used in the record ID field. The error information and text and binary data may be provided to allow a controller to pass data from a previously-called processor to a next processor. Moreover, an execute method may be configured to return a status to the controller, indicating whether the execution was successful. If an unsuccessful execution occurs, the error information may be processed by the controller as appropriate, i.e., by rolling back the transaction, aborting processing of the message, and/or updating the message status. It may also be desirable to keep track in the controller of the time it takes to process a message, and use this information to store statistical information regarding the operation of the controller. The time to process may also be utilized to trigger a watchdog timer should a processor not process a message in an appropriate period of time. [0081]
  • Processor Component [0082]
  • FIG. 7 illustrates a [0083] processor routine 130 executed by generic processor component consistent with the invention. In general, routine 130 represents the execute method exposed by the respective processor. Once invoked, block 132 is called to read the message record for the relevant data, and then to block 134 to perform processing on the message as required.. Block 136 then determines whether the processor is being executed in batch mode (i.e., where a batch mode is indicated in the method call), and if so, control passes to block 138 to determine whether the last message has been processed.
  • As described above, when in batch mode, a unique token is applied in the function call that indicates to the processor component that all messages of a particular message type should be processed. Thus, block [0084] 132, when in batch mode, initially reads the first message matching the particular message type handled by the associated controller. Otherwise, in single record mode, the message record identified in the method call is read. Subsequent loops through block 132 when in batch mode will call additional unprocessed messages maintained in the message repository.
  • Returning to block [0085] 136, if not in batch mode, block 136 passes control to block 140 to return appropriate success or failure information to the calling controller, as well as provide state information (if applicable) to the controller. Also, as shown in block 138, if the last message in a batch mode has been processed, block 138 passes control to block 140.
  • Once [0086] block 140 is complete, routine 130 terminates.
  • It will be appreciated that the processing performed by a processor component may vary greatly depending upon the particular type of device being managed by that processor. For example, a processor may be configured to send a message to its associated external device to perform tasks on that device, and in a format that is understood by the device. Moreover, a processor may respond to a particular message by returning status information or requested information, e.g., by modifying the message record as appropriate. A processor may also be configured to generate new messages, e.g., response messages, which are placed on the message repository and processed in a like manner. Other functions, e.g., updating the database, sending an email, posting data to a web page, interfacing with another system, or practically any other function capable of being performed by a computer, may also be performed by a processor consistent with the invention. [0087]
  • The configuration of the controller and processor components as described above in connection with FIGS. 6 and 7 presupposes that processors generally execute sequentially and within the same thread. However, in other embodiments, a wider variety of execution sequences may be supported, thus providing an extremely flexible and modular architecture by which custom functions may be generated from pre-existing processor components to support a wide variety of functionality while minimizing the amount of new program code that needs to be generated to implement a communication executive in a different environment. For example, FIG. 8 illustrates an [0088] exemplary controller 150 and various function calls to a number of processors 152 in response to the reception of a particular type of message. As shown by processors A, B and C, a controller may be capable of spawning multiple processors that execute concurrently in different threads. Moreover, as illustrated by processor D, controller 150 may also spawn processors sequentially within the same thread. Furthermore, as illustrated by processors E and F, not only can a controller spawn a processor, but one processor may spawn one or more additional processors that are executed in the same or different threads, and which may execute sequentially or concurrently in those different threads. In general, the modular architecture by the herein-described communication executive provides substantial flexibility and maximizes the ability to reuse code from generic or pre-existing environments.
  • Message Validation Component [0089]
  • FIG. 9 next illustrates an exemplary message [0090] validation component routine 160 executed by a message validation component consistent with the invention. As described above, a message validation component may be dynamically instantiated in response to reception of a message of a particular type and/or destined for a particular receiving device, and preferably before the message is placed on the message repository. The purpose of a message validation component is to perform high-level message validation prior to placement of the message on the repository, so as to minimize the amount of custom high-level processing that must occur via the controllers and processors, and thus limit the degree of customization required in such components.
  • [0091] Routine 160 begins in block 162 by reading the message data passed from the COM service. Block 164 then analyzes the message data according to business rules that are encoded into the validation component. The message validation component operates generally as a plug-in associated with a message type and/or a particular message receiver, and is configured to analyze, validate, modify or perform whatever tasks are necessary to properly format the message for processing by the communication executive. In general, a message validation component has the capability of accepting a message, modifying a message, or rejecting a message and returning any errors to the calling service. An advantage of message validation is the ability to provide real-time validation of messages so a requester does not need to check back to see if the message was accepted or rejected.
  • Data analysis in [0092] block 164 generates a result that indicates whether the message should be accepted, rejected or accepted with changes. As shown in block 166, if the message is to be rejected, control passes to block 168 to return “FALSE” to the COM service, indicating that the message has been rejected. Routine 160 is then complete.
  • As shown in [0093] block 170, if the message is accepted without changes, control passes to block 172 to return “TRUE” to the COM service, and terminate routine 160.
  • As shown in [0094] block 174, if modifications are required prior to accepting the message, such modifications are performed, then control passes to block 172 to return “TRUE”; to the COM service and terminate routine 160.
  • Therefore, it can be seen through appropriate analysis according to high-level business rules, message validation can be performed with minimal customization required to the overall communication executive. This modular and extensible approach therefore facilitates incorporating business rules into a communication system with minimal customization. [0095]
  • Exemplary Data Structures [0096]
  • FIG. 10 generally illustrates one exemplary implementation of the data structures maintained within a [0097] message repository 180 consistent with the invention. Messages are maintained in message record table 182. Binary and text data are respectively associated with a particular message using the tables shown at 184 and 186, respectively. Message records are also associated with particular “systems” via a table 188 that maintains the valid system ID's and message types. Controller records are stored in a controller table 190 with a mapping record 192 linking a controller to a delegator defined in a delegator record 194. Likewise, each controller is linked to processors via a table 196, with processors defined by processor records in table 198. Statistical data is maintained in a statistics table 200, with error data maintained in an error table 202, linked to binary and text data in tables 204 and 206.
  • Descriptions of the exemplary fields within each of tables 182-206 of FIG. 10 are provided below: [0098]
    TABLE 182
    is the main queue (the Cube) for all tasks:
    Field Name Field Type Description
    MsgID Auto (Number) The ID generated for the Cube record.
    FromID VarChar2 The system ID that generated the
    message.
    ToID VarChar2 The target system ID for the message.
    MsgType VarChar2 The target message type.
    DateTime Date The date and time stamp when the
    record was entered into the Cube.
    Status Number The current status of the message. Valid
    values are: 0 (New), 1 (In Progress),
    2 (Complete), or 3 (Error).
    Misc1 VarChar2 Free form text field. Contains any data
    necessary for the message to be
    processed.
    Misc2 VarChar2 Free form text field. Contains any data
    necessary for the message to be
    processed.
    Misc3 VarChar2 Free form text field. Contains any data
    necessary for the message to be
    processed.
    Misc4 VarChar2 Free form text field. Contains any data
    necessary for the message to be
    processed.
    Misc5 VarChar2 Free form text field. Contains any data
    necessary for the message to be
    processed.
    DelegatorID Number The ID of the Delegator that is currently
    working on this task.
    Priority Number Priority of this task.
    ErrorCode Number The ID of the error code (if the task
    failed).
    ErrorMessage VarChar2 The error message generated (if the
    task failed).
  • 1. tblCube Table [0099]
    TABLE 194
    contains all the Delegators and their settings:
    Field Name Field Type Description
    DelegatorID Auto ID of the Delegator.
    (Number)
    DelegatorDescription VarChar2 Description of the Delegator.
    CycleTime Number Number of seconds this Delegator
    will wait before looking into the
    Cube for records for each system.
    OkToRun Number If set to Yes, then this Delegator has
    not been shut down.
  • 2. tblDelegators [0100]
    TABLE 190
    contains all the Controllers and their settings:
    Field Name Field Type Description
    ControllerID Auto (Number) ID of the Controller.
    SystemID VarChar2 The System ID that this Controller is
    responsible for.
    MsgType VarChar2 The type of message that this Controller
    is responsible for.
  • 3. tblController [0101]
    TABLE 198
    contains all the Processors and their settings:
    Field Name Field Type Description
    ProcessorID Auto (Number) ID of the Processor.
    ProcessorClass VarChar2 String used in the VB program to
    instantiate the COM object
    (i.e. ‘prjProcessor1.clsMain’).
    BatchProcessing Number This indicates whether the Controller
    will call the Processor for each
    message (single record), or once for
    all messages (batch).
    IsTransactional Number If Yes, transactional processes have
    been implemented and the system
    should check Object Context values
    when processing.
  • 4. tblProcessors [0102]
    TABLE 192
    links a Delegator with its Controllers:
    Field Name Field Type Description
    DelegatorID Number The ID of the Delegator that will call
    this Controller.
    ControllerID Number The ID of the Controller that this
    Delegator will call.
    ControllerOrder Number The order in which this Delegator will call
    this Controller
  • 5. tblDelegatorControllers [0103]
    TABLE 196
    links a Controller with its Processor:
    Field Name Field Type Description
    ControllerID Number The ID of the Controller that will call this
    Processor.
    ProcessorID Number The ID of the Processor that this Controller
    will call.
    ProcessOrder Number The order in which this Controller will call this
    Processor.
  • 6. tblControllerProcessors [0104]
    TABLE 202
    is updated with any errors that occur
    during the processing of a message:
    Field Name Field Type Description
    ID Auto (Number) ID of the error record.
    QueueID Number ID of the task from the Cube.
    From ID VarChar2 The system ID that generated the
    task.
    ToID VarChar2 The system ID that received the task.
    MsgType VarChar2 The message type.
    ErrorCode Number The error code generated during the
    processing of this message.
    ErrorMessage VarChar2 The error message generated during
    the processing of this message.
    DateTimeEntered Date The Date/Time stamp when the
    message was entered.
    DateTimeError Date The Date/Time stamp when the error
    occurred.
    Misc1 VarChar2 Value of the corresponding field from
    the Cube.
    Misc2 VarChar2 Value of the corresponding field from
    the Cube.
    Misc3 VarChar2 Value of the corresponding field from
    the Cube.
    Misc4 VarChar2 Value of the corresponding field from
    the Cube.
    Misc5 VarChar2 Value of the corresponding field from
    the Cube.
    ErrorProcessor VarChar2 The Processor (description) where the
    error occurred.
    Priority The priority of the message from the
    Cube.
    DelegatorID Number The ID of the Delegator that was
    processing this message.
  • 7. tblCube Error [0105]
    TABLE 188
    includes the valid System ID's and message types:
    Field Name Field Type Description
    SystemID Varchar2 The name of the system.
    MsgType VarChar2 The message type.
    AIProcessorClass VarChar2 The string used in the CreateObject
    statement for the MV processor
    (optional).
    MaxTimeThreshold Number The maximum length of time in seconds
    that a message of this type should take
    to process. A value of −1 indicates no
    threshold.
  • 8. tblSystems [0106]
    TABLE 200
    includes statistical data:
    Field Name Field Type Description
    StatisticalDate Date The date when the statistics were gathered.
    SystemID VarChar2 The ID of the System for these statistics.
    MsgType VarChar2 The message type.
    LastSuccess Date The last date/time when a message was
    successful.
    LastFailure Date The last date/time when a message failed.
    TotalAttempts Number Number of attempts.
    TotalFailed Number Number of failures.
    CurrentDate Number Current date.
  • 9. tblStatistics [0107]
    TABLE 218
    includes all long text data for a message:
    Field Name Field Type Description
    MsgID Number ID of the message.
    TextData Long Field that contains all text data that will be
    necessary to complete the task.
  • 10. tblCubeText [0108]
    TABLE 188
    includes all binary data for a message:
    Field Name Field Type Description
    MsgID Number ID of the message.
    BinaryData Long Raw Field that contains all binary data that will be
    necessary to complete the task.
  • 11. tblCubeBinary [0109]
    TABLE 206
    includes all long text for an error record:
    Field Name Field Type Description
    ID Number ID of the message.
    TextData Long Field that contains all text data that will be
    necessary to complete the task.
  • 12. tblCubeErrorText [0110]
    TABLE 204
    includes all binary data for an error record:
    Field Name Field Type Description
    ID Number ID of the message.
    BinaryData Long Raw Field that contains all binary data that will be
    necessary to complete the task.
  • 13. tblCubeErrorBinary [0111]
  • In the illustrated implementation, the system ID refers to the type of communication system utilized in the communication executive. As will be appreciated by one of ordinary skill in the art having the benefit of the instant disclosure, multiple systems may be interfaced through the same communication executive. In situations where only a single system is being interfaced in the manner described herein, the system ID-related fields may be omitted from the various tables. [0112]
  • Moreover, it will be appreciated that the message types defined for a particular system will vary from system to system. Message types may be distinguished based upon the type of receiving device, the type of sending device, the type of resource being utilized, the type of transaction (e.g., based upon logical distinctions between activities performed with the system), etc. [0113]
  • Exemplary Message Repository Stored Procedures [0114]
  • While other specific sets of procedures may be envisioned in different environments, one exemplary set of message repository stored procedures that may be utilized in connection with the above-described data structures are listed below. Such methods are made available by the message repository. In addition, it may be desirable to permit processor components to invoke these methods if data is required from a message, or if data needs to be written to a message. [0115]
  • In implementations where the message repository is implemented using an SQL-compatible database, it is envisioned that the below procedures may be created using SQL statements, the use of which is well known in the art. [0116]
  • The exemplary procedures are as follows: [0117]
    sp_SendMessage Writes a record from the Cube.
    sp_RemoveMessage Deletes a record from the Cube.
    sp_PurgeAll Purges all records from the Cube with a
    given “to name” and message type.
    sp_UpdateStatus Updates the status of a record to a
    supplied value.
    sp_InsertError Inserts an error into the Error Log.
    sp_AddStatistics Adds a new statistics record to the
    tblStatistics table.
    sp_AutoAddStatistics Adds new statistical record for each
    calendar day. May be executed through
    a job that runs once every day at
    12:00 a.m.
    sp_UpdateStatistics Updates statistics from the tblStatistics
    table.
    sp_UpdateMsgDelegatorID Updates the Delegator ID field in a Cube
    record with the ID of the Delegator that is
    processing the message.
    sp_UpdateDelegatorStatus Updates the status of a Delegator. Read to
    determine if a Delegator is free to look for
    messages in the Cube.
    sp_RemoveOldStatistics Removes statistics from the tblStatistics
    table that are older than 30 days.
    This procedure may be scheduled to run
    automatically each day.
    sp_Update Delegator Status Updates the OkToRun field for the
    Delegator.
  • It will be appreciated that the implementation of both the above-described data structures and the stored procedures would be well within the ability of one of ordinary skill in the art having the benefit of the instant disclosure. [0118]
  • Exemplary COM Service Methods [0119]
  • The COM services may expose the following methods to calling systems to execute. The COM service object may be stateless—that is, all data needed for a method to function may be passed in as parameters, and all variable within the object may be declared as local variables: [0120]
  • ReadAllMessages(ToID, MsgType, OUT Error Code, OUT Error Description, OUT Messages)
  • Returns an XML Stream of Record ID's that are currently in the Cube that match the ToID and MsgType parameters. Returns TRUE if successful or FALSE if unsuccessful. If the method returns FALSE, the Error_Code and Error_Description contain the error code and error message that occurred. The Messages parameter may be an XML stream with the following layout: [0121]
    <Messages>
    <MsgID></MsgID>
    <MsgID></MsgID>
    ...
    </Messages>
  • This XML stream can then be parsed and the ReadMsgData method can be called to obtain individual record information from the Cube. [0122]
  • SendMsg (FromID, ToID, MsgType, Priority, OUT MsgID, OUT Error Code, OUT Error Description, Optional Misc1, Optional Misc2, Optional Misc3, Optional Misc4, Optional Misc5, Optional TextDataIn, Optional BinaryDataIn)
  • Adds a record to the Cube. Returns TRUE if successful, FALSE if unsuccessful. If the return value is FALSE, then Error_Code and Error_Description may contain the error code and the error message that occurred while attempting to add this record. The Send method may automatically call the Execute method for the MV component associated with this SystemID and MessageType (if one exists). If the method returns TRUE, then the MsgID will contain the ID of the message from the Cube that can be used in conjunction with the Delete, CheckStatus, and ReadMsgData methods. [0123]
  • Regarding the Send method, regardless of whether or not the Delegator for that system has been disabled or closed, the COM Service will still typically enter records into the Cube. [0124]
  • DeleteMsg (MsgID, OUT Error Code, OUT Error Description)
  • Removes a message from the Cube based on the RecordID. Returns TRUE if successful or FALSE if unsuccessful. If the Delete method was unsuccessful, the Error_Code and Error_Description parameters may contain the actual error code and error message that occurred. [0125]
  • Purge (ToID, MsgType, OUT Error Code, OUT Error Description)
  • Removes all messages from the Cube that match the ToID and MsgType. Returns TRUE if successful and FALSE if unsuccessful. If the Purge method was unsuccessful, the Error_Code and Error_Description parameters may contain the actual error code and error message that occurred. [0126]
  • CheckMsgStatus (MsgID, OUT MsgStatus, OUT Error Code, OUT Error Description)
  • Checks the status of a message within the Cube based on the MsgID. Status will contain the current status of the Cube message (see Status in the tblCube table above). Returns TRUE if successful and FALSE if unsuccessful. If the CheckStatus method was unsuccessful, the Error_Code and Error_Description parameters may contain the actual error code and error message that occurred. [0127]
  • ReadMsgData (MsgID, OUT FromID, OUT ToID, OUT MsgType, OUT Priority, OUT Misc1, OUT Misc2, OUT Misc3, OUT Misc4, OUT Misc5, OUT TextDataIn, OUT BinaryDataIn, OUT DelegatorID, OUT Error Code, OUT Error Description)
  • Returns all the values from the Cube fields based on the MsgID into the parameters above. Also returns TRUE or FALSE. If the method returns TRUE, then the Error_Code parameter may contain the error code and the Error_Description parameter may contain the error message. [0128]
  • CheckDelegatorStatus (DelegatorID, OUT DelegatorStaus, OUT Error Code, OUT Error Description)
  • Checks the status of the Delegator based on the Delegator ID passed in. The OkToRun value will be returned in the OUT_DelegatorStatus field. This value may be a Boolean value. [0129]
  • DeleteMsg (MsgID, OUT Error Code, OUT Error Description)
  • Deletes a message based on the MsgID value. OUT_Error_Code and OUT_Error_Description may contain the error number and error description if any error occurs. [0130]
  • GenerateErrorRecord (FromID, ToID, MsgType, Priority, MsgID, MsgError Code, MsgError Description, ErrorDate, Processor, DelegatorID, OUT Error Code, OUT Error Description, Optional Misc1, Optional Misc2, Optional Misc3, Optional Misc4, Optional Misc5, Optional TextDataIn, Optional BinaryDataIn)
  • Generates a new error message. [0131]
  • GetAllControllerProcessors (ControllerID, OUT Processors, OUT Error Code, OUT Error Description)
  • Returns an XML stream of all the Processors based on the Controller ID. The XML may have the following format: [0132]
    <Processors>
    <ProcessorID></ProcessorID>
    <ProcessorOrder></ProcessorOrder>
    </Processor>
  • GetAllDelegatorControllers (DelegatorID, OUT Controllers, OUT Error Code, OUT Error Description)
  • Returns an XML stream of all the Controllers based on the Delegator ID. The XML may have the following format: [0133]
    <Controllers>
    <ControllerID></ControllerID>
    <ControllerOrder></ControllerOrder>
    </Controllers>
  • GetAllDelegators (OUT Error Code As Variant, OUT Error Description, OUT Delegators)
  • Returns an XML stream of all the Delegators. The XML may have the following format: [0134]
    <Delegators>
    <DelegatorID></DelegatorID>
    </Delegators>
  • GetControllerInfo (ControllerID, OUT SystemID, OUT MsgType, OUT Error Code, OUT Error Description)
  • Returns the settings for a Controller based on the Controller ID passed in. [0135]
  • GetDelegatorInformation (DelegatorID, OUT DelegatorDescription, OUT CycleTime, OUT DelegatorStatus, OUT Error Code, OUT Error Description)
  • Returns all of the Delegator information based on the Delegator ID passed in. [0136]
  • GetProcessorInfo (ProcessorID, OUT ProcessorClass, OUT BatchProcessing,OUT IsTransactional, OUT Error Code, OUT Error Description)
  • Returns Processor information based on the Processor ID passed in. [0137]
  • GetSystemInfo (SystemID, MsgType, OUT AIClass, OUT MaxTimeThreshold, OUT Error Code, OUT Error Description)
  • Returns information from tblSystems based on the System ID. [0138]
  • UpdateDelegatorStatus (DelegatorID, NewStatus, OUT Error Code, OUT Error Description)
  • Updates the Delegator OkToRun status with the NewStatus Boolean value. [0139]
  • UpdateMsgDelegatorStatus (MsgID, DelegatorID, OUT Error Code, OUT Error Description)
  • Updates the message in the Cube with the Delegator ID passed in. [0140]
  • UpdateMsgStatus (MsgID, NewStatus, OUT Error Code, OUT Error Description)
  • Updates the status of the message to the NewStatus value passed in. [0141]
  • UpdateStatistics (SystemID, MsgType, ProcessedOK, StatDate, OUT Error Code, OUT Error Description)
  • Updates the current statistic record for the System ID and Message Type. ProcessedOK may be a Boolean value. [0142]
  • Exemplary Applications [0143]
  • The above-described communication executive has a wide variety of uses in various applications, particularly where it is desirable to interconnect electronic devices having different queuing strategies and/or business rules. [0144]
  • For example, FIG. 11 illustrates a [0145] remote sensing environment 220 that utilizes a central processor 221 including a communication executive 222 that interfaces a plurality of remote sensing stations, or sensors, 224 with a data repository 225 and analysis engine 226. Additional details regarding such a system are described, for example, in the aforementioned related U.S. Provisional Application No. 60/307,348, which is incorporated by reference herein.
  • In this remote sensing environment, centralized analysis functionality may be used to permit, for example, independent entities to contract for analysis services to be provided by the central processor, needing only access to an NIR sensor and appropriate networking capabilities. In such a system, the relatively complex processing required to perform quantitative analysis can be maintained in a central location, thus reducing the complexity and cost of the remote stations. Moreover, any required customization of remote stations can be minimized. Further, centralized analysis allows for greater control over the models used in the analysis, as well as facilitates updates or improvements to the models since they are typically not distributed to the remote stations. [0146]
  • Each [0147] remote sensor 224 may include, for example one or more near infrared (NIR) instruments 228 interfaced with a client-side computer, or user interface, 230, e.g., a laptop or other single-user computer. In this exemplary application, the NIR instruments 228 are utilized to generate spectral data for a material for the purpose of performing quantitative and/or identification analysis on materials or compositions located at remote locations. The spectral data generated by the remote sensors is then transmitted either in raw or pre-processed form to a central processor including an analysis engine that analyzes the spectral data using chemometrics or other multivariate methods to determine the quantitative properties of a particular material or composition. The analysis engine may also return the processed results to the remote station from which the data was generated.
  • Each remote sensor may utilize, for example, a Matrix-F NIR instrument available from Bruker Optics Inc. A laptop or other web-enabled computer may then be used to provide user input and display capability for communicating with a central web server. In some embodiments, a client computer may not be required, e.g., if the instrument itself incorporates suitable networking and display capabilities. Other NIR instruments or sensing systems may be used in the alternative as well. [0148]
  • To interface [0149] central processor 221 with the remote sensors 224, it is envisioned that the remote sensors would be coupled to the communication executive 222 via a network such as the Internet 232. Through the use of conventional Internet-based based protocols, the spectral data (as well as other measurement data such as input data received from an operator) and the processed measurement results may be transmitted via HTML-compatible forms processed by a web server 234, which is interposed between the sensors and the communication executive 222. The web server may incorporate practically any conventional web server technology, e.g., Active Server Page (ASP) services.
  • [0150] Analysis engine 226 includes an analysis controller 240 coupled to a model engine 242, which relies on stored models 244 in data repository 225 to apply chemometric analysis to spectral data generated by the remote sensors. An analysis database 246 is also provided in data repository 225 to store the spectral data and processed results. Databases 244 and 246 may be integrated into the same database management system, or may be maintained in separate such systems.
  • [0151] Communication executive 222 includes a cube 250 that is accessed via a COM Service 252 instantiation responsive to requests received by web server 234. A delegator 254 operates on messages received by cube 250, resulting in the dynamic instantiation of a controller 256 responsive to an appropriate message. Controller 256 has access to one or more processors 258 functioning as request handlers for the central processor. Each processor 258 is coupled to receive and transmit data from and to analysis database 246, as well as to forward requests in an appropriate format to analysis controller 240.
  • Among other benefits, the herein-described system of FIG. 11 provides the capability for near real-time processing and scalability to permit a large number of remote sensors to access centralized models for the purpose of processing spectral data and returning measurement results to the remote sensors. As a result, the local processing required at each remote sensor can be minimized. [0152]
  • Moreover, more detailed and comprehensive models may be maintained in the central processor for each remote sensor, and updated over time to improve the precision and accuracy of the results generated by the central processor. [0153]
  • Given the distributed nature or the aforementioned system and the ability to couple the remote sensors to the central processor over a public network such as the Internet, the number of remote sensors requesting test results will typically be unknown at any given point in time, so the communication executive must be capable of handling a large number of requests at a time. Through the use of the active queue and dynamic instantiation capabilities of the herein-described communication executive, varied numbers of incoming requests may be adequately handled despite any variances in the queuing strategies of the remote sensors and the central processor. [0154]
  • The herein-described communication executive provides first-in-first-out queuing, as well as automated message detection to enable near real-time processing. Moreover, the pipeline-processing framework facilitates extension of the message processing functionality of the communication executive due to the relative ease in which additional components can be added to the process. Moreover, support for the use of message validation components facilitates pre-processing of all incoming requests from remote sensors. [0155]
  • In use, whenever analysis of an unknown material is desired, an operator at a remote sensor performs NIR spectroscopy on the material to generate measurement data, e.g., spectral data. An application running on the associated computer for the NIR instrument then transmits the measurement data over the Internet to [0156] web server 234. Some preprocessing of the measurement data may also be performed prior to transmission to web server 234.
  • In response to the receipt of a request from a remote sensor, the web server instantiates a [0157] COM Service component 252, and invokes a send message function to push the measurement data into the message repository (cube). The COM Service then waits for the status of the message to change. The web server also writes the measurement data to the analysis database at the same time as adding the message to the cube.
  • In response to the enqueuing of a new message on the cube, the delegator associated with that message detects a new message and instantiates an appropriate controller component. The controller component subsequently launches one or more processor components as defined in the configuration tables for the cube. The processor components then read the measurement data from the cube, and forward the data to the analysis engine (and optionally, the analysis database as well) to perform chemometric analysis of the data. The request made by the processor is typically in a format that is native to the analysis engine. [0158]
  • In response to the request, the analysis engine performs the desired analysis of the measurement data, and stores the results in [0159] analysis database 246. In connection with writing the results back to the analysis database, the request in the cube is updated to a “complete” status by the processor, and the web server reads the information from the analysis database based upon a detected “complete” status in the cube. The web server then returns an HTML-compatible web page to the operator, presenting the requested results.
  • Another exemplary system incorporating a communication executive consistent with the invention is illustrated at [0160] 270 in FIG. 12. System 270 is an example of a manufacturing control system in which a communication executive 272 is utilized to interface a manufacturing automation system 274 (incorporating control devices and/or sensor devices), as well as additional sensors such as an NIR sensor 276, with a manufacturing database 290. The manufacturing automation system 274 may incorporate a manufacturing process automation system such as the DeltaV automation system available from Fisher-Rosemount.
  • [0161] Communication executive 272 includes a message repository or cube 276 accessed by one or more instantiations of COM Service 278. A delegator 280 and controller 282 are also shown. Moreover, a plurality of processors 284, 286 and 288 are illustrated for performing different tasks in response to messages placed on the cube.
  • A [0162] manufacturing database 290 is coupled to the processors, as well as to a task assembler 292 and at line processor 294. An analysis controller, e.g., as described above in connection with FIG. 11, may also interface with processor 284 for the purpose of interacting with NIR sensor 276, which provides additional feedback for a manufacturing process.
  • In use, the system of FIG. 12 operates as a task-based control system, where tasks are performed in response to an indication that a new task is required by either the [0163] task assembler 292 or at line processor 294. Communication with the communication executive is established through the appropriate COM Service 278, which writes a request to the cube 276 as appropriate. The respective task assembler or at line processor then monitors the progress of the message through the COM Service.
  • In response to the placement of a new message on the cube, the delegator that is responsible for that type of message reads the new message from the cube, and instantiates a controller responsible for handling such messages. The controller then updates the status of the message to “in process,” and based upon the settings in the database, calls one or [0164] more processors 284, 286 and 288 to handle the message as appropriated, passing data as needed. Processors 284 and 288 have the ability to communicate with manufacturing database 290 to retrieve appropriate information, as well as write the results to the database. For example, processor 288 may log events to the manufacturing database through its operation as an event log controller. Likewise, processor 284 may perform the function of an analysis request handler for interfacing with analysis controller 296. Processor 286 may function as a spreadsheet handler, e.g., to perform complex calculations.
  • Once the processors have completed processing of a current message, the controller associated with that message updates the status of the message to “complete.” The calling system (e.g., [0165] task assembler 292 or at line processor 294) will detect the “complete” status through the COM Service, and read any necessary information from the manufacturing database. The task assembler 292 may then interact with the manufacturing automation system based upon the new information.
  • Yet another example embodiment within which a communication executive may find use is an inventory management system, as shown at [0166] 300 in FIG. 13. System 300 is an example of an inventory management system in which a communication executive 302 is utilized to interface one or more inventory measurement sensors 304 with an inventory database 306. Each sensor 304 may be implemented using any device capable of detecting a particular type of inventory (e.g., a fluid level, a particulate level, etc.), coupled with functionality for transmitting the sensed data for collection by the inventory management system. For example, sensors 304 may be grouped as illustrated at 308 into a tier of measurement devices located at supplier sites. Other sensors 304 may be coupled to a data consolidator 310 using third party technology. In either event, data generated by the sensors 304 is output over a communications network such as the Internet 312 to an Internet webserver 314, e.g., providing ASP pages suitable for receiving the data in an appropriate format. For example, sensors 304 and/or consolidator 310 may be configured to generate XML data streams, and to post such XML-formatted data to an ASP page resident on the web server. Consolidator 310, for example, may be capable of pooling the data from multiple sensors 304 into a consolidated XML document.
  • In other embodiments, some or all of the [0167] sensors 304 may be coupled to webserver 314 via other communication networks. Moreover, in other embodiments, a non-Internet protocol implementation may be utilized, whereby webserver 314 may not be utilized.
  • [0168] Communication executive 302 includes one or more instantiations of COM Service 320 that submit messages to a message repository or cube 322. A delegator 324 and controller 326 are also shown. Moreover, consistent with the invention, one or more processors 328 are dynamically instantiated to perform actions in connection with inventory database 306 in response to messages placed on the cube.
  • In use, the system of FIG. 13 collects inventory data from [0169] sensors 304 and forwards the data to database 306. In addition, processor 328, or alternatively, other program code, may be configured to track current inventories and, as necessary, notify purchasing personnel and/or automatically order or schedule the delivery of additional inventory. Moreover, in some implementations feedback information may be provided to the various sites served by sensors 304.
  • Other modifications will be apparent to one of ordinary skill in the art. Therefore, the invention lies in the claims hereinafter appended. [0170]

Claims (41)

What is claimed is:
1. An apparatus configured to interface communications between sending and receiving electronic devices, the apparatus comprising:
(a) a message buffer configured to receive messages from at least one sending electronic device, each message associated with at least one message type among a plurality of message types;
(b) a plurality of processor components, each configured to perform a task associated with a message received by the message buffer, wherein at least one processor component is configured to initiate an action on a receiving electronic device;
(c) a plurality of controller components, each associated with a message type among the plurality of message types, and each configured to handle a message associated with such associated message type by dynamically instantiating at least a subset of the plurality of processor components; and
(d) at least one delegator component associated with at least one message type among the plurality of message types and configured to monitor the message buffer for messages associated with such associated message type, the delegator component further configured to dynamically execute a controller component associated with such associated message type in response to detecting an addition of a message associated with such associated message type to the message buffer.
2. The apparatus of claim 1, wherein the receiving electronic device comprises a resource.
3. The apparatus of claim 1, wherein the sending electronic device comprises a near infrared sensor, and wherein the receiving electronic device comprises an analysis engine.
4. The apparatus of claim 3, wherein the apparatus is coupled to the sending electronic device via the Internet.
5. The apparatus of claim 1, wherein the delegator component is further configured to be selectively enabled and disabled in response to user input, and wherein the delegator component is configured to dynamically execute the controller component only if the delegator component is enabled when the message is added to the message buffer.
6. The apparatus of claim 5, further comprising a buffer services component configured to add the message to the message buffer irrespective of whether the delegator component is enabled.
7. The apparatus of claim 1, wherein the delegator component is further configured to associate the message with the delegator component to restrict another delegator component from handling the message.
8. The apparatus of claim 1, wherein the delegator component is further configured to dynamically instantiate the controller component in response to detecting the addition of the message to the message buffer.
9. The apparatus of claim 1, wherein each controller component is further configured to retrieve from the message buffer a list of messages awaiting processing by the controller component.
10. The apparatus of claim 1, wherein each controller component is further configured to determine which of the plurality of processor components need to be executed to handle a message.
11. The apparatus of claim 10, further comprising a database that maintains a mapping of processor components to controller components, wherein each controller component is configured to determine which of the plurality of processor components need to be executed to handle a message by accessing the database.
12. The apparatus of claim 10, wherein a first controller component is configured to sequentially execute first and second processor components when handling a message associated therewith.
13. The apparatus of claim 10, wherein a first controller component is configured to concurrently execute first and second processor components when handling a message associated therewith.
14. The apparatus of claim 1, wherein a first processor component among the plurality of processor components is configured to batch process a plurality of messages stored in the message buffer and associated with a first message type.
15. The apparatus of claim 1, wherein a first processor component among the plurality of processor components is configured to retrieve message data from a message record stored in the message buffer in connection with initiating an action with a receiving electronic device.
16. The apparatus of claim 15, wherein the first processor component among the plurality of processor components is configured to return result data by updating the message record stored in the message buffer.
17. The apparatus of claim 1, further comprising:
(a) a plurality of message validation components, each message validation component associated with at least one of a message type and a receiving electronic device, each message validation component configured to validate a message sent to the message buffer by a sending electronic device prior to addition of the message to the message buffer, and each message validation component further configured to return a result that indicates whether the message should be accepted by the message buffer; and
(b) a buffer services component configured to process a first message sent to the message buffer by invoking a message validation component associated with the first message and selectively adding the first message to the message buffer based upon the result returned by the invoked message validation component.
18. A method of communicating between sending and receiving electronic devices, the method comprising:
(a) actively monitoring a message buffer for addition of a message associated with a first message type among a plurality of message types;
(b) in response to detecting addition of a message associated with the first message type, dynamically executing a first controller component among a plurality of controller components that is associated with the first message type; and
(c) after the first controller component is executed, dynamically instantiating with the first controller component at least a subset of a plurality of processor components to initiate an action on a receiving electronic device.
19. The method of claim 18, wherein the sending electronic device comprises a near infrared sensor, and wherein the receiving electronic device comprises an analysis engine.
20. The method of claim 18, further comprising receiving the message from the sending electronic device via the Internet.
21. The method of claim 18, wherein actively monitoring the message buffer and dynamically executing the first controller component are performed by a delegator component, wherein the delegator component is further configured to be selectively enabled and disabled in response to user input, and wherein dynamically executing the first controller component is performed only if the delegator component is enabled when the message is added to the message buffer.
22. The method of claim 21, further comprising adding the message to the message buffer irrespective of whether the delegator component is enabled.
23. The method of claim 21, further comprising, in response to detecting addition of the message, associating the message with the delegator component to restrict another delegator component from handling the message.
24. The method of claim 18, further comprising dynamically instantiating the first controller component in response to detecting the addition of the message to the message buffer.
25. The method of claim 18, further comprising retrieving, with the first controller component, a list of messages from the message buffer that are awaiting processing by the first controller component.
26. The method of claim 18, further comprising determining with the first controller component which of the plurality of processor components need to be executed to handle the message.
27. The method of claim 26, wherein determining which of the plurality of processor components need to be executed includes accessing a database that maintains a mapping of processor components to controller components.
28. The method of claim 26, wherein dynamically instantiating the subset of processor components includes sequentially executing first and second processor components.
29. The method of claim 26, wherein dynamically instantiating the subset of processor components includes concurrently executing first and second processor components.
30. The method of claim 18, further comprising batch processing a plurality of messages stored in the message buffer and associated with the first message type with a first processor component among the subset of processor components.
31. The method of claim 18, further comprising retrieving message data from a message record stored in the message buffer in connection with initiating an action with a receiving electronic device with a first processor component among the subset of processor components.
32. The method of claim 31, further comprising returning result data with the first processor component by updating the message record stored in the message buffer.
33. The method of claim 18, further comprising:
(a) receiving the message from a sending electronic device;
(b) in response to receiving the message, determining whether any of a plurality of message validation components is associated with at least one of the first message type and the receiving electronic device;
(c) invoking any associated message validation component to validate the message prior to addition of the message to the message buffer, wherein each such associated message validation component returns a result that indicates whether the message should be accepted by the message buffer; and
(d) selectively adding the message to the message buffer based upon the result returned by each associated message validation component.
34. A program product, comprising:
(a) a program configured to interface communications between sending and receiving electronic devices, the program including:
(i) a message buffer configured to receive messages from at least one sending electronic device, each message associated with at least one message type among a plurality of message types;
(ii) a plurality of processor components, each configured to perform a task associated with a message received by the message buffer, wherein at least one processor component is configured to initiate an action on a receiving electronic device;
(iii) a plurality of controller components, each associated with a message type among the plurality of message types, and each configured to handle a message associated with such associated message type by dynamically instantiating at least a subset of the plurality of processor components; and
(iv) at least one delegator component associated with at least one message type among the plurality of message types and configured to monitor the message buffer for messages associated with such associated message type, the delegator component further configured to dynamically execute a controller component associated with such associated message type in response to detecting an addition of a message associated with such associated message type to the message buffer; and
(b) a signal bearing medium bearing the program.
35. An apparatus configured to interface communications between sending and receiving electronic devices, the apparatus comprising:
(a) a message buffer configured to receive messages from at least one sending electronic device, each message associated with at least one message type among a plurality of message types;
(b) a plurality of message validation components, each message validation component associated with at least one of a message type and a receiving electronic device, each message validation component configured to validate a message sent to the message buffer by a sending electronic device prior to addition of the message to the message buffer, and each message validation component further configured to return a result that indicates whether the message should be accepted by the message buffer; and
(c) a buffer services component configured to process a first message sent to the message buffer by invoking a message validation component associated with the first message and selectively adding the first message to the message buffer based upon the result returned by the invoked message validation component.
36. The apparatus of claim 35, wherein the invoked message validation component is configured to selectively modify the first message prior to the first message being added to the message buffer.
37. The apparatus of claim 35, wherein the invoked message validation component is configured to reject the first message by returning a result that indicates that the message should not be accepted by the message buffer, and wherein the buffer services component is configured to prevent the first message from being added to the message buffer in response to the result indicating that the message should not be accepted by the message buffer.
38. A method of communicating between sending and receiving electronic devices, the method comprising:
(a) receiving a message from a sending electronic device, the message directed to a receiving electronic device and associated with a message type among a plurality of message types;
(b) in response to receiving the message, determining whether any of a plurality of message validation components is associated with at least one of the message type and receiving electronic device for the message;
(c) invoking any associated message validation component to validate the message sent to the message buffer by a sending electronic device prior to addition of the message to the message buffer, wherein each such associated message validation component returns a result that indicates whether the message should be accepted by the message buffer; and
(d) selectively adding the message to the message buffer based upon the result returned by each associated message validation component.
39. A program product, comprising:
(a) a program configured to interface communications between sending and receiving electronic devices, the program including:
(i) a message buffer configured to receive messages from at least one sending electronic device, each message associated with at least one message type among a plurality of message types;
(ii) a plurality of message validation components, each message validation component associated with at least one of a message type and a receiving electronic device, each message validation component configured to validate a message sent to the message buffer by a sending electronic device prior to addition of the message to the message buffer, and each message validation component further configured to return a result that indicates whether the message should be accepted by the message buffer; and
(iii) a buffer services component configured to process a first message sent to the message buffer by invoking a message validation component associated with the first message and selectively adding the first message to the message buffer based upon the result returned by the invoked message validation component; and
(b) a signal bearing medium bearing the program.
40. A data processing system configured to process spectral data generated by a plurality of remote sensing stations during sampling of unknown materials, the data processing system comprising:
(a) an analysis engine configured to process spectral data to generate quantitative results therefrom using multivariate analysis; and
(b) a communication executive interposed between the plurality of remote sensing stations and the analysis engine, the communication executive configured to communicate first spectral data generated by a first remote sensing station to the analysis engine, and to communicate first quantitative results from the analysis engine to the first remote sensing station subsequent to processing of the first spectral data by the analysis engine, the communication executive comprising:
(i) a message buffer configured to receive messages including spectral data generated by the plurality of remote sensing stations;
(ii) a plurality of processor components, each configured to perform a task associated with a message received by the message buffer, at least one processor component configured to access the analysis engine to initiate processing of spectral data by the analysis engine;
(iii) a plurality of controller components, each configured to dynamically instantiate at least a subset of the plurality of processor components; and
(iv) at least one delegator component configured to monitor the message buffer for messages, and in response to a first message associated with the first spectral data, to dynamically execute a controller component so as to initiate analysis of the first spectral data by the analysis engine and return the first quantitative results to the first remote sensing station.
41. The data processing system of claim 40, further comprising a web server configured to interface with the plurality of remote sensing stations over the Internet, the web server configured to add the first message to the message buffer in response to receipt of the first spectral data from the first remote sensing station, and to communicate the first quantitative results to the first remote sensing station when the first quantitative results are returned by the analysis engine.
US10/188,853 2001-07-23 2002-07-05 Extensible modular communication executive with active message queue and intelligent message pre-validation Abandoned US20030135547A1 (en)

Priority Applications (8)

Application Number Priority Date Filing Date Title
US10/188,853 US20030135547A1 (en) 2001-07-23 2002-07-05 Extensible modular communication executive with active message queue and intelligent message pre-validation
PCT/US2002/023247 WO2003017111A1 (en) 2001-07-23 2002-07-18 Extensible modular communication executive with active message queue and intelligent message pre-validation
PCT/US2002/022966 WO2003010624A2 (en) 2001-07-23 2002-07-19 On-site analysis system with central processor and method of analysing
BRPI0211369-4A BR0211369A (en) 2001-07-23 2002-07-19 method for predicting a value of a property of interest of a material, system for analyzing a material, methods for generating and updating a calibration model, for defining at least one acceptable data region, for defining a refined filter using a set of validation and training set, to review a calibration model and calibration model development from a training set, to evaluate an instrument and an instrument component for acceptability as a data acquisition device, and to provide analytical services, program product, product program, and, appliance
AU2002318275A AU2002318275B2 (en) 2001-07-23 2002-07-19 On-site analysis system with central processor and method of analysing
EP02748208.2A EP1525534B1 (en) 2001-07-23 2002-07-19 Method of predicting a value of a property of interest using NIR spectroscopy
ARP020102737A AR036238A1 (en) 2001-07-23 2002-07-22 METHOD TO PREACH A VALUE OF A PROPERTY OF INTEREST OF A MATERIAL, PROVISION TO ANALYZE A MATERIAL SUCH METHOD, METHODS AND DIAGRAMS FOR PROGRAM ASSOCIATED WITH THE METHOD, AND APPLIANCE EQUIPMENT IN THE SAME.
TW91116255A TW576986B (en) 2001-07-23 2002-07-22 Extensible modular communication executive with active message queue and intelligent message pre-validation

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US30734701P 2001-07-23 2001-07-23
US30734801P 2001-07-23 2001-07-23
US10/188,853 US20030135547A1 (en) 2001-07-23 2002-07-05 Extensible modular communication executive with active message queue and intelligent message pre-validation

Publications (1)

Publication Number Publication Date
US20030135547A1 true US20030135547A1 (en) 2003-07-17

Family

ID=44256755

Family Applications (4)

Application Number Title Priority Date Filing Date
US10/188,972 Expired - Lifetime US7194369B2 (en) 2001-07-23 2002-07-05 On-site analysis system with central processor and method of analyzing
US10/188,853 Abandoned US20030135547A1 (en) 2001-07-23 2002-07-05 Extensible modular communication executive with active message queue and intelligent message pre-validation
US11/707,013 Abandoned US20070143037A1 (en) 2001-07-23 2007-02-15 On-site analysis system with central processor and method of analyzing
US12/914,866 Expired - Fee Related US8010309B2 (en) 2001-07-23 2010-10-28 On-site analysis system with central processor and method of analyzing

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/188,972 Expired - Lifetime US7194369B2 (en) 2001-07-23 2002-07-05 On-site analysis system with central processor and method of analyzing

Family Applications After (2)

Application Number Title Priority Date Filing Date
US11/707,013 Abandoned US20070143037A1 (en) 2001-07-23 2007-02-15 On-site analysis system with central processor and method of analyzing
US12/914,866 Expired - Fee Related US8010309B2 (en) 2001-07-23 2010-10-28 On-site analysis system with central processor and method of analyzing

Country Status (7)

Country Link
US (4) US7194369B2 (en)
EP (1) EP1525534B1 (en)
AR (1) AR036238A1 (en)
AU (1) AU2002318275B2 (en)
BR (1) BR0211369A (en)
MY (1) MY140632A (en)
WO (1) WO2003010624A2 (en)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020069367A1 (en) * 2000-12-06 2002-06-06 Glen Tindal Network operating system data directory
US20020069274A1 (en) * 2000-12-06 2002-06-06 Tindal Glen D. System and method for configuration, management and monitoring of network resources
US20040028069A1 (en) * 2002-08-07 2004-02-12 Tindal Glen D. Event bus with passive queuing and active routing
US20040030771A1 (en) * 2002-08-07 2004-02-12 John Strassner System and method for enabling directory-enabled networking
US20040078457A1 (en) * 2002-10-21 2004-04-22 Tindal Glen D. System and method for managing network-device configurations
US20040230681A1 (en) * 2002-12-06 2004-11-18 John Strassner Apparatus and method for implementing network resources to provision a service using an information model
US20060031434A1 (en) * 2000-12-06 2006-02-09 Tindal Glen D System and method for configuring a network device
US20060080434A1 (en) * 2000-12-06 2006-04-13 Intelliden Dynamic configuration of network devices to enable data transfers
US20060179131A1 (en) * 2001-11-26 2006-08-10 Mike Courtney System and method for generating a representation of a configuration schema
US20060242690A1 (en) * 2001-03-21 2006-10-26 Wolf Jonathan S Network configuration manager
US20070124156A1 (en) * 2005-11-29 2007-05-31 The Boeing Company Representing business transactions
US7463935B1 (en) 2006-03-09 2008-12-09 Rockwell Automation Technologies, Inc. Message queuing in an industrial environment
US20100264656A1 (en) * 2009-04-16 2010-10-21 Flood Kerry A Orbiting power plant
US8219662B2 (en) 2000-12-06 2012-07-10 International Business Machines Corporation Redirecting data generated by network devices
US8296400B2 (en) 2001-08-29 2012-10-23 International Business Machines Corporation System and method for generating a configuration schema
US20130007773A1 (en) * 2011-06-28 2013-01-03 Steven Scott Guilford Systems, methods, apparatuses, and computer program products for facilitating integration of third party technology with a database
US20130144967A1 (en) * 2011-12-05 2013-06-06 International Business Machines Corporation Scalable Queuing System
US8479219B2 (en) 2010-06-30 2013-07-02 International Business Machines Corporation Allocating space in message queue for heterogeneous messages
US9049164B2 (en) 2012-03-20 2015-06-02 International Business Machines Corporation Dynamic message retrieval by subdividing a message queue into sub-queues
US9158845B1 (en) * 2004-04-29 2015-10-13 Aol Inc. Reducing latencies in web page rendering
US11237881B2 (en) 2019-09-17 2022-02-01 Kyndryl, Inc. Message connector as a service to migrate streaming applications into cloud nativity

Families Citing this family (181)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756558B2 (en) * 2004-05-24 2010-07-13 Trutouch Technologies, Inc. Apparatus and methods for mitigating the effects of foreign interferents on analyte measurements in spectroscopy
US8174394B2 (en) * 2001-04-11 2012-05-08 Trutouch Technologies, Inc. System for noninvasive determination of analytes in tissue
US8581697B2 (en) * 2001-04-11 2013-11-12 Trutouch Technologies Inc. Apparatuses for noninvasive determination of in vivo alcohol concentration using raman spectroscopy
US7194369B2 (en) * 2001-07-23 2007-03-20 Cognis Corporation On-site analysis system with central processor and method of analyzing
US6694288B2 (en) * 2001-08-06 2004-02-17 Mercury Interactive Corporation System and method for automated analysis of load testing results
JP4148894B2 (en) * 2001-10-16 2008-09-10 マトリックス・テクノロジイズ・コーポレーション Hand-held pipette
US7822691B1 (en) * 2001-12-28 2010-10-26 Fannie Mae Method for determining house prices indices
US6783367B1 (en) * 2002-02-19 2004-08-31 Cisco Technology, Inc. Method and system for providing a global product services electronic laboratory
US20040034477A1 (en) * 2002-08-19 2004-02-19 Mcbrien Michael Methods for modeling chromatographic variables
JP3733094B2 (en) * 2002-08-22 2006-01-11 トヨタ自動車株式会社 Pass / fail judgment device, pass / fail judgment program, and pass / fail judgment method
US7050932B2 (en) * 2002-08-23 2006-05-23 International Business Machines Corporation Method, system, and computer program product for outlier detection
US8140569B2 (en) * 2003-05-29 2012-03-20 Microsoft Corporation Dependency network based model (or pattern)
CN100489871C (en) * 2002-09-23 2009-05-20 哥伦比亚技术公司 Underground pollution detection and analysis system, method and computer program product
US20060027033A1 (en) * 2002-10-16 2006-02-09 Richard Cote Hand-held pipette employing voice recognition control
JP4400706B2 (en) * 2002-11-25 2010-01-20 富士ゼロックス株式会社 Color data accuracy calculation method, color data accuracy calculation device, color processing method, color processing device, color data accuracy calculation program, color processing program, storage medium
TWI237694B (en) * 2002-12-31 2005-08-11 Ind Tech Res Inst Gas analysis system and method
US8819039B2 (en) 2002-12-31 2014-08-26 Ebay Inc. Method and system to generate a listing in a network-based commerce system
CA2535356A1 (en) * 2003-08-13 2005-03-03 Cargill, Incorporated Computer-aided modeling and manufacture of products
US7459713B2 (en) 2003-08-14 2008-12-02 Microptix Technologies, Llc Integrated sensing system approach for handheld spectral measurements having a disposable sample handling apparatus
US20100134794A1 (en) * 2004-02-05 2010-06-03 Medpro Holdings, Llc Analyzer for determining the concentration, potency and purity of pharmaceutical compounds
US20050209929A1 (en) * 2004-03-22 2005-09-22 International Business Machines Corporation System and method for client-side competitive analysis
DE102004022144B4 (en) * 2004-05-05 2007-08-16 Siemens Ag Method for the computer-aided evaluation of parameters of a technical system
US20050250212A1 (en) 2004-05-07 2005-11-10 Hormoz Azizian FT-NIR fatty acid determination method
JP4482371B2 (en) * 2004-05-12 2010-06-16 シスメックス株式会社 Clinical specimen processing system
DE102004025448B4 (en) * 2004-05-19 2007-03-29 Bruker Optik Gmbh Method for measuring a spectrum of a sample by means of an infrared spectrometer and such an infrared spectrometer
US20110178420A1 (en) * 2010-01-18 2011-07-21 Trent Ridder Methods and apparatuses for improving breath alcohol testing
US8515506B2 (en) * 2004-05-24 2013-08-20 Trutouch Technologies, Inc. Methods for noninvasive determination of in vivo alcohol concentration using Raman spectroscopy
US8730047B2 (en) 2004-05-24 2014-05-20 Trutouch Technologies, Inc. System for noninvasive determination of analytes in tissue
US20080319286A1 (en) * 2004-05-24 2008-12-25 Trent Ridder Optical Probes for Non-Invasive Analyte Measurements
JP4152351B2 (en) 2004-06-17 2008-09-17 シスメックス株式会社 Clinical specimen processing apparatus and clinical specimen processing system
US7756683B2 (en) * 2004-07-12 2010-07-13 MLU-Monitoring fuer Leben und Umwelt GES.m.b.H. Measuring device and method for measuring at least one environmental parameter
RU2266523C1 (en) * 2004-07-27 2005-12-20 Общество с ограниченной ответственностью ООО "ВИНТЕЛ" Method of producing independent multidimensional calibration models
US7221934B2 (en) * 2004-10-08 2007-05-22 Jeong Kim Mobile telephone network-based system for detection and location of hazardous agents
US8095240B2 (en) * 2004-11-18 2012-01-10 Applied Materials, Inc. Methods for starting and operating a thermal abatement system
US7682574B2 (en) * 2004-11-18 2010-03-23 Applied Materials, Inc. Safety, monitoring and control features for thermal abatement reactor
US9262056B2 (en) 2005-03-30 2016-02-16 Ebay Inc. Methods and systems to browse data items
US7630848B2 (en) * 2005-05-25 2009-12-08 Foss Analytical A/B Analysis system and method implementing distributed processing
TWI293165B (en) * 2005-07-06 2008-02-01 Ind Tech Res Inst Methods and systems for detection of gas leakage sources
US8597208B2 (en) * 2005-09-06 2013-12-03 Covidien Lp Method and apparatus for measuring analytes
EP1931257A4 (en) * 2005-09-06 2009-08-26 Nir Diagnostics Inc Method and apparatus for measuring analytes
EP1934596A1 (en) * 2005-10-13 2008-06-25 NanoNord A/S A measuring device and a method for determination of at least one chemical property in an oil and a data storing device obtainable by said method
US20070118441A1 (en) * 2005-11-22 2007-05-24 Robert Chatwani Editable electronic catalogs
US8977603B2 (en) 2005-11-22 2015-03-10 Ebay Inc. System and method for managing shared collections
WO2007064820A2 (en) * 2005-11-30 2007-06-07 Micro.Spectral Sensors, Llc An integrated sensing system approach for handheld spectral measurements
US7533313B1 (en) * 2006-03-09 2009-05-12 Advanced Micro Devices, Inc. Method and apparatus for identifying outlier data
JP6030278B2 (en) * 2006-03-16 2016-11-24 アプライド マテリアルズ インコーポレイテッドApplied Materials,Incorporated Method and apparatus for improving the operation of an electronic device manufacturing system
WO2007109188A2 (en) * 2006-03-17 2007-09-27 Thermo Electron Scientific Instruments Llc Spectral measurement with assisted data analysis
EP2000806A4 (en) * 2006-03-23 2014-03-19 Shimadzu Corp Analysis device data managing system
US8875135B2 (en) * 2006-04-17 2014-10-28 Cisco Systems, Inc. Assigning component operations of a task to multiple servers using orchestrated web service proxy
US7536266B2 (en) * 2006-04-17 2009-05-19 Lincoln Global, Inc. Universal X-ray fluorescence calibration technique for wire surface analysis
JP4746471B2 (en) * 2006-04-21 2011-08-10 シスメックス株式会社 Accuracy management system, accuracy management server and computer program
US9189960B2 (en) * 2006-05-31 2015-11-17 Manheim Investments, Inc. Computer-based technology for aiding the repair of motor vehicles
RU2308684C1 (en) * 2006-06-20 2007-10-20 Общество с ограниченной ответственностью "ВИНТЕЛ" Method of producing multi-dimension calibrating models
US8099400B2 (en) * 2006-08-18 2012-01-17 National Instruments Corporation Intelligent storing and retrieving in an enterprise data system
US7811237B2 (en) * 2006-09-08 2010-10-12 University Of Vermont And State Agricultural College Systems for and methods of assessing urinary flow rate via sound analysis
US7758519B2 (en) * 2006-09-08 2010-07-20 University Of Vermont And State Agriculture College Systems for and methods of assessing lower urinary tract function via sound analysis
US7853431B2 (en) * 2006-09-29 2010-12-14 Fisher-Rosemount Systems, Inc. On-line monitoring and diagnostics of a process using multivariate statistical analysis
WO2008060570A1 (en) * 2006-11-14 2008-05-22 Abb Inc. System for storing and presenting sensor and spectral data for batch processes
FR2909449B1 (en) * 2006-12-01 2014-08-01 Accessible Conseils Sarl "METHOD OF CONTROLLING DELOCALIZED ANALYSIS APPARATUS".
EP2118810B1 (en) * 2007-02-05 2012-08-15 Andrew Corporation System and method for optimizing location estimate of mobile unit
NZ554258A (en) * 2007-03-29 2009-01-31 Khipu Systems Ltd Predictive model implementation system and methodology
JP5660888B2 (en) * 2007-05-25 2015-01-28 アプライド マテリアルズ インコーポレイテッドApplied Materials,Incorporated Method and apparatus for efficient operation of an abatement system
KR101468606B1 (en) * 2007-05-25 2014-12-04 어플라이드 머티어리얼스, 인코포레이티드 Methods and apparatus for assembling and operating electronic device manufacturing systems
US20090018688A1 (en) * 2007-06-15 2009-01-15 Applied Materials, Inc. Methods and systems for designing and validating operation of abatement systems
JP5025371B2 (en) * 2007-07-31 2012-09-12 シスメックス株式会社 Blood analyzer
WO2009082418A2 (en) * 2007-10-12 2009-07-02 Real-Time Analyzers, Inc. Method and apparatus for determining properties of fuels
WO2009055750A1 (en) * 2007-10-26 2009-04-30 Applied Materials, Inc. Methods and apparatus for smart abatement using an improved fuel circuit
WO2009061326A1 (en) * 2007-11-09 2009-05-14 Wyeth Evaluation of chromatographic materials
US8330122B2 (en) * 2007-11-30 2012-12-11 Honeywell International Inc Authenticatable mark, systems for preparing and authenticating the mark
US20090147011A1 (en) * 2007-12-07 2009-06-11 Roche Diagnostics Operations, Inc. Method and system for graphically indicating multiple data values
US20090276469A1 (en) * 2008-05-01 2009-11-05 International Business Machines Corporation Method for transactional behavior extaction in distributed applications
US8275471B2 (en) 2009-11-06 2012-09-25 Adura Technologies, Inc. Sensor interface for wireless control
US8364325B2 (en) * 2008-06-02 2013-01-29 Adura Technologies, Inc. Intelligence in distributed lighting control devices
AT507019B1 (en) * 2008-07-04 2011-03-15 Siemens Vai Metals Tech Gmbh METHOD FOR MONITORING AN INDUSTRIAL PLANT
WO2010036906A1 (en) * 2008-09-26 2010-04-01 Andrew Hession-Kunz Handheld spectrometer
EP2177913A1 (en) * 2008-10-17 2010-04-21 Roche Diagnostics GmbH Laboratory instrument with function monitoring
US20100199202A1 (en) * 2009-02-04 2010-08-05 Thomas Becker Selecting Channels of a Data Set for Visibility
US8144319B2 (en) 2009-05-07 2012-03-27 Solum, Inc. Automated soil measurement device
US7889337B2 (en) * 2009-07-20 2011-02-15 Saudi Arabian Oil Company Optical method for determination of the total suspended solids in jet fuel
US8301512B2 (en) 2009-10-23 2012-10-30 Ebay Inc. Product identification using multiple services
US20140229010A1 (en) * 2010-04-09 2014-08-14 Real-Time Analysers, Inc. Method of monitoring and controlling activity involving a fuel composition
US8489525B2 (en) 2010-05-20 2013-07-16 International Business Machines Corporation Automatic model evolution
US20110299085A1 (en) * 2010-06-04 2011-12-08 Solum, Inc. Rapid Tissue Analysis Technique
US8567258B2 (en) * 2010-06-10 2013-10-29 Edward Belotserkovsky Urine flow monitoring device and method
US8396875B2 (en) * 2010-06-17 2013-03-12 Microsoft Corporation Online stratified sampling for classifier evaluation
DE102010030488A1 (en) * 2010-06-24 2011-12-29 Endress + Hauser Conducta Gesellschaft für Mess- und Regeltechnik mbH + Co. KG Method for adjusting a measuring device in process analysis technology
SI23471A (en) * 2010-09-02 2012-03-30 Krog-Mit D.O.O. Device and information system for automatic interpretation of resultspre-transfusion investigations
US8645082B2 (en) * 2010-09-13 2014-02-04 Mks Instruments, Inc. Monitoring, detecting and quantifying chemical compounds in a sample
US9995681B2 (en) * 2010-09-28 2018-06-12 Authentix, Inc. Determining the quantity of a taggant in a liquid sample
DE102010047828A1 (en) * 2010-10-04 2012-04-05 Eppendorf Ag Laboratory device for treating liquids
FR2968763B1 (en) * 2010-12-08 2014-06-06 Topnir Systems METHOD AND DEVICE FOR CHARACTERIZING A PRODUCT, METHOD AND DEVICE FOR DETECTING THE TRANSITION OF A PRODUCT, METHOD AND DEVICE FOR DETERMINING THE COMPOSITION OF A PRODUCT
US8725469B2 (en) * 2011-03-03 2014-05-13 Mks Instruments, Inc. Optimization of data processing parameters
US9547693B1 (en) 2011-06-23 2017-01-17 Palantir Technologies Inc. Periodic database search manager for multiple data sources
US9192019B2 (en) 2011-12-07 2015-11-17 Abl Ip Holding Llc System for and method of commissioning lighting devices
JP5554354B2 (en) * 2012-02-23 2014-07-23 富士フイルム株式会社 Chromatographic measuring device
CN102799958A (en) * 2012-05-26 2012-11-28 山西古城乳业集团有限公司 Raw milk purchasing quality safety management control system
FR2993981B1 (en) * 2012-07-24 2015-04-03 Commissariat Energie Atomique SELF-CALIBRATION CALORIMETER BY ELECTRICAL SUBSTITUTION
US9146223B1 (en) 2012-08-03 2015-09-29 Monsanto Technology Llc Automated soil measurement device
US9291545B1 (en) 2012-09-06 2016-03-22 Monsanto Technology Llc Self-filling soil processing chamber with dynamic extractant volume
US8911512B2 (en) 2012-09-20 2014-12-16 Kior, Inc. Use of NIR spectra for property prediction of bio-oils and fractions thereof
US9429553B2 (en) * 2012-10-12 2016-08-30 Industrial Test Systems, Inc. Processor-based analysis system and method
US9292012B2 (en) 2012-11-05 2016-03-22 Rockwell Automation Technologies, Inc. Secure models for model-based control and optimization
US9405015B2 (en) * 2012-12-18 2016-08-02 Subcarrier Systems Corporation Method and apparatus for modeling of GNSS pseudorange measurements for interpolation, extrapolation, reduction of measurement errors, and data compression
MX351250B (en) 2013-01-15 2017-10-06 Halliburton Energy Services Inc Active control of thermal effects on optical computing devices.
US10649449B2 (en) 2013-03-04 2020-05-12 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics
US10282676B2 (en) 2014-10-06 2019-05-07 Fisher-Rosemount Systems, Inc. Automatic signal processing-based learning in a process plant
US10223327B2 (en) * 2013-03-14 2019-03-05 Fisher-Rosemount Systems, Inc. Collecting and delivering data to a big data machine in a process control system
US9558220B2 (en) 2013-03-04 2017-01-31 Fisher-Rosemount Systems, Inc. Big data in process control systems
US9804588B2 (en) 2014-03-14 2017-10-31 Fisher-Rosemount Systems, Inc. Determining associations and alignments of process elements and measurements in a process
US10678225B2 (en) 2013-03-04 2020-06-09 Fisher-Rosemount Systems, Inc. Data analytic services for distributed industrial performance monitoring
US10649424B2 (en) 2013-03-04 2020-05-12 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics
US9665088B2 (en) 2014-01-31 2017-05-30 Fisher-Rosemount Systems, Inc. Managing big data in process control systems
US10866952B2 (en) 2013-03-04 2020-12-15 Fisher-Rosemount Systems, Inc. Source-independent queries in distributed industrial system
US10386827B2 (en) 2013-03-04 2019-08-20 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics platform
US9823626B2 (en) 2014-10-06 2017-11-21 Fisher-Rosemount Systems, Inc. Regional big data in process control systems
US9397836B2 (en) 2014-08-11 2016-07-19 Fisher-Rosemount Systems, Inc. Securing devices to process control systems
US10909137B2 (en) 2014-10-06 2021-02-02 Fisher-Rosemount Systems, Inc. Streaming data for analytics in process control systems
DE112014001381T5 (en) 2013-03-15 2016-03-03 Fisher-Rosemount Systems, Inc. Emerson Process Management Data Modeling Studio
US10324423B2 (en) 2013-03-15 2019-06-18 Fisher-Rosemount Systems, Inc. Method and apparatus for controlling a process plant with location aware mobile control devices
WO2014205240A1 (en) * 2013-06-19 2014-12-24 Digi-Star, Llc Handheld moisture sensor device
US9116975B2 (en) 2013-10-18 2015-08-25 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
US10579647B1 (en) 2013-12-16 2020-03-03 Palantir Technologies Inc. Methods and systems for analyzing entity performance
MX361975B (en) * 2013-12-19 2018-12-19 Halliburton Energy Services Inc Cross-sensor standardization.
US8832832B1 (en) 2014-01-03 2014-09-09 Palantir Technologies Inc. IP reputation
US11093869B2 (en) * 2014-02-13 2021-08-17 Brewmetrix Inc. Analytical system with iterative method of analyzing data in web-based data processor with results display designed for non-experts
US20220082497A1 (en) * 2014-02-13 2022-03-17 Brewmetrix LLC Spectroscopic method and apparatus for prediction of non-alcoholic and alcoholic beverages quality parameters and properties
CN105025999B (en) * 2014-02-28 2018-05-04 株式会社小松制作所 The mistake of working truck releases the wrong release method of device and working truck
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US9535974B1 (en) 2014-06-30 2017-01-03 Palantir Technologies Inc. Systems and methods for identifying key phrase clusters within documents
JP6353322B2 (en) * 2014-09-04 2018-07-04 日立建機株式会社 Transport vehicle and travel control device thereof
US10168691B2 (en) 2014-10-06 2019-01-01 Fisher-Rosemount Systems, Inc. Data pipeline for process control system analytics
US9043894B1 (en) 2014-11-06 2015-05-26 Palantir Technologies Inc. Malicious software detection in a computing system
US10349584B2 (en) * 2014-11-24 2019-07-16 Prospera Technologies, Ltd. System and method for plant monitoring
US9348920B1 (en) 2014-12-22 2016-05-24 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US10552994B2 (en) 2014-12-22 2020-02-04 Palantir Technologies Inc. Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
US20160253672A1 (en) * 2014-12-23 2016-09-01 Palantir Technologies, Inc. System and methods for detecting fraudulent transactions
US9817563B1 (en) 2014-12-29 2017-11-14 Palantir Technologies Inc. System and method of generating data points from one or more data stores of data items for chart creation and manipulation
US10591388B2 (en) 2015-04-27 2020-03-17 Virtual Fluid Monitoring Services LLC Fluid analysis and monitoring using optical spectroscopy
WO2016176293A1 (en) 2015-04-27 2016-11-03 Virtual Fluid Monitoring Services LLC Systems, apparatuses, and methods for fluid analysis and monitoring
US11261474B2 (en) * 2015-06-29 2022-03-01 Arizona Board Of Regents On Behalf Of The University Of Arizona Optical device for in-line and real-time monitoring of microorganisms
AT517486B1 (en) * 2015-07-29 2022-11-15 Anton Paar Gmbh Procedure for determining the density of liquids
US9454785B1 (en) 2015-07-30 2016-09-27 Palantir Technologies Inc. Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data
US9456000B1 (en) 2015-08-06 2016-09-27 Palantir Technologies Inc. Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications
US10489391B1 (en) 2015-08-17 2019-11-26 Palantir Technologies Inc. Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface
EP3138438B1 (en) * 2015-09-03 2018-09-05 The Procter and Gamble Company Tuft picker for a tuft picking device of a brush making machine
US10503483B2 (en) 2016-02-12 2019-12-10 Fisher-Rosemount Systems, Inc. Rule builder in a process control network
US9803576B2 (en) 2016-02-16 2017-10-31 Robert Bosch Gmbh System and method to predict calibration values based on existing calibrations
US10885461B2 (en) 2016-02-29 2021-01-05 Oracle International Corporation Unsupervised method for classifying seasonal patterns
US10867421B2 (en) 2016-02-29 2020-12-15 Oracle International Corporation Seasonal aware method for forecasting and capacity planning
US10197993B2 (en) * 2016-03-31 2019-02-05 Sysmex Corporation Method and system for performing quality control on a diagnostic analyzer
CN108020491A (en) * 2016-11-02 2018-05-11 厦门格林德智能精仪科技有限公司 A kind of big data processing method for realizing haze on-line monitoring
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
US10620618B2 (en) 2016-12-20 2020-04-14 Palantir Technologies Inc. Systems and methods for determining relationships between defects
FI128846B (en) * 2017-03-20 2021-01-29 Beamex Oy Ab Automatic calibration of a measurement circuit
US10325224B1 (en) 2017-03-23 2019-06-18 Palantir Technologies Inc. Systems and methods for selecting machine learning training data
US10606866B1 (en) 2017-03-30 2020-03-31 Palantir Technologies Inc. Framework for exposing network activities
US10235461B2 (en) 2017-05-02 2019-03-19 Palantir Technologies Inc. Automated assistance for generating relevant and valuable search results for an entity of interest
US10482382B2 (en) 2017-05-09 2019-11-19 Palantir Technologies Inc. Systems and methods for reducing manufacturing failure rates
CN111756754B (en) 2017-07-28 2023-04-07 创新先进技术有限公司 Method and device for training model
US10696906B2 (en) 2017-09-29 2020-06-30 Marathon Petroleum Company Lp Tower bottoms coke catching device
CN109814378B (en) * 2017-11-22 2022-07-08 西门子股份公司 Automatic determination of parameterization of evaluation method
US10810415B1 (en) * 2018-01-22 2020-10-20 Apple Inc. Low bandwidth transmission of event data
US11921238B2 (en) * 2018-05-18 2024-03-05 The Charles Stark Draper Laboratory, Inc. Convolved augmented range LIDAR nominal area
US11442019B2 (en) 2018-06-19 2022-09-13 Virtual Fluid Monitoring Services, Llc Fluid analysis and monitoring using optical spectroscopy
US11818204B2 (en) * 2018-08-29 2023-11-14 Credit Suisse Securities (Usa) Llc Systems and methods for calculating consensus data on a decentralized peer-to-peer network using distributed ledger
JP7135697B2 (en) * 2018-10-11 2022-09-13 株式会社島津製作所 Analysis device, analysis system and analysis method
US11537940B2 (en) * 2019-05-13 2022-12-27 Oracle International Corporation Systems and methods for unsupervised anomaly detection using non-parametric tolerance intervals over a sliding window of t-digests
US11887015B2 (en) 2019-09-13 2024-01-30 Oracle International Corporation Automatically-generated labels for time series data and numerical lists to use in analytic and machine learning systems
CN114599944A (en) * 2019-10-25 2022-06-07 美国安进公司 Configurable handheld bioanalyzer for identifying biological products based on Raman spectroscopy
US11620673B1 (en) 2020-01-21 2023-04-04 Deepintent, Inc. Interactive estimates of media delivery and user interactions based on secure merges of de-identified records
US11475155B1 (en) * 2020-01-21 2022-10-18 Deepintent, Inc. Utilizing a protected server environment to protect data used to train a machine learning system
CA3109675A1 (en) 2020-02-19 2021-08-19 Marathon Petroleum Company Lp Low sulfur fuel oil blends for stability enhancement and associated methods
CN111325404B (en) * 2020-02-25 2022-04-22 武汉轻工大学 Data-driven model analysis method and device for solving rice flour raw material index range
CA3188098A1 (en) * 2020-08-04 2022-02-10 Martine BERCIER Spectroscopic evaluation of tallow
US11898109B2 (en) 2021-02-25 2024-02-13 Marathon Petroleum Company Lp Assemblies and methods for enhancing control of hydrotreating and fluid catalytic cracking (FCC) processes using spectroscopic analyzers
US20220268694A1 (en) 2021-02-25 2022-08-25 Marathon Petroleum Company Lp Methods and assemblies for determining and using standardized spectral responses for calibration of spectroscopic analyzers
US11905468B2 (en) 2021-02-25 2024-02-20 Marathon Petroleum Company Lp Assemblies and methods for enhancing control of fluid catalytic cracking (FCC) processes using spectroscopic analyzers
US20230047120A1 (en) * 2021-08-13 2023-02-16 Eurofins QTA, Inc. System, Method and Device for On-Site Rapid, Direct, and Nondestructive Analysis of a Material Sample Using a Portable High Performance Near-Infrared Spectrometer
GB202114308D0 (en) * 2021-10-06 2021-11-17 Nicoventures Trading Ltd Quantification method
US20230169255A1 (en) * 2021-12-01 2023-06-01 Kla Corporation Methods And Systems For Data Driven Parameterization And Measurement Of Semiconductor Structures
WO2024026228A1 (en) * 2022-07-26 2024-02-01 Thermo Scientific Portable Analytical Instruments Inc. Autochemometric scientific instrument support systems

Citations (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3535683A (en) * 1969-11-07 1970-10-20 Nasa Electronic checkout system for space vehicles
US4247773A (en) * 1978-12-06 1981-01-27 A/S N. Foss Electric Method for quantitatively determining fat in a fat-containing sample
US4319491A (en) * 1978-06-09 1982-03-16 A/S N. Foss Electric Method and apparatus for determining at least one component of a sample of grain, seed, or another particulate material
USRE31023E (en) * 1975-04-11 1982-09-07 Advanced Decision Handling, Inc. Highly automated agricultural production system
US4533834A (en) * 1982-12-02 1985-08-06 The United States Of America As Represented By The Secretary Of The Army Optical fire detection system responsive to spectral content and flicker frequency
US4622538A (en) * 1984-07-18 1986-11-11 Otis Elevator Company Remote monitoring system state machine and method
US4800279A (en) * 1985-09-13 1989-01-24 Indiana University Foundation Methods and devices for near-infrared evaluation of physical properties of samples
US4883963A (en) * 1986-04-28 1989-11-28 Bran+Luebbe Gmbh Optical analysis method and apparatus having programmable rapid random wavelength access
US4888714A (en) * 1987-09-25 1989-12-19 Laser Precision Corporation Spectrometer system having interconnected computers at multiple optical heads
US4964065A (en) * 1987-03-12 1990-10-16 Decibel Products, Inc. Computer-controlled electronic system monitor
US5005142A (en) * 1987-01-30 1991-04-02 Westinghouse Electric Corp. Smart sensor system for diagnostic monitoring
US5227856A (en) * 1992-03-09 1993-07-13 Perten Instruments North America Inc. Sample holding and positioning mechanism and method for optical analysis
US5241178A (en) * 1989-03-16 1993-08-31 John Shields Infrared grain analyzer with controllable measurement wavelength
US5252829A (en) * 1992-03-25 1993-10-12 A/S Foss Electric Method of determining urea in milk
US5258825A (en) * 1991-11-13 1993-11-02 Perten Instruments North America, Inc. Optical compositional analyzer apparatus and method for detection of ash in wheat and milled wheat products
US5260875A (en) * 1991-08-20 1993-11-09 Micro-Trak System, Inc. Networked agricultural monitoring and control system
US5303165A (en) * 1992-02-12 1994-04-12 The Perkin-Elmer Corporation Standardizing and calibrating a spectrometric instrument
US5307263A (en) * 1992-11-17 1994-04-26 Raya Systems, Inc. Modular microprocessor-based health monitoring system
US5308981A (en) * 1991-04-23 1994-05-03 Peter Perten Method and device for infrared analysis, especially with regard to food
US5323332A (en) * 1992-02-27 1994-06-21 Infotec Development, Inc. Instrument landing system calibrator
US5321970A (en) * 1990-09-18 1994-06-21 Davies Anthony M C Method and apparatus for calibrating a spectrometer
US5327708A (en) * 1991-02-28 1994-07-12 Gerrish Steven R Crop testing and evaluation system
US5357441A (en) * 1994-03-11 1994-10-18 Raytheon Company Moisture content measuring apparatus and method
US5357336A (en) * 1991-08-08 1994-10-18 The Dow Chemical Company Method and apparatus for multivariate characterization of optical instrument response
US5365462A (en) * 1992-11-25 1994-11-15 Mcbean Sr Ronald V Instrumentation system with multiple sensor modules providing calibration date information
US5366896A (en) * 1991-07-30 1994-11-22 University Of Virginia Alumni Patents Foundation Robotically operated laboratory system
US5369603A (en) * 1992-07-19 1994-11-29 Myers; Allen Calibration of a non-linear sensor
US5421095A (en) * 1993-02-03 1995-06-06 G.S. S.R.L. Procedure for transmission of information in aligning equipment for motor vehicles, and aligning equipment for carrying out the procedure
US5442562A (en) * 1993-12-10 1995-08-15 Eastman Kodak Company Method of controlling a manufacturing process using multivariate analysis
US5442553A (en) * 1992-11-16 1995-08-15 Motorola Wireless motor vehicle diagnostic and software upgrade system
US5459677A (en) * 1990-10-09 1995-10-17 Board Of Regents Of The University Of Washington Calibration transfer for analytical instruments
US5485579A (en) * 1989-09-08 1996-01-16 Auspex Systems, Inc. Multiple facility operating system architecture
US5483826A (en) * 1989-12-20 1996-01-16 Tjs Development Corporation, Inc. Remotely actuated pressure sensor responsive to an actuating signal
US5517427A (en) * 1994-03-30 1996-05-14 On-Site Analysis, Inc. On-site oil analyzer
US5568400A (en) * 1989-09-01 1996-10-22 Stark; Edward W. Multiplicative signal correction method and apparatus
US5592402A (en) * 1992-04-16 1997-01-07 The Dow Chemical Company Method for interpreting complex data and detecting abnormal instrumentor process behavior
US5594667A (en) * 1992-07-10 1997-01-14 Myers; Allen Method and apparatus for baseline drift correction for a sensor
US5616851A (en) * 1995-09-29 1997-04-01 Farmex Inc. Ex-situ grain moisture analyzer for a combine
US5621669A (en) * 1990-07-27 1997-04-15 Bjornsson; Eyjolf S. Moisture sensor probe and control mechanism
US5644232A (en) * 1992-05-15 1997-07-01 University Of Washington Quantitation and standardization of magnetic resonance measurements
US5647834A (en) * 1995-06-30 1997-07-15 Ron; Samuel Speech-based biofeedback method and system
US5689418A (en) * 1993-07-22 1997-11-18 Ag-Chem Equipment Co., Inc. Agricultural communication network
US5708593A (en) * 1995-05-19 1998-01-13 Elf Antar France Method for correcting a signal delivered by a measuring instrument
US5717209A (en) * 1996-04-29 1998-02-10 Petrometrix Ltd. System for remote transmission of spectral information through communication optical fibers for real-time on-line hydrocarbons process analysis by near infra red spectroscopy
US5716272A (en) * 1996-11-05 1998-02-10 New Holland North America, Inc. Moisture/yield monitor grain simulator
US5729544A (en) * 1994-05-09 1998-03-17 Motorola, Inc. Method for transmitting data packets based on message type
US5754289A (en) * 1995-12-30 1998-05-19 Kyoto Dai-Ichi Kagaku Co., Ltd. Raman scattered light measuring apparatus
US5758300A (en) * 1994-06-24 1998-05-26 Fuji Jukogyo Kabushiki Kaisha Diagnosis system for motor vehicles and the method thereof
US5760399A (en) * 1995-10-02 1998-06-02 Foss Nirsystems, Inc. Measurement of transmission spectra of pharmaceutical tablets
US5771096A (en) * 1994-12-09 1998-06-23 Foss Electric A/S Method of obtaining information
US5839094A (en) * 1995-06-30 1998-11-17 Ada Technologies, Inc. Portable data collection device with self identifying probe
US5857462A (en) * 1993-08-10 1999-01-12 Sandia Corporation Systematic wavelength selection for improved multivariate spectral analysis
US5892690A (en) * 1997-03-10 1999-04-06 Purechoice, Inc. Environment monitoring system
US5933792A (en) * 1995-02-09 1999-08-03 Foss Electric A/S Method of standardizing a spectrometer
US5936727A (en) * 1997-04-24 1999-08-10 Foss Nirsystems, Inc. Wavelength standard
US5955737A (en) * 1997-10-27 1999-09-21 Systems & Processes Engineering Corporation Chemometric analysis for extraction of individual fluorescence spectrum and lifetimes from a target mixture
US5957773A (en) * 1997-04-02 1999-09-28 Dekalb Genetics Corporation Method and apparatus for measuring grain characteristics
US5972693A (en) * 1995-10-24 1999-10-26 Curagen Corporation Apparatus for identifying, classifying, or quantifying DNA sequences in a sample without sequencing
US5973324A (en) * 1996-10-23 1999-10-26 Elf Antar France Process for tracking and monitoring a manufacturing unit and/or a near-infrared spectrometer by means of at least one indicator
US5991025A (en) * 1997-02-27 1999-11-23 Pioneer Hi-Bred International, Inc. Near infrared spectrometer used in combination with an agricultural implement for real time grain and forage analysis
US6014451A (en) * 1997-10-17 2000-01-11 Pioneer Hi-Bred International, Inc. Remote imaging system for plant diagnosis
US6022315A (en) * 1993-12-29 2000-02-08 First Opinion Corporation Computerized medical diagnostic and treatment advice system including network access
US6031608A (en) * 1998-09-03 2000-02-29 Foss Nirsystems, Inc. Spectroscopic instrument with offset grating to improve focus
US6032107A (en) * 1998-05-19 2000-02-29 Micron Technology, Inc. Calibrating test equipment
US6035246A (en) * 1994-11-04 2000-03-07 Sandia Corporation Method for identifying known materials within a mixture of unknowns
US6055487A (en) * 1991-07-30 2000-04-25 Margery; Keith S. Interactive remote sample analysis system
US6061640A (en) * 1996-10-31 2000-05-09 Matsushita Electric Industrial Co., Ltd. Method of and apparatus for extracting abnormal factors in a processing operation
US6064943A (en) * 1994-03-07 2000-05-16 Clark, Jr.; Louis George Computer network for collecting and analyzing agronomic data
US6069694A (en) * 1998-05-29 2000-05-30 Foss Nirsystems, Inc. Flow cell
US6072576A (en) * 1996-12-31 2000-06-06 Exxon Chemical Patents Inc. On-line control of a chemical process plant
US6085227A (en) * 1998-03-20 2000-07-04 International Business Machines Corporation System and method for operating scientific instruments over wide area networks
US6096553A (en) * 1997-12-17 2000-08-01 Heald; Randall L. On-line analysis of acid catalyst in an alkylation process
US6100526A (en) * 1996-12-30 2000-08-08 Dsquared Development, Inc. Grain quality monitor
US6104988A (en) * 1998-08-27 2000-08-15 Automotive Electronics, Inc. Electronic control assembly testing system
US6115681A (en) * 1997-12-17 2000-09-05 The United States Of America As Represented By The Secretary Of The Navy Real-time data acquisition
US6122603A (en) * 1998-05-29 2000-09-19 Powerweb, Inc. Multi-utility energy control system with dashboard
US6137108A (en) * 1998-06-17 2000-10-24 Foss Nirsystems Incorporated Instrument and method for spectroscopic analysis by reflectance and transmittance
US6181957B1 (en) * 1998-07-13 2001-01-30 California Institute Of Technology Non-invasive glucose monitor
US6181994B1 (en) * 1999-04-07 2001-01-30 International Business Machines Corporation Method and system for vehicle initiated delivery of advanced diagnostics based on the determined need by vehicle
US6192320B1 (en) * 1991-07-30 2001-02-20 The University Of Virginia Patent Foundation Interactive remote sample analysis system
US6211782B1 (en) * 1999-01-09 2001-04-03 Heat-Timer Corporation Electronic message delivery system utilizable in the monitoring of remote equipment and method of same
US6219438B1 (en) * 1997-09-02 2001-04-17 Lucent Technologies Inc. Produce indentifier using barcode scanner and wavelet image processing and having compensation for dirt accumulated on viewing window
US6218953B1 (en) * 1998-10-14 2001-04-17 Statsignal Systems, Inc. System and method for monitoring the light level around an ATM
US6236740B1 (en) * 1995-04-07 2001-05-22 Michael E. Lee Signature verification apparatus and method utilizing relative angle measurements
US6246355B1 (en) * 1999-12-22 2001-06-12 Hot/Shot Radar Inspections, Llc Radar cross-section measurement system for analysis of wooden structures
US6246479B1 (en) * 1998-06-08 2001-06-12 Lj Laboratories, L.L.C. Integrated spectrometer assembly and methods
US6249241B1 (en) * 1995-09-21 2001-06-19 The United States Of America As Represented By The Secretary Of The Navy Marine vessel traffic system
US6249348B1 (en) * 1998-11-23 2001-06-19 Lj Laboratories, L.L.C. Integrated spectrometer assembly and methods
US6264621B1 (en) * 1999-10-29 2001-07-24 William C. Paske System and method for providing quantified and qualitative hand analysis
US6295492B1 (en) * 1999-01-27 2001-09-25 Infomove.Com, Inc. System for transmitting and displaying multiple, motor vehicle information
US6298308B1 (en) * 1999-05-20 2001-10-02 Reid Asset Management Company Diagnostic network with automated proactive local experts
US6360179B1 (en) * 2000-02-18 2002-03-19 Milestone Technology, Inc. Systems, methods and apparatus for wireless transmission and reception of data by agricultural field sensors
US6369388B2 (en) * 1997-04-18 2002-04-09 Zeltex, Inc. Multiple gain, portable, near-infrared analyzer
US6560546B1 (en) * 2000-08-07 2003-05-06 Infrasoft Llc Remote analysis system
US6912522B2 (en) * 2000-09-11 2005-06-28 Ablesoft, Inc. System, method and computer program product for optimization and acceleration of data transport and processing

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866644A (en) * 1986-08-29 1989-09-12 Shenk John S Optical instrument calibration system
US4888726A (en) 1987-04-22 1989-12-19 Allen-Bradley Company. Inc. Distributed processing in a cluster of industrial controls linked by a communications network
US4883983A (en) * 1988-07-08 1989-11-28 Robertshaw Controls Company Switching system for plural load circuit
USRE34070E (en) 1988-07-29 1992-09-22 Troxler Electronic Laboratories, Inc. Method and system for transferring calibration data between calibrated measurement instruments
JP2837877B2 (en) * 1989-07-04 1998-12-16 キヤノン株式会社 Communication device and communication method
US5712481A (en) * 1990-04-09 1998-01-27 Ashland Inc Process and apparatus for analysis of hydrocarbon species by near infrared spectroscopy
US5121337A (en) * 1990-10-15 1992-06-09 Exxon Research And Engineering Company Method for correcting spectral data for data due to the spectral measurement process itself and estimating unknown property and/or composition data of a sample using such method
DE4412871C2 (en) * 1993-04-15 1997-08-14 Nof Corp Gas generator compositions
SE503101C2 (en) * 1994-05-18 1996-03-25 Eka Nobel Ab Ways of determining the wet strength of paper and process control means using the method
US5710713A (en) * 1995-03-20 1998-01-20 The Dow Chemical Company Method of creating standardized spectral libraries for enhanced library searching
FI100827B (en) 1995-03-22 1998-02-27 Vaisala Oy Method for calibrating an NDIR device and calibration device
SE9502611D0 (en) * 1995-07-14 1995-07-14 Casco Nobel Ab Prediction of the properties of board
US6293868B1 (en) * 1996-03-08 2001-09-25 Glenn R. Bernard Stadium game for fans
US5931779A (en) * 1996-06-06 1999-08-03 Wisconsin Alumni Research Foundation Real-time in-vivo measurement of myoglobin oxygen saturation
US5798526A (en) * 1997-01-24 1998-08-25 Infrasoft International Llc Calibration system for spectrographic analyzing instruments
US5790977A (en) * 1997-02-06 1998-08-04 Hewlett-Packard Company Data acquisition from a remote instrument via the internet
US5850623A (en) 1997-03-14 1998-12-15 Eastman Chemical Company Method for standardizing raman spectrometers to obtain stable and transferable calibrations
CA2212776A1 (en) 1997-08-08 1999-02-08 Andrzej Barwicz A spectrometric micro-sensor/transducer and procedure for interpretation of spectrometric data
US6006148A (en) 1997-06-06 1999-12-21 Telxon Corporation Automated vehicle return system
TW408298B (en) * 1997-08-28 2000-10-11 Texas Instruments Inc Improved method for switched-predictive quantization
US6157041A (en) 1998-10-13 2000-12-05 Rio Grande Medical Technologies, Inc. Methods and apparatus for tailoring spectroscopic calibration models
EP1166060A1 (en) * 1999-03-05 2002-01-02 Sandia Corporation Hybrid least squares multivariate spectral analysis methods
EP1048265A1 (en) * 1999-04-30 2000-11-02 V.Lilienfeld-Toal, Hermann, Prof. Dr. med. Apparatus and method for detecting a substance
US20010023410A1 (en) * 2000-02-07 2001-09-20 Alice Hayes Agricultural product business system
EP1257195A2 (en) * 2000-02-18 2002-11-20 Argose, Inc. Multivariate analysis of green to ultraviolet spectra of cell and tissue samples
US6751576B2 (en) * 2000-03-10 2004-06-15 Cognis Corporation On-site agricultural product analysis system and method of analyzing
DE60113073T2 (en) * 2000-03-10 2006-08-31 Smiths Detection Inc., Pasadena CONTROL FOR AN INDUSTRIAL PROCESS WITH ONE OR MULTIPLE MULTIDIMENSIONAL VARIABLES
US6615151B1 (en) * 2000-08-28 2003-09-02 Cme Telemetrix Inc. Method for creating spectral instrument variation tolerance in calibration algorithms
AU2001293982A1 (en) * 2000-10-10 2002-04-22 Radiant Networks Plc Communications meshes
MXPA03006726A (en) * 2001-01-26 2004-10-15 Sensys Medical Inc Noninvasive measurement of glucose through the optical properties of tissue.
US7194369B2 (en) * 2001-07-23 2007-03-20 Cognis Corporation On-site analysis system with central processor and method of analyzing
US7149688B2 (en) * 2002-11-04 2006-12-12 Speechworks International, Inc. Multi-lingual speech recognition with cross-language context modeling

Patent Citations (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3535683A (en) * 1969-11-07 1970-10-20 Nasa Electronic checkout system for space vehicles
USRE31023E (en) * 1975-04-11 1982-09-07 Advanced Decision Handling, Inc. Highly automated agricultural production system
US4319491A (en) * 1978-06-09 1982-03-16 A/S N. Foss Electric Method and apparatus for determining at least one component of a sample of grain, seed, or another particulate material
US4247773A (en) * 1978-12-06 1981-01-27 A/S N. Foss Electric Method for quantitatively determining fat in a fat-containing sample
US4247773B1 (en) * 1978-12-06 1983-08-09
US4533834A (en) * 1982-12-02 1985-08-06 The United States Of America As Represented By The Secretary Of The Army Optical fire detection system responsive to spectral content and flicker frequency
US4622538A (en) * 1984-07-18 1986-11-11 Otis Elevator Company Remote monitoring system state machine and method
US4800279B1 (en) * 1985-09-13 1991-11-19 Indiana University Foundation
US4800279A (en) * 1985-09-13 1989-01-24 Indiana University Foundation Methods and devices for near-infrared evaluation of physical properties of samples
US4883963A (en) * 1986-04-28 1989-11-28 Bran+Luebbe Gmbh Optical analysis method and apparatus having programmable rapid random wavelength access
US5005142A (en) * 1987-01-30 1991-04-02 Westinghouse Electric Corp. Smart sensor system for diagnostic monitoring
US4964065A (en) * 1987-03-12 1990-10-16 Decibel Products, Inc. Computer-controlled electronic system monitor
US4888714A (en) * 1987-09-25 1989-12-19 Laser Precision Corporation Spectrometer system having interconnected computers at multiple optical heads
US5241178A (en) * 1989-03-16 1993-08-31 John Shields Infrared grain analyzer with controllable measurement wavelength
US5568400A (en) * 1989-09-01 1996-10-22 Stark; Edward W. Multiplicative signal correction method and apparatus
US5485579A (en) * 1989-09-08 1996-01-16 Auspex Systems, Inc. Multiple facility operating system architecture
US5483826A (en) * 1989-12-20 1996-01-16 Tjs Development Corporation, Inc. Remotely actuated pressure sensor responsive to an actuating signal
US5621669A (en) * 1990-07-27 1997-04-15 Bjornsson; Eyjolf S. Moisture sensor probe and control mechanism
US5321970A (en) * 1990-09-18 1994-06-21 Davies Anthony M C Method and apparatus for calibrating a spectrometer
US5459677A (en) * 1990-10-09 1995-10-17 Board Of Regents Of The University Of Washington Calibration transfer for analytical instruments
US5327708A (en) * 1991-02-28 1994-07-12 Gerrish Steven R Crop testing and evaluation system
US5308981A (en) * 1991-04-23 1994-05-03 Peter Perten Method and device for infrared analysis, especially with regard to food
US6192320B1 (en) * 1991-07-30 2001-02-20 The University Of Virginia Patent Foundation Interactive remote sample analysis system
US5631844A (en) * 1991-07-30 1997-05-20 University Of Virginia Interactive remote sample analysis system
US6055487A (en) * 1991-07-30 2000-04-25 Margery; Keith S. Interactive remote sample analysis system
US5366896A (en) * 1991-07-30 1994-11-22 University Of Virginia Alumni Patents Foundation Robotically operated laboratory system
US5357336A (en) * 1991-08-08 1994-10-18 The Dow Chemical Company Method and apparatus for multivariate characterization of optical instrument response
US5260875A (en) * 1991-08-20 1993-11-09 Micro-Trak System, Inc. Networked agricultural monitoring and control system
US5258825A (en) * 1991-11-13 1993-11-02 Perten Instruments North America, Inc. Optical compositional analyzer apparatus and method for detection of ash in wheat and milled wheat products
US5303165A (en) * 1992-02-12 1994-04-12 The Perkin-Elmer Corporation Standardizing and calibrating a spectrometric instrument
US5323332A (en) * 1992-02-27 1994-06-21 Infotec Development, Inc. Instrument landing system calibrator
US5227856A (en) * 1992-03-09 1993-07-13 Perten Instruments North America Inc. Sample holding and positioning mechanism and method for optical analysis
US5252829A (en) * 1992-03-25 1993-10-12 A/S Foss Electric Method of determining urea in milk
US5592402A (en) * 1992-04-16 1997-01-07 The Dow Chemical Company Method for interpreting complex data and detecting abnormal instrumentor process behavior
US5644232A (en) * 1992-05-15 1997-07-01 University Of Washington Quantitation and standardization of magnetic resonance measurements
US5594667A (en) * 1992-07-10 1997-01-14 Myers; Allen Method and apparatus for baseline drift correction for a sensor
US5369603A (en) * 1992-07-19 1994-11-29 Myers; Allen Calibration of a non-linear sensor
US5442553A (en) * 1992-11-16 1995-08-15 Motorola Wireless motor vehicle diagnostic and software upgrade system
US5307263A (en) * 1992-11-17 1994-04-26 Raya Systems, Inc. Modular microprocessor-based health monitoring system
US5365462A (en) * 1992-11-25 1994-11-15 Mcbean Sr Ronald V Instrumentation system with multiple sensor modules providing calibration date information
US5421095A (en) * 1993-02-03 1995-06-06 G.S. S.R.L. Procedure for transmission of information in aligning equipment for motor vehicles, and aligning equipment for carrying out the procedure
US5689418A (en) * 1993-07-22 1997-11-18 Ag-Chem Equipment Co., Inc. Agricultural communication network
US5857462A (en) * 1993-08-10 1999-01-12 Sandia Corporation Systematic wavelength selection for improved multivariate spectral analysis
US5442562A (en) * 1993-12-10 1995-08-15 Eastman Kodak Company Method of controlling a manufacturing process using multivariate analysis
US6022315A (en) * 1993-12-29 2000-02-08 First Opinion Corporation Computerized medical diagnostic and treatment advice system including network access
US6064943A (en) * 1994-03-07 2000-05-16 Clark, Jr.; Louis George Computer network for collecting and analyzing agronomic data
US5357441A (en) * 1994-03-11 1994-10-18 Raytheon Company Moisture content measuring apparatus and method
US5537336A (en) * 1994-03-30 1996-07-16 On-Site Analysis, Inc. On-site oil analyzer
US5517427A (en) * 1994-03-30 1996-05-14 On-Site Analysis, Inc. On-site oil analyzer
US5729544A (en) * 1994-05-09 1998-03-17 Motorola, Inc. Method for transmitting data packets based on message type
US5758300A (en) * 1994-06-24 1998-05-26 Fuji Jukogyo Kabushiki Kaisha Diagnosis system for motor vehicles and the method thereof
US6035246A (en) * 1994-11-04 2000-03-07 Sandia Corporation Method for identifying known materials within a mixture of unknowns
US5771096A (en) * 1994-12-09 1998-06-23 Foss Electric A/S Method of obtaining information
US5933792A (en) * 1995-02-09 1999-08-03 Foss Electric A/S Method of standardizing a spectrometer
US6236740B1 (en) * 1995-04-07 2001-05-22 Michael E. Lee Signature verification apparatus and method utilizing relative angle measurements
US5708593A (en) * 1995-05-19 1998-01-13 Elf Antar France Method for correcting a signal delivered by a measuring instrument
US5647834A (en) * 1995-06-30 1997-07-15 Ron; Samuel Speech-based biofeedback method and system
US5839094A (en) * 1995-06-30 1998-11-17 Ada Technologies, Inc. Portable data collection device with self identifying probe
US6249241B1 (en) * 1995-09-21 2001-06-19 The United States Of America As Represented By The Secretary Of The Navy Marine vessel traffic system
US5616851A (en) * 1995-09-29 1997-04-01 Farmex Inc. Ex-situ grain moisture analyzer for a combine
US5760399A (en) * 1995-10-02 1998-06-02 Foss Nirsystems, Inc. Measurement of transmission spectra of pharmaceutical tablets
US5972693A (en) * 1995-10-24 1999-10-26 Curagen Corporation Apparatus for identifying, classifying, or quantifying DNA sequences in a sample without sequencing
US5754289A (en) * 1995-12-30 1998-05-19 Kyoto Dai-Ichi Kagaku Co., Ltd. Raman scattered light measuring apparatus
US5717209A (en) * 1996-04-29 1998-02-10 Petrometrix Ltd. System for remote transmission of spectral information through communication optical fibers for real-time on-line hydrocarbons process analysis by near infra red spectroscopy
US5973324A (en) * 1996-10-23 1999-10-26 Elf Antar France Process for tracking and monitoring a manufacturing unit and/or a near-infrared spectrometer by means of at least one indicator
US6061640A (en) * 1996-10-31 2000-05-09 Matsushita Electric Industrial Co., Ltd. Method of and apparatus for extracting abnormal factors in a processing operation
US5716272A (en) * 1996-11-05 1998-02-10 New Holland North America, Inc. Moisture/yield monitor grain simulator
US6100526A (en) * 1996-12-30 2000-08-08 Dsquared Development, Inc. Grain quality monitor
US6072576A (en) * 1996-12-31 2000-06-06 Exxon Chemical Patents Inc. On-line control of a chemical process plant
US5991025A (en) * 1997-02-27 1999-11-23 Pioneer Hi-Bred International, Inc. Near infrared spectrometer used in combination with an agricultural implement for real time grain and forage analysis
US5892690A (en) * 1997-03-10 1999-04-06 Purechoice, Inc. Environment monitoring system
US5957773A (en) * 1997-04-02 1999-09-28 Dekalb Genetics Corporation Method and apparatus for measuring grain characteristics
US6369388B2 (en) * 1997-04-18 2002-04-09 Zeltex, Inc. Multiple gain, portable, near-infrared analyzer
US5936727A (en) * 1997-04-24 1999-08-10 Foss Nirsystems, Inc. Wavelength standard
US6219438B1 (en) * 1997-09-02 2001-04-17 Lucent Technologies Inc. Produce indentifier using barcode scanner and wavelet image processing and having compensation for dirt accumulated on viewing window
US6014451A (en) * 1997-10-17 2000-01-11 Pioneer Hi-Bred International, Inc. Remote imaging system for plant diagnosis
US5955737A (en) * 1997-10-27 1999-09-21 Systems & Processes Engineering Corporation Chemometric analysis for extraction of individual fluorescence spectrum and lifetimes from a target mixture
US6096553A (en) * 1997-12-17 2000-08-01 Heald; Randall L. On-line analysis of acid catalyst in an alkylation process
US6115681A (en) * 1997-12-17 2000-09-05 The United States Of America As Represented By The Secretary Of The Navy Real-time data acquisition
US6085227A (en) * 1998-03-20 2000-07-04 International Business Machines Corporation System and method for operating scientific instruments over wide area networks
US6032107A (en) * 1998-05-19 2000-02-29 Micron Technology, Inc. Calibrating test equipment
US6202030B1 (en) * 1998-05-19 2001-03-13 Micron Technology, Inc. Calibrating test equipment
US6069694A (en) * 1998-05-29 2000-05-30 Foss Nirsystems, Inc. Flow cell
US6122603A (en) * 1998-05-29 2000-09-19 Powerweb, Inc. Multi-utility energy control system with dashboard
US6246479B1 (en) * 1998-06-08 2001-06-12 Lj Laboratories, L.L.C. Integrated spectrometer assembly and methods
US6137108A (en) * 1998-06-17 2000-10-24 Foss Nirsystems Incorporated Instrument and method for spectroscopic analysis by reflectance and transmittance
US6181957B1 (en) * 1998-07-13 2001-01-30 California Institute Of Technology Non-invasive glucose monitor
US6104988A (en) * 1998-08-27 2000-08-15 Automotive Electronics, Inc. Electronic control assembly testing system
US6031608A (en) * 1998-09-03 2000-02-29 Foss Nirsystems, Inc. Spectroscopic instrument with offset grating to improve focus
US6218953B1 (en) * 1998-10-14 2001-04-17 Statsignal Systems, Inc. System and method for monitoring the light level around an ATM
US6249348B1 (en) * 1998-11-23 2001-06-19 Lj Laboratories, L.L.C. Integrated spectrometer assembly and methods
US6211782B1 (en) * 1999-01-09 2001-04-03 Heat-Timer Corporation Electronic message delivery system utilizable in the monitoring of remote equipment and method of same
US6295492B1 (en) * 1999-01-27 2001-09-25 Infomove.Com, Inc. System for transmitting and displaying multiple, motor vehicle information
US6181994B1 (en) * 1999-04-07 2001-01-30 International Business Machines Corporation Method and system for vehicle initiated delivery of advanced diagnostics based on the determined need by vehicle
US6298308B1 (en) * 1999-05-20 2001-10-02 Reid Asset Management Company Diagnostic network with automated proactive local experts
US6264621B1 (en) * 1999-10-29 2001-07-24 William C. Paske System and method for providing quantified and qualitative hand analysis
US6246355B1 (en) * 1999-12-22 2001-06-12 Hot/Shot Radar Inspections, Llc Radar cross-section measurement system for analysis of wooden structures
US6360179B1 (en) * 2000-02-18 2002-03-19 Milestone Technology, Inc. Systems, methods and apparatus for wireless transmission and reception of data by agricultural field sensors
US6560546B1 (en) * 2000-08-07 2003-05-06 Infrasoft Llc Remote analysis system
US6912522B2 (en) * 2000-09-11 2005-06-28 Ablesoft, Inc. System, method and computer program product for optimization and acceleration of data transport and processing

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313625B2 (en) 2000-12-06 2007-12-25 Intelliden, Inc. Dynamic configuration of network devices to enable data transfers
US8219662B2 (en) 2000-12-06 2012-07-10 International Business Machines Corporation Redirecting data generated by network devices
US7246163B2 (en) 2000-12-06 2007-07-17 Intelliden System and method for configuring a network device
US7246162B2 (en) 2000-12-06 2007-07-17 Intelliden System and method for configuring a network device
US20020069274A1 (en) * 2000-12-06 2002-06-06 Tindal Glen D. System and method for configuration, management and monitoring of network resources
US20020069367A1 (en) * 2000-12-06 2002-06-06 Glen Tindal Network operating system data directory
US20060031434A1 (en) * 2000-12-06 2006-02-09 Tindal Glen D System and method for configuring a network device
US20060031435A1 (en) * 2000-12-06 2006-02-09 Tindal Glen D System and method for configuring a network device
US20060080434A1 (en) * 2000-12-06 2006-04-13 Intelliden Dynamic configuration of network devices to enable data transfers
US7650396B2 (en) 2000-12-06 2010-01-19 Intelliden, Inc. System and method for defining a policy enabled network
US20060242690A1 (en) * 2001-03-21 2006-10-26 Wolf Jonathan S Network configuration manager
US7472412B2 (en) 2001-03-21 2008-12-30 Wolf Jonathan S Network configuration manager
US8296400B2 (en) 2001-08-29 2012-10-23 International Business Machines Corporation System and method for generating a configuration schema
US20060179131A1 (en) * 2001-11-26 2006-08-10 Mike Courtney System and method for generating a representation of a configuration schema
US20040030771A1 (en) * 2002-08-07 2004-02-12 John Strassner System and method for enabling directory-enabled networking
US20040028069A1 (en) * 2002-08-07 2004-02-12 Tindal Glen D. Event bus with passive queuing and active routing
US20040078457A1 (en) * 2002-10-21 2004-04-22 Tindal Glen D. System and method for managing network-device configurations
US20040230681A1 (en) * 2002-12-06 2004-11-18 John Strassner Apparatus and method for implementing network resources to provision a service using an information model
US9158845B1 (en) * 2004-04-29 2015-10-13 Aol Inc. Reducing latencies in web page rendering
US20070124156A1 (en) * 2005-11-29 2007-05-31 The Boeing Company Representing business transactions
US7463935B1 (en) 2006-03-09 2008-12-09 Rockwell Automation Technologies, Inc. Message queuing in an industrial environment
US20100264656A1 (en) * 2009-04-16 2010-10-21 Flood Kerry A Orbiting power plant
US8479219B2 (en) 2010-06-30 2013-07-02 International Business Machines Corporation Allocating space in message queue for heterogeneous messages
US20130007773A1 (en) * 2011-06-28 2013-01-03 Steven Scott Guilford Systems, methods, apparatuses, and computer program products for facilitating integration of third party technology with a database
US20130144967A1 (en) * 2011-12-05 2013-06-06 International Business Machines Corporation Scalable Queuing System
US9049164B2 (en) 2012-03-20 2015-06-02 International Business Machines Corporation Dynamic message retrieval by subdividing a message queue into sub-queues
US9065778B2 (en) 2012-03-20 2015-06-23 International Business Machines Corporation Dynamic message retrieval by subdividing a message queue into sub-queues
US11237881B2 (en) 2019-09-17 2022-02-01 Kyndryl, Inc. Message connector as a service to migrate streaming applications into cloud nativity

Also Published As

Publication number Publication date
EP1525534B1 (en) 2016-03-30
AR036238A1 (en) 2004-08-25
US20110054864A1 (en) 2011-03-03
US20030154044A1 (en) 2003-08-14
WO2003010624A2 (en) 2003-02-06
EP1525534A4 (en) 2008-05-28
BR0211369A (en) 2006-05-23
WO2003010624A3 (en) 2005-02-24
AU2002318275B2 (en) 2009-03-26
US7194369B2 (en) 2007-03-20
EP1525534A2 (en) 2005-04-27
US8010309B2 (en) 2011-08-30
MY140632A (en) 2010-01-15
US20070143037A1 (en) 2007-06-21

Similar Documents

Publication Publication Date Title
US20030135547A1 (en) Extensible modular communication executive with active message queue and intelligent message pre-validation
US10054935B2 (en) Apparatus and method for web-based tool management
US7617277B2 (en) Internet object based remote operation of an industrial controller
US8028049B1 (en) Apparatus and method for web-based tool management
US7778717B2 (en) Component object model communication method for a control system
WO2019195121A1 (en) Digital worker management system
US7379821B2 (en) System and method for open control and monitoring of biological instruments
US20170085438A1 (en) Network management device and method for discovering and managing network connected databases
US7987254B2 (en) Automation network, remote access server for an automation network and a method for transmitting operating data between an automation system and a remote computer
US7478128B2 (en) Notification management for monitoring system
US20040254945A1 (en) Business process management for a message-based exchange infrastructure
US8099736B2 (en) Systems and methods providing intelligent routing of data between software systems
JP2003506773A (en) Software architecture for automated laboratories
US20090157864A1 (en) Grid computing control method for testing application program capacity of server and service method thereof
KR20060125594A (en) Model for communication between manufacturing and enterprise levels
US20020065900A1 (en) Method and apparatus for communicating images, data, or other information in a defect source identifier
US7242995B1 (en) E-manufacturing in semiconductor and microelectronics processes
US7725497B2 (en) System and method for standardized process monitoring in a complex manufacturing environment
JP2004505364A (en) Remote diagnosis method of industrial technical process
WO2014154810A1 (en) Laboratory automation system with integration of data from a laboratory automation apparatus and a middleware
JP2004531794A (en) Method and apparatus for integrating multiple process controllers
WO2003017111A1 (en) Extensible modular communication executive with active message queue and intelligent message pre-validation
US9020624B2 (en) Method and system for managing results of an analysis process on objects handled along a technical process line
JP3710534B2 (en) Process control method
Michaloski et al. Quantifying the performance of MT-Connect in a distributed manufacturing environment

Legal Events

Date Code Title Description
AS Assignment

Owner name: COGNIS CORPORATION, PENNSYLVANIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KENT, J. THOMAS;TOOT, DAVID A.;REEL/FRAME:013167/0057

Effective date: 20020911

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION