Patent ID: 12260441

Like reference numerals refer to like parts throughout the several views of the drawings.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

As schematically represented in the accompanying drawings, the present invention is generally directed to a visual cable builder, and accompanying systems, methods, and computer programs thereof.

A. Overview of Implementation System(s)

In one embodiment, a visual cable builder of the present invention may be deployed as a software as a service (SaaS) in accordance with implementation on a system100as generally represented inFIG.1. Accordingly, the system100of the present invention generally comprises at least one client device or device101communicably connected to an application server110over a network130. One or more third party server(s)120may further be communicably connected to the application server110and the at least one device101over the same network130.

The device101may comprise a mobile device, a tablet, a computer, a wearable electronic device, or any other device or combination of circuits structured and configured to communicate with another device, computer, or server over the network130. The device101may comprise application(s) and user interface(s) (front-end interface) that allows a user to interact with the application server110and any third-party server(s)120and stored applications and programs thereon (back-end processing). The user interface may be proprietary and may comprise a custom developed mobile or desktop application(s). Alternatively, or in addition to, the user interface May comprise a web browser, mobile browser, or other application or executable code that allows for communication and visualization of information.

The term “application server”110, “third party server”120refer to at least one computer having appropriate hardware and applications installed thereon for the provision of server services including web and other functional services described herein, such that a user may access, execute, and/or view the applications remotely from a device101. More specifically, the application server110and third-party server(s)120may comprise general purpose computers, specialized computers, or other hardware components structured and configured to receive, process, transmit, and store information to and from other devices. The application server110is further configured with executable or interpretable computer code that allows it to perform the processes described within this application.

For example, the application server110may comprise a general purpose computer comprising a central processing unit (CPU)111, which may be a single core or multi core processor, memory114(random-access memory, read-only memory, and/or flash memory) or primary memory for high-speed storage of executing programs, electronic storage unit115(e.g., hard disk) or secondary memory for storing data, communications interface112(e.g., network adapter) for communicating with other devices or computers over a network, and/or peripheral device(s)113in communication with the CPU111that enable input/output of the application server110.

The application server110may implement the methodology of the present invention using any number of solution stacks (a set of software subsystems or components) known to an ordinary computer or web programmer skilled in the art. These solution stacks may include, without limitation, ZEND Server, APACHE Server, NODE.JS, ASP, PHP, Ruby, XAMPP, LAMP, WAMP, MAMP, WISA, LEAP, GLASS, LYME, LYCE, OpenStack, Ganeti, MEAN, MEEN, XRX, and other past, present, or future equivalent solution stacks, or combinations thereof, known to those skilled in the art that allows a programmer to develop the methods and computer programs described within this application. The software stack might be implemented without third-party cloud platforms, for example using load balancing and virtualization software provided by Citrix, Microsoft, VMware, Map-Reduce, Google Filesystem, Xen, memory caching software such as Memcached and Membase, structured storage software such as MySQL, MariaDB, XtraDB, etc. and/or other appropriate platforms. Of course, these solution stacks may also be deployed in cloud platforms by using known development tools and server hosting services such as GitHub and Rackspace, as well as their equivalents.

The third-party server(s)120may comprise any combination of hardware and software (code segments in any number of programmable, executable, or interpretable languages that support the functionality of the methods described herein) configured to host and transmit calendar items of a user. The third-party server(s)120may be configured to communicate directly to the application server110via application programming interfaces or upon the request of a user.

The network130may comprise at least two computers in communication with each other, which may form a data network such as via LAN, WAN, Serial, Z-WAVE, ZIGBEE, RS-485, MODBUS, BACNET, the Internet, or combinations thereof. The connections may be facilitated over various wired and/or wireless mediums or any combination thereof including interconnections by routers and/or gateways. Network130may comprise additional hardware components and/or devices appropriate for facilitating the transmission and communication between the various systems and devices of the present invention, such as those directed to integrated authentication, quality control or to improve content delivery such as via a content delivery network (CDN).

Of course, in one embodiment, a visual cable builder may also be deployed on one or more computers as an installable software. Therefore, one or more elements of the system100may be omitted. That is, the present invention may be implemented on, and therefore require only, a single computer such as that exemplified by application server110, without reliance upon network services.

Various aspects of the present invention may be thought of as “products” or “articles of manufacture” typically in the form of machine (or processor) executable code, interpretable code, and/or associated data that is carried on or embodied in a machine readable medium. Machine-executable code can be stored on an electronic storage unit, such memory (e.g., read-only memory, random-access memory, flash memory) or a hard disk, as described above.

All or portions of the software may at times be communicated through the Internet or other communication networks. Such communications, for example, may enable loading of the software from one computer or processor onto another, for example, from a management server or host computer onto the computer platform of an application server, or from an application server onto a client computer or device. Thus, another type of media that may bear the software elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, tangible “storage” media, terms such as computer or machine “readable medium”, refer to any medium that participates in providing instructions to a processor for execution. Further, the term “non-transitory” computer readable media includes both volatile and non-volatile media, including RAM. In other words, non-transitory computer media excludes only transitory propagating signals per se, but includes at least register memory, processor cache, RAM, and equivalents thereof.

Therefore, a machine readable medium, such as computer-executable code, may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical, magnetic, or solid state disks, such as any of the storage devices in any computer(s) or the like, such as may be used to house the databases. Volatile storage media include dynamic memory, such as main memory of such a computer platform. Tangible transmission media may include coaxial cables, copper wire and fiber optics, communication buses. Carrier-wave transmission media may take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a ROM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer may read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.

B. Overview of the Visual Cable Builder

Drawing attention toFIGS.2-5, exemplary user interfaces are provided, illustrating the functionality of the methods and computer programs of the present invention.

Specifically, drawing attention toFIG.2, a partial cut-away view of a graphical user interface initially details various functionalities of the visual cable builder. Specifically, a configured communications cable is visualized as part of a cable display code segment200, the configured communications cable200comprising a plurality of cable components, namely at least a first connector201, a second connector203, and a cable202.

Each cable component201-203comprises a plurality of selectable characteristics. The selectable characteristics may be formed by a user input code segment220.

The selectable characteristics of the first cable connector201may comprise a first connector type, a first connector polish. The selectable characteristics of the second cable connector203may similarly comprise a second connector type, a second connector polish. The first and second connector types may comprise LC, SC, ST, MT-RJ, FC, LC Crossover, LC Unabridged, SC Crossover, SC Unabridged, MT-RJ Male, Pigtail, as well as other appropriate connector types known in the art. The first and second connector polishes may comprise PC, UPC, APC, as well as other appropriate polish types known in the art.

The selectable characteristics of the cable202may comprise a cable type (in the case of fiber optic cables, a fiber core), the strand type, the length, the jacket color, the jacket type, the jacket diameter. In a fiber embodiment, the fiber core may comprise Multimode 62.5/125 (OM1), Multimode 50/125 (OM2), Multimode 10 Gb 50/125 (OM3), Multimode 10 Gb 50/125 (OM4), Single Mode 9/125 (OS1/OS2), Bend-Insensitive G.657.A.1 (10 mm) 9/125, and other types of fiber core known in the art. The strand type may comprise duplex or simplex. The length may be custom inputted by a user, and/or may range between 1 to 100000 meters, inches, feet, or cm. The jacket color may comprise any color spectrum. The jacket type may comprise PVC (OFNR), LSZH (Low Smoke Zero Halogen), Plenum (OFNP), and other appropriate jacket types known in the art. The jacket diameter may comprise 0.9 mm, 1.6 mm, 2 mm, 3 mm, a diameter selected between the range of 0.5 mm-5 mm, and other appropriate diameters known in the art.

In one embodiment, when a user selects at least one of the selectable characteristics, such as from the dropdown menus shown inFIG.2A, the configurable communications cable shown at200updates immediately or in real time. In other words, a respective display element associated with a user selection of a selectable characteristic of a cable component is retrieved and displayed at201,202, and/or203, depending on the user selection made, immediately after a user selection is made. By providing a live and immediate visual representation during the user customization of a cable, chances of error are minimized. Drawing attention to the transition betweenFIG.4toFIG.5, this immediate visualization is shown, i.e. when the “Simplex” strand is selected inFIG.4, a single wire is immediately shown; whereas when the “Duplex” strand is selected inFIG.5, two wires are immediately shown. The same follows to the selection of the connector types, i.e. from SC to SC inFIG.4, to LC to SC inFIG.5.

In one embodiment, this live visualization may be created using a jQuery script in combination with cascading style sheets (CSS) for fetching visual elements associated with user input fields. In other words, each selectable characteristic of a cable component may be tied to a particular image (JPG, PNG, GIF, TIFF, BMP, and other appropriate images for web or mobile application display) previously created and stored on the application server. Upon a user selection of a particular selectable characteristic, the associated image is fetched and displayed as part of the configured communications cable. The custom CSS configuration ensures that the image of each component lines up with the other components, such that a seamless communications cable is visualized. For example, in a HTML embodiment, the <div> container for configuring the layout of the communications cable may be as follows:<div class=“image_previews_container”><img style=“float: left; width: 317px; height: 123px;” src=“images/confImages/L-LC-D-P-AQUA2.JPG” id=“LeftPanel”/><img style=“float: left; width: 64px; height: 123px;” src=“images/confImages/M-D-AQUA-2.JPG” id=“CentralPanel”/><img style=“float: left; width: 317px; height: 123px;” src=“images/confImages/R-LC-D-P-AQUA2.JPG” id=“RightPanel”/><table align=“left” width=“426” class=“preview_captions_table”><tbody><tr><td class=“paImage”><span style=“float: left;”>Polish: </span><span id=“paImage” style=“float: left;”>PC</span></td><td style=“min-width: 68px;”id=“jtypeImage”>PVC (OFNR)</td><td style=“min-width: 70px;”id=“jdiamImage”>2 mm</td><td id=“fsImage” class=“fsImage”>G5 Duplex</td><tdwidth=“260” class=“pbImagePolish”><span style=“float: left;”>Polish: </span><span id=“pbImage”>PC</span></td></tr></tbody></table> </div>

The selection of the visual elements may be affected by the user input element220, which may comprise a series of drop down boxes, selectable menus, text or numerical input boxes, or other input methods and interfaces known to ordinary programmers skilled in the art.

In one embodiment, the visual cable builder of the present invention may form part of a larger electronic commerce framework, such as to provide the functionality to receive a price quote from a manufacturer of the configured communications cable, to send a price quote plus a configurable profit margin to a buyer, as a reseller, of the configured communications cable, and/or to purchase or sell the configured communications cable in the online marketplace as part of a web portal comprising the visual cable builder.

As such, drawing attention to230ofFIG.2A, an inventory data section and/or code segment230is shown which may be represented under Fields 1-4, which may correspond to stock number, available number, stock pricing, unit pricing, available pricing, etc. As illustrated, a description corresponding to the configured communications cable (having user selected characteristics as described above) may be shown under Item Description, in correlation with how the cable has been configured and/or selected. An inventory checker may be implemented to check predesignated inventories and/or inventories of third parties through respective third-party server(s), i.e. inventory data. For example, and as shown inFIG.2B, upon selection of a checkbox231, the present invention may automatically check the inventory of the currently selected cable components and/or configured communication cable, and return with a numerical stock number corresponding to the system(s) queried. In one embodiment, the present invention may recommend the closest match based on one or more selected characteristics. In one embodiment, specifications232of the current configured communications cable may also be populated or displayed immediately, similar to the visual elements. Specifications232of a cable may comprise place of manufacturer, core, jacket, connector(s), shipping information, warranty information, etc.

A user may add various quantities of the cable to cart or a list, as shown inFIG.2C, as represented by Actions 1 through 5, and may affect operations such as “Push”, “Export”, “Send Quote”, “Save”, or “Check Out”. The present invention in one embodiment may incorporate in electronic commerce functions, such as the ability to purchase or request a quote for the customer or user configured cable. As such, it becomes important to associate a unique identifier to the cable, such as to ensure the accuracy of the product being purchased or quoted. In one embodiment, the Values 1 through 4 may represent the selling rate, cost rate, margin rate, and margin percentage so as to show a reseller his or her profit margin. In other embodiments involving electronic resale or drop shipping of the communication cables, the present invention offers an additional unique and advantageous feature, whereby a reseller or drop shipper may set a margin and to send a price quote to a potential customer, using a custom logo, layout, and/or notably an alias or masking serial number as determined by the reseller through an affiliate or reseller account with a system of the present invention.

Accordingly, a part number (item number) section and/or code segment240may also be generated in an embodiment of the present invention, in accordance with a rules engine. Drawing attention toFIG.3, an exemplary and configurable part number300is generally shown as part of a user interface, the configurable part number300having a plurality of part number segments301. Each part number segment301may correspond with at least one selectable characteristic of a cable component, such as Connector A or Side A (the first connector)302, Connector B or Side B (the second connector)303, and various characteristics of the cable itself, such as connector type, polish, cable jacket diameter, type, color, etc. Each part number segment301may be selected to be static or variable. A static segment fixedly assigns a segment of alphanumeric or other readable characters to a certain selectable characteristic of a cable component. A variable segment may automatically or partially automatically generate a part segment comprising of alphanumeric or other readable characteristics for a certain part or component characteristic, if such does not already exist in a database in communication with a system of the present invention. Of course, other characteristics may also be assigned to various configurable or selectable characteristics of a communications cable, including but not limited to, a base name, a base description, a display name, an alias name, an alias description, and the cost (per unit of measurement, or per connector). Custom part numbers may be exported as a downloadable file and/or saved to a user account attributed to the user. Hence, in one embodiment, user accounts and authentication may be implemented in order to access and retrieve configured communications cables.

Drawing attention back toFIGS.2A-2C, and based on the predefined or user customized part numbers rules engine, a part number is generated for the particular configured communications cable. Like the visual display elements and/or specifications of the cable, this part number may also be updated in real time, i.e. upon a user selection or change of a selectable characteristic. In one embodiment, a user may be able to enter or copy paste in a parts number or portions thereof, in order to select one or more selectable characteristics of the cable.

In one embodiment, an alias part number code segment303may be provided in order to create a second set or sets of part numbers, which is equivalent to a first set or generated part number. This is particularly advantageous because it allows the manufacturer and supplier side to use a common notation (i.e. the first set) for determining a particular communications cable or components thereof. At the same time, it allows a reseller of communication cables to create a second set of part numbers (an alias part number), which may then be visualized and/or presented to the end consumer via a separate sales portal or website. As such, when a consumer is seeking replacement cables and/or wishes to order additional cables, a consumer may search for the reseller's unique alias part number in a search engine, and thereafter be directed to the reseller's website, rather than a competitor's website. As such, drawing attention toFIG.3again, the fields303and304allows a reseller to stipulate a second set of part number and/or description for a particular communications cable, in addition to a manufacturer part number. One exemplary implementation may be to create a second identifier field for a communications cable and/or component, which in addition to the base part number or name, also adds an alias part number or name. Such an alias part number would be unique to the user creating it in at least one embodiment.

C. Methods for Providing Interactive Visualization of a Configurable Communications Cable

A method in accordance withFIG.6illustrates the process of providing interactive visualization of a configurable communications cable. As such, initially under control of a client device, a user interface is displayed for configuring a communications cable, as in601. This user interface may comprise an interface similar to those illustrated inFIGS.2-5. The user interface may form a single screen presented on the client device, or alternatively, a plurality of screens navigable via a navigation menu. The user interface may be entirely implemented as a web document or application such as in HTML, CSS, Flash, PHP, and other programmable and/or interpretable language, and viewable via a web browser. Alternatively, the user interface May form a mobile application native to iOS, Android, or other mobile platforms known to those skilled in the art.

In response to a user selection of a selectable characteristic of a cable component, a request is sent to an application server, as in602. The cable component may comprise a first connector, a second connector, and/or a cable. The selectable characteristics of the first connector May comprise a first connector type and/or a first connector polish. The selectable characteristics of the second connector may comprise a second connector type and/or a second connector polish. The selectable characteristics of the cable may comprise a cable core, a fiber core in a fiber embodiment, a strand type, a cable length, a jacket color, a jacket type, and/or a jacket diameter.

Under control of the application server, the application server receives the request, as in603. The request may be received via a website portal or form, via a mobile application request, or other appropriate communication request mechanisms in an Internet embodiment. A display element associated with the selected characteristic of the cable component is retrieved, as in604. The display element may comprise image(s) and/or text associated with a user's selection request. In one example, the request may comprise a JavaScript function or other programmed function for retrieving a pre-stored and/or pre-generated display element, such as an image or text.

On the application server, the display element is displayed to the user as part of a configured communications cable, as in605. This display step may involve the loading the image into a specified display area on a web page and received by a client device over the HTTP protocol via a script such as JavaScript. In one embodiment, the display step may involve transmitting or pushing an image to a client device, the function being coded for an application native to a particular mobile operating system.

In one embodiment, the application server may be configured for data mining, i.e. such as to perform extract, transform, and load (ETL) or spidering operations, which involve the loading of information from a raw data source, i.e. a manufacturer's inventory data, associate a parts number or equate a system generated parts number with the manufacturer's inventory matching the configured communications cable, and thereafter display the numerical inventory data to the user that matches the user's set criteria, i.e. warranty requirements, shipping times, price, etc. In an embodiment, business intelligence platforms such as SAS, SAP, Tableau, Tibco, and other equivalents may be used. As such, the application server may further receive a request from the client device to check the inventory of configured communications cable, as in901, and display the inventory data.

Drawing attention toFIG.7, additional embodiments of the present invention May comprise displaying a part number for the configured communications cable, the part number being generated based on one or more of the selected characteristics of the configured communications cable, as in701. Drawing attention back toFIG.3, a part number300may comprise a plurality of part number components301. Each part number component301may correspond to a cable component, and its makeup of alphanumeric or other visible characters May correspond to various selectable characteristics of the cable component, as predefined by the system, manufacturer, or as custom defined by a user. In one embodiment, a parts number will be automatically generated based on a rules engine drawing upon the part number components301that are associated with selectable components, and displayed as a visual element or as part of the configured communications cable of the present invention.

Optionally, an alias part number transmitted from the client device is received at the application server, as in702. The alias part number is associated with the configured communications cable, as in703. In other words, in an embodiment, a database entry corresponding to a configured communications cable may comprise or be linked to at least two data fields, one being the system default parts number, i.e. a number utilized by the system and the manufacturer or warehouse drop shipper to identify a custom communications cable; the other being an alias number associated with a particular user, i.e. the creating user, such that the alias number or part number may be utilized by the user and the user's purchasers to identify the custom communications cable.

Drawing attention toFIG.8, a method of the present invention may also be implemented on a single computer, or on a combination of machines without resort to utilization of a network. As such, in this embodiment, a plurality of selectable characteristics of a cable component are first displayed to a user, as in801. A user selection is received of the selectable characteristics of the cable component, as in802. The respective display element(s) associated with the user selection of the selectable characteristic(s) of the cable component is then retrieved, as in803. The display element(s) are displayed to the user as part of a configured communications cable, as in804.

In one embodiment, a part number may be displayed for the configured communications cable, as in810, the part number being generated based on the selected characteristic(s) of the configured communications cable.

In one embodiment, an alias part number may be inputted by the user, as in820. The alias part number may then be associated with the configured communications cable, as in821. The functionalities of the embodimentFIG.8may share characteristics as the application server embodiment described above.

Individual components or elements of the system and method may be used interchangeably. The order of the method or processes described above may be arranged in any combination in various embodiments. In some embodiments, various steps may be omitted.

It should also be understood that the above methods may exist as other embodiments when not in operation. Specifically, a computer program may exist on a non-transitory storage medium such as a hard disk, flash drive, nonvolatile memory, or other storage device, which captures the operational processes and characteristics described above, and which may be executed by a computer or other device to perform the method described above. The computer program may be written in any programmable or interpretable language known to a person reasonably skilled in the art, including but not limited to C, C++, C#, Ruby, Java, Dart, Rust, Swift, PHP, Perl, HTML, XHTML, and other equivalent languages and past, present and future variations.

Further, a physical system may also be designed by employing existing components and hardware known to those of ordinary skill in the art, such as to affect the operation of the method described above in a general purpose computer, a specialized computer or machine, as a software on chip, or as part of other integrated circuits or combination of circuitry and components.

Since many modifications, variations and changes in detail can be made to the described preferred embodiment of the invention, it is intended that all matters in the foregoing description and shown in the accompanying drawings be interpreted as illustrative and not in a limiting sense. Thus, the scope of the invention should be determined by the appended claims and their legal equivalents.

Now that the invention has been described,