US20150039981A1 - Embedded system web server - Google Patents
Embedded system web server Download PDFInfo
- Publication number
- US20150039981A1 US20150039981A1 US13/956,823 US201313956823A US2015039981A1 US 20150039981 A1 US20150039981 A1 US 20150039981A1 US 201313956823 A US201313956823 A US 201313956823A US 2015039981 A1 US2015039981 A1 US 2015039981A1
- Authority
- US
- United States
- Prior art keywords
- web server
- objects
- web
- embedded
- embedded system
- 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.)
- Granted
Links
Images
Classifications
-
- G06F17/2247—
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- G06F17/2235—
Definitions
- the present invention relates to computer processing systems, and more specifically, to a web server in an embedded computer processing system.
- Computer systems are often incorporated in embedded systems to provide dedicated control and monitoring functions for larger mechanical and/or electrical systems.
- an embedded system is optimized to perform specific tasks.
- an embedded system is typically designed to meet certain minimum feature requirements but may not directly include a general-purpose user interface.
- an embedded system can be implemented as one or more cards installed in a chassis designed to operate in a variety of environmentally harsh conditions, such as a mobile radar control system.
- An embedded system can incorporate interfaces to a number of sensors and actuators, but may have limited ability to support reconfiguration and low-level diagnostics when deployed in an intended field of operation.
- Some embedded systems can engage in user initiated built-in tests, but collection and display of results may be limited to simple codes depending upon user interface capabilities of the embedded systems.
- Other embedded systems implement complex proprietary communication interfaces to provide test and diagnostic support. Such proprietary solutions can be difficult to maintain as they often require special purpose software both internal and external to the embedded systems.
- Once embedded systems are deployed in the field it can also be challenging to manage version control issues as various deployed systems may have different versions of software and hardware configurations. Managing interactions between interdependent components with different version combinations adds to the complexity of interface design.
- a method for implementing a web server in an embedded system is provided.
- Registration information is received at the web server in the embedded system from a plurality of objects. Each object provides a link to itself in the registration information.
- the registration information is stored in a registry as a list of links mapped to the objects.
- a web page is dynamically generated at runtime by the web server based on the registration information in the registry to provide a user interface including a visual depiction of the links on the web page.
- the web page is provided to a web browser external to the embedded system such that the objects are accessible to the web browser based on the links through the user interface.
- an embedded system includes a registry and a web server configured to receive registration information from a plurality of objects. Each object provides a link to itself in the registration information. The registration information is stored in the registry as a list of links mapped to the objects. The web server is further configured to dynamically generate a web page at runtime based on the registration information in the registry to provide a user interface including a visual depiction of the links on the web page. The web server is also configured to provide the web page to a web browser external to the embedded system such that the objects are accessible to the web browser based on the links through the user interface.
- FIG. 1 illustrates a block diagram of an exemplary embodiment of a system interfacing an embedded system web server to a web browser.
- FIG. 2 illustrates a block diagram of various links between a main page, objects, and data.
- FIG. 3 illustrates an example of a user interface accessible through a web browser.
- FIG. 4 illustrates an exemplary process for providing a web server in an embedded system.
- FIG. 1 illustrates a block diagram of an exemplary embodiment of system 100 including an embedded system 102 and a plurality of client systems 104 that are external to the embedded system 102 .
- the embedded system 102 and the client systems 104 are configured to communicate via a network 106 .
- Other computer systems, such as maintenance or troubleshooting aid computer system 108 may also be coupled to the network 106 .
- the embedded system 102 includes a processing subsystem 110 and a hardware subsystem 112 , which are both coupled to the network 106 .
- the network 106 may be an Ethernet network and can include a combination of wired, wireless, and/or optical links, as well as routers, hubs, switches, and the like (not depicted) to enable communication.
- the processing subsystem 110 and the hardware subsystem 112 may be partitioned on separate cards or on opposite sides of a common card. It will be understood that there can be multiple instances of either or both of the processing subsystem 110 and the hardware subsystem 112 , as well as additional subsystems, within the embedded system 102 of FIG. 1 .
- the client systems 104 and maintenance or troubleshooting aid computer system 108 can include a variety of desktop, laptop, general-purpose computer devices, mobile computing devices, and/or networked devices with processing circuits and input/output (I/O) interfaces, such as keys/buttons, a touch screen, audio input, a display device and/or audio output.
- the client systems 104 and maintenance or troubleshooting aid computer system 108 can include various computer/communication hardware and software technology known in the art, such as one or more processing units or circuits, volatile and non-volatile memory including removable media, power supplies, network interfaces, support circuitry, operating systems, and the like.
- the client systems 104 can each execute one or more web browsers 114 that are operable to communicate through the network 106 with one or more web servers in the embedded system 102 .
- the embedded system 102 includes an embedded software web server 116 in the processing subsystem 110 and an embedded hardware web server 118 in the hardware subsystem 112 , although additional or fewer web servers may be incorporated in the embedded system 102 .
- the web browsers 114 and web servers 116 and 118 can also communicate the through the network 106 with a maintenance or trouble shooting aid web server 120 on the maintenance or troubleshooting aid computer system 108 to access, for example, maintenance or troubleshooting aid data 122 .
- the processing subsystem 110 includes processing circuitry 124 and an operating system 126 , where the embedded software web server 116 can be implemented as an application executable by the processing circuitry 124 through the operating system 126 .
- the embedded hardware web server 118 may be implemented in one or more of: a field programmable gate array (FPGA), application specific integrated circuit (ASIC), programmable logic device (PLD), or other hardware that need not rely upon an operating system.
- the hardware subsystem 112 may perform low-level signal control and timing to support operation of a controlled system 128 coupled to the embedded system 102 .
- the embedded system 102 is optimized to perform specific control and monitoring tasks with respect to the controlled system 128 and one or more other devices 130 .
- the controlled system 128 can be a radar system
- the one or more other devices 130 can include a global positioning system (GPS) locator.
- GPS global positioning system
- the software objects 132 may be implemented using an object-oriented programming language to encapsulate particular functions. For example, software objects 132 can map to the controlled system 128 and/or one or more of the devices 130 . Furthermore, the software objects 132 can encapsulate particular models, diagnostics, or configuration parameters for the embedded system 102 .
- the software objects 132 that interface with the embedded software web server 116 are self-registering upon initialization.
- the embedded software web server 116 can store registration information associated with the software objects 132 in a registry 134 from which a main web page 136 is dynamically generated.
- the main web page 136 is also referred to as the main page 136 or the web page 136 .
- the registry 134 may store a list of links mapped to the software objects 132 , as well as a desired display position on the main web page 136 , an image associated with each software object 132 , and an indication as to whether each software object 132 supports a real-time data feed.
- Changes to the registry 134 can result in modifications to the main web page 136 at initialization or during runtime. For example, if a new software object 132 is created during runtime of the embedded software web server 116 , self-registration of the new software object 132 upon its initialization results in a change to the registry 134 when new registration information associated with the new software object 132 is added. A change to the registry 134 may trigger dynamic regeneration of the main web page 136 . Changes to non-displayed parameters in the registry 134 can also change system behavior but may not result in a change to the main web page 136 .
- a software object 132 determines that a real-time data feed can now be supported, re-registration of a modified version of the software object 132 need not result in a change to the main web page 136 but will impact how communication is managed by the embedded software web server 116 when the modified version of the software object 132 is selected by the web browser 114 .
- the main web page 136 can also include links to other objects, such as a hardware object 138 on the hardware subsystem 112 .
- the hardware object 138 can self-register with the embedded hardware web server 118 , which can in turn pass a link for the hardware object 138 to the registry 134 via the embedded software web server 116 .
- the embedded hardware web server 118 can create a separately accessible web page (not depicted) for the hardware object 138 .
- the hardware object 138 can support a number of lower level functions to implement user-initiated built-in tests.
- the hardware object 138 is configured to provide its own user interface to enable a user to perform one or more of: running a detailed hardware test, uploading acceptance data 140 , downloading initialization data 142 , delivering fault information, and updating runtime statistics via the web browser 114 . Although only one hardware object 138 is depicted in the example of FIG. 1 , additional hardware objects 138 can also be supported by the embedded hardware web server 118 or other web servers (not depicted) in the embedded system 102 .
- the hardware object 138 and software objects 132 may also link to each other, as well as have links external to the embedded system 102 .
- the associated object upon detection of a failure by one of the hardware object 138 or software objects 132 , the associated object can provide maintenance or troubleshooting aid data 122 to the web browser 114 through the maintenance or troubleshooting aid web server 120 .
- the self-registration of objects and dynamic creation of one or more web pages enables rapid localized updates without requiring changes to a number of user interfaces.
- Linking between objects and locations external to the embedded system 102 provides a robust solution to integrate multiple related objects while reducing the amount of local data storage required within the embedded system 102 .
- Using a web browser-based interface to access details within the embedded system 102 can result in a wide number of supported client-side devices while also allowing users to navigate through a familiar environment, i.e., web browser 114 .
- multiple client systems 104 and web browsers 114 are depicted in FIG. 1 , it will be understood that a single client system 104 may be supported.
- the embedded system 102 may implement sharing/locking logic, such as a semaphore, to control access to particular resources within the embedded system 102 .
- FIG. 2 illustrates a block diagram of various links between the main web page 136 , objects 132 and 138 , and data 122 , 140 , and 142 .
- registration information 204 is stored in the registry 134 .
- Fields in the registration information 204 can include, for example, an object identifier 206 , a link 208 , a desired display position 210 , an associated image 212 , and a real-time data feed support indication 214 . Additional or fewer fields can be supported.
- Each of the objects 132 A, 132 B, and 138 provides its own respective registration information 204 upon self-registration.
- a web server such as the embedded software web server 116 of FIG. 1 , accesses the registration information 204 stored in the registry 134 and dynamically generates the main web page 136 .
- the embedded software web server 116 of FIG. 1 can access object identifiers 206 and links 208 associated with various objects in the registry 134 and insert corresponding instances of the links 208 in the main web page 136 .
- the desired display position 210 indicates a desired location on the main web page 136 to insert a link 208 along with an associated image 212 .
- the desired display position 210 may be specified based on x-y coordinates, rows and columns, or simply a desired row.
- a respective column can be determined dynamically based on the ordering of data in the registry 134 .
- the associated image 212 may be specified as a file path to an image file.
- the associated image 212 may simply be a text label to display or can be omitted in various embodiments.
- link 208 A points to software object 132 A
- link 208 B points to software object 132 B
- link 208 C points to hardware object 138 .
- additional links 208 can be included in the main web page 136 upon dynamic regeneration of the main web page 136 .
- the software object 132 A includes links 216 to maintenance or troubleshooting aid data 122 and to software object 132 B.
- the software object 132 A also includes a user interface 218 which can be provided as a complete human-machine interface to a web browser 114 of FIG. 1 or can be merged with a portion of the main web page 136 .
- the software object 132 A may also include command and control logic 220 to support interfacing with a device 130 A, which is one of the devices 130 of FIG. 1 , via the user interface 218 .
- the software object 132 A may further include a real-time data feed 222 to pass data associated with the device 130 A back to a web browser 114 of FIG. 1 in real-time such that continuous monitoring can be performed without repeated requests from the web browser 114 .
- the software object 132 B includes links 224 back to the software object 132 A, a user interface 226 , and command and control logic 228 .
- the command and control logic 228 is accessible through the user interface 226 may include model calculations or initiation of internal tests within the embedded system 102 of FIG. 1 .
- the hardware object 138 includes links 230 to the acceptance data 140 and initialization data 142 , a user interface 232 , and command and control logic 234 configured to interface with the controlled system 128 .
- the user interface 232 can provide a user access to the controlled system 128 through the command and control logic 234 , as well as support initiation of various tests via a web browser 114 of FIG. 1 .
- FIG. 3 illustrates an example of a user interface 300 accessible through web browser 114 of FIG. 1 .
- the main web page 136 may be accessed by the web browser 114 through the network 106 of FIG. 1 by establishing communication with a web server, such as the embedded web server 116 of FIG. 1 .
- a user can enter an address 302 into an address bar 304 of the web browser 114 to request access to the main web page 136 .
- the main web page 136 can provide the web browser 114 with the user interface 300 , which is an example based on contents of the registry 134 of FIG. 1 .
- FIG. 1 illustrates an example of a user interface 300 accessible through web browser 114 of FIG. 1 .
- a first row 306 contains images and associated descriptions as visual depictions for a first link 308 to a radar control, a second link 310 to a projectile solution, a third link 312 to a GPS device, and a fourth link 314 to a memory status check.
- a second row 316 contains images and associated descriptions as visual depictions for a fifth link 318 to troubleshooting, a sixth link 320 to a timing test 320 , a seventh link 322 to hardware tests, and an eighth link 324 to system configuration.
- the seventh and eighth links 322 and 324 are examples where there are only text labels and no images associated with the links
- the visual depiction of links 308 - 314 , 318 - 324 corresponds to links 208 of FIG. 2 in the registry 134 .
- the embedded web server 116 of FIG. 1 in this example accesses the registry 134 to identify and access an associated object.
- the selected object can display its respective user interface in an object user interface region 326 , such as one of the user interfaces 218 , 226 , or 232 of FIG. 2 .
- a user interface of a selected object can replace the entire user interface 300 .
- each of the links 308 - 314 , 318 - 324 may be associated with a different object, such as a software object 132 or a hardware object 138 of FIG. 1 .
- the object user interface region 326 can further display linked contents from the user interface of the selected object retrieved from another local or remote web server, such as the embedded hardware web server 118 or the maintenance or troubleshooting aid web server 120 .
- FIG. 4 illustrates an exemplary process 400 for providing a web server in an embedded system, such as the embedded software web server 116 in the embedded system 102 of FIG. 1 .
- the process 400 can be implemented in the system 100 of FIG. 1 .
- the embedded software web server 116 is described as the web server in this example description, the embedded hardware web server 118 can be configured to perform a number of the web server actions described below.
- the process 400 is described in reference to FIGS. 1-4 .
- the embedded software web server 116 receives registration information 204 from a plurality of objects 132 , 138 , where each object provides a link 208 to itself in the registration information 204 .
- the registration information 204 provided by each object 132 , 138 can include an object identifier 206 , a desired display position 210 on the web page 136 , an image 212 associated with the object 132 , 138 , and a real-time data feed support indication 214 .
- each of the objects 132 A, 132 B, 138 provides its own user interface 218 , 226 , 232 respectively.
- the embedded software web server 116 can store the registration information 204 in the registry 134 as a list of links 208 mapped to the objects 132 , 138 .
- the embedded software web server 116 dynamically generates the web page 136 at runtime based on the registration information 204 in the registry 134 to provide a user interface 300 including a visual depiction of links 308 - 314 , 318 - 324 on the web page 136 .
- the embedded software web server 116 provides the web page 136 to a web browser 114 external to the embedded system 102 such that the objects 132 , 138 are accessible to the web browser 114 based on the links 208 corresponding to the visual depiction of links 308 - 314 , 318 - 324 through the user interface 300 .
- the web server can be the embedded software web server 116 , and the objects can include a number of software objects 132 . As previously described, at least one of the software objects 132 can link to another web server that is external to the embedded system 102 to provide additional associated information, such as maintenance or troubleshooting aid data 122 on the maintenance or troubleshooting aid web server 120 .
- the embedded system 102 can also include hardware subsystem 112 , including the embedded hardware web server 118 configured to link the hardware object 138 to the web page 136 .
- the hardware object 138 is configured to provide the registration information 204 to the embedded software web server 116 through the embedded hardware web server 118 upon initialization.
- the hardware object 138 may be configured to provide its own user interface 232 to enable a user to perform one or more of: running a detailed hardware test, uploading acceptance data 140 , downloading initialization data 142 , delivering fault information, and updating runtime statistics via the web browser 114 .
- At least one of the software objects 132 can also or alternatively enable a user to perform one or more of: running detailed software or system tests, uploading acceptance data 140 , downloading initialization data 142 , delivering fault information, and updating runtime statistics via the web browser 114 .
- the web browser 114 and the embedded software web server 116 and/or the embedded hardware web server 118 can support communication using a web socket protocol.
- a hypertext transfer protocol (HTTP) port connection can be established, for example, between the web browser 114 and the embedded software web server 116 .
- a protocol switch is performed between the hypertext transfer protocol and a websocket protocol.
- Sending and receiving of data between the web browser 114 and the objects 132 and/or 138 can be performed using the websocket protocol.
- the websocket protocol may support real-time data feeds for objects that include real-time data feed support. Accordingly, at block 410 upon receiving an object request from the web browser 114 , the embedded software web server 116 can access the registry 134 to get a selected object based on the request.
- the embedded software web server 116 can determine whether the selected object supports a real-time data feed by checking the real-time data feed support indication 214 . Based on determining that the selected object supports the real-time data feed, a real-time data feed is established between the selected object and the web browser 114 for user interface content at block 414 . Otherwise, at block 416 , the selected object is called for user interface content, and the user interface content is returned to the web browser 114 .
- software object 132 A of FIG. 2 includes real-time data feed 222 which can automatically update data passed through the user interface 218 to the web browser 114 at regular time intervals. In contrast, since software object 132 B does not include real-time data feed support, data may be passed through the user interface 226 as a static snapshot to the web browser 114 .
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
- The present invention relates to computer processing systems, and more specifically, to a web server in an embedded computer processing system.
- Computer systems are often incorporated in embedded systems to provide dedicated control and monitoring functions for larger mechanical and/or electrical systems. In contrast to a general purpose computer system, an embedded system is optimized to perform specific tasks. As such, an embedded system is typically designed to meet certain minimum feature requirements but may not directly include a general-purpose user interface. As one example, an embedded system can be implemented as one or more cards installed in a chassis designed to operate in a variety of environmentally harsh conditions, such as a mobile radar control system. An embedded system can incorporate interfaces to a number of sensors and actuators, but may have limited ability to support reconfiguration and low-level diagnostics when deployed in an intended field of operation.
- Some embedded systems can engage in user initiated built-in tests, but collection and display of results may be limited to simple codes depending upon user interface capabilities of the embedded systems. Other embedded systems implement complex proprietary communication interfaces to provide test and diagnostic support. Such proprietary solutions can be difficult to maintain as they often require special purpose software both internal and external to the embedded systems. Once embedded systems are deployed in the field, it can also be challenging to manage version control issues as various deployed systems may have different versions of software and hardware configurations. Managing interactions between interdependent components with different version combinations adds to the complexity of interface design.
- According to one embodiment of the present invention, a method for implementing a web server in an embedded system is provided. Registration information is received at the web server in the embedded system from a plurality of objects. Each object provides a link to itself in the registration information. The registration information is stored in a registry as a list of links mapped to the objects. A web page is dynamically generated at runtime by the web server based on the registration information in the registry to provide a user interface including a visual depiction of the links on the web page. The web page is provided to a web browser external to the embedded system such that the objects are accessible to the web browser based on the links through the user interface.
- According to another embodiment of the present invention, an embedded system is provided that includes a registry and a web server configured to receive registration information from a plurality of objects. Each object provides a link to itself in the registration information. The registration information is stored in the registry as a list of links mapped to the objects. The web server is further configured to dynamically generate a web page at runtime based on the registration information in the registry to provide a user interface including a visual depiction of the links on the web page. The web server is also configured to provide the web page to a web browser external to the embedded system such that the objects are accessible to the web browser based on the links through the user interface.
- Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention. For a better understanding of the invention with the advantages and the features, refer to the description and to the drawings.
- The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The forgoing and other features, and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
-
FIG. 1 illustrates a block diagram of an exemplary embodiment of a system interfacing an embedded system web server to a web browser. -
FIG. 2 illustrates a block diagram of various links between a main page, objects, and data. -
FIG. 3 illustrates an example of a user interface accessible through a web browser. -
FIG. 4 illustrates an exemplary process for providing a web server in an embedded system. - The embodiments described herein include systems and methods for providing a web server in an embedded system.
FIG. 1 illustrates a block diagram of an exemplary embodiment ofsystem 100 including an embeddedsystem 102 and a plurality ofclient systems 104 that are external to the embeddedsystem 102. The embeddedsystem 102 and theclient systems 104 are configured to communicate via anetwork 106. Other computer systems, such as maintenance or troubleshootingaid computer system 108 may also be coupled to thenetwork 106. In the example ofFIG. 1 , the embeddedsystem 102 includes aprocessing subsystem 110 and ahardware subsystem 112, which are both coupled to thenetwork 106. Thenetwork 106 may be an Ethernet network and can include a combination of wired, wireless, and/or optical links, as well as routers, hubs, switches, and the like (not depicted) to enable communication. Where the embeddedsystem 102 is embodied in a chassis configured to hold multiple cards, theprocessing subsystem 110 and thehardware subsystem 112 may be partitioned on separate cards or on opposite sides of a common card. It will be understood that there can be multiple instances of either or both of theprocessing subsystem 110 and thehardware subsystem 112, as well as additional subsystems, within the embeddedsystem 102 ofFIG. 1 . - The
client systems 104 and maintenance or troubleshootingaid computer system 108 can include a variety of desktop, laptop, general-purpose computer devices, mobile computing devices, and/or networked devices with processing circuits and input/output (I/O) interfaces, such as keys/buttons, a touch screen, audio input, a display device and/or audio output. Theclient systems 104 and maintenance or troubleshootingaid computer system 108 can include various computer/communication hardware and software technology known in the art, such as one or more processing units or circuits, volatile and non-volatile memory including removable media, power supplies, network interfaces, support circuitry, operating systems, and the like. Theclient systems 104 can each execute one ormore web browsers 114 that are operable to communicate through thenetwork 106 with one or more web servers in the embeddedsystem 102. In the example ofFIG. 1 , the embeddedsystem 102 includes an embeddedsoftware web server 116 in theprocessing subsystem 110 and an embeddedhardware web server 118 in thehardware subsystem 112, although additional or fewer web servers may be incorporated in the embeddedsystem 102. Theweb browsers 114 and 116 and 118 can also communicate the through theweb servers network 106 with a maintenance or trouble shootingaid web server 120 on the maintenance or troubleshootingaid computer system 108 to access, for example, maintenance ortroubleshooting aid data 122. - In the example of
FIG. 1 , theprocessing subsystem 110 includesprocessing circuitry 124 and anoperating system 126, where the embeddedsoftware web server 116 can be implemented as an application executable by theprocessing circuitry 124 through theoperating system 126. In contrast, the embeddedhardware web server 118 may be implemented in one or more of: a field programmable gate array (FPGA), application specific integrated circuit (ASIC), programmable logic device (PLD), or other hardware that need not rely upon an operating system. Thehardware subsystem 112 may perform low-level signal control and timing to support operation of a controlledsystem 128 coupled to the embeddedsystem 102. The embeddedsystem 102 is optimized to perform specific control and monitoring tasks with respect to the controlledsystem 128 and one or moreother devices 130. As one example, the controlledsystem 128 can be a radar system, and the one or moreother devices 130 can include a global positioning system (GPS) locator. - There may be a number of
software objects 132 in theprocessing subsystem 110 that include a user interface to support interactions with theweb browser 114 through the embeddedsoftware web server 116. Thesoftware objects 132 can be implemented using an object-oriented programming language to encapsulate particular functions. For example,software objects 132 can map to the controlledsystem 128 and/or one or more of thedevices 130. Furthermore, thesoftware objects 132 can encapsulate particular models, diagnostics, or configuration parameters for the embeddedsystem 102. The software objects 132 that interface with the embeddedsoftware web server 116 are self-registering upon initialization. The embeddedsoftware web server 116 can store registration information associated with thesoftware objects 132 in aregistry 134 from which amain web page 136 is dynamically generated. Themain web page 136 is also referred to as themain page 136 or theweb page 136. Theregistry 134 may store a list of links mapped to thesoftware objects 132, as well as a desired display position on themain web page 136, an image associated with eachsoftware object 132, and an indication as to whether eachsoftware object 132 supports a real-time data feed. - Changes to the
registry 134 can result in modifications to themain web page 136 at initialization or during runtime. For example, if anew software object 132 is created during runtime of the embeddedsoftware web server 116, self-registration of thenew software object 132 upon its initialization results in a change to theregistry 134 when new registration information associated with thenew software object 132 is added. A change to theregistry 134 may trigger dynamic regeneration of themain web page 136. Changes to non-displayed parameters in theregistry 134 can also change system behavior but may not result in a change to themain web page 136. For example, if asoftware object 132 determines that a real-time data feed can now be supported, re-registration of a modified version of thesoftware object 132 need not result in a change to themain web page 136 but will impact how communication is managed by the embeddedsoftware web server 116 when the modified version of thesoftware object 132 is selected by theweb browser 114. - The
main web page 136 can also include links to other objects, such as ahardware object 138 on thehardware subsystem 112. Thehardware object 138 can self-register with the embeddedhardware web server 118, which can in turn pass a link for thehardware object 138 to theregistry 134 via the embeddedsoftware web server 116. Alternatively, the embeddedhardware web server 118 can create a separately accessible web page (not depicted) for thehardware object 138. Thehardware object 138 can support a number of lower level functions to implement user-initiated built-in tests. Thehardware object 138 is configured to provide its own user interface to enable a user to perform one or more of: running a detailed hardware test, uploadingacceptance data 140, downloadinginitialization data 142, delivering fault information, and updating runtime statistics via theweb browser 114. Although only onehardware object 138 is depicted in the example ofFIG. 1 , additional hardware objects 138 can also be supported by the embeddedhardware web server 118 or other web servers (not depicted) in the embeddedsystem 102. - The
hardware object 138 and software objects 132 may also link to each other, as well as have links external to the embeddedsystem 102. As one example, upon detection of a failure by one of thehardware object 138 or software objects 132, the associated object can provide maintenance ortroubleshooting aid data 122 to theweb browser 114 through the maintenance or troubleshootingaid web server 120. - As new objects are added to the embedded
system 102, the self-registration of objects and dynamic creation of one or more web pages enables rapid localized updates without requiring changes to a number of user interfaces. Linking between objects and locations external to the embeddedsystem 102 provides a robust solution to integrate multiple related objects while reducing the amount of local data storage required within the embeddedsystem 102. Using a web browser-based interface to access details within the embeddedsystem 102 can result in a wide number of supported client-side devices while also allowing users to navigate through a familiar environment, i.e.,web browser 114. Althoughmultiple client systems 104 andweb browsers 114 are depicted inFIG. 1 , it will be understood that asingle client system 104 may be supported. When supporting communication withmultiple web browsers 114, the embeddedsystem 102 may implement sharing/locking logic, such as a semaphore, to control access to particular resources within the embeddedsystem 102. -
FIG. 2 illustrates a block diagram of various links between themain web page 136, 132 and 138, andobjects 122, 140, and 142. For purposes of explanation there are twodata 132A and 132B depicted and onesoftware objects hardware object 138 depicted; however, any number or combination of software and/or hardware objects may be supported. As each of the 132A, 132B, and 138 self-registers upon initialization,objects registration information 204 is stored in theregistry 134. Fields in theregistration information 204 can include, for example, anobject identifier 206, alink 208, a desireddisplay position 210, an associatedimage 212, and a real-time data feedsupport indication 214. Additional or fewer fields can be supported. Each of the 132A, 132B, and 138 provides its ownobjects respective registration information 204 upon self-registration. - A web server, such as the embedded
software web server 116 ofFIG. 1 , accesses theregistration information 204 stored in theregistry 134 and dynamically generates themain web page 136. For example, the embeddedsoftware web server 116 ofFIG. 1 can accessobject identifiers 206 andlinks 208 associated with various objects in theregistry 134 and insert corresponding instances of thelinks 208 in themain web page 136. The desireddisplay position 210 indicates a desired location on themain web page 136 to insert alink 208 along with an associatedimage 212. The desireddisplay position 210 may be specified based on x-y coordinates, rows and columns, or simply a desired row. When only a row is specified as the desireddisplay position 210, a respective column can be determined dynamically based on the ordering of data in theregistry 134. The associatedimage 212 may be specified as a file path to an image file. The associatedimage 212 may simply be a text label to display or can be omitted in various embodiments. - In the example of
FIG. 2 , on themain web page 136, link 208A points to software object 132A, link 208B points tosoftware object 132B, and link 208C points tohardware object 138. As additional objects self-register,additional links 208 can be included in themain web page 136 upon dynamic regeneration of themain web page 136. The software object 132A includeslinks 216 to maintenance ortroubleshooting aid data 122 and tosoftware object 132B. The software object 132A also includes auser interface 218 which can be provided as a complete human-machine interface to aweb browser 114 ofFIG. 1 or can be merged with a portion of themain web page 136. The software object 132A may also include command andcontrol logic 220 to support interfacing with adevice 130A, which is one of thedevices 130 ofFIG. 1 , via theuser interface 218. The software object 132A may further include a real-time data feed 222 to pass data associated with thedevice 130A back to aweb browser 114 ofFIG. 1 in real-time such that continuous monitoring can be performed without repeated requests from theweb browser 114. In the example ofFIG. 2 , thesoftware object 132B includeslinks 224 back to thesoftware object 132A, auser interface 226, and command andcontrol logic 228. The command andcontrol logic 228 is accessible through theuser interface 226 may include model calculations or initiation of internal tests within the embeddedsystem 102 ofFIG. 1 . Thehardware object 138 includeslinks 230 to theacceptance data 140 andinitialization data 142, auser interface 232, and command andcontrol logic 234 configured to interface with the controlledsystem 128. Theuser interface 232 can provide a user access to the controlledsystem 128 through the command andcontrol logic 234, as well as support initiation of various tests via aweb browser 114 ofFIG. 1 . -
FIG. 3 illustrates an example of auser interface 300 accessible throughweb browser 114 ofFIG. 1 . Themain web page 136 may be accessed by theweb browser 114 through thenetwork 106 ofFIG. 1 by establishing communication with a web server, such as the embeddedweb server 116 ofFIG. 1 . A user can enter anaddress 302 into anaddress bar 304 of theweb browser 114 to request access to themain web page 136. Themain web page 136 can provide theweb browser 114 with theuser interface 300, which is an example based on contents of theregistry 134 ofFIG. 1 . In the example ofFIG. 3 , afirst row 306 contains images and associated descriptions as visual depictions for afirst link 308 to a radar control, asecond link 310 to a projectile solution, athird link 312 to a GPS device, and afourth link 314 to a memory status check. Asecond row 316 contains images and associated descriptions as visual depictions for afifth link 318 to troubleshooting, asixth link 320 to atiming test 320, aseventh link 322 to hardware tests, and aneighth link 324 to system configuration. The seventh and 322 and 324 are examples where there are only text labels and no images associated with the linkseighth links - The visual depiction of links 308-314, 318-324 corresponds to
links 208 ofFIG. 2 in theregistry 134. Upon selecting one of the links 308-314, 318-324, through theweb browser 114, the embeddedweb server 116 ofFIG. 1 in this example accesses theregistry 134 to identify and access an associated object. The selected object can display its respective user interface in an object user interface region 326, such as one of the 218, 226, or 232 ofuser interfaces FIG. 2 . Alternatively, a user interface of a selected object can replace theentire user interface 300. When the selected object supports a real-time data feed, the data for the user interface may be streamed directly back to theweb browser 114 as updates occur. However, where a real-time data feed is not supported, the content of the object user interface as displayed, for example in the object user interface region 326, may be updated upon each interaction between theweb browser 114 and the selected object. In the example ofFIG. 3 , each of the links 308-314, 318-324 may be associated with a different object, such as asoftware object 132 or ahardware object 138 ofFIG. 1 . The object user interface region 326 can further display linked contents from the user interface of the selected object retrieved from another local or remote web server, such as the embeddedhardware web server 118 or the maintenance or troubleshootingaid web server 120. -
FIG. 4 illustrates anexemplary process 400 for providing a web server in an embedded system, such as the embeddedsoftware web server 116 in the embeddedsystem 102 ofFIG. 1 . Theprocess 400 can be implemented in thesystem 100 ofFIG. 1 . Although the embeddedsoftware web server 116 is described as the web server in this example description, the embeddedhardware web server 118 can be configured to perform a number of the web server actions described below. Theprocess 400 is described in reference toFIGS. 1-4 . - At
block 402, the embeddedsoftware web server 116 receivesregistration information 204 from a plurality of 132, 138, where each object provides aobjects link 208 to itself in theregistration information 204. Theregistration information 204 provided by each 132, 138 can include anobject object identifier 206, a desireddisplay position 210 on theweb page 136, animage 212 associated with the 132, 138, and a real-time data feedobject support indication 214. As depicted inFIG. 2 , each of the 132A, 132B, 138 provides itsobjects 218, 226, 232 respectively.own user interface - At
block 404, the embeddedsoftware web server 116 can store theregistration information 204 in theregistry 134 as a list oflinks 208 mapped to the 132, 138. Atobjects block 406, the embeddedsoftware web server 116 dynamically generates theweb page 136 at runtime based on theregistration information 204 in theregistry 134 to provide auser interface 300 including a visual depiction of links 308-314, 318-324 on theweb page 136. Atblock 408, the embeddedsoftware web server 116 provides theweb page 136 to aweb browser 114 external to the embeddedsystem 102 such that the 132, 138 are accessible to theobjects web browser 114 based on thelinks 208 corresponding to the visual depiction of links 308-314, 318-324 through theuser interface 300. - The web server can be the embedded
software web server 116, and the objects can include a number of software objects 132. As previously described, at least one of the software objects 132 can link to another web server that is external to the embeddedsystem 102 to provide additional associated information, such as maintenance ortroubleshooting aid data 122 on the maintenance or troubleshootingaid web server 120. The embeddedsystem 102 can also includehardware subsystem 112, including the embeddedhardware web server 118 configured to link thehardware object 138 to theweb page 136. Thehardware object 138 is configured to provide theregistration information 204 to the embeddedsoftware web server 116 through the embeddedhardware web server 118 upon initialization. Thehardware object 138 may be configured to provide itsown user interface 232 to enable a user to perform one or more of: running a detailed hardware test, uploadingacceptance data 140, downloadinginitialization data 142, delivering fault information, and updating runtime statistics via theweb browser 114. At least one of the software objects 132 can also or alternatively enable a user to perform one or more of: running detailed software or system tests, uploadingacceptance data 140, downloadinginitialization data 142, delivering fault information, and updating runtime statistics via theweb browser 114. - The
web browser 114 and the embeddedsoftware web server 116 and/or the embeddedhardware web server 118 can support communication using a web socket protocol. A hypertext transfer protocol (HTTP) port connection can be established, for example, between theweb browser 114 and the embeddedsoftware web server 116. A protocol switch is performed between the hypertext transfer protocol and a websocket protocol. Sending and receiving of data between theweb browser 114 and theobjects 132 and/or 138 can be performed using the websocket protocol. The websocket protocol may support real-time data feeds for objects that include real-time data feed support. Accordingly, atblock 410 upon receiving an object request from theweb browser 114, the embeddedsoftware web server 116 can access theregistry 134 to get a selected object based on the request. - At
block 412, the embeddedsoftware web server 116 can determine whether the selected object supports a real-time data feed by checking the real-time data feedsupport indication 214. Based on determining that the selected object supports the real-time data feed, a real-time data feed is established between the selected object and theweb browser 114 for user interface content atblock 414. Otherwise, atblock 416, the selected object is called for user interface content, and the user interface content is returned to theweb browser 114. As an example,software object 132A ofFIG. 2 includes real-time data feed 222 which can automatically update data passed through theuser interface 218 to theweb browser 114 at regular time intervals. In contrast, sincesoftware object 132B does not include real-time data feed support, data may be passed through theuser interface 226 as a static snapshot to theweb browser 114. - The technical effects and benefits of the embodiments described herein provide dynamic web page generation in an embedded system web server by object self-registration. Each registered object can also provide its own user interface to minimize impact on related web pages as objects are added, removed, or modified.
- The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one more other features, integers, steps, operations, element components, and/or groups thereof.
- The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated
- The flow diagrams depicted herein are just one example. There may be many variations to this diagram or the steps (or operations) described therein without departing from the spirit of the invention. For instance, the steps may be performed in a differing order or steps may be added, deleted or modified. All of these variations are considered a part of the claimed invention.
- While the preferred embodiment to the invention had been described, it will be understood that those skilled in the art, both now and in the future, may make various improvements and enhancements which fall within the scope of the claims which follow. These claims should be construed to maintain the proper protection for the invention first described.
Claims (20)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/956,823 US9697299B2 (en) | 2013-08-01 | 2013-08-01 | Embedded system web server |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/956,823 US9697299B2 (en) | 2013-08-01 | 2013-08-01 | Embedded system web server |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20150039981A1 true US20150039981A1 (en) | 2015-02-05 |
| US9697299B2 US9697299B2 (en) | 2017-07-04 |
Family
ID=52428837
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US13/956,823 Active 2034-05-05 US9697299B2 (en) | 2013-08-01 | 2013-08-01 | Embedded system web server |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US9697299B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11227027B2 (en) * | 2018-09-06 | 2022-01-18 | Salesforce.Com, Inc. | Managing accessibility on customer web pages |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6170007B1 (en) * | 1996-10-25 | 2001-01-02 | Hewlett-Packard Company | Embedding web access functionality into a device for user interface functions |
| US6529936B1 (en) * | 1998-12-23 | 2003-03-04 | Hewlett-Packard Company | Object-oriented web server architecture suitable for various types of devices |
| US20030158975A1 (en) * | 2002-02-15 | 2003-08-21 | Tridium | Real-time data interface and method for browsers and the like |
| US20040268299A1 (en) * | 2003-06-30 | 2004-12-30 | Shu Lei | Application user interface template with free-form layout |
| US20060095855A1 (en) * | 2004-11-03 | 2006-05-04 | Britt Clinton D | HMI reconfiguration method and system |
| US7085938B1 (en) * | 2000-06-27 | 2006-08-01 | General Electric Company | Protective relay with embedded web server |
| US20060238406A1 (en) * | 2005-04-20 | 2006-10-26 | Sicom Systems Ltd | Low-cost, high-performance radar networks |
| US8289185B2 (en) * | 2009-05-05 | 2012-10-16 | Advanced Technologies Group, LLC | Sports telemetry system for collecting performance metrics and data |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6456308B1 (en) | 1996-08-08 | 2002-09-24 | Agranat Systems, Inc. | Embedded web server |
| US6230307B1 (en) | 1998-01-26 | 2001-05-08 | Xilinx, Inc. | System and method for programming the hardware of field programmable gate arrays (FPGAs) and related reconfiguration resources as if they were software by creating hardware objects |
| US6892230B1 (en) | 1999-06-11 | 2005-05-10 | Microsoft Corporation | Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages |
| US20020133376A1 (en) | 2000-06-12 | 2002-09-19 | James Fritschen | Health care network with durable medical equipment prescription and physician signature services |
| US20020123365A1 (en) | 2000-12-31 | 2002-09-05 | Thorson Walter R. | Scalable base station architecture |
| WO2005050847A1 (en) | 2003-11-21 | 2005-06-02 | Frame Access Ab | A device for processing a signal |
| US20100042350A1 (en) | 2008-08-12 | 2010-02-18 | Certrite Llc | Doppler radar gun certification system |
| US9562778B2 (en) | 2011-06-03 | 2017-02-07 | Robert Bosch Gmbh | Combined radar and GPS localization system |
-
2013
- 2013-08-01 US US13/956,823 patent/US9697299B2/en active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6170007B1 (en) * | 1996-10-25 | 2001-01-02 | Hewlett-Packard Company | Embedding web access functionality into a device for user interface functions |
| US6529936B1 (en) * | 1998-12-23 | 2003-03-04 | Hewlett-Packard Company | Object-oriented web server architecture suitable for various types of devices |
| US7085938B1 (en) * | 2000-06-27 | 2006-08-01 | General Electric Company | Protective relay with embedded web server |
| US20030158975A1 (en) * | 2002-02-15 | 2003-08-21 | Tridium | Real-time data interface and method for browsers and the like |
| US20040268299A1 (en) * | 2003-06-30 | 2004-12-30 | Shu Lei | Application user interface template with free-form layout |
| US20060095855A1 (en) * | 2004-11-03 | 2006-05-04 | Britt Clinton D | HMI reconfiguration method and system |
| US20060238406A1 (en) * | 2005-04-20 | 2006-10-26 | Sicom Systems Ltd | Low-cost, high-performance radar networks |
| US8289185B2 (en) * | 2009-05-05 | 2012-10-16 | Advanced Technologies Group, LLC | Sports telemetry system for collecting performance metrics and data |
Also Published As
| Publication number | Publication date |
|---|---|
| US9697299B2 (en) | 2017-07-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111314141B (en) | Route updating method and device | |
| CN109714188B (en) | Configuration data management method, device and storage medium based on Zookeeper | |
| US11070648B2 (en) | Offline client replay and sync | |
| JP2019503538A (en) | Method and apparatus for presenting interface data | |
| US20140136944A1 (en) | Real time web development testing and reporting system | |
| US10877825B2 (en) | System for offline object based storage and mocking of rest responses | |
| US20160335369A1 (en) | Displaying a dashboard based on constraints of a user device | |
| KR20220043818A (en) | Service information processing method, device, equipment and computer storage medium | |
| US20210048989A1 (en) | Client and gateway synchronization in industrial control systems | |
| US10999399B2 (en) | Offline use of network application | |
| KR20150122239A (en) | Caching pagelets of structured documents | |
| CN110321278B (en) | System testing method and device, computer equipment and storage medium | |
| CN109522222A (en) | It is a kind of for educating the exception catching method and device of cloud platform | |
| US20160248890A1 (en) | Hybrid native networked applications | |
| CN116820600A (en) | Configuration method, configuration device, computer apparatus, storage medium, and program product | |
| CN116132421B (en) | Remote desktop connection method, system, device, computer equipment and storage medium | |
| JP2021184302A (en) | Browser display verification method, equipment, computer equipment and storage media | |
| US20200014854A1 (en) | Factory data management method and system | |
| CN115718682B (en) | Test method, test device, computer equipment and storage medium | |
| CN111694550B (en) | Page display control method, device and system | |
| US11567743B1 (en) | Integrated testing tool for data replication | |
| US9697299B2 (en) | Embedded system web server | |
| US20200167133A1 (en) | Web service mashup orchestrator | |
| US10827035B2 (en) | Data uniqued by canonical URL for rest application | |
| US20160350083A1 (en) | Rapid mobile app generator |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: RAYTHEON COMPANY, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HERBEL, RICHARD S.;REEL/FRAME:030925/0072 Effective date: 20130731 |
|
| FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |