Comprehensive Component Analysis and Visualization
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- WIX COM
- Filing Date
- 2023-07-19
- Publication Date
- 2026-07-23
AI Technical Summary
As software applications and systems become increasingly complex, maintaining control over all elements becomes difficult, with interdependencies and side effects posing challenges in real-time system performance, security, and compliance with regulations.
A Comprehensive Component Analysis and Visualization (CCAV) module is introduced to analyze, track, and visualize the elements and entities of an application, generating a system architecture diagram that overlays business and usage data, enabling users to manage and optimize applications based on technical and business metrics.
The CCAV module provides comprehensive insights into application elements, identifying issues and optimizing system performance, security, and compliance, facilitating better management and understanding of change processes.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical Field]
[0001] [Reference to Related Applications] This application claims priority to U.S. Provisional Patent Application No. 63 / 390,408, filed July 19, 2022, which is incorporated herein by reference.
[0002] The present invention relates to a website building system, and more particularly to generating insights about applications. [Background technology]
[0003] Website building systems (hereinafter referred to as "WBS") are used by both novices and experts to create interactive websites. Existing WBSs are based on a visual editing model and typically provide multiple templates. Each template may include a complete sample website, a portion of a website, a single page, or a portion of a page. A website is composed of various elements that combine visual code, databases, and external elements such as third-party applications.
[0004] Typically, a WBS creates and edits visual design applications (e.g., websites) that are composed of elements such as pages, containers, and components. Pages are displayed individually and may contain components. Components may include containers and atomic components. FIG. 1 is a schematic block diagram of a website building system (WBS) 2 according to some embodiments of the present invention, illustrating an example used to build a website 3. The WBS 2 is used to build, generate, edit, or create a website 3 that includes pages 4 and further components 5 (e.g., atomic components, container components, text, images, videos, etc.).
[0005] The WBS also supports hierarchical arrangement of components using atomic components (text, images, shapes, videos, etc.) and various container components (e.g., normal containers, single-page containers, multi-page containers, gallery containers, etc.) that contain other components. The subpages contained within a container component are called "minipages," and each minipage may contain multiple components. Some container components only display one minipage at a time, while other container components may display multiple minipages simultaneously.
[0006] Components can have either no internal content or internal content. An example of the former is a star component, which has no internal content (but does have color, size, position, attributes, and other parameters). An example of the latter is a text paragraph component, which contains internal text, font, formatting, and layout information as its internal content. Components with content like this are often called "fields" (e.g., "text field").
[0007] Pages may use templates, general page templates, or component templates. Examples of templates include the use of an application master page that contains components that are replicated on all regular pages, or the use of an application header or footer that is repeated on all pages. Templates may be used for complete pages or portions of pages. The WBS may provide for inheritance relationships between templates, pages, or components, including multi-level inheritance, multiple inheritance, and diamond inheritance (i.e., A inherits from B and C, and B and C inherit from D).
[0008] The visual arrangement of components within a page is called a "layout." A WBS also supports dynamic layout operations that affect other components in response to changes affecting a particular component, such as edits to that component or external content changes, as described in U.S. Patent No. 10,185,703, entitled "Website Design System Integrating Dynamic Layout and Dynamic Content," granted January 22, 2019, which is commonly owned by the present applicant and incorporated herein by reference.
[0009] The WBS can be extended with add-on applications, such as third-party applications and components thereof (TPAs), list applications (such as those described in U.S. Patent Publication US 2014 / 0282218, published September 18, 2014, entitled "WBS Integrating Data Lists with Dynamic Customization and Adaptation"), and WBS configurable applications (such as those described in U.S. Patent Publication 2020 / 0151226, published May 14, 2020, entitled "System and Method for Creating and Processing Configurable Applications for Website Building Systems"). These third-party applications and list applications are added and integrated into the designed website.
[0010] These third-party applications and list applications may be pre-built into the WBS design environment, acquired through a distribution mechanism via the WBS market store (internal or external), or purchased (or otherwise acquired) directly from the third-party application vendor.
[0011] Third Party Applications may be hosted on the WBS Vendor's own servers, the Third Party Application Vendor's servers, or on a fourth party's server infrastructure.
[0012] A WBS may be implemented as a standalone system or embedded within a larger editing system. It may be online (i.e., the application is edited and stored on a server), offline, or partially online (a website edited locally and later uploaded to a central server for publication). The WBS organizes the site data and elements within the system, using an internal data architecture to store the WBS-based site. This architecture differs from the external presentation of the site as seen by the end user, and is usually different from the structure of the HTML pages sent to the browser.
[0013] For example, the internal data architecture may include additional properties for each page element that are relevant to the editing and maintenance of the site, such as author, creation time, access rights, links to templates, SEO (search engine optimization) related information, etc., but which are not externally visible to end users (or some editing users). A WBS may implement some of its functionality (including both editing and runtime functionality) on a server or servers and perform other functions on client-side elements. A WBS may also dynamically determine whether to perform functions on a server or on a client-side platform.
[0014] WBS users (referred to as designers, subscribers, subscribing users, or site editors) design websites, and end users of the website ("user's users") access the websites created by the users. End users typically access the system in read-only mode, but the WBS (and website) may allow end users to make changes to the website, such as adding or editing data records, adding talkbacks to news articles, or adding blog posts to blogs. In practice, the WBS may allow multiple levels of users (i.e., two or more levels), with different privileges and capabilities assigned to each level. In particular, for a fully online or partially online configuration, WBS users are registered with a WBS server, which manages user, website, and end user access.
[0015] The WBS also allows for the addition of procedural code to some or all elements of the system. This procedural code can be written in a standard language (e.g., JavaScript), an extension of a standard language, or a language specific to a particular WBS. The code to be executed may reference application programming interfaces (APIs) provided by the WBS itself or by external providers. Additionally, the code may reference internal WBS structures and objects, such as pages, components, and their attributes.
[0016] Procedural code elements may be invoked by event triggers associated with user activity, such as mouse movements, clicks, page transitions, or activity caused by other users (e.g., updates to the underlying database or a particular database record by another user), system events, or other conditions. The use of such procedural code elements is further described in U.S. Patent No. 10,209,966, entitled "Custom Backend Functionality in an Online Website Building Environment," issued February 19, 2019, which is commonly owned by the applicant and incorporated herein by reference.
[0017] The invoked code may execute on a client-side element of the WBS, a server platform, or a combination of both or a dynamically determined execution platform. Such a system is described in U.S. Patent No. 11,449,573, entitled "System and Method for Smart Interaction Between Website Components," issued September 20, 2022, which is commonly owned by the present applicant and incorporated herein by reference.
[0018] Typical site creation may be based on a visual editing model (where a user edits an already created site), an automated site generation model, or a combination of these, an example of which is shown in FIG. 2 and described in U.S. Pat. No. 10,073,923, entitled "System and Method for Creating and Updating Hierarchical Websites Based on Collected Business Knowledge," issued September 11, 2018, which is commonly owned by the applicant and incorporated herein by reference.
[0019] It should be noted that the abbreviation "WBS" is used throughout this specification to refer to a website construction system. Figure 2 illustrates an example system 100 including a typical WBS 2 in communication with WBS vendor staff 61, site designers 62 (i.e., users), site users 63 (i.e., end users), and external systems 70. Furthermore, the WBS 2 may include a WBS site manager 10, an object marketplace 15, a WBS runtime server 20, a WBS editor 30, a site creation system 40, and a WBS content management system (CMS) 50. It should be understood that each element of Figure 2 operates as described in U.S. Patent No. 10,073,923.
[0020] In the visual editing model, users (designers) edit sites based on one or more website templates. WBS providers offer multiple site (or other) templates, each of which may contain a complete sample website, a portion of a website, a single page, or a portion of a page. Users have the option to start with an empty site (essentially a "blank page" template), but typically start with an actual site template.
[0021] WBS providers offer a wide range of site templates, from very general ones such as mobile sites or e-commerce sites, to more specific ones such as law firms, restaurants, or florists, as well as highly specific templates such as law firms specializing in commercial real estate or Spanish tapas restaurants. These templates are typically stored in a repository accessible to WBS users and are categorized according to business type, subtype, or industry. Templates may be created (and categorized) not only by business type, but also by style, color palette, and other parameters. Site templates may be extended with additional (usually back-end) functionality, services, and code to become complete vertical solutions integrated with the WBS.
[0022] Thus, the user's initial experience in creating a site using the WBS visual editor is to select a template (according to style or industry / subtype), or in some cases a blank template, then edit the content, logic, layout, and attributes of the template in the visual editor to adapt the template and its elements to the user's business, and then publish the site after editing.
[0023] In the site generation model, the WBS automatically generates an initial site based on a selected template by embedding common information (e.g., information contained in multiple places, such as the business name or a description of management), and allows subsequent editing of the generated site. This embedding process is necessary because the same information (e.g., the business name) is entered in multiple places in the template, requiring the user to make changes in multiple places.
[0024] Furthermore, a template element (e.g., a generic product page) may occur multiple times, with each occurrence displaying details of the underlying entity (e.g., a different product offered on the site). These multiple occurrences may be specified manually, for example, when the details of each person in a company's management team are specified manually, or may be dynamically derived from an external database (e.g., a "products for sale" database). Such an arrangement is often known as a "repeater".
[0025] Templates may also contain fields (also called placeholders). For example, the WBS allows a template designer to specify fields into which to insert values such as {CompanyName}, {ProductName}, {ProductPrice}, etc. Users can also specify values for fields defined in the template selected for the site.
[0026] A WBS allows users to enter simple or complex values such as text and images, as well as additional information (outside of fields) such as included page or website areas, colors, style information, links, formatting options, website display options, and decorative elements (such as borders and backgrounds).
[0027] The WBS also allows users to enter some of the additional information listed above before selecting a template, and uses that information to narrow the set of suggested templates. For example, a user can select a particular general color scheme (e.g., pastel) or style (e.g., business / formal), and the system will narrow the set of suggested templates based on that selection.
[0028] The WBS may display a series of views or questionnaires that allow users to enter values or selections for the defined fields and the additional information mentioned above. Additionally, it may create connections (or bindings) between multiple-occurring elements of the template and internal or external databases to generate the displayed instances.
[0029] Once a template is selected and its fields and additional information are specified (e.g., through a questionnaire or binding to a data source), the WBS generates a website that combines this information, and the user then publishes the site through the WBS or other means.
[0030] WBS may also support SEO (search engine optimization) validation for applications built within WBS, as described in U.S. Patent No. US 11,314,837, entitled "Website Builder with Integrated Search Engine Optimization Support," granted April 26, 2022 (commonly owned by the applicant and incorporated herein by reference).
[0031] WBS can perform semi-automated site creation using a different model, as described in U.S. Patent No. 10,073,923. In this model, the system gathers information about users and their website requirements from multiple sources, including, for example, a user-filled survey, existing user presence (e.g., existing websites and social media presence), industry sources (e.g., general industry websites), offline information, basic template information for specific business types (e.g., lawyers, restaurants, plumbers, graphic designers), and possibly information tailored to specific industries (e.g., distinguishing real estate lawyers from personal injury lawyers).
[0032] WBS may also collect external information from other sites, both within and outside the system. This external information may influence the surveys provided, layout elements, suggested defaults, etc. This information is collected statistically or in summary form to avoid exposing the information of any single user, and protects users' privacy, anonymity, and legal rights, such as copyright. The location of this information is identified based on information provided directly by the user (e.g., the address of an existing website) or indirectly (e.g., business name and location).
[0033] The collected information is analyzed and organized into a repository of content elements, which are then mapped to layout elements and combined to present the content elements that make up the site. The process of mapping, selecting, and combining layout elements may be fully automatic or semi-automatic (i.e., involving user intervention).
[0034] To support these functions, a WBS typically maintains a set of repositories stored on one or more servers or server farms. These repositories may include various related repositories, such as a user information / profile repository, a WBS component repository, a WBS site repository, a business intelligence (BI) repository, an edit history repository, and a third-party application store repository. They may also include site / content creation related repositories, such as a survey type repository, a content element type repository, a layout element type repository, a design kit repository, a completed survey repository, a content element repository, a layout element repository, a rules repository, and an industry / family repository. These repositories are described in more detail in U.S. Patent No. 10,073,923. Summary of the Invention
[0035] A website building system (WBS) according to a preferred embodiment of the present invention comprises at least one hardware processor; and a comprehensive component analysis and visualization (CCAV) module running on the at least one hardware processor, which analyzes elements of a foundation application built using the WBS and generates a visual system architecture diagram (SAD) showing a hierarchical arrangement of the elements. The CCAV module comprises a site object build engine which collects and analyzes information about the elements and creates a site object representation of the foundation application; a software bill of materials builder which creates a software bill of materials from the site objects, the bill of materials including at least asset and configuration data of the foundation application; and an SAD rendering unit which creates and displays the SAD. The SAD comprises a static application architecture diagram representing the at least asset and configuration data, and an aggregate application architecture diagram which overlays and shows at least one of software, hardware usage, and business data changes that affect the foundation application.
[0036] Further in accordance with a preferred embodiment of the present invention, the at least assets include at least one of site code, user code, dependency code, and metadata and attributes of the underlying application.
[0037] Furthermore, in accordance with a preferred embodiment of the present invention, the system further comprises a rule analysis engine that provides and executes validation rules to the site object build engine, and a CCAV editor that enables modification of the underlying application based on the static application architecture diagram and the aggregate application architecture diagram.
[0038] Furthermore, in accordance with a preferred embodiment of the present invention, the system further comprises a rating engine for rating the underlying application and making recommendations.
[0039] According to a preferred embodiment of the present invention, the site object build engine includes at least one of: an ID receiving unit that receives the ID of the base application and obtains at least the asset and configuration data of the application based on the ID; an asset edge creating unit that automatically divides the user code and dependent code into functions, methods, and their internal components to create asset edges; an asset correlation unit that identifies recurring references between different asset types based on metadata and attributes; a data scanner that scans tables of a database used in the base application; a dataset generator that generates the site objects; a database reconciliation unit that links the site object build engine with at least one database of a WBS; and an application identification unit that identifies applications with similar structures and patterns to the base application to enable code reuse.
[0040] Also, according to a preferred embodiment of the present invention, the data scanner comprises a problem identification unit that identifies problem types within the underlying application, an anomaly detection unit that detects anomalies not included in the problem types, and a data cleaning unit that applies a data cleansing technique to the metadata.
[0041] Furthermore, according to a preferred embodiment of the present invention, the rule analysis engine comprises at least one of: a code analysis unit that implements code verification rules for the site code, user code, and dependent code; a code verification unit that verifies the results of the code analysis unit; an alert creation unit that generates an alert when the anomaly detection unit finds an anomaly; an ML engine that builds, operates, and learns an ML (machine learning) model for the CCAV module; a rule verification unit that verifies the verification rules used by the code analysis unit; a rule engine that creates and executes the code verification rules, further including a rule creation unit that enables either manual or automatic creation of the verification rules based on at least the assets; and an inappropriate privilege detection unit that identifies anomalies in data access by end users of the underlying application.
[0042] Furthermore, according to a preferred embodiment of the present invention, the inappropriate authority detection unit includes a traffic ID recognition unit that recognizes an end user accessing the basic application, and an authority recognition unit that detects incorrect authority settings for the end user.
[0043] Furthermore, according to a preferred embodiment of the present invention, the SAD drawing unit includes a SAD construction unit that creates the aggregated application architecture diagram based on information collected from external and internal sources, a graph creation unit that integrates the aggregated application architecture diagram as a dynamic display element within the SAD display, and a map drawing unit that renders the SAD display.
[0044] Furthermore, according to a preferred embodiment of the present invention, the SAD construction unit includes a SAD data collection unit that collects internal and external data of the WBS and ensures privacy, anonymity, and copyright protection; a SAD analysis unit that analyzes the data collected by the SAD data collection unit and compares it with the data of the underlying application; a SAD correlation unit that correlates changes in the elements between the static application architecture diagram and the aggregate application architecture diagram; and a SAD segment processing unit that segments the analysis results by the SAD analysis unit based on user segments.
[0045] Furthermore, in accordance with a preferred embodiment of the present invention, the underlying application is at least one of a website, a native desktop application, a mobile application, embedded software, or an application embedded as part of a larger system or platform.
[0046] Furthermore, in accordance with a preferred embodiment of the present invention, the at least one asset further comprises at least one of a content collection, a database, a permission, a site registration setting, a cloud setting, a library, and an API (Application Programming Interface).
[0047] Further in accordance with a preferred embodiment of the present invention, the user segments are based on at least one of geography, user class or type, underlying application parameters, underlying application templates, editing history, and business information.
[0048] Further in accordance with a preferred embodiment of the present invention, the overlay is at least one of an overlay of one or more views, an integrated information view, a multiple view tab and a 3D view.
[0049] Furthermore, in accordance with a preferred embodiment of the present invention, the elements comprise at least one of pages, containers and components, visual code, databases, third party applications, content elements, layout elements, invisible objects, back-end objects, and auxiliary objects.
[0050] Further, in accordance with a preferred embodiment of the present invention, a website building system (WBS) method includes analyzing elements of a foundation application constructed using the WBS and generating a visual system architecture diagram (SAD) showing the hierarchical arrangement of the elements, the analyzing and generating step including collecting and analyzing information about the elements to create a site object representation of the foundation application, creating a software bill of materials from the site objects including at least asset and configuration data for the foundation application, and creating and displaying the SAD, the SAD comprising a static application architecture diagram representing the at least asset and configuration data, and an aggregate application architecture diagram overlaid with at least one of software, hardware usage, and business data changes affecting the foundation application.
[0051] Further in accordance with a preferred embodiment of the present invention, the at least assets include at least one of site code, user code, dependency code, and metadata and attributes of the underlying application.
[0052] Furthermore, in accordance with a preferred embodiment of the present invention, the method further comprises the steps of providing and executing validation rules for the collecting and analyzing steps, and enabling a user to modify the underlying application based on the static application architecture diagram and the aggregate application architecture diagram.
[0053] Furthermore, in accordance with a preferred embodiment of the present invention, the method further comprises the step of evaluating the underlying application and making a recommendation.
[0054] Furthermore, according to a preferred embodiment of the present invention, the collecting and analyzing step includes at least one of the following steps: receiving an ID (identifier) of the foundation application and retrieving at least the asset and configuration data of the foundation application based on the ID; automatically dividing the user code and dependent code into functions, methods, and internal components to create asset edges; identifying repeated references between different asset types based on metadata and attributes; scanning tables of databases used in the foundation application; generating the site objects; linking the collecting and analyzing step with at least one database of the WBS; and identifying applications with similar structures and patterns to the foundation application to enable code reuse.
[0055] Furthermore, in accordance with a preferred embodiment of the present invention, scanning the table comprises identifying problem types within the underlying application, identifying anomalies that do not fall under the problem types, and applying data cleansing techniques to the metadata.
[0056] Furthermore, in accordance with a preferred embodiment of the present invention, the step of providing and executing validation rules comprises at least one of the following steps: implementing code validation rules for the site code, the user code, and the dependent code; validating results of the implementation; generating an alert if an anomaly is detected by the anomaly identifying step; building, training, and operating a machine learning (ML) model for the CCAV module; validating the validation rules against implementations of the code validation rules; creating and executing the code validation rules, wherein the creation includes enabling manual or automatic creation of validation rules based on at least the assets; and identifying anomalies in end-user data access to the underlying application.
[0057] Furthermore, in accordance with a preferred embodiment of the present invention, the step of identifying anomalies in data access by the end user comprises the steps of recognizing end users accessing the underlying application and detecting misconfigured permissions for the end users.
[0058] Furthermore, in accordance with a preferred embodiment of the present invention, the step of creating and displaying the SAD comprises the steps of creating the aggregated application architecture diagram based on information collected from external and internal sources, integrating the aggregated application architecture diagram into the SAD display as a dynamic display element, and rendering the SAD display.
[0059] Furthermore, in accordance with a preferred embodiment of the present invention, the step of creating the aggregated application architecture diagram comprises the steps of collecting data from inside and outside the WBS and ensuring privacy, anonymity, and copyright protection; analyzing the collected data and comparing it with data from current underlying applications; correlating changes to the elements between the static application architecture diagram and the aggregated application architecture diagram; and segmenting the analysis results according to user segments.
[0060] Furthermore, in accordance with a preferred embodiment of the present invention, the underlying application is at least one of a website, a native desktop application, a mobile application, embedded software, or an application embedded as part of a larger system or platform.
[0061] Furthermore, in accordance with a preferred embodiment of the present invention, the at least one asset further comprises at least one of a content collection, a database, a permission, a site registration setting, a cloud setting, a library, and an API (Application Programming Interface).
[0062] Further in accordance with a preferred embodiment of the present invention, the user segments are based on at least one of geography, user class or type, underlying application parameters, underlying application templates, edit history, and business information.
[0063] Furthermore, in accordance with a preferred embodiment of the present invention, the overlay is at least one of an overlay of one or more views, an integrated information view, a multiple view tab, or a 3D view.
[0064] Furthermore, in accordance with a preferred embodiment of the present invention, the element comprises at least one of a page, a container, a component, visual code, a database, a third party application, a content element, a layout element, an invisible object, a backend object, and an auxiliary object. [Brief explanation of the drawings]
[0065] The subject matter disclosed herein is particularly pointed out and distinctly claimed in the claims at the end of the specification, but the invention, both as to its organization and method of operation, together with its objects, features, and advantages, may be understood in connection with the following detailed description and the accompanying drawings. [Figure 1] FIG. 1 shows a schematic representation of a typical website building system in the prior art. [Figure 2] FIG. 2 shows a schematic representation of a system for creating and updating hierarchical websites. [Figure 3] FIG. 3 shows a schematic representation of a Component Analysis and Visualization (CCAV) module integrated in FIG. 2, constructed and operative in accordance with the present invention. [Figure 4A] FIG. 4A shows a schematic representation of the elements of the CCAV module of FIG. 3 constructed and operative in accordance with the present invention. [Figure 4B] FIG. 4B shows a schematic representation of an alternative embodiment of the elements of the CCAV module of FIG. 3 constructed and operative in accordance with the present invention. [Figure 5] FIG. 5 shows a schematic representation of the elements of the software bill of materials tool (SBMB) of FIGS. 4A and 4B, constructed and operative in accordance with the present invention. [Figure 6] FIG. 6 shows a schematic representation of the elements of the data scanner of FIG. 5, constructed and operative in accordance with the present invention. [Figure 7] FIG. 7 shows an exemplary chart of anomaly detection by the anomaly detector of FIG. 6, constructed and operative in accordance with this invention. [Figure 8]FIG. 8 shows a schematic representation of the elements of the rules analysis engine of FIGS. 4A and 4B, constructed and operative in accordance with the present invention. [Figure 9A-1] FIG. 9A-1 shows an exemplary representation of the code and performance rules used by the rules analysis engine of FIGS. 4A and 4B, constructed and operative in accordance with the present invention. [Figure 9A-2] FIG. 9A-1 shows an exemplary representation of the code and performance rules used by the rules analysis engine of FIGS. 4A and 4B, constructed and operative in accordance with the present invention. [Figure 9B] FIG. 9B shows an exemplary representation of the code and performance rules used by the rules analysis engine of FIGS. 4A and 4B, constructed and operative in accordance with the present invention. [Figure 9C] FIG. 9C shows an exemplary representation of the code and performance rules used by the rules analysis engine of FIGS. 4A and 4B, constructed and operative in accordance with the present invention. [Figure 10] FIG. 10 illustrates an exemplary display of code concerns detected by the rules analysis engine of FIGS. 4A and 4B, constructed and operative in accordance with this invention. [Figure 11] FIG. 11 shows a schematic representation of the operational flow of code verification rules by the rule validator of FIG. 8, constructed and operative in accordance with the present invention. [Figure 12] FIG. 12 depicts a schematic representation of the elements of the improper authority detector of FIG. 8, constructed and operative in accordance with the present invention. [Figure 13] FIG. 13 is a schematic diagram illustrating an example of the relationships between elements of an infrastructure application using a CCAV module constructed and operating in accordance with the present invention. [Figure 14] FIG. 14 shows a schematic representation of the elements of a system architecture diagram (SAD) drawing unit constructed and operative in accordance with the present invention. [Figure 15] FIG. 15 shows a schematic representation of the elements of the SAD building section of FIG. 14, constructed and operative in accordance with the present invention. [Figure 16]FIG. 16 shows a schematic representation of how a SAD correlator, constructed and operative in accordance with the present invention, correlates changes in underlying applications (code, database, configuration, external APIs, etc.) with changes in business and other key performance indicators. [Figure 17] FIG. 17 is a diagram schematically illustrating a method for constructing a system architecture diagram from the software bill of materials generated by the software bill of materials constructing unit in FIGS. 4A and 4B. [Figure 18] FIG. 18 illustrates an example of adding live traffic event changes to a static application architecture diagram to generate an aggregate application architecture diagram, constructed and operative in accordance with the present invention. [Figure 19] FIG. 19 shows a schematic representation of an aggregate application architecture diagram with arrows representing the overlay of different application flows and the usage costs of each element, constructed and operative in accordance with the present invention.
[0066] For simplicity and clarity of illustration, elements in the figures have not necessarily been drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity. Furthermore, where appropriate, the same reference numerals may be used in multiple figures to indicate corresponding or similar elements. DETAILED DESCRIPTION OF THE INVENTION
[0067] In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. Additionally, well-known methods, procedures, and components may not be described in detail for the sake of brevity.
[0068] Applicant has recognized that as software applications and systems become more complex, maintaining control over all elements of an application becomes increasingly difficult. To build and maintain a successful and secure application, application owners (i.e., WBS users) must understand the overall system architecture and consider various aspects, including real-time system performance, costs and revenues of system elements, system security, and interfacing with external systems (internal and external API provisioning and integration).
[0069] Application elements may interact with each other and have complex interdependencies and side effects: for example, using a new API from a third-party provider may increase revenue, but also incur additional fees and introduce new security vulnerabilities.
[0070] For the purposes of the following discussion, "component" refers to a visual object of a website / site application (e.g., text, images, buttons, etc.), "element" refers to any element of a website, including hidden, back-end, and auxiliary objects, and "entity" refers to any other relevant part of a website, including but not limited to any constituent part of a website.
[0071] Furthermore, as information is integrated from multiple sources, users may need a way to analyze and monitor the end-to-end flows within their applications. For example, if a business needs to add personally identifiable information (PII) to an existing table, without clear visibility into all usage flows that reach that table, this could pose a risk of data leakage or violation of applicable regulations (e.g., CCPA, GDPR, etc.).
[0072] Applicant has realized that a solution for users to gain control over the entities of their applications is to use the Comprehensive Component Analysis and Visualization (CCAV) module, which provides the ability to comprehensively analyze, track, data consolidate, component correlate, visualize and edit the elements and related entities of an application, building a collection of site objects or all elements along with their associated metadata (number of records, size, ID, data type, permissions, etc.). This includes displaying information about the various software and hardware components used to build and operate the software application, as well as interfaces with third-party systems. The ability to manipulate components within a high-level application picture also allows for better management and understanding of the change process.
[0073] This module leverages and integrates information from multiple sources (e.g., software code, business data, live traffic data, database size, query stream data) to enhance users' ability to control and optimize their applications based on technical and business metrics, including stability, security, responsiveness, cost, and profitability.
[0074] Referring to FIG. 3, there is shown a system 200 including a CCAV module 80 integrated into the WBS 100 shown in FIG. 2, according to one embodiment of the present invention.
[0075] In the following description, the application or system being analyzed and tracked will be referred to as the "underlying application."
[0076] The CCAV module 80 processes the underlying application, which may be implemented as a complex website that integrates displays, databases, web services, third-party components, and front-end and back-end code (see U.S. Pat. No. 10,209,966).
[0077] Furthermore, it will be appreciated that embodiments of CCAV module 80 may support underlying applications implemented using other technologies and platforms, including, for example, a separate WBS (not integrated with CCAV module 80), a native desktop application, a mobile application, embedded software, an application embedded in or part of a larger system or platform, or other technologies.
[0078] The CCAV module 80 may also be implemented as a stand-alone product, system, subsystem, embedded module, Software as a Service (SaaS), or other technology.
[0079] As used herein, "user" refers to a user of a WBS, an application owner, an organization, or any individual or individuals who use CCAV module 80 to collect, present, and act on information. It should also be understood that "user" includes application developers, individuals acting on behalf of application owners, or operators of automated modules, bots, etc., that operate CCAV module 80 to achieve a desired result. Application owners are sometimes referred to as users of CCAV module 80.
[0080] It will be appreciated that CCAV module 80 comprises a collection of application elements and system endpoints that provide a comprehensive view of a software application solution, including application code, configuration information, databases, external services, and so on. For example, for a specific underlying application (based on an application identifier), CCAV module 80 can decompose the code blocks, functions, and other code elements within the application's code objects, identify the code and usage relationships (e.g., via imports / includes) between various code segments, such as backend to frontend and frontend to public, and identify the services (e.g., web modules, HTTP functions, web services) provided by the underlying application. Furthermore, this module is capable of identifying related and unrelated metadata between services to aid in the detailed construction of the WBS object structure. For example, it can identify permissions applied to database A used by web service B, or vulnerabilities, bugs, performance issues, crashes, or security issues in library (e.g., software development kit or package) Y used by web service Z.
[0081] The CCAV module 80 can also identify performance and security issues based on defects in common and non-common code (both WBS-specific and non-WBS-specific). It can also analyze site assets, configuration data, and elements, such as content collections, databases, permissions, site registration settings, cloud configurations, and used libraries, as well as code and non-code assets (including site code, user code, and dependent code). This analysis includes analyzing permission attributes set on assets such as pages, databases, and APIs. The module can also analyze the layout and other visual elements of a website or application, including dynamic aspects such as animations and display timing. For example, this analysis can be used to infer the importance of each section in the application's visual presentation.
[0082] Another function of the CCAV module 80 is to generate a system architecture diagram (SAD) from code and non-code objects, allowing users to visualize application and business flows, and to overlay live or historical traffic and business data onto the SAD to focus users' attention on system elements that require the most critical or urgent maintenance. It will be understood that the aggregated display may be generated using one or more overlays of displays, integrated information displays, multiple display tabs, 3D displays, or other display techniques. For convenience, the illustrated additional information is referred to as an "overlay," although other aggregation, display, and presentation techniques may be used in different embodiments of the present invention. Thus, the CCAV module 80 can display information from various sources as an aggregated application architecture diagram, as described in more detail below. This can be useful for understanding the impact of multiple issues on an application and for prioritizing development and resource allocation.
[0083] The CCAV module 80 can also address application concerns by identifying and displaying issues related to the site's code, data, security, and configuration, optionally using live site BI (Business Intelligence) data if available. It can also identify business issues that may be rooted in the code base or configuration by correlating changes in user-defined BI metrics with changes in the application's code and configuration.
[0084] At a more detailed level, the CCAV module 80 can generate a comprehensive list of application-related concerns, including coding concerns detectable within a single file, such as duplicate event handler definitions, and file-level code issues. It can also identify site-level coding concerns and issues detectable only in the context of the entire application, such as unused exported functions.
[0085] Additionally, CCAV module 80 can identify security concerns by considering various aspects of one or more resources of an application, such as secure coding (input validation, hard-coded secrets, use of third-party code and APIs, error handling, information leakage, etc.) in front-end and back-end code.
[0086] The CCAV module 80 can also determine permission settings for APIs offered by websites, as well as the use of security tools such as monitoring tools and dedicated secret storage.
[0087] The CCAV module 80 may also evaluate search engine configurations. For example, the CCAV module 80 may perform searches using an AI engine such as ChatGPT, commercially available from OpenAI. This configuration creates a natural language processing (NLP) interface for searches and queries to systems integrated with the CCAV module 80. In this case, it will be understood that the CCAV module 80 may use plug-ins or external AI (artificial intelligence) agents.
[0088] The CCAV module 80 can also handle database configuration, value types, PII recognition, and usage of HTTP elements (request methods, headers, query parameters, response headers, etc.).
[0089] In addition to identifying anomalies in traffic detection, the CCAV module 80 can also identify anomalies related to databases used by applications, including issues such as tables not referenced in the code, data never read or updated by the application, missing values, type inconsistencies, and unusual or suspicious values.
[0090] The CCAV module 80 can also provide a comprehensive list of site assets, such as databases, libraries, APIs, configuration information, and metadata, in the form of a Software Bill of Materials (SBOM). By viewing these assets in a central repository (such as a CMS 50), it is possible to easily identify interdependencies and relationships between assets, better plan future developments, and proactively identify potential issues that may arise when applications, their configurations, and data change.
[0091] The CCAV module 80 can display the components that make up the underlying application, such as hardware resources (physical or virtual), database tables, third-party services, back-end code, internal and external libraries, front-end pages (including information about all UI components used in the front-end), etc. This allows users to understand the big picture and overall context of the application when planning and executing changes to existing components, adding new components, or removing components that are no longer needed.
[0092] Creating a software bill of materials (SBOM) aids in development collaboration and handover of software solutions, and allows learnings gained from a reviewed web application to be applied to other solutions.
[0093] 4A, there is shown components of CCAV module 80. CCAV module 80 may include a site object build engine (SOBE) 81, a software bill of materials builder (SBMB) 82, a rules analysis engine (RAE) 83, a system architecture diagram (SAD) drawer 84, and a CCAV editor 85. It will be understood that each of these components of CCAV module 80 uses information stored in CMS 50 as described above.
[0094] In an alternative embodiment, as shown in FIG. 4B , to which reference will now be made, CCAV module 80 may further include a site evaluation unit 86 equivalent to site evaluation unit 80. CCAV module 80 may further include a site evaluation unit 86 equivalent to site evaluation unit 80, as described in U.S. Patent Publication No. US2022 / 0229970, entitled “Multi-Faceted Site Evaluator Integrating User Defined Evaluation Engines,” published July 21, 2022 (commonly owned by the applicant and incorporated herein by reference). Site evaluation unit 86 may evaluate the underlying application using multiple evaluation engines and generate recommendations therefor. In this embodiment, the recommendations are provided via WBS editor 30 or other suitable user interface, and the user may act upon them.
[0095] Each sub-element of the CCAV module 80 utilizes multiple internal flows, as described in detail below, to analyze and generate application insights.
[0096] SOBE81 is responsible for data cleanup, anomaly detection, and correction, in addition to retrieving information such as user code, site configuration, and related assets and constructing the site object. This information is used by SBMB82 to create a software bill of materials for the underlying application, including code, data, and configuration data, as described below. The site object contains the site assets (and their metadata) in an iterable format, allowing for later building relationships in graphs and tables to show which collections, third-party APIs, functions, code libraries, and events are used in each code file, function, page, and event.
[0097] 5, there are shown sub-elements of SOBE 81. SOBE 81 may further include an ID receiver 811, an asset edge generator 812, an asset correlator 813, a data scanner 814, an application identifier 815, a data set generator 816, and a database adjuster 817.
[0098] In a typical flow, once the ID receiver 811 receives the unique ID of the underlying application, a series of calls are made to external and internal system endpoints that provide the code, configuration data, and metadata for the target site. These calls are made using different communication or transmission methods, including both intra-system and inter-system techniques.
[0099] The asset edge generation unit 812 automatically divides the user code into functions, methods, and their internal components to generate asset edges (relationships) based on the information acquired by the ID reception unit 811. Relation types include calling a function in another file, accessing a database (DB) table from code, connections between DB tables (such as foreign keys), calling a third-party API, calling a batch task using CRON (a Linux (registered trademark) / Unix-based job scheduler), etc.
[0100] Next, the asset correlation unit 813 performs correlation between assets based on metadata and attributes to identify repeatable references between different asset types. The asset correlation unit 813 identifies and records relationships in data references between assets, such as parameters and variables, operations (e.g., SQL) on structures such as tables, and metadata and data. In addition, when assets are connected using Kafka (a distributed event store and stream processing platform provided by the Apache Software Foundation), it can also define whether the relationships between assets are unidirectional or bidirectional, and whether there is a frequency or transformation.
[0101] User data problems can lead to poor user experience and even financial losses, such as entering the wrong dates when booking a reservation. WBSs typically have data hooks, input validation, and built-in checks, but these are not always used by the people designing the application. Some errors are subtle (such as setting a booking date in the future), and users may not implement the corresponding data validation tests.
[0102] The data scanner 814 scans database tables in the CMS 50 used by the underlying applications, identifies data concerns that may cause the applications to malfunction, and reports potential data quality issues.
[0103] As shown in FIG. 6, the data scanner 814 may further include a problem identifier 8141, an anomaly detector 8142, and a data cleaner 8143.
[0104] The problem identifier 8141 uses built-in logic to identify problem types such as collections that remain unused and take up expensive storage space. It can also identify tables that are never referenced by application code or collections that have not been accessed or updated for a long time, indicating that the application may no longer need the data in those tables and that they can be deleted.
[0105] The problem identifier 8141 can also identify missing field values, rows with duplicate keys, future dates in date columns, etc. -- irrational values may indicate data entry errors. Additionally, the problem identifier 8141 can identify improper column types, such as a column that contains a majority of numbers or dates but is set as a text type, and recommend converting to the appropriate type to prevent type mismatches.
[0106] The anomaly detector 8142 is a machine learning (ML) model that can identify concerns that do not fall into the problem types described above, such as unexpected values like "age over 120." The anomaly detector 8142 calculates an anomaly score and uses an isolation forest algorithm to detect anomalies based on how isolated a data point is from other data. This method is considered effective because it does not depend on distribution parameters and works well for Boolean data and "one-hot encoded" string data.
[0107] The anomaly detection unit 8142 can also measure the significance of anomalies. It should be understood that even if all data points are sorted based on their anomaly scores, the data point with the highest score may not necessarily be an anomaly. Therefore, to determine that "no anomalies were found," the anomaly detection unit 8142 can use a "mean-shift clustering" technique, which does not specify the number of clusters in advance. This method enables more accurate determination of anomalies based on the natural distribution of the data.
[0108] The anomaly detection unit 8142 can further use a Random Forest Classifier to extract meaningful insights from "black box" algorithms. For example, the anomaly detection unit 8142 can measure the importance of the features involved. It will be appreciated that feature importance coefficients can help improve the visualization and transparency of the analysis results, allowing for a clearer understanding of the causes and impacts of anomalies.
[0109] Referring to FIG. 7, anomaly detection for a graph related to "age / scholarship" by the anomaly detection unit 8142 is shown. For example, a case where a recipient of the same scholarship is significantly different in age from other recipients may be identified as an anomaly. When forming an anomaly group, the most anomalous data is recorded, marked as "anomaly," and presented to the user (in this scenario, abnormal data M). In contrast, anomalies that are considered to be within the "normal" range are marked as "N." This process allows the user to check the consistency of the data and avoid inconsistencies. After the user redefines and updates the data values, the associated algorithm can be retrained and the anomaly score can be reevaluated.
[0110] The data cleaning component 8143 can provide various techniques for data cleansing, including handling null and NaN data, applying "one-hot encoding" to string / character data, converting Boolean data to integer flags, and converting date / time data to integers. For example, in a collection containing numeric data, the data can be cleansed by removing NaN or null data and stripping out unnecessary characters such as $, %, #, and ~.
[0111] In some organizations, multiple development teams may develop multiple applications, potentially resulting in the same functionality being developed multiple times. In such cases, the application identification unit 815 can compare the structures of multiple applications developed within the organization to identify applications with similar structures and patterns, both within and outside the WBS. This promotes code reuse, reduces development costs, and improves maintainability.
[0112] Furthermore, the application identification unit 815 can identify similar infrastructure components embedded in multiple applications and refactor those components to reconstruct them as independent packages that can be used by multiple applications, thereby improving development efficiency and facilitating maintenance.
[0113] The dataset generator 816 can generate a structured dataset, i.e., the final site objects for the identified applications, based on XML, JSON, or other file structures that support the required functionality. This dataset may include site analytics information such as edge information and cross-use.
[0114] The database coordinator 817 coordinates between the SOBE 81 and the CMS 50, retrieving information such as user code (client-side code, back-end code, and configuration files), site metadata, site settings (sign-up options and privacy settings), and content collections (data assets). The CMS 50 can store all information related to the website, as well as edit history and business information related to the website. This is shown in Figures 3A and 3B of U.S. Patent No. 10,073,923.
[0115] A software bill of materials is a document that lists the elements and resources required to build or develop a software application.
[0116] It is understood that SOBE81 generates a basic WBS structure and sends it to SBMB82 for analysis. SBMB82 returns an enriched site object with a Software Bill of Materials (SBOM) for the WBS to SOBE81. Additionally, SOBE81 can independently enrich the WBS site object.
[0117] The RAE 83 is used to create security-, code-, and performance-related alerts and to perform code, data, rule, and permission validation. Referring to FIG. 8 , the sub-elements of the RAE 83 are shown. The RAE 83 comprises a code analyzer 831, a code verifier 832, an alert creator 833, a rules engine 834, an ML engine 835 with one or more ML models, a rules verifier 836, and an inappropriate permissions detector 837. Note that in another embodiment, the code analyzer 831 may be configured as part of the SOBE 81 or as an external module. The rules engine 834 is responsible for creating and executing validation rules and may further include a rules creator 8341. The rules creator 8341 provides the functionality to create various validation rules based on site assets and their attributes. These rules may be created automatically by the system (e.g., using artificial intelligence or natural language processing (NLP)) or manually by a user.
[0118] As mentioned above, SOBE81 creates a system object that contains relevant information about the website or underlying system (including the actual code, database structure, system configuration, etc.). SOBE81 passes this system object to RAE83, which reviews the analyzed system elements, selects applicable rules and applies them to those elements. It then collects the status for all relevant rules and returns that information to SOBE81.
[0119] For example, when SOBE81 builds a site object, it triggers the evaluation process in RAE83, which analyzes the asset types and relationships between assets based on the configured rule list, as described above. This flow is executed by SOBE81 providing the site object to RAE83, which returns the object with information on whether each element passes or fails based on the rules.
[0120] 9A and 9B, there are shown example code and performance related rules used in one embodiment of system 200. Also shown in FIG. 9C are security related rules used in the same embodiment of system 200. It can be seen that each rule has a specific application area and purpose.
[0121] 10, there is shown several code concerns displayed in a GUI (Graphical User Interface) associated with system 200. In this example, the source code file "element-uti.js" is flagged with several errors, such as "BE_NO_AWAIT" and "UNUSED_EXPORT."
[0122] Because the system 200 maintains full context about the environment in which the code runs, it is possible to define rules that apply at levels beyond the pure programming language level, including lint-like rules supported by standard interactive development environments (IDEs).
[0123] For example, for code that interacts with UI elements on a front-end page by name, RAE83 can verify that the elements referenced in the code (usually using unique ID literals) actually exist on the page, something that standard linters cannot do. Similarly, for code that interacts with database tables, RAE83 can verify that the tables and columns referenced in the code (also typically specified by unique IDs) actually exist in the application's DB schema. It is understood that code that interacts with a database can be either front-end or back-end code.
[0124] Code validation rules may be implemented by the code verifier 832 based on machine learning (ML) models. For example, the code analyzer 831 may build a model representing valid string literals in a codebase and implement rules to detect the use of plaintext secrets (e.g., API keys) in the code. The code analyzer 831 may then use ML-based anomaly detection techniques to calculate anomaly scores for string literals and, if a literal with a high score is detected, instruct the alert creator 833 to create an alert.
[0125] The code verification rules may be stored internally within the CMS 50, or may be stored as abstract data structures. It is understood that these rules are used by the code verification unit 832 in the process of verifying user code.
[0126] A rule is understood to consist of two parts: a "SPEC" and a "PREDICATE". The SPEC part defines the code element to which the rule applies, while the PREDICATE part specifies the conditions that the code element must conform to. The PREDICATE is written as a Boolean evaluation tree, whose leaves consist of specific tests (e.g., INSIDE(while) matches all expressions contained in the body of a "WHILE" expression), and whose internal nodes represent logical operations such as AND, OR, NOT, etc. Below is an example of an internal representation for a code-related rule:
[0127] [Table 1]
[0128] 11, the operational flow of the code verification rules used by the rule validator 836 is shown, including the processing by the rule engine 834. In this flow, the AST represents the Abstract Syntax Tree for the code file being analyzed, which represents the structure of the code. Meanwhile, RuleInfo is the information returned by the rule validator 836, which includes the location (e.g., line number and position) of the problem identified by the rule in the code file, as well as additional relevant information such as the function name.
[0129] As mentioned above, the RAE 83 can include an improper permissions detector (IPD) 837. The IPD 837 can identify anomalies in data access using parsed permission attributes for assets (e.g., pages, databases, APIs) and access logs containing asset information and caller identification types. Using an anomaly detection model, the IPD 837 can recognize the identity of the user who should be accessing a particular resource. It then compares the permission configuration configured for the resource with actual access data to identify inconsistencies. By combining actual access data with configuration data, the IPD 837 can identify permission assignment issues in web applications, such as overly permissive service configurations (when a client uses a very restrictive permission set, but the service configuration unnecessarily allows many actions). The IPD 837 can also identify cases where insufficient permissions are assigned to a client, potentially impacting application usability. As an example of inappropriate permission detection, consider a situation in which the permissions for a particular backend function are set to "anyone can call." In this case, IPD837 analyzes the traffic and determines that 99.9% of normal traffic is from the administrator role, while the anomalous 0.1% is from general site visitors. This result reveals that there is an error in the permission settings for the function in question and indicates the need for correction. In this way, IPD837 can identify application permission setting issues early, contributing to enhanced security and improved usability.
[0130] In this way, detected inappropriate permissions can help application developers and security personnel identify the exact permissions intended by the application, allowing them to automatically fine-tune permissions with a high degree of confidence while reducing the risk of false positives and false negatives.
[0131] For example, IPD837 can identify permission discrepancies contained in resource access logs. These access logs may contain data about requests made to various resources in the system. The data sent to IPD837 from the access logs includes the identity of the resource (e.g., an API to delete a user from the system may be identified as resource #1). It may also include the number of successful requests per resource and the associated identity type for each request (e.g., anonymous site visitor, system administrator, blog writer). A "successful request" in this context is one that did not return an unauthorized error. IPD837 can use this data to compare access patterns per resource with the actual permission settings to identify discrepancies or problems with permission settings.
[0132] An example of resource access log data sent to IPD837 is as follows:
[0133] [Table 2]
[0134] Another data source that IPD837 can use is a permission schema / catalog, which is a set of rules that determine whether a particular identity (user or role) has access to a particular API / asset / functionality.
[0135] The data retrieved from the permission schema / catalog is a list of identities that are allowed access to each resource. This list is returned in a flat format to the API, showing the list of allowed permissions and the unique identities that are allowed for each permission.
[0136] The IPD 837 can use two main techniques to analyze the data received from the resource access log and the permission schema / catalog. As shown in Figure 12, the IPD 837 can further include a traffic identity recognizer 8371 and an authority recognizer 8372.
[0137] The traffic identity recognizer 8371 may use an anomaly detection algorithm to identify the primary identities making requests to the resource. The traffic identity recognizer 8371 may cycle through identities and resources and return either an inconclusive result or a list of primary identities making requests to the resource.
[0138] The traffic identity recognition unit 8371 receives data from resource access logs, identifies the primary identity making requests to resources, and calculates the rate of successful accesses for each identity type relative to the total number of successful accesses. Identities whose rate exceeds a threshold or range are marked as the "primary" identity making requests to the service. If multiple identities have similar rates of successful requests, it verifies whether their total rate is greater than a threshold. Also, if the rates between identities are similar, it verifies whether the difference between them is less than a set threshold.
[0139] The permission recognizer 8732 can detect permission misconfigurations by using the "primary" identity identified by the traffic identity recognizer 8371 and comparing it to a list of identities obtained from the permission catalog. Identities that are listed in the permission catalog but not in the list of "primary" identities are marked as potential misconfigurations.
[0140] In this scenario, the ML engine 835 is activated to learn the typical rate of identities making requests to resources in actual system usage, a process that is described in more detail below.
[0141] Based on the software bill of materials, the SAD renderer 84 can create a system architecture diagram (SAD) that visually represents site entities (e.g., assets and relationships) and access to third-party services. An example is shown in Figure 13, which illustrates the relationships between front-end components (pages), server-side APIs, and data sources (databases).
[0142] The SAD renderer 84 can utilize information obtained from static code and configuration analysis by SOBE 81 to visually represent edge and node objects and their relationships.
[0143] It will be appreciated that some objects in SOBE81 contain metadata, and therefore some metadata may be parsed into edge attributes that indicate the relationship of an element to other elements and their attributes or edges within the evaluated solution (i.e., the analyzed website).
[0144] 14, the elements of the SAD drawing unit 84 will be described. The SAD drawing unit 84 may include a SAD construction unit 841, a graph creation unit 842, and a map drawing unit 843.
[0145] The SAD builder 841 can build a SAD by traversing system elements (e.g., code files, database tables, configuration files) and extracting the relationships they have with other system elements (e.g., IMPORT and INCLUDE statements in code files, FOREIGN_KEYs in database tables, references to external services via FETCH statements).
[0146] 15, the elements of the SAD constructor 841 will be described. The SAD constructor 841 may include a SAD analyzer 8411, a SAD data collector 8412, a SAD correlator 8413, and a SAD segment processor 8414.
[0147] The SAD analyzer 8411 may analyze data collected from other users or applications by the data collector 8412. This data may be collected from the same platform as the underlying platform (or WBS) or from a different platform (e.g., using an access API or web services). Such data collection may provide data comparable to data collected for the current underlying application or data from other applications of the same user.
[0148] The data collection unit 8412 may protect the privacy, anonymity, and copyright (or other intellectual property rights) of the users being analyzed. The SAD analysis unit 8411 may, for example, make suggestions based on statistical summaries of multiple users and only make suggestions if a sufficient number of users are available for analysis. Furthermore, the SAD analysis unit 8411 may use techniques from the field of statistical database security.
[0149] To select the most significant or relevant changes in business key performance indicators and system configuration changes, CCAV module 80 may be configured to use machine learning (ML) predictive techniques. ML engine 835 may be configured to build, train, and operate ML models based on past changes and their impact (on key performance indicators or otherwise), and apply the models to identify correlations between new system changes and their outcomes.
[0150] The SAD correlator 8413 can correlate element changes between the static application architecture diagram and the aggregated application architecture diagram. For example, the SAD correlator 8413 can correlate the impact of a new recommendation engine (e.g., the additional cost of licensing for use within a website) with the additional revenue generated based on the engine's recommendations. This correlation helps confirm that the changes have a positive impact on the application's profitability. Referring to FIG. 16, an illustration is shown of how the SAD correlator 8413 correlates changes to underlying application components (code, database, configuration, external APIs) with changes related to business and other key performance indicators. List X lists various information elements that match the system's business key performance indicators (e.g., number of new users, page views, purchases, etc.). List Y lists changes to system elements such as code and databases. The SAD correlator 8413 synchronizes the business information and technical changes to create a consolidated timeline (or other representation) from which the graph creator 842 can create graphs correlating system changes with the underlying application's key performance indicators (e.g., business outcomes).
[0151] In this way, the SAD correlator 8413 can correlate static performance, e.g., how much benefit Z1 that external service X provides at a cost of Y benefits the current user compared to benefit Z2 provided to other similarly situated users. The SAD correlator 8413 can also correlate the effects of dynamic changes, e.g., to see whether the impact of change X made by the current user to system configuration, structure, or other parameters provides a benefit similar to that provided to other users.
[0152] It will be appreciated that as part of the above analysis, for the current user and other users, the SAD renderer 84 may use segmentation techniques.
[0153] The graph creator 842 can then create a graph representing the application, where the nodes are the system elements mentioned above and the directional edges represent relationships extracted from these system elements. The edges may be bidirectional based on the flow of data or functionality within the analyzed underlying system.
[0154] After the edges are computed by the graph creator 842, the map renderer 843 can render a map object based on the graph on the server side and provide it to a front-end display managed by the WBS. The map object is cached on the server and may be updated within a user's session based on actions taken in the WBS.
[0155] 17, the process of building a SAD from a software bill of materials provided by SBMB 82 is shown. In this example, SAD builder 841 uses information about two source files (Code File A and Code File B) from SOBE 81. This example uses an easily accessible array-like data structure that contains code elements relevant to the SAD building process (e.g., import statements, calls to external services, interactions with database tables, etc.). These elements are shown in tables C and D of the figure.
[0156] The SAD construction unit 841 establishes relationships between system elements using import statements, FETCH operations to external services, and DB QUERY operations previously extracted from code files. For example, if code file A calls a function defined in code file B and then retrieves information from table D, the graph creation unit 842 can calculate the edges (A⇒B) and (D⇒A).
[0157] As previously mentioned, the CCAV module 80 can display information obtained from various sources as an integrated overlay with a static application architecture diagram. This display can help understand the impact of various concerns and prioritize application development and resource acquisition. For example, if an application owner discovers a new security vulnerability in several front-end components of his application, he can prioritize development efforts so that components that receive more user traffic are fixed before components that receive less traffic.
[0158] It will be appreciated that the SAD includes a static application structure diagram that shows only the static structure of the application based on information obtained from the software bill of materials, and an aggregate application architecture diagram that shows as an integrated overlay additional display information obtained from analysis of the collected material, which is obtained by correlation and segmentation by the SAD builder 841, as will be further described in detail below.
[0159] An example of this would be if an application owner purchases a service that improves their page visitor acquisition funnel, the application owner could use information about sales made on their site to integrate that service into more revenue-generating areas within their application.
[0160] In another scenario, if an application owner discovers a PII (Personally Identifiable Information) leak in some database tables, they can prioritize the fixes based on the actual queries that use the affected tables and fix the tables that users are frequently querying.
[0161] In addition to the static structure of the application (which can be derived by analyzing collected information (e.g., application code and data, platform BI information)), the SAD builder 841 can also use data based on live traffic and application usage for the aggregate application architecture diagram. Such data may be stored in separate external storage (not part of the underlying system being analyzed) and may include information such as event type (e.g., front-end (FE) page visit, call from FE to back-end (BE) code, query to database, and request to third-party API or web service). Other information used may include (for example) date and time, duration of the visit, and identifier of the element related to the event (e.g., app ID, database table name, etc.).
[0162] Additionally, the SAD builder 841 can use information about the database tables used by the application from the system objects created by the SOBE 81, including, for example, the number of items in each table and the number of read / write operations performed.
[0163] The SAD builder 841 overlays this data onto a static application architecture diagram, allowing the graph creator 842 to integrate the aggregated dimensions into the displayed SAD. For example, a SAD representation of a database might include aggregated data such as configured permissions, total number of records, number of queries within a particular time period, etc.
[0164] As another example, the graph creator 842 can draw nodes in a diagram sized to reflect the traffic they receive, simplify the architecture diagram by excluding nodes with no traffic, set the width of an edge to the amount of traffic from one node to another, or use operation statistics (e.g., duration) to highlight paths in the SAD that cause delays to user-facing operations or large batch calculations.
[0165] Referring to FIG. 18, the graph creator 842 integrates traffic and query volume information into a static application architecture diagram to create an aggregated application architecture diagram. This allows application owners to focus on the most important application elements by highlighting frequently used front-end components and tables. In this example, the resulting aggregated application architecture diagram shows a combination of static architecture and dynamic live traffic, providing an overall view that includes the same system components but is displayed at different sizes to highlight the actual usage of each component in the diagram. The aspect ratio between elements in the aggregated diagram has a direct linear relationship with each component's actual usage by traffic.
[0166] It will be appreciated that operational and business data may also be incorporated into the SAD, including (for example) extracting information regarding revenue and costs associated with web applications.
[0167] Revenue may be associated, for example, with a front-end component, page, or page element of a system through which a particular product or service is sold.
[0168] Costs may be associated with the resources required to provide the functionality of the application. These resources may include, for example, the hardware resources (virtualized or actual) required to run the application and software, as well as fees for software, services, and third-party APIs used by the application.
[0169] The map renderer 843 can display this (for example) as a special layer on top of the application SAD, and can attribute costs and benefits to specific elements and / or business flows and display them next to them, see Figure 19.
[0170] Figure 19 shows an aggregate application architecture diagram, showing different arrows representing the aggregation of different application flows, along with the costs associated with using various elements. For example, the triple-line flow represents a flow in which front-end code running in a browser calls a third-party service, which then calls a webhook to invoke a function running in a back-end file, which then queries a database. The cost of this flow is the sum of the third-party service cost, the back-end compute cost, and the database storage cost. By subtracting the costs from the revenue of this line flow, users can get a better overall view of their system design.
[0171] Additionally, the CCAV module 80 stores historical revenue and cost data, and the map rendering unit 843 can display it in a time series chart, identifying different costs over time. Additionally, software and hardware changes made in the web application can be overlaid to identify opportunities for revenue growth or cost reduction.
[0172] The SAD Segmentation Processor 8414 module can segment the analysis of the effect of a particular system change based on user segments (which may be based on geography, user class or type, application parameters, underlying application templates, edit history, BI, etc.). Thus, a particular change may be beneficial to some regions while being detrimental to others. This segmentation process can provide this information so that changes to the system can be applied selectively geographically. For example, returning to the example in Figure 19, this would be the case for line flows where the same cost would generate different revenue for different locations of site visitors.
[0173] The SAD segmenter 8414 can also segment information collected from other users and applications based on parameters and attributes of those users and applications, which helps select relevant comparisons for the current user or application.
[0174] After the map rendering unit 843 renders the final SAD, the user can modify the application directly from the system 200 UI using the dedicated CCAV editor 85. The CCAV editor 85 is a WYSIWYG editor and operation application module that accepts UI operations made to the rendered SAD, applies them to internal system representation objects, and redraws components that require modification. The user can use the CCAV editor 85 to move functionality from one file to another, split a file into two, duplicate a file, merge two files into one, delete files containing unused code, and delete unused functions. Users can also delete unused collections and double-click nodes to access the appropriate dedicated editor for editing page code, data entry, DB table editing, and so on.
[0175] Thus, by analyzing the underlying application and creating site objects and software bills of materials, a system architecture diagram can be rendered, providing the user of the WBS with a visual representation of the application and its full context, and displaying an aggregated version showing the effects of changes, giving the user full control over the application.
[0176] Unless otherwise indicated, and as is evident from the foregoing discussion, the terms "processing," "computing," "calculating," "determining," and the like, as used throughout this specification, are understood to refer to operations and / or processes of a general purpose computer, such as a client / server system, mobile computing device, smart appliance, cloud computing unit, or other electronic computing device that transforms and / or manipulates data into other data within the registers or memory of a computer system.
[0177] Embodiments of the present invention include an apparatus for performing the operations described herein. This apparatus may be specially constructed for the desired purpose or may typically comprise a computing device or system having at least one processor and at least one memory. This apparatus can be selectively activated or reconfigured by a computer program stored on the computer. As instructed by the software, a general-purpose computer is transformed into the inventive elements described herein. The instructions can define the inventive apparatus stored on a computer-readable storage medium, including, but not limited to, an optical disk, a magneto-optical disk, read-only memory (ROM), volatile and non-volatile memory, random access memory (RAM), electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic or optical card, flash memory, a disk-on-key, or any other suitable media type that stores electronic instructions and is connectable to a computer system bus. The computer-readable storage medium can also be implemented with cloud storage.
[0178] Some general purpose computers may include at least one communication element that allows communication with a data network or a mobile communication network.
[0179] The processes and displays presented herein are not specific to any particular computer or other apparatus, but may be implemented in various general-purpose systems running programs in accordance with the teachings described herein. It may also be convenient to construct a more specialized apparatus to perform the desired method. The various system structures described below are illustrative. It is further noted that embodiments of the present invention are not limited to any particular programming language. Multiple programming languages may be used to implement the teachings described herein.
[0180] While certain features of the present invention have been illustrated and described above, many of these features will be apparent to those of ordinary skill in the art, and modifications, substitutions, variations, and equivalent arrangements will readily occur to those skilled in the art, and it is understood that the appended claims are intended to cover all such changes and modifications consistent with the true spirit of the invention.
Claims
1. It is a website building system (WBS), The aforementioned website construction system is At least one hardware processor, The system comprises a comprehensive component analysis and visualization (CCAV) module that can be executed by at least one hardware processor, The CCAV module is A site object build engine that creates a representation of the site object of the basic application of the WBS, A software bill of materials construction unit creates a software bill of materials from the site object, including the assets and configuration data of the basic application. A system architecture diagram (SAD) drawing unit that creates and displays SADs, Includes, The aforementioned SAD is, A static application architecture diagram representing the aforementioned assets and configuration data, An aggregated application architecture diagram that overlays at least one of the software and hardware usage and business data changes affecting the aforementioned basic application, Equipped with, A website building system characterized by the following features.
2. The website construction system according to claim 1, characterized in that the assets include at least one of site code, user code, dependency code, and metadata and attributes of the underlying application.
3. A rule analysis engine that provides and executes verification rules for the aforementioned site object build engine, A CCAV editor that enables the user of the WBS to modify the underlying application based on the static application architecture diagram and the aggregated application architecture diagram, The website construction system according to claim 2, further comprising the features described above.
4. The aforementioned site object build engine is An ID receiving unit that receives the ID of the aforementioned basic application and acquires the assets and configuration data of the aforementioned basic application based on the ID, The aforementioned user code and dependent code are automatically divided into functions, methods, and their internal components to create an asset edge; An asset correlation unit that identifies repeated references between different asset types based on metadata and attributes, A data scanner that scans the tables of the database used in the aforementioned basic application, A dataset generator that generates the aforementioned site objects, A database coordination unit that links the site object build engine with at least one database of the WBS, and An application identification unit that identifies applications having a similar structure and pattern to the aforementioned basic application and enables code reuse, The website construction system according to claim 3, characterized by comprising at least one of the following.
5. The aforementioned rule analysis engine is A code analysis unit that implements code verification rules for the site code, the user code, and the dependent code, A code verification unit that verifies the results of the code analysis unit, An alert generation unit that generates an alert when an anomaly is detected by the anomaly detection unit, An ML (machine learning) engine for building, operating, and training ML models for the aforementioned CCAV module, A rule verification unit that verifies the verification rules used by the code analysis unit, A rule engine that creates and executes the code verification rules, further including a rule creation unit that enables at least one of the manual and automatic creation of the verification rules based on the aforementioned assets, An inappropriate access detection unit identifies anomalies in data access by end users of the aforementioned basic application, The website construction system according to claim 3, characterized by comprising at least one of the following.
6. The aforementioned SAD drawing unit is The SAD construction unit creates the aggregated application architecture diagram based on information collected from external and internal sources, A graph creation unit that integrates the aggregated application architecture diagram as a dynamic display element within the SAD display, and A map drawing unit that renders the display of the aforementioned SAD, The website construction system according to claim 1, characterized by comprising the following features.
7. The aforementioned SAD construction unit is, The SAD data collection unit collects internal and external data of the WBS and ensures privacy, anonymity, and copyright protection. The SAD analysis unit analyzes the data collected by the SAD data collection unit and provides comparative data for comparison with the data of the basic application, A SAD correlation unit that correlates changes in elements between the static application architecture diagram and the aggregated application architecture diagram, and A SAD segmentation processing unit that segments the analysis results from the SAD analysis unit based on user segments, The website construction system according to claim 6, characterized by comprising the following features.
8. The aforementioned superposition is, At least one of the following: overlay of one or more displays, integrated information display, multiple display tabs, and 3D display. The website construction system according to feature 1.
9. A method for a website construction system (WBS), The aforementioned method, The steps include creating a representation of the site object of the basic application of the WBS, The steps include creating a software bill of materials from the site object, which includes the assets and configuration data of the underlying application, and Steps to create and display a System Architecture Diagram (SAD), Equipped with, The aforementioned SAD is, A static application architecture diagram representing the aforementioned assets and configuration data, An aggregated application architecture diagram that overlays at least one of the software and hardware usage and business data changes affecting the aforementioned basic application, Equipped with, A method for building a website, characterized by the following features.
10. The method for a website construction system according to claim 9, characterized in that the assets include at least one of site code, user code, dependency code, and metadata and attributes of the underlying application.
11. A step of providing and executing validation rules for the step of creating a representation of the site object, A step of enabling the user of the WBS to modify the underlying application based on the static application architecture diagram and the aggregated application architecture diagram, The method according to 10, further comprising:
12. The step of creating a representation of the aforementioned site object is: The steps include receiving the ID (identifier) of the aforementioned basic application and obtaining the assets and configuration data of the aforementioned basic application based on the ID, The steps include automatically dividing the user code and dependent code into functions, methods, and internal components to create an asset edge, Steps include identifying repeated references across different asset types based on metadata and attributes, The steps include scanning the database tables used in the aforementioned basic application, The steps include generating the aforementioned site object, The steps include: linking the aforementioned collection and analysis step with at least one database of the WBS, and A step of identifying applications with similar structures and patterns to the aforementioned basic application and enabling code reuse, A method for a website construction system according to claim 11, characterized by comprising at least one of the following.
13. The step of providing and executing the aforementioned verification rules is: The steps include implementing code validation rules for the site code, the user code, and the dependent code, The steps include verifying the results of the steps to be implemented, The steps include: identifying anomalies within the aforementioned basic application and creating an alert when an anomaly is detected; Steps include building, training, and operating a machine learning (ML) model for the steps of creating a representation of the site object, creating the software bill of materials, and creating the SAD, A step of verifying the code verification rule against the implementation of the code verification rule, A step of creating and executing the code verification rules, wherein the creation includes enabling the creation of manual or automated verification rules based on the assets, and The steps include identifying anomalies in end-user data access to the aforementioned basic application, A method for a website construction system according to claim 11, characterized by comprising at least one of the following.
14. The steps of creating and displaying the aforementioned SAD are: The steps include creating the aggregated application architecture diagram based on information collected from external and internal sources, The steps include: integrating the aggregated application architecture diagram as a dynamic display element in the display of the SAD, and The steps include rendering the display of the aforementioned SAD, A method for a website construction system according to claim 9, characterized by comprising the following:
15. The step of creating the aforementioned aggregated application architecture diagram is: The steps include collecting data from within and outside the aforementioned WBS, and ensuring privacy, anonymity, and copyright protection. The steps include analyzing the data collected from within and outside the WBS by the data collection step, and providing data for comparison with the current underlying application data, The steps include: correlating changes to elements between the static application architecture diagram and the aggregated application architecture diagram, The steps include segmenting the analysis results of the aforementioned data according to user segments, Equipped with, The method for a website construction system according to feature 14.
16. The aforementioned superposition is, At least one of the following: overlay of one or more displays, integrated information display, multiple display tabs, or 3D display. The method for a website construction system according to claim 9, characterized by the above.