WO2020013724A1 - Способ управления данными веб-сайта - Google Patents

Способ управления данными веб-сайта Download PDF

Info

Publication number
WO2020013724A1
WO2020013724A1 PCT/RU2018/000457 RU2018000457W WO2020013724A1 WO 2020013724 A1 WO2020013724 A1 WO 2020013724A1 RU 2018000457 W RU2018000457 W RU 2018000457W WO 2020013724 A1 WO2020013724 A1 WO 2020013724A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
web page
volatile memory
request
dynamic
Prior art date
Application number
PCT/RU2018/000457
Other languages
English (en)
French (fr)
Inventor
Михаил Сергеевич ГЕРМАН
Original Assignee
Михаил Сергеевич ГЕРМАН
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Михаил Сергеевич ГЕРМАН filed Critical Михаил Сергеевич ГЕРМАН
Publication of WO2020013724A1 publication Critical patent/WO2020013724A1/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Definitions

  • CMS Content management system
  • Memcached which provides caching to RAM.
  • the main purpose of this tool is to put data into memory by key and quickly return it upon request.
  • this tool has found its application in the core of many large projects, for example, Wikipedia, YouTube, Facebook and others.
  • a similar tool is Redis, which has advanced functionality: supports complex data types (such as lists), supports high-level operations (such as sorting), and has built-in support for replicating data to other servers in order to protect data and increase write / read speed data at load.
  • Memcached and Redis A significant disadvantage of Memcached and Redis is the need to keep track of the relevance of the data and store information about the keys by which data can be obtained. With significant scaling of the site, this greatly complicates the process of web page development.
  • the closest analogue may be recognized as a technical solution that discloses embodiments of a system and method for dynamically providing static content.
  • the information provided in the content delivery system may be updated based on information published in the content management system (CMS).
  • CMS content management system
  • One embodiment may interact with a content delivery system and page-level content management system. More specifically, content dependencies on pages using the same content or part (s) can be tracked in a timely manner. After receiving notification of changes to the content or part thereof from the content management system the content generation system can determine, based on the dependencies, which pages are affected by the change, and based on this definition, dynamically generate updated data on all affected pages. The updated pages can then be saved and / or transferred to the web tier for delivery to end users.
  • the basic principle is to keep the parts of the pages up to date by tracking data changes and updating previously stored parts of the pages in non-volatile memory.
  • the disadvantage is that the issue of accelerating the initial generation of pages that have not yet been cached is not resolved.
  • the technical task or problem to be solved in this technical solution is the processing and management of dynamic and static website data.
  • the technical result is achieved by implementing a data management method for a website in which at least one static part of the web page is formed and at least one dynamic part of the web page is stored in non-volatile memory; further receive from at least one user request to the website; then check the presence of the cache file in non-volatile memory for each dynamic part of the web page received in the previous step of the request, and if there is a cache file in non-volatile memory, load its contents into the dynamic part of the web page; in the absence of a cache file in non-volatile memory during verification, the dynamic part of the web page is calculated based on a request to the web server, and for the calculation, data is first obtained from the main memory, if any; otherwise, they receive data from non-volatile memory.
  • the request is of type POST or GET.
  • the request comprises a link to a website with parameters.
  • the dynamic part of the web page is calculated based on a request to the web server, and when data is changed, they are modified first in non-volatile memory and then in random access memory.
  • the dynamic part of the web page is calculated based on a request to the web server, and when data is changed, they are modified first in the main memory and then in non-volatile.
  • changing the data is creating or updating or deleting.
  • FIG. 1 shows an example of a primary website load implementation.
  • FIG. 2 shows an example implementation of processing a request to a web server on a website
  • FIG. Figure 3 shows the process of creating a dynamic block cache.
  • FIG. 4 shows an example implementation of website data management in the form of a flowchart.
  • FIG. 5 shows an embodiment of calculating the dynamic part of a web page.
  • This technical solution can be implemented on a computer or other data processing device in the form of an automated system or computer-readable medium containing instructions for performing the above method.
  • the technical solution can be implemented in the form of a distributed computer system, the components of which are cloud or local servers.
  • a system refers to a computer system or an automated system (AS), a computer (electronic computer), CNC (numerical control), PLC (programmable logic controller), a computerized control system, and any other devices capable of performing a given, clearly defined sequence of computational operations (actions, instructions).
  • AS automated system
  • CNC number of computers
  • PLC programmable logic controller
  • An instruction processing device is understood to mean an electronic unit or an integrated circuit (microprocessor) executing machine instructions (programs).
  • the command processing device reads and executes machine instructions (programs) from one or more data storage devices.
  • Storage devices may include, but are not limited to, hard disks (HDDs), flash memory, ROM (read only memory), solid state drives (SSDs), optical drives, and cloud storage.
  • HDDs hard disks
  • ROM read only memory
  • SSDs solid state drives
  • a program is a sequence of instructions for execution by a computer control device or an instruction processing device.
  • Web page (Eng. Web-page) - a component of a website, a file hosted on a server [GOST R 52872-2012].
  • Cache (eng) (memory) cache the area of memory that serves as a clipboard, as a rule, has a higher speed than the main memory.
  • CMS is an information system for providing and organizing a joint process of creating, editing and managing content.
  • Random access memory also random access memory, RAM, English RAM
  • RAM random access memory
  • English RAM is a memory, a part of a computer memory system that a processor can access in one operation (jump, move, etc.). Designed for temporary storage of data and instructions necessary for the processor to perform operations. Random access memory transfers data to the processor directly, or via cache memory.
  • FIG. 1 An embodiment of the primary loading of a web page is shown in FIG.
  • the website data management method may be implemented by a series of computational steps as shown in the flowchart of FIG. 4.
  • Step 410 at least one static part of the web page is formed, and at least one dynamic part of the web page is stored in non-volatile memory.
  • the static part of the web page that does not change is stored separately from the dynamic parts, which depend on the download parameters. Separate storage of dynamic parts from static parts allows them to be reused on different pages, saving memory and processing power.
  • the static part of the web page represents the static, Permanent and non-changing information. You can change it, but for this you need to make appropriate adjustments to the program code of the web page.
  • the static part of a web page file is in HTML format. The web developer writes the HTML markup code, forming the content of the site, after which the file is given a name, and then the page is uploaded to the web server and becomes available to Internet users.
  • the static part of a web page may contain information about the history of the company, its main activities, etc.
  • the web server when issuing web pages to user equipment, checks to see if the static part of the page has changed.
  • the fact is that the static parts of the page can also sometimes change. These changes occur much less frequently than in the case of dynamic parts. They are not systematic, but episodic in nature and are usually associated with updating the style of the site by its creators. For example, the site developer decided to replace any picture on the page or simply changed the background of the entire site. For more correct operation of the proposed method and system, it is advisable to track these changes in the static part of the pages and make corrections accordingly.
  • checksum mechanism that works according to the following principle.
  • the checksum of the static part is determined and stored in the storage device in the cache overhead.
  • the checksum of the updated page is re-calculated and compared with the old amount. If they do not match, then the server concludes that the static part of the page is out of date and a new page is being rewritten to the cache.
  • the system automatically, without human intervention, monitors such changes in the static part.
  • a microprocessor cache may be used - a super-random access memory used by a microprocessor of a computer to reduce the average access time to a computer memory.
  • the cache uses a small, very fast memory (usually of type SRAM) that stores copies of frequently used data from main memory.
  • GPU graphics processing unit
  • the fundamental difference between the dynamic part of the web page and the static one is that its content is not constant, but may change. Content is formed depending on the wishes of the user, or rather, based on requests created by visitors and sent to the web server.
  • the most typical example of a dynamic part of a website is a page with search results provided by a search engine (for example, www.google.ru) based on a search query sent by a user.
  • Another example of the implementation of the dynamic part of a web page is an online store, where the visitor, using the options, indicates which product and with what properties he is interested in, sends a request (the corresponding button is usually designed for this), and after a couple of seconds receives a graphical user interface on the screen list of goods that meet the criteria established by him.
  • the result of the calculation of the dynamic parts on the web page may vary based on a predetermined set of download parameters, which will include query parameters and a unique text identifier, which are indicated below.
  • the step of detecting in the HTML code of a web page the code relating to the dynamic parts is performed by the web server by analyzing its HTML code using an appropriate recognizing software module.
  • the detection of dynamic parts occurs according to special instructions placed in the code of the page by the developers of the site. For example, a CMS system installed on a web server analyzes the code of a web page while saving it to the server. If the CMS-system meets the program instructions set by the site developer, the system replaces them with its own labels, by which it subsequently determines where to replace obsolete data with current ones. In this case, the steps of detecting dynamic parts and their JS-script replacements proceed most quickly, which gives an additional gain in speed when displaying a web page.
  • Web pages stored on a web server can be created using components with CMS system templates or other output modifiers.
  • the code of the pages can be written by a programmer in a low-level language, without using a CMS system or other similar software that manages the content of a web page.
  • a web server refers to a software and hardware complex that is accessible to the user via the Internet and configured to receive HTTP requests from users, usually from web browsers, and delivering HTTP responses to them, usually together with HTML -page, image, file, media stream or other data.
  • Apache, US, Cherokee, and Resin HTTP servers based on Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS operating systems are not limited.
  • a non-exhaustive list of features on a standard web server includes the following:
  • Step 420 Receive from the at least one user a request to the website.
  • the browser of a user equipment sends a client request to a web server with a web page address for, for example, purchasing a product selected by a user for purchase in an online store.
  • the web server takes steps to assemble the HTML code of this page, during which the following is performed:
  • [0062] the execution of the program code of the dynamic parts related to the calculation of the basket for a given user, the output of the phone and the time of the delivery point and the price of the goods.
  • This stage can be carried out taking into account the status and access rights of the user, as well as other possible conditions for the formation of the web page, and includes the selection of the necessary data from databases related to customers, prices and assortment, filtering and sorting of these data and other actions necessary for generating HTML code for dynamic parts.
  • PHP code is usually used as program code, but Perl, ASP, JSP, etc. can also be used.
  • the result of the execution of the program code of the dynamic parts is to obtain HTML code corresponding to the specified dynamic parts;
  • the POST request method is designed to transmit and receive data of any size, in contrast to the GET method, where restrictions can be both at the level of the web server and the user's web browser on his device. Therefore, POST can be used to upload a file or submit a completed web form.
  • some data can be transmitted in the query URI string, indicating, for example, search conditions, date ranges, or other information defining the request.
  • an arbitrary amount of data of any type can be sent to the web server in the body of the request message.
  • the header fields in the POST request indicate the type of content.
  • the type of request itself (GET or POST), for example, in character or numerical format, can be specified as a download parameter.
  • the cookies may be specified as the download parameter (for example, if the website stores data about user behavior in cookies and the section “You looked previously” should be implemented on the website based on this data).
  • a cookie is a small piece of data sent by a web server and stored on a mobile communication device or user’s computer.
  • a web client usually a web browser, whenever it tries to open a page of the corresponding website, sends this piece of data to the web server as part of an HTTP request.
  • the text identifier of the dynamic part of the website can be used as a download parameter, allowing the various dynamic parts of the website to use a shared cache. If two different dynamic parts of the website have the same identifier, then the storage location of the cache in non-volatile memory will be the same with the same load parameters. This allows you to calculate dynamic blocks once, and then use the already computed cache.
  • the non-volatile memory used in the invention is intended for recording and storing data used by a web server, in particular, dynamic and static parts of HTML pages, content necessary for filling HTML pages, auxiliary information, etc.
  • non-volatile memory use the hard drive of the web server, non-volatile memory of the user's mobile communication device or the memory of other computers located on the Internet.
  • the dynamic part of the website can be of any acceptable size, for example, as a single “Login” link word, which after user authorization changes to “Exit”, as well as menus, filters, products and even entire website web pages .
  • Step 430 check the presence of the cache file in non-volatile memory for each dynamic part of the web page received in the previous step of the request.
  • the dynamic part of the web page is calculated based on the loading parameters, and for the calculation, data is first obtained from the main memory, if any; otherwise, they receive data from non-volatile memory.
  • RAM random access memory
  • SRAM static random access memory
  • GPU memory graphics device memory
  • the download parameters are converted in such a way that the same file link is returned for the same set of download parameters. If the boot parameters do not participate in the calculation of the dynamic part, then they do not participate in the formation of a link to the cache file.
  • the boot parameter may not be involved in the calculation of the dynamic part if it is not specified explicitly, or has a flag in the system that may not be used and is not required. For example, if the dynamic part for all users does not change when calculation, the user is specified or not does not affect the address of the cache file, since the user does not affect the result of the calculation of the dynamic part of the web page.
  • the boot parameters also use a unique user identifier, such as a username or user ID (login field), which can be either numeric or symbolic.
  • a unique user identifier such as a username or user ID (login field)
  • login field can be either numeric or symbolic. This approach allows you to cache the state of the dynamic parts that is a visitor to the website, individual for each user. In some implementations, if the user is an unauthorized visitor, then the value of the unique identifier will be “L This download option is optional.
  • the urlpage parameter is the address of the current page of the user’s request (after the first character 7 ’and before the first character or end of the url), which is optional or required, depending on the choice of the web programmer.
  • the process of caching a dynamic block is to save the calculation results to a file at a specific address, which depends on the download parameters that are involved in the calculation of the dynamic part, for example:
  • a unique link is generated to the cache file, for example, of this kind, and the extension can be any, not limited to:
  • the cache URL may look like “cache / modules /” + name + Y + urlpaae + Y + login + 7 ”+ propertiesfll + Y + ... + Y + propertiesfM1 +“. M ”, which is text concatenation of parameters.
  • Examples of URLs to the cache file may be as follows:
  • HTML - code of the dynamic part which must be placed on a web page
  • Javascript - code of the dynamic part which must be placed on a web page
  • Javascript is a code that is triggered by the onload event when a web page loads.
  • javascript code For javascript code to be executed when the web page is loaded, it must be specified in the onload parameter of the body tag in the HTML code of the web page. If there are several dynamic parts on the web page that use onload when loading, then they must be assembled into a separate javascript code, which will be placed in the onload event.
  • An additional result is data in text string format, if there is a need to obtain additional information from the dynamic part. It can be used if, for example, the data must first be transformed depending on the results of calculations of other dynamic parts of the web page. This field allows you to transfer data in a format convenient for further work.
  • the dynamic part due to the ability to process POST request parameters, can send requests to the web server and receive a response in any text format (for example, JSON) without reloading the page (for example, AJAX technology). If the result obtained from the web server is displayed on the page, the page will change, and the dynamic parts will have the same cache, because at the time of the request the page with the dynamic parts was not reloaded. This can be used when the dynamic part can take many values that are quickly calculated and, as a result, they should not be cached. For example, the dynamic part that displays the file structure: a list of folders on the left, and when you click on a folder, files attached to the folder appear. Getting the tree of the file structure is not a time-consuming operation, so it does not make sense to cache the result with every click.
  • JSON text format
  • AJAX technology for example, AJAX technology
  • the whole process of calculating the result of the dynamic part is based on requesting data from the place of their storage (for example, in a database by means of an SQL query) and further operations with this data.
  • the main task is to maximize the speed of obtaining data from the place of their storage.
  • operations on the dynamic part the operations of reading, modifying (updating), deleting, creating, known from the prior art, can be used.
  • a link is stored in the RAM, which contains data on the cache URL of the dynamic part of the web page, a string for connecting to the database, and a table inside the database to which the request was made.
  • an acceleration data acquisition system is implemented. It consists in loading information (which is stored in non-volatile memory) at the time of the first loading of the website into the RAM. All further work of the web developer with data is based on a generalized request to the CMS indicating what data he wants to use without specifying the storage location. The system first requests data from the RAM and, if there is no data there, requests it from non-volatile memory (for example, in the database).
  • This technical solution uses the Entity-Attribute-Value (EAV) data storage model. This model has several advantages:
  • This structure has a table UUsers, stores user id, as well as table UProperty, which stores data about the attributes themselves. For example, for the attribute "Address" there is:
  • a method for displaying a parameter (this can be either a regular text field or a slider with two sliders),
  • the UPropertyValue table stores attribute values.
  • the UUsersPropertyValue table stores relationships between attributes and users.
  • the query function itself returns entities that satisfy the requirements for attributes and their values, for example:
  • the data is stored in RAM as an ordered list of entities to which their ordered attributes and values are already bound.
  • a list of all parameters and values is additionally loaded into the RAM to quickly obtain a list of all attributes and their values without being bound to entities.
  • the invention is preferably implemented on at least one data processing device or web server.
  • the invention does not require any changes to the conventional hardware or software of a client computer.
  • Summarizing the above-described functionality or sequence of steps of the method can be implemented in software executable on a data processing device or processor, namely in the form of a set of instructions (program code) in the code module, which is located in the RAM of the computing device.
  • the instruction set can be stored in another type of memory, for example, on a hard disk or in a removable memory, such as an optical disk (for possible use on a CD) or a flexible disk (for possible use on a floppy disk) or downloaded via the Internet or through another computer network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Данное техническое решение в общем относится к вычислительной области техники, а в частности к способам управления данными веб-сайта. Изобретение позволяет при изменении данных автоматически изменять данные как в оперативной памяти, так и в других местах, где данная информация хранится. Способ управления данными веб-сайта, в котором формируют по меньшей мере одну статическую часть веб-страницы, и по меньшей мере одну динамическую часть веб-страницы, которые хранятся в энергонезависимой памяти; получают от по меньшей мере одного пользователя запрос к веб-сайту; проверяют наличие файла кэша в энергонезависимой памяти для каждой динамической части веб-страницы полученного ранее, причем при наличии файла кэша в энергонезависимой памяти загружают его содержимое в динамическую часть веб-страницы; при отсутствии файла кэша в энергонезависимой памяти во время проверки осуществляют вычисление динамической части веб-страницы на основании запроса к веб-серверу, причем для вычисления предварительно получают данные из оперативной памяти, в случае их наличия; иначе получают данные из энергонезависимой памяти. Технический результат - скорость повышения обработки и управления данными веб-сайта.

Description

СПОСОБ УПРАВЛЕНИЯ ДАННЫМИ ВЕБ-САЙТА ОБЛАСТЬ ТЕХНИКИ
[001] Данное техническое решение, в общем, относится к вычислительной области техники, а в частности к способам управления данными веб-сайта.
УРОВЕНЬ ТЕХНИКИ
[002] В настоящее время активное развитие сети Интернет в последние десятилетия привело к быстрому росту технических решений, позволяющих упростить разработку и создание веб-сайтов. На рынке стали появляться не только новые языки веб-программирования, но и готовые наборы инструментов для быстрого создания веб-сайтов. Такой набор инструментов называется Content management system (далее - “CMS”). Назначение такой системы - дать возможность разработчику (веб- программисту) как можно проще и быстрее создать сайт, после чего останется только наполнить его контентом.
[003] Рынок Интернета развивается стремительно и как следствие, потребности посетителей веб-сайтов также растут. Сайты стали сложнее не только по функциональным возможностям, но и по дизайну - появились адаптивные версии вёрстки под планшетные устройства, мобильные телефоны, широкоформатные мониторы. Повышение сложности сайтов напрямую повлияло на развитие CMS - появилась необходимость разделения систем по направлениям, с различными наборами инструментов.
[004] Наличие подробной технической документации системы упрощает процесс веб-разработки, но сама CMS без дополнительных инструментов не так быстро эволюционирует, как подключаемые к ней инструменты. Любые серьезные изменения основного программного кода CMS могут повлиять на работоспособность всех инструментов, которые были установлены на сайтах до изменений. Получается, при изменении ядра CMS (например, оптимизация, которая немного уменьшает нагрузку на веб-сервер или экономит место в памяти) необходимо обеспечить полную совместимость всех существующих к нему инструментов, в том числе написанных сторонними разработчиками. Это трудозатратно, если, например, изменения в ядре были связаны с архитектурой. Поэтому изменять работу ядра CMS просто не выгодно. Поэтому новые инструменты и технологии, которые появлялись уже после начала эксплуатации какой-либо системы, подключались к ней как наборы инструментов и не входили в состав ядра.
[005] Примером такого инструмента является Memcached, который обеспечивает кэширование в оперативную память. Основное назначение этого инструмента - по ключу положить данные в память и быстро их вернуть по соответствующему запросу. В настоящее время этот инструмент нашел свое применение в ядре многих крупных проектов, например, Wikipedia, YouTube, Facebook и другие.
[006] Аналогичным инструментом является Redis, который имеет расширенный функционал: поддерживает сложные типы данных (например, списки), поддерживает высокоуровневые операции (например, сортировка), имеет встроенную поддержку репликации данных на другие сервера с целью защитить данные и повысить скорость записи/чтения данных при нагрузке.
[007] Существенным минусом Memcached и Redis является необходимость отслеживать актуальность данных и хранить информацию о ключах, по которым данные можно получить. При существенном масштабировании сайта это сильно усложняет сам процесс веб-разработки страниц.
[008] Из уровня техники известен патент США NaUS8924411 B2“System and method for the dynamic provisioning of static content”, патентообладатель: Open Text SA, опубликовано: 31.05.2005.
[009] Ближайшим аналогом может быть признано техническое решение, в котором раскрываются варианты осуществления системы и способа для динамического предоставления статического контента. В одном варианте осуществления информация, представленная в системе доставки контента, может быть обновлена на основе информации, опубликованной в системе управления контентом (CMS). Один вариант осуществления может взаимодействовать с системой доставки контента и системой управления контентом на уровне страницы. Более конкретно, зависимости контента на страницах, использующих один и тот же контент или часть (и), могут своевременно отслеживаться. После получения уведомления об изменении содержимого или его части из системы управления контентом система генерации контента может определять на основе зависимостей, на какие страницы влияет изменение, и на основе данного определения динамически генерировать обновленные данные на всех затронутых страницах. Затем обновленные страницы могут быть сохранены и/или перенесены на веб-уровень для доставки конечным пользователям.
[0010] В данном изобретении основным принципом является поддержание актуальности частей страниц посредством отслеживания изменения данных и обновлении ранее сохраненных частей страниц в энергонезависимой памяти. Недостатком является то, что вопрос ускорения первичной генерации страниц, ещё не откэшированных не решается.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0011] Данное техническое решение направлено на устранение недостатков, свойственных решениям, известным из уровня техники.
[0012] Технической задачей или проблемой, решаемой в данном техническом решении, является обработка и управление динамическими и статическими данными веб-сайта.
[0013] Техническим результатом, проявляющимся при решении вышеуказанной технической задачи, является повышение скорости обработки и управления данными веб-сайта.
[0014] Дополнительным техническим результатом является рациональное использование оперативной памяти за счёт отсутствия хранения избыточных данных. Динамические части разных веб-страниц могут пользоваться одним и тем же кэшем. Причём, для каждой динамической части могут быть заданы условия, в зависимости от которых он меняет результат своего вычисления (далее - состояние динамической части). Кэширование происходит только при изменении данных, что позволяет избежать дублей данных.
[0015] Указанный технический результат достигается благодаря осуществлению способа управления данными веб-сайта, в котором формируют по меньшей мере одну статическую часть веб-страницы, и по меньшей мере одну динамическую часть веб-страницы, которые хранятся в энергонезависимой памяти; далее получают от по меньшей мере одного пользователя запрос к веб-сайту; затем проверяют наличие файла кэша в энергонезависимой памяти для каждой динамической части веб-страницы полученного на предыдущем шаге запроса, причем при наличии файла кэша в энергонезависимой памяти загружают его содержимое в динамическую часть веб-страницы; при отсутствии файла кэша в энергонезависимой памяти во время проверки осуществляют вычисление динамической части веб-страницы на основании запроса к веб-серверу, причем для вычисления предварительно получают данные из оперативной памяти, в случае их наличия; иначе получают данные из энергонезависимой памяти.
[0016] В некоторых вариантах реализации изобретения запрос имеет тип POST или GET.
[0017] В некоторых вариантах реализации изобретения запрос содержит ссылку на веб-сайт с параметрами.
[0018] В некоторых вариантах реализации изобретения при отсутствии файла кэша в энергонезависимой памяти во время проверки осуществляют вычисление динамической части веб-страницы на основании запроса к веб-серверу, причем при изменении данных модифицируют их сначала в энергонезависимой памяти, а потом в оперативной.
[0019] В некоторых вариантах реализации изобретения при отсутствии файла кэша в энергонезависимой памяти во время проверки осуществляют вычисление динамической части веб-страницы на основании запроса к веб-серверу, причем при изменении данных модифицируют их сначала в оперативной памяти, а потом в энергонезависимой.
[0020] В некоторых вариантах реализации изобретения изменением данных является создание или обновление, или удаление.
[0021] В некоторых вариантах реализации изобретения при изменении данных, которые использовались при вычислении динамических частей, удаляют файлы кэша этих динамических частей.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0022] Признаки и преимущества настоящего технического решения станут очевидными из приведенного ниже подробного описания и прилагаемых чертежей, на которых: [0023] На Фиг. 1 показан пример реализации первичной загрузки веб-сайта.
[0024] На Фиг. 2 показан пример реализации обработки запроса к веб- серверу на веб-сайте;
[0025] На Фиг. 3 показан процесс формирования кэша динамических блоков.
[0026] На Фиг. 4 показан пример реализации управления данными веб-сайта в виде блок-схемы.
[0027] На Фиг. 5 показан вариант реализации вычисления динамической части веб-страницы.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0028] Данное техническое решение может быть реализовано на компьютере или другом устройстве обработки данных в виде автоматизированной системы или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.
[0029] Техническое решение может быть реализовано в виде распределенной компьютерной системы, компоненты которой являются облачными или локальными серверами.
[0030] В данном решении под системой подразумевается компьютерная система или автоматизированная система (АС), ЭВМ (электронно- вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированная система управления и любые другие устройства, способные выполнять заданную, чётко определённую последовательность вычислительных операций (действий, инструкций).
[0031] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).
[0032] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы, облачные хранилища данных. [0033] Программа— последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
[0034] Веб-страница (англ. Web-page) — компонент веб-сайта, файл, размещенный на сервере [ГОСТ Р 52872-2012].
[0035] Кэш (англ (memory) cache - запас памяти)— область памяти, которая служит для буфера обмена, как правило имеет большую скорость, чем основная память.
[0036] Content Management System (система управления контентом, сокр.
CMS) — информационная система для обеспечения и организации совместного процесса создания, редактирования и управления контентом.
[0037] Оперативная память (также оперативное запоминающее устройство, ОЗУ, англ. RAM) — память, часть системы памяти ЭВМ, в которую процессор может обратиться за одну операцию (jump, move и т. п.). Предназначена для временного хранения данных и команд, необходимых процессору для выполнения операций. Оперативная память передаёт процессору данные непосредственно, либо через кэш-память.
[0038] Вариант реализации первичной загрузки веб-страницы показан на Фиг.
1 в виде блок-схемы.
[0039] Способ управления данными веб-сайта может быть реализован последовательностью вычислительных шагов как это показано в виде блок-схемы на Фиг. 4.
[0040] Шаг 410: формируют по меньшей мере одну статическую часть веб- страницы, и по меньшей мере одну динамическую часть веб-страницы, которые хранятся в энергонезависимой памяти.
[0041] Предварительно получают запрос от пользователя, который осуществляет действие на веб-сайте.
[0042] Для того, чтобы максимально эффективно использовать энергонезависимую память для хранения вычисленных страниц, статическую часть веб-страницы, которая не меняется, хранят отдельно от динамических частей, которые зависят от параметров загрузки. Отдельное хранение динамических частей от статических позволяет их использовать повторно на разных страницах, экономя память и вычислительные мощности. В статической части веб-страницы представлена статическая, постоянная и не изменяющаяся информация. Изменить ее можно, но для этого необходимо внести соответствующие корректировки в программный код веб-страницы. Обычно файл статической части веб-страницы имеет HTML-формат. Веб-разработчик пишет HTML-код разметки, формируя при этом информационное наполнение сайта, после чего файлу присваивается имя, а затем страница загружается на веб-сервер и становится доступной пользователям Интернета. Например, на корпоративном сайте статическая часть веб-страницы может содержать сведения об истории компании, основных направлениях ее деятельности и т.п. В некоторых вариантах реализации веб-сервер при выдаче веб - страниц на оборудование пользователя осуществляет проверку того, изменилась или нет статическая часть страницы. Дело в том, что статические части страницы тоже иногда могут меняться. Эти изменения происходят гораздо реже, чем в случае динамических частей. Они носят не систематический, а эпизодический характер и связаны, как правило, с обновлением стиля сайта его создателями. Например, разработчик сайта решил заменить какую-либо картинку на странице или просто поменял фон всего сайта. Для более корректной работы предложенных способа и системы, целесообразно отслеживать указанные изменения статической части страниц и вносить соответствующие им поправки. В этих целях принято использовать механизм контрольных сумм, работающий по следующему принципу. Определяется контрольная сумма статической части и сохраняется в запоминающем устройстве в служебных данных кэша. При повторном заходе пользователя на страницу, при выполнении ее динамической части, заново вычисляется контрольная сумма обновленной страницы и сравнивается со старой суммой. Если они не совпали, то сервер делает вывод, что статическая часть страницы устарела и в кэш перезаписывается новая страница. Таким образом система автоматически, без участия человека отслеживает подобные изменения в статической части.
[0043] В некоторых вариантах реализации изобретения может использоваться кэш микропроцессора — сверхоперативная память, используемая микропроцессором компьютера для уменьшения среднего времени доступа к компьютерной памяти. Кэш использует небольшую, очень быструю память (обычно типа SRAM), которая хранит копии часто используемых данных из основной памяти.
[0044] В некоторых вариантах реализации изобретения может использоваться память графического процессора (GPU).
[0045] Принципиальное отличие динамической части веб-страницы от статической состоит в том, что ее содержимое является не постоянным, а может изменяться. Содержимое формируется в зависимости от пожеланий пользователя, а точнее - на основании запросов, созданных посетителями и отправленных на веб-сервер. Наиболее типичный пример динамической части веб-сайта - это страница с результатами поиска, выданными поисковой системой (например, www.google.ru) на основании отправленного пользователем поискового запроса. Другим примером реализации динамической части веб-страницы является интернет-магазин, где посетитель с помощью опций указывает, какой товар и с какими свойствами его интересует, отправляет запрос (для этого обычно предназначена соответствующая кнопка), и через пару секунд получает на экран графического интерфейса пользователя перечень товаров, соответствующих установленным им критериям.
[0046] Результат вычисления динамических частей на веб-странице может меняться на основании заранее заданного набора параметров загрузки, которые включат параметры запроса и уникальный текстовый идентификатор, которые указаны ниже.
[0047] В общем случае, этап обнаружения в HTML-коде веб - страницы кода, относящегося к динамическим частям, выполняется веб-сервером путем анализа ее HTML-кода при помощи соответствующего распознающего программного модуля. При этом согласно предпочтительному варианту изобретения, обнаружение динамических частей происходит по специальным указаниям, расставленным в коде страницы разработчиками сайта. Например, установленная на веб-сервере CMS-система анализирует код веб - страницы при сохранении ее на сервер. Если CMS- система встречает установленные разработчиком сайта программные указания, то система заменяет их на собственные метки, по которым она впоследствии определяет места замены устаревших данных на актуальные. В этом случае этапы обнаружения динамических частей и их замены JS-скриптом протекают наиболее быстро, что дает дополнительный выигрыш в скорости при отображении веб - страницы.
[0048] Хранимые на веб-сервере веб - страницы могут быть созданы с использованием компонентов с шаблонами CMS-системы или других модификаторов вывода. Как вариант, код страниц может быть написан программистом на языке низкого уровня, без использования CMS системы и другого подобного программного обеспечения, управляющего контентом веб - страницы.
[0049] В данном техническом решении под веб-сервером понимается программно-аппаратный комплекс, доступный пользователю через Интернет и выполненный с возможностью приема НТТР-запросов пользователей, обычно от веб-браузеров, и выдающий им НТТР-ответы, как правило, вместе с HTML-страницей, изображением, файлом, медиа- потоком или другими данными. В качестве конкретных примеров веб- сервера можно назвать HTTP-серверы Apache, US, Cherokee и Resin на базе операционных систем Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS, не ограничиваясь. Неисчерпывающий список функций стандартного веб-сервера включает в себя следующее:
[0050] - Прием запросов от веб-браузеров по протоколу стандарта HTTP с использованием сетевых протоколов TCP/IP;
[0051] - Выполнение поиска и отсылки файлов с гипертекстом или каких-либо документов в браузер по протоколу HTTP;
[0052] - Обслуживание и обработка запросов, типа: mailto: ..., FTP, Telnet и t.p ;
[0053] - Запуск прикладных программ на веб-сервере с последующей передачей и возвратом параметров обработки через стандарт интерфейса CGI;
[0054] - Работа и обслуживание навигационных карт изображений (Image map);
[0055] - Загрузка Javascript-приложений;
[0056] - Авторизация пользователей и их аутентификация;
[0057] - Ведение регистрационного журнала обращений пользователей к различным ресурсам;
[0058] - Автоматизированная работа веб - страниц ; [0059] - Поддержка страниц, которые генерируются динамически ;
[0060] - Поддержка работы протокола HTTPS для защищенных соединений с клиентами. Шаг 420: получают от по меньшей мере одного пользователя запрос к веб-сайту.
[0061] Итак, браузер оборудования пользователя, например, мобильного устройства связи, посылает клиентский запрос на веб-сервер с адресом веб-страницы для, например, покупки выбранного пользователем товара для покупки в интернет-магазине. Веб-сервер, получив запрос на веб- страницу, предпринимает действия по сборке HTML-кода этой страницы, в ходе которой выполняется следующее:
[0062] - выполнение программного кода динамических частей, относящегося к расчету корзины для данного пользователя, выводу телефона и времени работы пункта доставки и цены товара. Данный этап может проводиться с учетом проверки статуса и прав доступа пользователя, а также других возможных условий формирования веб-страницы, и включает в себя выборку необходимых данных из баз данных, относящихся к клиентам, ценам и ассортименту, фильтрацию и сортировку этих данных и прочие действия, необходимые для формирования HTML-кода динамических частей. В качестве программного кода обычно используется РНР-код, но может также выступать Perl, ASP, JSP и пр. Результатом этапа выполнения программного кода динамических частей является получение HTML-кода, соответствующего указанным динамическим частям;
[0063] - формирование HTML-кода веб - страницы, включающего HTML-код статической части и HTML-код динамических частей, полученный на предыдущем этапе путем выполнения их программного кода;
[0064] - выдача сформированного HTML-кода веб - страницы на оборудование пользователя с последующим отображением веб - страницы браузером пользователя.
[0065] Например, это может быть URL-запрос (со всеми параметрами GET и/или POST). Метод запроса POST предназначен для передачи и получении данных любых размеров, в отличии от метода GET, где ограничения могут быть как на уровне веб-сервера, так и у веб-браузера пользователя на его устройстве. Поэтому POST может использоваться для загрузки файла или представления заполненной веб-формы. В рамках GET-запроса некоторые данные могут быть переданы в строке запроса URI, указывающие, например, условия поиска, диапазоны дат, или другую информацию, определяющую запрос. В рамках POST запроса произвольное количество данных любого типа может быть отправлено на веб-сервер в теле сообщения запроса. Поля заголовка в POST-запросе указывают на тип содержимого.
[0066] Также в качестве параметра загрузки может быть указан сам тип запроса (GET или POST), например, в символьном или численном формате.
[0067] Или в качестве параметра загрузки могут быть указаны Cookies-файлы (например, если веб-сайт хранит данные о поведении пользователя в cookies и на веб-странице необходимо реализовать раздел «Вы смотрели ранее» на основании этих данных). Cookies-файл - небольшой фрагмент данных, отправленный веб-сервером и хранимый на мобильном устройстве связи или компьютере пользователя. Веб-клиент (обычно веб- браузер) всякий раз при попытке открыть страницу соответствующего веб- сайта пересылает этот фрагмент данных веб-серверу в составе НТТР- запроса.
[0068] Также в качестве параметра загрузки может использоваться текстовый идентификатор динамической части веб-сайта, позволяющий различным динамическим частям веб-сайта использовать общий кэш. Если у двух разных динамических частей веб-сайта будет одинаковый идентификатор, то место хранения кэша в энергонезависимой памяти будет одинаковым при одинаковых параметрах загрузки. Это позволяет вычислять динамические блоки один раз, после чего использовать уже вычисленный кэш.
[0069] Используемая в изобретении энергонезависимая память предназначена для записи и хранения данных, используемых веб- сервером, в частности, динамических и статических частей HTML-страниц, контента, необходимого для наполнения HTML-страниц, вспомогательной информации и пр. В качестве энергонезависимой памяти может использоваться жесткий диск веб-сервера, энергонезависимая память мобильного устройства связи пользователя или память других компьютеров, размещенных в сети Интернет. [0070] Динамическая часть веб-сайта может иметь любой допустимый размер, например как одно слово-ссылку "Вход", которое после авторизации пользователя меняется на "Выход", так и меню, фильтры, товары и даже целые веб-страницы веб-сайта.
[0071] Шаг 430: проверяют наличие файла кэша в энергонезависимой памяти для каждой динамической части веб-страницы полученного на предыдущем шаге запроса.
[0072] В момент загрузки веб-страницы с веб-сервера по запросу веб- браузера происходит проверка для каждого динамического блока, расположенного на данной веб-странице: сохранены ли результаты предыдущих вычислений для текущих параметров загрузки и идентификатора, выполненные при предыдущей загрузке. На данном шаге проверяют наличие файла кэша в энергонезависимой памяти веб-сервера, где хранятся результаты предыдущих вычислений. Если файл присутствует, то динамический блок не вычисляется, а результат загружается из файла кэша. Иначе динамический блок вычисляется, а результаты записываются в новый создаваемый файл кэша.
[0073] При отсутствии файла кэша в энергонезависимой памяти веб-сервера во время проверки осуществляют вычисление динамической части веб- страницы на основании параметров загрузки, причем для вычисления предварительно получают данные из оперативной памяти, в случае их наличия; иначе получают данные из энергонезависимой памяти.
[0074] В данном техническом решении могут использовать оперативную память (RAM) и/или статическую оперативную память (SRAM), и/или память графического устройства (память GPU).
[0075] Чтобы получить ссылку на файл кэша динамической части в виде URL, осуществляют преобразование параметров загрузки таким образом, чтобы для одного и того же набора параметров загрузки возвращалась одна и та же ссылка на файл. Если параметры загрузки не участвуют в вычислении динамической части, то они не участвуют в формировании ссылки на файл кэша. Параметр загрузки может не участвовать в вычислении динамической части, если он не указан явно, или имеет флаг в системе о том, что может не использоваться и не является обязательным. Например, если динамическая часть для всех пользователей не изменяется при вычислении, то указан пользователь или нет не влияет на адрес файла кэша, так как пользователь не влияет на результат вычисления динамической части веб-страницы.
[0076] В параметрах загрузки так же используется уникальный идентификатор пользователя, например логин или ID пользователя (поле login), который может быть как численным, так и символьным. Такой подход позволяет кэшировать индивидуальное для каждого пользователя состояние динамических частей, который является посетителем веб- сайта. В некоторых вариантах реализации если пользователь является неавторизованным посетителем, то значение уникального идентификатора будет “Л Данный параметр загрузки является необязательным.
[0077] Также существует параметр Properties[i]. который представляет собой массив данных, а именно упорядоченные параметры и их значения URL- запроса после символа“?” и до символа“#” или конца строки (например, “sort_id=id”, ”sort_direct=1”), который также является необязательным параметром.
[0078] Параметр urlpage представляет собой адрес текущей страницы запроса пользователя (после первого символа 7’ и до первого из символов или конца url), который является необязательным или обязательным параметром, в зависимости от выбора веб-программиста.
[0079] Физически процесс кэширования динамического блока представляет собой сохранение результатов вычисления в файл по определенному адресу, который зависит от параметров загрузки, которые участвуют в вычислении динамической части, например:
/cache/modulename/parametrurl/login/var.txt.
[0080] Поскольку необходимо сохранять только различающиеся результаты динамических частей по сравнению с предыдущей вычисленной частью с целью экономии места в энергонезависимой памяти, то используется однозначная функция преобразования набора параметров запроса в URL файла кэша. Так как на вычисление динамической части могут влиять не все параметры запроса, указываются только те, которые влияют на результат. [0081] Для этого разделяют параметры загрузки на те, которые влияют на результат вычисления и нет (текстовый идентификатор, логин, URL). Запросы POST не кэшируются, т.к. они предназначены для обмена информации веб-сервера и веб-браузера пользователя без обновления целиком страницы. Поэтому кэшируются только GET-запросы.
[0082] Далее формируется уникальная ссылка на файл кэша, например, такого вида, причем расширение может быть любое, не ограничиваясь:
/{текстовый идентификатор}/{логин}/{параметры}.М.
[0083] Если логин пользователя не участвует в вычислении динамической части веб-страницы, то ссылка на файл кэша будет без этого параметра загрузки иметь следующий вид:
/{текстовый идентификатор}/{параметры}.М
[0084] Если и параметры не участвуют в формировании (текстовый идентификатор обязательно влияет на формирование URL, это позволяет использовать различным динамическим частям веб-страницы один и тот же кэш), то так:
/{текстовый идентификаторам
[0085] В итоге URL кэша может иметь следующий вид “cache/modules/” + name + У + urlpaae + У + login + 7” + propertiesfll + У + ... + У + propertiesfM1+ “.М”, что представляет собой текстовую конкатенацию параметров.
[0086] Примеры URL на файл кэша могут быть следующими:
• 7cache/modules/header/-.M” - динамическая часть шапки веб- сайта для неавторизованного пользователя.
• 7cache/modules/karusel.M” - динамическая часть баннера, который не зависит ни от чего и может принимать только одно значение.
• 7cache/modules/control_table/users/admin/sort_id=id/sort_direct=1.t xt” - динамическая часть веб-страницы с текстовым идентификатором controljable в администраторской части, отвечающий за отображение данных (а в данном случае пользователей users), который был просмотрен пользователем сайта admin и отсортирован по столбцу идентификатора id в порядке убывания. [0087] Результатом вычисления динамической части веб-страницы является следующий набор данных:
[0088] HTML - код динамической части, который необходимо разместить на веб-странице;
[0089] Javascript - код динамической части, который необходимо разместить на веб-странице;
[0090] Javascript - код, который запускается по событию onload при загрузке веб-страницы. Чтобы код javascript выполнялся при загрузке веб-страницы, его необходимо указать в параметре onload тега body в HTML-коде веб- страницы. Если на веб-странице располагается несколько динамических частей, которые используют onload при загрузке, то их необходимо скомпоновать в отдельный javascript-код, который будет помещён в событие onload.
[0091] CSS стиль;
[0092] POST - ответ в виде текстовой строки;
[0093] Дополнительный результат - данные в формате текстовой строки, если есть необходимость получать из динамической части дополнительную информацию. Может использоваться в том случае, если, например, данные сначала необходимо преобразовать в зависимости от результатов вычислений других динамических частей веб-страницы. Это поле позволяет данные передавать в удобном для дальнейшей работы формате.
[0094] Например, рассмотрим веб-страницу товара в Интернет-магазине.
Пусть, на веб-странице имеются следующие динамические части:
• Поле А корзины с указанием общей суммы и возможностью выведения списка добавленных товаров при наведении мышки,
• Поле В товара, где выводятся подробные характеристики (без цены, цена выводится отдельно)
[0095] Допустим на веб-сайте действует акция: добавьте в корзину товар Ns1 , и получите на товар Ns2 скидку 50%. Т.е. чтобы понять, какую цену показывать посетителю на странице товара Ns2, необходимо сначала получить данные о добавленных товарах, а потом вычислить характеристики товара. В данном случае цена без скидки хранится в энергонезависимой памяти в базе данных там же, где и остальные характеристики, поэтому логичнее получить ее вместе с остальными запросами в динамической части В. Но цену не стоит встраивать в результат HTML-кода, а можно вернуть как дополнительный результат, чтобы произвести дальнейшее вычисление. Таким образом, после вычисления динамических частей А и В происходит перерасчет цены, если в корзине есть товар Ns1.
[0096] Динамическая часть благодаря возможности обрабатывать параметры запроса типа POST может отправлять запросы к веб-серверу и получать ответ в любом текстовом формате (например, JSON) без перезагрузки страницы (например, технология AJAX). Если полученный результат с веб- сервера отобразить на странице, то страница изменится, причем, динамические части будут иметь тот же кэш, ведь в момент запроса страница с динамическими частями не загружалась повторно. Это можно использовать, когда динамическая часть может принимать множество значений, которые быстро вычисляются и, как следствие, их не стоит кэшировать. Например, динамическая часть, которая отображает файловую структуру: слева список папок, а при клике на папку появляются вложенные в папку файлы. Получение дерева файловой структуры не является трудоемкой операцией, поэтому кэшировать результат при каждом клике не имеет смысла.
[0097] В итоге, если состояния динамических частей для определённых параметров запроса уже были вычислены ранее, скорость загрузки веб- страницы будет максимально быстрой, поскольку не потребуется никаких вычислений.
[0098] Весь процесс вычисления результата динамической части основывается на запросе данных из места их хранения (например, в базе данных посредством SQL-запроса) и дальнейшими операциями с этими данными. Основной задачей является максимальное ускорение времени получения данных из места их хранения. В качестве операций над динамической частью могут использоваться операции чтения, модифицирования (обновления), удаления, создания, известные из уровня техники.
[0099] Если осуществляется операция чтения внутри динамической части веб-страницы, то в оперативную память сохраняют связь, которая содержит данные об URL кэша динамической части веб-страницы, строку подключения к базе данных и таблицу внутри базы данных, к которой был запрос.
[00100] Например это может быть выполнено в следующем виде:
[00101] 7cache/modules/header/-.txt”,
[00102] “Driver={MySQL ODBC 5.1
Driver};Server=localhost;Database=Settings;”
[00103] “Menu”.
[00104] Если осуществляется операция создания, обновления или удаления, выполняют поиск всех связей, созданных ранее при чтении по данным строки подключения к базе данных, таблицы внутри базы данных. Затем удаляют все файлы кэша, которые формировались с этими данными - эти файлы кэша будут неактуальными, так как изменились.
[00105] В данном техническом решении реализована система ускорения получения данных. Она заключается в подгрузке информации (которая хранится в энергонезависимой памяти) в момент первой загрузки веб- сайта, в оперативную память. Вся дальнейшая работа веб-разработчика с данными основывается на обобщенном запросе к CMS с указанием, какие данные он хочет использовать без уточнения места хранения. Система сначала запрашивает данные из оперативной памяти и, если данных там нет, запрашивает их из энергонезависимой памяти (например, в базе данных).
[00106] В данном техническом решении используется модель хранения данных Сущность-Атрибут-Значение (Entity-Attribute-Value (EAV)). Такая модель имеет ряд преимуществ:
[00107] 1. Позволяет изменять атрибуты и параметры для сущности без изменения структуры базы данных.
[00108] 2. Исключает избыточность данных.
[00109] Однако в уровне техники при использовании данной модели данных возникают следующие проблемы:
[00110] 1. Усложнение запросов выборки по атрибутам, которые требуют больше времени из-за невозможности применения стандартных способов индексации.
[00111] 2. Необходимость отслеживания дублирующих связей. [00112] 3. Необходимость отслеживания связей между несуществующими записями таблицы.
[00113] Указанные выше проблемы решаются в рамках данного изобретения. Рассмотрим подробнее пример предложенной структуры SQL для хранения данных пользователей.
[00114] Данная структура имеет таблицу UUsers, хранит id пользователей, а также таблицу UProperty, которая хранит данные о самих атрибутах. Например, для атрибута «Адрес» существует:
[00115] уникальный идентификатор «idProperty» равный «2»,
[00116] название на русском языке,
[00117] название на латинице,
[00118] тип значений для этого атрибута,
[00119] способ отображения параметра (это может быть как обычное текстовое поле, так и слайдер с двумя ползунками),
[00120] должны ли быть значения адресов уникальными,
[00121] сортировка атрибута относительно других атрибутов пользователя
[00122] Таблица UPropertyValue хранит значения атрибутов.
[00123] Таблица UUsersPropertyValue хранит связи между атрибутами и пользователями .
[00124] Чтобы сделать выборку данных максимально быстро, выполняют один сложный запрос с использованием оператора JOIN вместо нескольких простых. Команда INNERJOIN позволяет SQL обрабатывать таблицы в порядке, отличном от указанного в запросе. Это дает возможность базе данных максимально быстро вернуть результат.
[00125] Сама функция запроса возвращает сущности, которые удовлетворяют требования к атрибутам и их значениям, например:
[00126] Требования к сущности о наличии хотя бы одного значения этого атрибута.
[00127] Проверка о наличии/отсутствии NULL среди значений.
[00128] Наличие у определённого атрибута значения, которое содержит указанную строку или полностью совпадает.
[00129] Сложность таких запросов в том, что их необходимо сначала автоматически сформировать в зависимости от указанных требований к атрибутам, а потом уже выполнять. Например, если существует задача выборки по двум значениям различных параметров необходимо найти данные сначала по одному, потом по другому параметру, после чего найти пересечение. Чтобы сделать это одним запросом для любого количества параметров, можно автоматически собрать сложный запрос для любого количества требований к параметрам.
[00130] Чтобы в модели EAV строить такие запросы в базу данных для любого количества атрибутов с любыми требованиями к их значениям, используют компоновщик запросов для всех возможных условий.
[00131] Сохранять результаты запросов к базе данных и всех их вариаций не имеет смысла, так как может быть слишком большое количество подмножеств результатов. Уменьшить число запросов к базе данных можно с помощью заранее загруженных таблиц в оперативную память. Таблицы загружаются в оперативную память в момент запуска веб-сайта. Затем таблицы автоматически преобразуются, однако предварительно пользователь на этапе создания веб-сайта устанавливает, что таблица USERS будет храниться в оперативной памяти.
[00132] Данные хранятся в оперативной памяти как упорядоченный список сущностей, к которым уже привязаны их упорядоченные атрибуты и значения.
[00133] Также в оперативную память дополнительно подгружается список всех параметров и значений для ускоренного получения списка всех атрибутов и их значений без привязки к сущностям.
[00134] Данное техническое решение было апробировано на практике и реализовано: был разработан сайт http://chik-chik.ru/. который показал в среднем лучшие результаты по скорости по обработке и управлению данными веб-сайта в нагрузочном тестировании по сравнению с другими крупными сайтами, имеющими аналогичные технические решения, известные из уровня техники. Для тестирования был использован максимально близкий сервер к физическому расположению веб-сервера сайта.
Figure imgf000021_0001
Figure imgf000022_0001
[00135] Как отмечено выше, сущность изобретения предпочтительно реализуется, по меньшей мере, на одном устройстве обработке данных или веб-сервере. Таким образом, изобретение не требует каких-либо изменений в обычном аппаратном или программном обеспечении клиентского компьютера. Обобщая, описанная выше функциональность или последовательность шагов способа может быть реализована в программном обеспечении, исполняемом на устройстве обработки данных или процессоре, а именно в виде набора инструкций (программный код) в модуле кода, который находится в оперативной памяти вычислительного устройства. До тех пор пока вычислительное устройство не понадобится, набор инструкций может храниться в другом типе памяти, например на жестком диске или в съемной памяти, такой как оптический диск (для возможного использования на компакт-диске) или гибкий диск (для возможного использования на флоппи-диске) или загружается через Интернет или через другую компьютерную сеть.
[00136] Кроме того, хотя различные описанные способы удобно реализовать в компьютере общего назначения, специалист в данной области техники также признает, что такие способы могут выполняться на других аппаратных средствах, в прошивке или на более специализированных устройствах, выполненных для реализации требуемых этапов способа.

Claims

ФОРМУЛА
1. Способ управления данными веб-сайта, включающий следующие шаги:
• формируют по меньшей мере одну статическую часть веб- страницы, и по меньшей мере одну динамическую часть веб- страницы, которые хранятся в энергонезависимой памяти;
• получают от по меньшей мере одного пользователя запрос к веб-сайту;
• проверяют наличие файла кэша в энергонезависимой памяти для каждой динамической части веб-страницы полученного на предыдущем шаге запроса, причем
о при наличии файла кэша в энергонезависимой памяти загружают его содержимое в динамическую часть веб- страницы;
о при отсутствии файла кэша в энергонезависимой памяти во время проверки осуществляют вычисление динамической части веб-страницы на основании запроса к веб-серверу, причем
я для вычисления предварительно получают данные из оперативной памяти, в случае их наличия;
· иначе получают данные из энергонезависимой памяти.
2. Способ по п.1, характеризующийся тем, что запрос имеет тип POST или GET.
3. Способ по п.1, характеризующийся тем, что запрос содержит ссылку на веб-сайт с параметрами.
4. Способ по п.1 , характеризующийся тем, что при отсутствии файла кэша в энергонезависимой памяти во время проверки осуществляют вычисление динамической части веб-страницы на основании запроса к веб-серверу, причем при изменении данных модифицируют их сначала в энергонезависимой памяти, а потом в оперативной.
5. Способ по п.1 , характеризующийся тем, что при отсутствии файла кэша в энергонезависимой памяти во время проверки осуществляют вычисление динамической части веб-страницы на основании запроса к веб-серверу, причем при изменении данных модифицируют их сначала в оперативной памяти, а потом в энергонезависимой.
6. Способ п. 4, характеризующийся тем, что изменением данных является создание или обновление, или удаление.
7. Способ п. 4, характеризующийся тем, что при изменении данных, которые использовались при вычислении динамических частей, удаляют файлы кэша этих динамических частей.
8. Способ по п. 1, характеризующийся тем, что чтобы получить ссылку на файл кэша динамической части в виде URL, осуществляют преобразование параметров загрузки таким образом, чтобы для одного и того же набора параметров загрузки возвращалась одна и та же ссылка на файл кэша.
9. Способ по п. 1, характеризующийся тем, что если у двух разных динамических частей веб-сайта имеется одинаковый идентификатор, то место хранения кэша в энергонезависимой памяти является одинаковым при одинаковых параметрах загрузки.
10. Способ по п. 1, характеризующийся тем, что если осуществляется операция чтения внутри динамической части веб-страницы, то в оперативную память сохраняют связь, которая содержит данные об URL кэша динамической части веб-страницы, строку подключения к базе данных и таблицу внутри базы данных, к которой был запрос.
PCT/RU2018/000457 2018-07-11 2018-07-11 Способ управления данными веб-сайта WO2020013724A1 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2018125461A RU2691834C1 (ru) 2018-07-11 2018-07-11 Способ управления данными веб-сайта
RU2018125461 2018-07-11

Publications (1)

Publication Number Publication Date
WO2020013724A1 true WO2020013724A1 (ru) 2020-01-16

Family

ID=66947916

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2018/000457 WO2020013724A1 (ru) 2018-07-11 2018-07-11 Способ управления данными веб-сайта

Country Status (2)

Country Link
RU (1) RU2691834C1 (ru)
WO (1) WO2020013724A1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685667A (zh) * 2020-12-29 2021-04-20 浪潮软件科技有限公司 数据交互方法、装置及计算机可读介质以及交互服务器

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111291083B (zh) * 2020-01-22 2024-02-06 奇安信科技集团股份有限公司 网页源码数据处理方法、装置及计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993120B2 (en) * 2002-10-23 2006-01-31 International Business Machines Corporation System and method for copying and transmitting telephony conversations
US7194678B1 (en) * 1999-03-02 2007-03-20 Hitachi, Ltd. Dynamic web page generation method and system
US7987239B2 (en) * 2001-12-19 2011-07-26 International Business Machines Corporation Method and system for caching role-specific fragments
US8924411B2 (en) * 2005-05-31 2014-12-30 Open Text S.A. System and method for the dynamic provisioning of static content

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110751B2 (en) * 2012-02-13 2015-08-18 Microsoft Technology Licensing, Llc Generating and caching software code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7194678B1 (en) * 1999-03-02 2007-03-20 Hitachi, Ltd. Dynamic web page generation method and system
US7987239B2 (en) * 2001-12-19 2011-07-26 International Business Machines Corporation Method and system for caching role-specific fragments
US6993120B2 (en) * 2002-10-23 2006-01-31 International Business Machines Corporation System and method for copying and transmitting telephony conversations
US8924411B2 (en) * 2005-05-31 2014-12-30 Open Text S.A. System and method for the dynamic provisioning of static content

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685667A (zh) * 2020-12-29 2021-04-20 浪潮软件科技有限公司 数据交互方法、装置及计算机可读介质以及交互服务器

Also Published As

Publication number Publication date
RU2691834C1 (ru) 2019-06-18

Similar Documents

Publication Publication Date Title
JP5821678B2 (ja) ウェブ・アプリケーションのブラウザに依存しない自動互換性チェックのためのウェブ・サービス
US9910651B2 (en) System for developing, testing, deploying, and managing applications in real-time
US7933871B2 (en) Discovering and updating templates
KR101477763B1 (ko) 원격 모듈용 메시지 목록
US8001145B1 (en) State management for user interfaces
US8516366B2 (en) Extensible content service for attributing user-generated content to authored content providers
US20160210275A1 (en) Identifying changes for online documents
US20020026441A1 (en) System and method for integrating multiple applications
US20050080804A1 (en) System and method for maintaining componentized content
US9967370B2 (en) OData enabled mobile software applications
US20130019189A1 (en) Augmented editing of an online document
US20130132422A1 (en) System and method for creating and controlling an application operating on a plurality of computer platform types
US20190340230A1 (en) System and method for generating websites from predefined templates
WO2015088907A1 (en) Hybrid web publishing system
US20170031877A1 (en) Web Page Design System
US20170031882A1 (en) Web Page Profiler
US20220300542A1 (en) System and method for translating a software query in an automated integration process into natural language
US20120072598A1 (en) Use of generic universal resource indicators
US20170031876A1 (en) Web Page Generation System
RU2691834C1 (ru) Способ управления данными веб-сайта
CN111427577A (zh) 代码处理方法、装置及服务器
CN113326418A (zh) 用于确定网页信息源及网页质量的方法和装置
US20120310912A1 (en) Crawl freshness in disaster data center
US10114617B2 (en) Rapid visualization rendering package for statistical programming language
US11243935B2 (en) Content management system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18925980

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18925980

Country of ref document: EP

Kind code of ref document: A1