Asus node js web framework что это
Перейти к содержимому

Asus node js web framework что это

  • автор:

10 лучших фреймворков Node.js

Node.js приобрел большую популярность среди разработчиков, которые предпочитают использовать JavaScript для разработки приложений.

Возможность управления клиентскими и серверными сценариями одним и тем же языком привела к увеличению количества пользователей Node.

Фреймворки Node.js пользуются огромным спросом на рынке, а в 2019 году они приобрели еще больше функций и преимуществ. На рынке доступно множество ведущих языков программирования, однако лучшие фреймворки Node.js 2019 года кардинально изменили процесс разработки.

Но прежде чем перейти к подробному обсуждению, разберемся в том, что такое Фреймворк Node

Node.js — это кросс-платформенная среда выполнения JavaScript с открытым исходным кодом, которая выполняет код JavaScript вне браузера.

В основном JavaScript используется для создания сценариев на стороне клиента, которые встроены в HTML-код страницы веб-сайта и запускаются движком JavaScript в браузере.

Thread: ASUS Framework Service starts cscript.exe on boot. need CONFIRMATION

ASUS Framework Service starts cscript.exe on boot. need CONFIRMATION

a few days ago I installed a newer version of Armoury Crate, the AURA Service and the ASUS Framework Service/Core-SDK on my laptop. A few hours later I restarted my computer and noticed, that cscript.exe would be executed on boot. I immediately thought I had caught myself some malware. However, with Procmon I was able to trace the origin of the execution to the asus_framework.exe (process: ASUS NodeJS Web Framework).

I now believe, that no malicious software is behind this issue, however, it annoys me a fair bit. Can anyone confirm, that this is happening on their computer as well? Just want to be 100% sure that everything is safe (however, my Kaspersky did not find anything malware-related). I have an Asus ROG Strix Scar III (G531GW), so maybe it will not affect those with solely an Asus motherboard.

And finally, how may I disable this pop-up on startup? I cannot find it in the system configuration. Maybe it�s essential, but I just want to hide it, not disable it.

Всё что вам нужно знать о Node.js

Привет, Хабр! Представляю вашему вниманию перевод статьи «Everything you need to know about Node.js» автора Jorge Ramón.

В наши дни платформа Node.js является одной из самых популярных платформ для построения эффективных и масштабируемых REST API’s. Она так же подходит для построения гибридных мобильных приложений, десктопных программ и даже для IoT.

Я работаю с платформой Node.js более 6 лет и я на самом деле люблю её. Этот пост главным образом пытается быть путеводителем по тому, как Node.js работает на самом деле.

Давайте же начнём!!

О чем пойдёт речь:

Мир до Node.js

Многопоточный сервер

Веб-приложения, написанные следуя клиент/серверной архитектуре, работают по следующей схеме — клиент запрашивает нужный ресурс у сервера и сервер отправляет ресурс в ответ. В этой схеме сервер, ответив на запрос, прерывает соединение.

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

Значит ли это, что сервер может обрабатывать только один запрос за раз? Не совсем! Когда сервер получает новый запрос он создаёт отдельный поток для его обработки.

Поток, если простыми словами, это время и ресурсы, что CPU выделяет на выполнение небольшого блока инструкций. С учётом сказанного, сервер может обрабатывать несколько запросов одновременно, но только по одному на поток. Такая модель так же называться thread-per-request model.

Для обработки N запросов серверу нужно N потоков. Если сервер получает N+1 запросов, тогда он должен ждать пока один из потоков не станет доступным.

На рисунке выше, сервер может обрабатывать до 4 запросов (потоков) единовременно и когда он получает следующие 3 запроса, эти запросы должны ждать пока любой из этих 4 потоков не станет доступным.

Один из способов избавиться от ограничений — добавить больше ресурсов (памяти, ядер процессора и т. д.) на сервер, но это не самое лучшее решение….

И, конечно, не забываем о технологических ограничениях.

Блокирующий ввод/вывод

Ограниченное число потоков на сервере не единственная проблема. Возможно, Вам стало интересно почему один поток не может обрабатывать несколько запросов одновременно? всё из-за блокирующих операций ввода/вывода.

Допустим, Вы разрабатываете онлайн магазин и Вам нужна страница где пользователь может просматривать список всех товаров.

Пользователь стучится на http://yourstore.com/products и сервер рендерит HTML файл со всеми продуктами с базы данных в ответ. Совсем не сложно, да?

Но, что же происходит за кулисами?

  • Когда пользователь стучится на /products особый метод или функция должна выполниться, что бы обработать запрос. Маленький кусочек кода (Ваш или фреймворка) анализирует URL-адрес запроса и ищет подходящий метод или функцию. Поток работает.
  • Теперь нужный метод или функция выполняться, так как и в первом пункте — поток работает.
  • Так как Вы хороший разработчик, Вы сохраняете все системные логи в файл, ну и конечно же, что бы быть уверенными, что роутер выполняет нужный метод/функцию — Вы так же логируете строку «Method X executing!!». Но всё это блокирующие операции ввода/вывода. Поток ждёт.
  • Все логи сохранены и следующие строки функции выполняются. Поток работает снова.
  • Время обращаться к базе данных и получать все продукты – простой запрос, вроде SELECT * FROM products , выполняет свою работу, но угадайте что? Да-да, это блокирующая операция ввода/вывода. Поток ждёт.
  • Вы получили массив или список всех продуктов, но убедитесь, что Вы всё это залогировали. Поток ждёт.
  • Теперь у Вас есть все продукты и пришло время рендерить шаблон для будущей страницы, но перед этим Вам нужно их прочитать. Поток ждёт.
  • Движок рендеринга делает свою работу и шлёт ответ клиенту. Поток работает снова.
  • Поток свободен, словно птица в небесах.

На сколько медленны операции ввода/вывода? Ну это зависит от конкретной. Давайте обратимся к таблице:

Операция Количество CPU тактов
CPU Registers 3 такта
L1 Cache 8 тактов
L2 Cache 12 тактов
RAM 150 тактов
Disk 30,000,000 тактов
Network 250,000,000 тактов

Операции сети и чтения с диска слишком медленные. Представьте сколько запросов или обращений к внешним API ваша система могла бы обработать за это время.

Подбивая итоги: операции ввода/вывода заставляют поток ждать и тратить ресурсы впустую.

Проблема C10K

Проблема

C10k (англ. C10k; 10k connections — проблема 10 тысяч соединений)

В ранние 2000-е, серверные и клиентские машины были медленными. Проблема возникала при параллельной обработке 10 000 клиентских соединений к одной машине.

Но почему традиционная модель thread-per-request (поток на запрос) не могла решить эту проблему? Что ж, давайте используем немного математики.

Нативная реализация потоков выделяет больше 1 Мб памяти на поток, выходя из этого – для 10 тысяч потоков требуется 10 Гб оперативной памяти и это только для стека потоков. Да, и не забывайте, мы в начале 2000-х!!

В наши дни серверные и клиентские компьютеры работают быстрее и эффективней и почти любой язык программирования или фреймворк справляются с этой проблемой. Но фактически проблема не исчерпана. Для 10 миллионов клиентских соединений к одной машине проблема возвращается вновь (но теперь она C10M Problem).

JavaScript спасение?

Осторожно, спойлеры.
Node.js на самом деле решает проблему C10K… но как?!

Серверный JavaScript не был чем-то новым и необычным в начале 2000-х, на тот момент уже существовали реализации поверх JVM (java virtual machine) – RingoJS и AppEngineJS, что работали на модели thread-per-request.

Но если они не смогли решить проблему, тогда как Node.js смог?! Всё из-за того, что JavaScript однопоточный.

Node.js и цикл событий

Node.js

Node.js это серверная платформа, что работает на движке Google Chrome – V8, который умеет компилировать JavaScript код в машинный код.

Node.js использует событийно-ориентированную модель и неблокирующую ввод / вывод архитектуру, что делает его легковесным и эффективным. Это не фреймворк, и не библиотека, это среда выполнения JavaScript.

Давайте напишем маленький пример:

Non-blocking I/O

Node.js использует неблокирующие ввод/вывод операции, что же это значит:

  • Главный поток не будет блокироваться операциями ввода/вывода.
  • Сервер будет продолжать обслуживать запросы.
  • Нам придётся работать с асинхронным кодом.

Давайте напишем пример, в котором на запрос к /home сервер в ответ шлёт HTML страницу, а для всех других запросов — ‘Hello World’. Что бы отослать HTML страницу сначала ее нужно прочитать из файла.

Если запрашиваемый url-адрес /home , тогда используется нативный модуль fs для чтения файла home.html .

Функции что попадают в http.createServer и fs.readFile как аргументы — колбэки. Эти функции будут выполнены в какой-то из моментов в будущем (Первая, как только сервер получит запрос, а вторая — когда файл будет прочитан с диска и помещён в буфер).

Пока файл считывается с диска, Node.js может обрабатывать другие запросы и даже считывать файл снова и всё это в одном потоке… но как?!

Цикл событий

Цикл событий — это магия, которая происходит внутри Node.js. Это буквально бесконечный цикл и на самом деле один поток.

Libuv — C библиотека которая реализует этот паттерн и является частью ядра Node.js. Вы можете узнать больше о libuv здесь.

Цикл событий имеет 6 фаз, каждое исполнение всех 6 фаз называют tick-ом.

  • timers: в этой фазе выполняются коллбэки, запланированные методами setTimeout() и setInterval() ;
  • pending callbacks: выполняются почти все коллбэки, за исключением событий close , таймеров и setImmediate() ;
  • idle, prepare: используется только для внутренних целей;
  • poll: ответственен за получение новых событий ввода/вывода. Node.js может блокироваться на этом этапе;
  • check: коллбэки, вызванные методом setImmediate() , выполняються на этом этапе;
  • close callbacks: например, socket.on(‘close’, . ) ;

Хорошо, есть только один поток, и этот поток и есть цикл событий, но тогда кто выполняет все операции ввода/вывода?

Обратите внимание.
Когда циклу событий нужно выполнить операцию ввода/вывода он использует поток ОС с тредпула (thread pool), а когда задача выполнена, коллбэк ставится в очередь во время фазы pending callbacks.

Разве это не круто?

Проблема CPU-ёмких задач

Node.js кажется идеальным! Вы можете создавать всё, что захотите.

Давайте напишем API для вычислений простых чисел.

Простое число – это целое (натуральное) число больше единицы и делимое только на 1 и на само себя.

Дано число N, API должен вычислять и возвращать первые N простых чисел в список (или массив).

prime.js это реализация нужных вычислений: функция isPrime проверяет является ли число простым, а nthPrime возвращает N таких чисел.

Файл же index.js отвечает за создание сервера и использует модуль prime.js для обработки каждого запроса на /primes . Число N прокидывается через строку запроса в URL-адресе.

Что бы получить первых 20 простых чисел нам нужно сделать запрос на http://localhost:8080/primes?n=20 .

Предположим, к нам стучатся 3 клиента и пытаются получить доступ к нашему не блокирующемуся вводом/выводом API:

  • Первый запрашивает 5 простых чисел каждую секунду.
  • Второй запрашивает 1000 простых чисел каждую секунду
  • Третий запрашивает 10 000 000 000 простых чисел, но.

Когда третий клиент шлёт запрос – главный поток блокируется и это главный признак проблемы CPU-ёмких задач. Когда главный поток занят исполнением «тяжёлой» задачи он становится недоступен для других задач.

Но как насчёт libuv? Если Вы помните, эта библиотека помогает Node.js исполнять операции ввода/вывода с помощью потоков ОС избегая блокировки главного потока и Вы абсолютно правы, это решение нашей проблемы, но для того, что бы это стало возможным, наш модуль должен быть написан на языке C++, что бы libuv могла с ним работать.

К счастью, начиная с v10.5 в Node.js добавлен нативный модуль Worker Threads.

Воркеры и их потоки

Исправление кода

Пришло время переписать наш код:

В файле index-workerthreads.js при каждом запросе на /primes создаётся экземпляр класса Worker (с нативного модуля worker_threads ) для выгрузки и исполнения файла primes-workerthreads.js в поток воркера. Когда список простых чисел просчитан и готов, инициируется событие message – результат попадает в главный поток из-за того, что у воркера не осталось работы он также инициирует событие exit , позволяя основному потоку отправлять данные клиенту.

primes-workerthreads.js изменён немного. Он импортирует workerData (это копия параметров, переданных с основного потока) и parentPort через который результат работы воркера передаётся назад в главный поток.

Теперь давайте испробуем наш пример снова и посмотрим, что случиться:

Основной поток больше не блокируется .

Теперь всё работает как нужно, но плодить воркеры без всяких на то причин все же не лучшая практика, создавать потоки не дешёвое удовольствие. Обязательно создайте пул потоков перед этим.

Заключение

Node.js мощная технология, которую стоит изучить при возможности.
Моя личная рекомендация – всегда будьте любопытными! Если Вы знаете, как что-то работает изнутри, Вы сможете работать с этим более эффективно.

Это всё на сегодня, ребята. Я надеюсь этот пост был полезен для Вас и вы узнали что-то новое о Node.js.

Спасибо за прочтение и до встречи в следующих постах.

What is asus_framework.exe?

asus_framework.exe is part of ASUSTek Computer Inc. and developed by ASUSTek Computer Inc. according to the asus_framework.exe version information.

asus_framework.exe’s description is "ASUS NodeJS Web Framework"

asus_framework.exe is usually located in the ‘C:\Program Files (x86)\ASUS\ArmouryDevice\’ folder.

If you have additional information about the file, please share it with the FreeFixer users by posting a comment at the bottom of this page.

Vendor and version information [?]

The following is the available information on asus_framework.exe:

Property Value
Product name ASUSTek Computer Inc.
Company name ASUSTek Computer Inc.
File description ASUS NodeJS Web Framework
Internal name node
Original filename node.exe
Legal copyright Copyright Node.js contributors. MIT license.
Product version 1.0.0.0
File version 1.0.0.0

Here’s a screenshot of the file properties when displayed by Windows Explorer:

Product name ASUSTek Computer Inc.
Company name ASUSTek Computer Inc.
File description ASUS NodeJS Web Framework
Internal name node
Original filename node.exe
Legal copyright Copyright Node.js contributors. MIT ..
Product version 1.0.0.0
File version 1.0.0.0

Digital signatures [?]

asus_framework.exe is not signed.

TCP/UDP Listening Ports [?]

asus_framework.exe has been reported to listen on the following TCP/UDP ports.

Port Protocol # Occurrences
1042 TCP v4 1

Hashes [?]

Property Value
MD5 6dd643681cfc5d775e6363b72ece7b87
SHA256 4b6638344b2409b3cb43633f14f891348080fbe4aff2c9424f4b189f8cb671f5

Error Messages

These are some of the error messages that can appear related to asus_framework.exe:

asus_framework.exe has encountered a problem and needs to close. We are sorry for the inconvenience.

asus_framework.exe — Application Error. The instruction at «0xXXXXXXXX» referenced memory at «0xXXXXXXXX». The memory could not be «read/written». Click on OK to terminate the program.

ASUS NodeJS Web Framework has stopped working.

End Program — asus_framework.exe. This program is not responding.

asus_framework.exe is not a valid Win32 application.

asus_framework.exe — Application Error. The application failed to initialize properly (0xXXXXXXXX). Click OK to terminate the application.

What will you do with the file?

To help other users, please let us know what you will do with the file:

What did other users do?

The poll result listed below shows what users chose to do with the file. 84% have voted for removal. Based on votes from 176 users.

User vote results: There were 147 votes to remove and 29 votes to keep

NOTE: Please do not use this poll as the only source of input to determine what you will do with the file.

Malware or legitimate?

If you feel that you need more information to determine if your should keep this file or remove it, please read this guide.

And now some shameless self promotion 😉

A screenshot of FreeFixer

Hi, my name is Roger Karlsson. I’ve been running this website since 2006. I want to let you know about the FreeFixer program. FreeFixer is a freeware tool that analyzes your system and let you manually identify unwanted programs. Once you’ve identified some malware files, FreeFixer is pretty good at removing them. You can download FreeFixer here. It runs on Windows 2000/XP/2003/2008/2016/2019/Vista/7/8/8.1/10. Supports both 32- and 64-bit Windows.

If you have questions, feedback on FreeFixer or the freefixer.com website, need help analyzing FreeFixer’s scan result or just want to say hello, please contact me. You can find my email address at the contact page.

Comments

Please share with the other users what you think about this file. What does this file do? Is it legitimate or something that your computer is better without? Do you know how it was installed on your system? Did you install it yourself or did it come bundled with some other software? Is it running smoothly or do you get some error message? Any information that will help to document this file is welcome. Thank you for your contributions.

I’m reading all new comments so don’t hesitate to post a question about the file. If I don’t have the answer perhaps another user can help you.

My name Romeo writes

I have this problem in my computer screen first I have problem with Microsoft exescript so I did a safe boot now it’s gone and theirs another problem its keep popping in my screen the ASUS nodeJS web framework ..how can I rid of this please help..

# 7 Jul 2020, 16:46

Roger Karlsson writes

@Romeo: What error message do you see related to asus_framework.exe and when does it occur?

# 13 Jul 2020, 14:28

Robert writes

Can’t open AsIO3.sys!! Failed with error code 5: Access is denied.

I don’t know how to fix this error, I’ve tried reinstalling but It doesn’t work. Armoury Crate won’t let me change the color of my B450-F Gaming Motherboard.

# 14 Jun 2021, 13:44

KhydroDjent writes

I have the exact same Issue as Robert! Ever since there was a windows update my RGB has been unusable. I’ve tried rolling back, updating bios, uninstalling and reinstalling, using CCleaner, deleting the files manually, disabling anti virus. The only thing I haven’t tried and will not do is a clean install, that would take so much work. There has to be a fix for this but I honestly have no idea. I’m stumped.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *