SlideShare une entreprise Scribd logo
1  sur  14
Metadata.js
для дешевых высоконагруженных сервисов
Удивить 1С-ника трудно
• Голая платформа 1С предоставляет объекты настолько высокого
уровня, что отыскать для них аналоги в альтернативных средах
разработки почти невозможно. Разве что, SAP и MS Dynamics
• Программист и внедренец 1С оперирует не голой платформой, а
прикладными решениями (ERP, БП, УНФ). Уровень бизнес-объектов
там еще выше
• Предложить нечто конкурентоспособное на этом фоне сложно…
• Metadata.js – это одновременно:
– Javascript клиент для сервера 1С
– Платформа автономных и гибридных web приложений
Очередной «Велосипед»?
• Библиотека возникла, чтобы выполнить реальные проекты реальных
заказчиков
– Писали инструмент для себя, т.к. решить стандартными средствами не смогли
– Metadata.js предоставляет высокоуровневые javascript объекты, наподобие
справочников, документов и форм в традиционной 1С
• Чем не устроил тонкий или веб-клиент:
– Для обработки геометрии в реальном времени, требовалась работа с
данными на клиенте. По каждому событию мыши на сервер не набегаешься
– Классический клиент 1С не работает при плохой и неустойчивой связи
– Стоимость рабочего места
Технологии веб и не веб
• Не всё содержимое, доступное через браузер, является веб-приложениями
• Далеко не все веб-приложения соответствуют стандартам качества,
к которым призывают современные технологии
Metadata.js
Google
Docs
1С
Интернет-
банки
Работа при плохой связи ± - - -
События сервера на клиенте + + - -
Данные на клиенте (SQL, NoSQL) + ± - -
Автономная работа ± ± ± -
Позиционирование и конкурентность
Сервер информационной базы 1С
Интеграция с 1С
«из коробки»
При необходимости,
подключается к SAP
или MS Dynamics
или иному ORM серверу
Объекты данных Metadata.js
Клиентские 1С-подобные
javascript-объекты
автоформ, данных и
метаданнх
Интерфейс DHTMLX
При необходимости
можно задействовать
Sencha EXTJS, DOJO,
UI5, QOOXDOO, YUI,
WEBIX и т.д.
Объектная модель metadata.js$p–глобальныйконтекст
Метаданные конфигурации
Движок локальной базы
данных ALASQL
События приложения
При старте
Таймеры обновления
и синхронизации
Слушатели websocket
Маршрутизация URL
Коллекции менеджеров Менеджеры классов
Перечисления
Справочники, Планы счетов,
Планы видов характеристик
Документы
Регистры сведений
Регистры накопления и
бухгалтерии
Отчеты и обработки
Журнал регистрации
Объекты интерфейса
Расширения dhtmlx
Виджеты metadata
• В минимальном варианте, работает через стандартный ODATA,
не требует внесения изменений в конфигурацию
• Для доступа к расширенным функциям (печать, поиск по подстроке, присоединенные
файлы, синхронизация online) – выполняется объединение с библиотекой интеграции
Простота подключения
Метаданные + статические данные
Формируются обработкой
из комплекта поставки
Расширение метаданных
Позволяет переопределить
внешний вид форм (состав
и расположение полей)
Бизнес-логика на клиенте
Например, пересчет суммы
и количества в строках
табличных частей
Правильные инструменты
• Преимущества 1С, безусловные для настольных систем,
не очевидны при работе в глобальной сети под большой нагрузкой
• Попытки решать бизнес-задачи традиционными веб-инструментами без
документов и регистров, выглядят не очень состоятельными
Платформа Прикладные решения
1СWeb
+ Гениальные объекты данных
- Устаревшие архитектурные
решения в тонком и веб-клиентах
+ Фантастические по мощности и
изяществу инструменты
- Нет необходимого для решения
бизнес-задач уровня абстракции
+ Значительно превосходят конкурентов в
задачах учета и управления
- Проблемы с производительностью и
гибкостью интерфейсов
+ Мощные библиотеки, полная свобода
- Слишком много свободы, игнорируется
теория учетных систем, нет стандартов
1С и Javascript: вместе - эффективнее
• Проект может украсить жизнь как разработчикам 1С, так и веб-
программистам, но те и другие пока не проявляют к нему интереса
• Стороны рассчитывают отсидеться на освоенных технологиях.
Конкуренция на текущий момент не велика. Пирога всем хватает
• Лёгкий клиент помогает решить проблемы с производительностью и
даёт свободу при построении интерфейсов. То есть, закрывает те два
вопроса, по которым 1С подвергается критике
• Metadata предоставляет веб-программисту ровно те инструменты, на
которые опирается технический успех 1С, а именно: Метаданные,
Документы и Справочники
Молодость и зрелость
• Фреймворк молодой, но обладает чертами зрелой среды разработки
– События приложения и объектов данных
– Параметры работы программы
– Автогенерация форм и элементов на формах
– Форма в форме с любой вложенностью
– Навигация через хеш URL, когда маршрут преобразуется в методы интерфейса и
объектов данных
– Импорт-экспорт в форматах JSON, XML и XLS, через файлы, XHR или Socket
• Ряд функций БСП поддержаны в metadata.js на уровне ядра
– Подсистема печати
– Работа с дополнительными реквизитами и сведениями
– Работа с присоединенными файлами
Парадигма асинхронного редактирования
• От асинхронного взаимодействия с сервером (в metadata –
только async) один шаг до асинхронной записи и проведения
• При асинхронном редактировании приложение не умирает при
недоступности сервера или ошибках на сервере
• Программировать сложнее, но преимущества очень
существенны, чтобы их не использовать
• Исполнение платежного поручения в банках работает в этой
парадигме и проблем с неконсистентностью данных не
возникает
Производительность и надёжность
• Не храним состояние клиента на сервере (нет сессий)
• Обрыв связи обрабатываем без паники
• Не спрашиваем сервер о редко меняющихся данных
– Метаданные (описания всех полей и типов)
– Перечисления, справочники, регистры сведений и т.д.
• Используем реактивность (в планах)
– Для обновления закешированных данных
– Для отложенной записи в случае недоступности сервера
И еще раз о производительности
• В сети встречаются материалы о суперкомпьютерах
и других ухищрениях, чтобы обеспечить работу 1С под
большой нагрузкой
• С metadata.js, можно добиться 10-кратного ускорения
клиентской части системы
• А при желании, еще 10-кратного ускорения на сервере
(вчерашние доклады тому подтверждение)
• Миллионы, сэкономленные на лицензиях и
оборудовании, можно отдать внедренцу и аналитику
Благодарю за внимание
• Пользуйтесь и зарабатывайте
на внедрениях
• Подробнее на сайте
http://www.oknosoft.ru/metadata/
• Страница на Github
https://github.com/oknosoft/metadata.js

Contenu connexe

Similaire à Metadata.js

Power BI для аналитики данных из 1С: практический опыт
Power BI для аналитики данных из 1С: практический опытPower BI для аналитики данных из 1С: практический опыт
Power BI для аналитики данных из 1С: практический опытMarina Payvina
 
SharePoint Introduction
SharePoint IntroductionSharePoint Introduction
SharePoint IntroductionVitaly Baum
 
Microsoft BI User Group: Работаем с 1С эффективно
Microsoft BI User Group: Работаем с 1С эффективноMicrosoft BI User Group: Работаем с 1С эффективно
Microsoft BI User Group: Работаем с 1С эффективноMarina Payvina
 
Платформа Docsvision
Платформа DocsvisionПлатформа Docsvision
Платформа DocsvisionDocsvision
 
Архитектура в web, доклад на Women techmakers, Omsk, 2014
Архитектура в web, доклад на Women techmakers, Omsk, 2014Архитектура в web, доклад на Women techmakers, Omsk, 2014
Архитектура в web, доклад на Women techmakers, Omsk, 2014Anna Tarasenko
 
Bios power bi о нас (RU)
Bios power bi о нас (RU)Bios power bi о нас (RU)
Bios power bi о нас (RU)Oleksandr18
 
рабочий кабинет
рабочий кабинетрабочий кабинет
рабочий кабинетDmitry Butyanov
 
Презентация аналитической системы для ритейла СуперМаг BI
Презентация аналитической системы для ритейла СуперМаг BIПрезентация аналитической системы для ритейла СуперМаг BI
Презентация аналитической системы для ритейла СуперМаг BIОникс Софт
 
Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data ServicesMedia Gorod
 
Доклад Аркадия Золотовицкого на SPCUA 2012
Доклад Аркадия Золотовицкого на SPCUA 2012 Доклад Аркадия Золотовицкого на SPCUA 2012
Доклад Аркадия Золотовицкого на SPCUA 2012 Lizard Soft
 
Решения Lement Pro - Партнёрское обучение
Решения Lement Pro - Партнёрское обучениеРешения Lement Pro - Партнёрское обучение
Решения Lement Pro - Партнёрское обучениеAlexey Abramov
 
Новая платформа сбора показателей
Новая платформа сбора показателейНовая платформа сбора показателей
Новая платформа сбора показателейBars Group
 
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesInformatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesIlya Gershanov
 
Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1guestcaef82
 
Обзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINEОбзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINECleverics
 
Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...
Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...
Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...Ontico
 
Управляем сайтом: Быстро. Просто. Эффективно.
Управляем сайтом: Быстро. Просто. Эффективно.Управляем сайтом: Быстро. Просто. Эффективно.
Управляем сайтом: Быстро. Просто. Эффективно.Евгений Курбанов
 
Обзор платформы D3
Обзор платформы D3Обзор платформы D3
Обзор платформы D3Bars Group
 

Similaire à Metadata.js (20)

Power BI для аналитики данных из 1С: практический опыт
Power BI для аналитики данных из 1С: практический опытPower BI для аналитики данных из 1С: практический опыт
Power BI для аналитики данных из 1С: практический опыт
 
SharePoint Introduction
SharePoint IntroductionSharePoint Introduction
SharePoint Introduction
 
Microsoft BI User Group: Работаем с 1С эффективно
Microsoft BI User Group: Работаем с 1С эффективноMicrosoft BI User Group: Работаем с 1С эффективно
Microsoft BI User Group: Работаем с 1С эффективно
 
Portal
PortalPortal
Portal
 
Платформа Docsvision
Платформа DocsvisionПлатформа Docsvision
Платформа Docsvision
 
Архитектура в web, доклад на Women techmakers, Omsk, 2014
Архитектура в web, доклад на Women techmakers, Omsk, 2014Архитектура в web, доклад на Women techmakers, Omsk, 2014
Архитектура в web, доклад на Women techmakers, Omsk, 2014
 
Bios power bi о нас (RU)
Bios power bi о нас (RU)Bios power bi о нас (RU)
Bios power bi о нас (RU)
 
рабочий кабинет
рабочий кабинетрабочий кабинет
рабочий кабинет
 
Презентация аналитической системы для ритейла СуперМаг BI
Презентация аналитической системы для ритейла СуперМаг BIПрезентация аналитической системы для ритейла СуперМаг BI
Презентация аналитической системы для ритейла СуперМаг BI
 
Управление бизнес-процессами и электронным документооборотом с помощью решени...
Управление бизнес-процессами и электронным документооборотом с помощью решени...Управление бизнес-процессами и электронным документооборотом с помощью решени...
Управление бизнес-процессами и электронным документооборотом с помощью решени...
 
Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data Services
 
Доклад Аркадия Золотовицкого на SPCUA 2012
Доклад Аркадия Золотовицкого на SPCUA 2012 Доклад Аркадия Золотовицкого на SPCUA 2012
Доклад Аркадия Золотовицкого на SPCUA 2012
 
Решения Lement Pro - Партнёрское обучение
Решения Lement Pro - Партнёрское обучениеРешения Lement Pro - Партнёрское обучение
Решения Lement Pro - Партнёрское обучение
 
Новая платформа сбора показателей
Новая платформа сбора показателейНовая платформа сбора показателей
Новая платформа сбора показателей
 
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesInformatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
 
Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1
 
Обзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINEОбзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINE
 
Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...
Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...
Разработка аналитической системы для высоконагруженного медиа, Олег Новиков, ...
 
Управляем сайтом: Быстро. Просто. Эффективно.
Управляем сайтом: Быстро. Просто. Эффективно.Управляем сайтом: Быстро. Просто. Эффективно.
Управляем сайтом: Быстро. Просто. Эффективно.
 
Обзор платформы D3
Обзор платформы D3Обзор платформы D3
Обзор платформы D3
 

Dernier (9)

Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 

Metadata.js

  • 2. Удивить 1С-ника трудно • Голая платформа 1С предоставляет объекты настолько высокого уровня, что отыскать для них аналоги в альтернативных средах разработки почти невозможно. Разве что, SAP и MS Dynamics • Программист и внедренец 1С оперирует не голой платформой, а прикладными решениями (ERP, БП, УНФ). Уровень бизнес-объектов там еще выше • Предложить нечто конкурентоспособное на этом фоне сложно… • Metadata.js – это одновременно: – Javascript клиент для сервера 1С – Платформа автономных и гибридных web приложений
  • 3. Очередной «Велосипед»? • Библиотека возникла, чтобы выполнить реальные проекты реальных заказчиков – Писали инструмент для себя, т.к. решить стандартными средствами не смогли – Metadata.js предоставляет высокоуровневые javascript объекты, наподобие справочников, документов и форм в традиционной 1С • Чем не устроил тонкий или веб-клиент: – Для обработки геометрии в реальном времени, требовалась работа с данными на клиенте. По каждому событию мыши на сервер не набегаешься – Классический клиент 1С не работает при плохой и неустойчивой связи – Стоимость рабочего места
  • 4. Технологии веб и не веб • Не всё содержимое, доступное через браузер, является веб-приложениями • Далеко не все веб-приложения соответствуют стандартам качества, к которым призывают современные технологии Metadata.js Google Docs 1С Интернет- банки Работа при плохой связи ± - - - События сервера на клиенте + + - - Данные на клиенте (SQL, NoSQL) + ± - - Автономная работа ± ± ± -
  • 5. Позиционирование и конкурентность Сервер информационной базы 1С Интеграция с 1С «из коробки» При необходимости, подключается к SAP или MS Dynamics или иному ORM серверу Объекты данных Metadata.js Клиентские 1С-подобные javascript-объекты автоформ, данных и метаданнх Интерфейс DHTMLX При необходимости можно задействовать Sencha EXTJS, DOJO, UI5, QOOXDOO, YUI, WEBIX и т.д.
  • 6. Объектная модель metadata.js$p–глобальныйконтекст Метаданные конфигурации Движок локальной базы данных ALASQL События приложения При старте Таймеры обновления и синхронизации Слушатели websocket Маршрутизация URL Коллекции менеджеров Менеджеры классов Перечисления Справочники, Планы счетов, Планы видов характеристик Документы Регистры сведений Регистры накопления и бухгалтерии Отчеты и обработки Журнал регистрации Объекты интерфейса Расширения dhtmlx Виджеты metadata
  • 7. • В минимальном варианте, работает через стандартный ODATA, не требует внесения изменений в конфигурацию • Для доступа к расширенным функциям (печать, поиск по подстроке, присоединенные файлы, синхронизация online) – выполняется объединение с библиотекой интеграции Простота подключения Метаданные + статические данные Формируются обработкой из комплекта поставки Расширение метаданных Позволяет переопределить внешний вид форм (состав и расположение полей) Бизнес-логика на клиенте Например, пересчет суммы и количества в строках табличных частей
  • 8. Правильные инструменты • Преимущества 1С, безусловные для настольных систем, не очевидны при работе в глобальной сети под большой нагрузкой • Попытки решать бизнес-задачи традиционными веб-инструментами без документов и регистров, выглядят не очень состоятельными Платформа Прикладные решения 1СWeb + Гениальные объекты данных - Устаревшие архитектурные решения в тонком и веб-клиентах + Фантастические по мощности и изяществу инструменты - Нет необходимого для решения бизнес-задач уровня абстракции + Значительно превосходят конкурентов в задачах учета и управления - Проблемы с производительностью и гибкостью интерфейсов + Мощные библиотеки, полная свобода - Слишком много свободы, игнорируется теория учетных систем, нет стандартов
  • 9. 1С и Javascript: вместе - эффективнее • Проект может украсить жизнь как разработчикам 1С, так и веб- программистам, но те и другие пока не проявляют к нему интереса • Стороны рассчитывают отсидеться на освоенных технологиях. Конкуренция на текущий момент не велика. Пирога всем хватает • Лёгкий клиент помогает решить проблемы с производительностью и даёт свободу при построении интерфейсов. То есть, закрывает те два вопроса, по которым 1С подвергается критике • Metadata предоставляет веб-программисту ровно те инструменты, на которые опирается технический успех 1С, а именно: Метаданные, Документы и Справочники
  • 10. Молодость и зрелость • Фреймворк молодой, но обладает чертами зрелой среды разработки – События приложения и объектов данных – Параметры работы программы – Автогенерация форм и элементов на формах – Форма в форме с любой вложенностью – Навигация через хеш URL, когда маршрут преобразуется в методы интерфейса и объектов данных – Импорт-экспорт в форматах JSON, XML и XLS, через файлы, XHR или Socket • Ряд функций БСП поддержаны в metadata.js на уровне ядра – Подсистема печати – Работа с дополнительными реквизитами и сведениями – Работа с присоединенными файлами
  • 11. Парадигма асинхронного редактирования • От асинхронного взаимодействия с сервером (в metadata – только async) один шаг до асинхронной записи и проведения • При асинхронном редактировании приложение не умирает при недоступности сервера или ошибках на сервере • Программировать сложнее, но преимущества очень существенны, чтобы их не использовать • Исполнение платежного поручения в банках работает в этой парадигме и проблем с неконсистентностью данных не возникает
  • 12. Производительность и надёжность • Не храним состояние клиента на сервере (нет сессий) • Обрыв связи обрабатываем без паники • Не спрашиваем сервер о редко меняющихся данных – Метаданные (описания всех полей и типов) – Перечисления, справочники, регистры сведений и т.д. • Используем реактивность (в планах) – Для обновления закешированных данных – Для отложенной записи в случае недоступности сервера
  • 13. И еще раз о производительности • В сети встречаются материалы о суперкомпьютерах и других ухищрениях, чтобы обеспечить работу 1С под большой нагрузкой • С metadata.js, можно добиться 10-кратного ускорения клиентской части системы • А при желании, еще 10-кратного ускорения на сервере (вчерашние доклады тому подтверждение) • Миллионы, сэкономленные на лицензиях и оборудовании, можно отдать внедренцу и аналитику
  • 14. Благодарю за внимание • Пользуйтесь и зарабатывайте на внедрениях • Подробнее на сайте http://www.oknosoft.ru/metadata/ • Страница на Github https://github.com/oknosoft/metadata.js

Notes de l'éditeur

  1. Добрый день, коллеги. Я расскажу про инструмент, который помогает решить проблемы производительности на клиентской стороне 1С и предоставляет неограниченную свободу при построении интерфейсов В первый момент после голосования, когда выяснилось, что доклад включен в раздел «производительность», я хотел было возмутиться: «у меня же про технологии. Metadata – это ведь средство разработки», но потом решил, что «производительность» - хорошая тема и по большому счету, все инженерные задачи можно свести к улучшению производительности
  2. Фреймворк большой и начать с ним знакомство лучше с чего-то простого и понятного. Например, как мы экономим трафик и кешируем данные В своей работе я попытался объединить лучшее и ценнейшее из 1С со столь же ценными и эффективными инструментами современного javascript Metadata.js – это полноценная платформа Одновременно клиент 1С и среда исполнения автономных и гибридных веб-приложений
  3. Если у кого-то возник вопрос «а не очередной ли это велосипед», вынужден возразить: Я достаточно ленивый человек, чтобы повторять функциональность, реализованную другими. Если бы нужную математику можно было купить – сделал бы это без долгих размышлений. Это всегда дешевле и быстрее Сейчас я позиционирую metadata, как инструмент широкого назначения, но родился проект от необходимости решать конкретные задачи Коротко о задаче, с которой всё началось: «Заказ дилера оконного завода» - личный кабинет в браузере с графическим построителем. Типичный оконный завод: до 1000 изделий в день, от 200 до 500 дилеров Из задачи вытекали спецтребования: Чтобы обсчитать геометрию в реальном времени, требовалась интенсивная работа с данными на клиенте. По каждому смещению мыши на сервер не набегаешься Нужно было обеспечить работу при плохой связи Стоимость рабочего места имела значение Жирную точку по вопросу 1С-ного лицензирования лёгкого клиента пока не ставлю В лицензионном соглашении на сервер 1С, черным по желтому написано, что доплицензии для вебсервисов не нужны Дополнительно, у меня была переписка с отделом лицензирования 1С и официальный ответ, что доплицензии 1с для рабочих мест metadata.js приобретать не надо Но у некоторых сотрудников 1С есть мнение, что клиентские лицензии для metadata нужны Наверное, потребуются дополнительные переговоры с 1С. Пока решил вопрос в свою пользу, т.к. есть ответ отдела лицензирования и текст реганкеты на сервер
  4. Наверное, не все согласятся с моим определением, что такое веб-приложение и чем оно отличается от настольного Мне кажется, что веб-приложение обязательно должно уметь работать при плохой и нестабильной связи – это для него штатный режим. Особенно, если мы говорим о телефонах и планшетах - Предусматривать сохранение на клиенте промежуточных результатов на время недоступности сервера - Использовать вычислительные возможности клиента, чтобы разгрузить сервер - Иметь отзывчивый интерфейс (слово responsible сейчас самое часто встречающееся в статьях про веб-технологии), а добиться отзывчивости можно только вычислениями на клиенте – никакое оптоволокно здесь не спасает. 60 кадров в секунду серверным рендерингом обеспечить сложно. Таблица показывает доступность и полноту реализации важных по моей оценке функций в некоторых веб-сервисах. Последняя колонка (интернет-банки) – это сводная оценка четырёх интернет-банков, которыми лично и регулярно пользуюсь Пробежимся по строкам. Плохая и неустойчивая связь создаёт проблемы во всех сервисах, но 1С и интернет-банки при плохой связи просто не работают. Никак, а метадатой можно пользоваться. Тех 7Kb, которые мы видели на предыдущем слайде – действительно достаточно, чтобы сформировать и отправить заказ. Серверные события на клиенте можно имитировать постоянным сканированием сервера, но лучше, когда это сканирование скрыто внутри платформы Разработка без клиентского кеша кроме того, что сильно портит производительность, еще и неоправданно нагружает сервер. Остатки регистров и документы держать на клиенте, скорее всего не нужно (хотя могут быть задачи, когда это оправдано), но перечисления и справочники должны быть всегда под рукой Инструменты автономной работы присутствуют везде, кроме интернет-банков, а правильнее сказать не «присутствуют», а «декларируются». В полной мере автономная работа ни в одном из сервисов реализована Исходя из объективных данных, традиционный клиент 1С хоть и работает через браузер, не позволяет создавать лёгкие и надёжные интерфейсы. Это никак не умаляет достоинств серверной части 1С, которая прекрасно решает объектно-реляционные задачи и аналога которой для систем автоматизации бизнеса не очень вижу
  5. Metadata использует в работе и сервер 1С и средства построения интерфейса JS, ни с кем напрямую не конкурирует Мы не дублируем чужую функциональность, а дополняем её инструментами, которых нет ни в известных javascript-библиотеках, ни в клиентском 1С Metadata задумана для программирования в javascript с помощью высокоуровневых объектов При этом, если задача не содержит бизнес-логики на клиенте, то такого клиента можно реализовать вообще без кода – только на описании метаданных посредством декларативного программирования Редакторы платежных поручений, документов отгрузки, цеховая диспетчеризация, заказы и еще очень широкий круг задач - могут работать на автоформах Т.к. Metadata фреймворк универсальный, в качестве сервера может использоваться не только 1С, теоретически, можно подключиться к SAP, MS Dynamics или иному серверу Если у веб-программиста, реализующего интерфейс есть любимая библиотека для визуализации данных, он может её задействовать не ограничиваясь компонентами dhtmlx, которые мы используем по умолчанию.
  6. Объектная модель фреймворка очень укрупнённо Это не иерархия классов, а попытка собрать на одном листочке самое важное Meta, alasql, events, datamgr, dataobj, dhtmlx
  7. Мне нравятся лаконичные программные интерфейсы, когда мощная функциональность подключается всего несколькими строками кода Metadata может работать как с изменёнными конфигурациями, так и с базами на полной поддержке Лёгкого клиента можно подключить абсолютно к любой базе 1С всего за несколько простых и формальных шагов: Формируем файлы метаданных и начальный образ данных При необходимости, составляем файл расширения метаданных. Там можно переопределить внешний вид форм объектов и списков - состав и расположение полей, ширины колонок в табличных частях Так же, при необходимости, кодируем бизнес-логику на клиенте, когда надо пересчитать одни поля при изменении других Внутри этой логики можно обращаться к серверу, но рекомендуется серверными вызовами не злоупотреблять, чтобы не ронять производительность
  8. Есть встречное движение 1С в глобальную сеть, а традиционный веб в область задач автоматизации бизнеса. Чтобы лучше понять это движение и интересы участников, в таблице сгруппированы наиболее сильные и слабые стороны 1С и веб-технологий. Партнеры 1С работают в первом квадранте, вероятно, от того, что есть хороший спрос на управленческо-учетные задачи и отличные инструменты этот спрос удовлетворить Какую критику можно услышать в адрес прикладных решений 1С и платформы? Если отбросить шелуху, останется всего два тезиса: «тормозит» и «мало свободы для разработчика». Платформа 1С, предоставляет эффективные инструменты для построения учетных систем и, к сожалению, даёт объективные основания для критики, особенно, когда с её помощью мы выходим в веб. Дело в том, что в 2008-2009 годах, когда проектировалась архитектура управляемого приложения, javascript сильно отличался от сегодняшнего. Браузеры не имели поддержки автономной работы, отсутствовали важные инструменты для работы со свойствами объектов. В результате, тонкий и веб-клиенты 1С, умеют лишь отображать данные и принимать ввод пользователя. Альтернативы такому подходу в конце нулевых, пожалуй, не было. Но сегодня, когда любой телефон, не говоря о компьютере, имеет гигабайты ОЗУ и несколько вычислительных ядер, отказ от возможностей javascript выглядит странным. В нашем лёгком клиенте задействованы возможности современных браузеров, часть вычислительных задач перенесены на клиента, что позволило значительно улучшить производительность и снизить нагрузку на сервер. В традиционных веб-технологиях есть фантастические по мощности и изяществу инструменты, но нет необходимого для решения бизнес-задач уровня абстракции Посмотрите на сайты Платежных систем, Заказ билетов самолёт-поезд, Личные кабинеты операторов сотовой связи. Функциональность скудная, т.к. в языке, на котором думают постановщик и разработчик нет слов для описания решаемой задачи Наконец, прикладные веб-программисты чувствуют себя на рынке уверенно потому, что есть устойчивый спрос на задачи, не связанные с учетом и мощные CMS, на которых легко строить блоги, форумы и сайты-визитки. Но как только веб-программисты берутся за решение бизнес-задач, возникают трудности. Они вынуждены каждый раз изобретать низкоуровневый велосипед, вместо того, чтобы сосредоточиться на предмете автоматизации. Метаданные, документы, регистры и справочники в известных веб-фреймворках отсутствуют (включая писк моды последних лет Meteor.js и SAP UI5, опубликованный недавно в опенсорс – никакие высокоуровневые бизнес-объекты там не просматриваются)
  9. Представленный проект может украсить жизнь как разработчикам 1С, так и веб-программистам, но те и другие пока не проявляют к нему интереса. Причины, в целом – понятны. Стороны рассчитывают отсидеться на освоенных технологиях. Конкуренция на текущий момент не велика. Пирога всем хватает. Вместе с тем, количество пользователей интернет во всем мире превысило 3 миллиарда человек (это почти половина населения Земли) Javascript везде и развивается очень стремительно. В javascript уже поддержаны шейдеры для вычислений на графических ядрах. Анонсирована технология WebAssembly для низкоуровневого программирования. Не исключено, что будет расширен набор инструкций процессоров ARM для более эффективной работы виртуальной машины JS. ! Лёгкий клиент не привносит в 1С ничего революционного, но помогает решить проблемы с производительностью и даёт свободу при построении интерфейсов. То есть, закрывает те два вопроса, по которым 1С подвергается критике. Metadata предоставляет веб-программисту ровно те инструменты, на которые опирается технический успех 1С, а именно: Метаданные, Документы и Справочники. Веб-серверы давно умеют работать под большой нагрузкой, а использование новой парадигмы, способно как повысить качество бизнес-веб-приложений, так и заметно сократить время разработки
  10. Спустимся от обсуждения смутных возможностей к конкретным техническим решениям Работы по лёгкому клиенту ведутся ~ 1,5 года, но в отдельный проект metadata оформилась сравнительно недавно – меньше полугода как Фреймворк, конечно, очень молодой и до промышленного качества ему далеко, но он обладает чертами вполне зрелой среды разработки Поддержаны обработчики событий как приложения в целом, так и отдельных форм и объектов данных Из коробки работает импорт-экспорт в различных форматах по таким транспортам, как файловая система клиента, XHR и websocket SQL на клиенте, ссылочные типы и связывание данных позволяют веб-разработчику решать задачи на очень высоком уровне. Этот уровень абстракции точно не ниже 1С-ного, что не мешает при желании, спуститься до уровня элементов DOM, событий браузера и XHR Ряд функций БСП поддержаны у нас на уровне ядра: Это подсистема печати как встроенных форм, так и с помощью внешних обработок
  11. Вообще, реактивность – функционал на вырост. В текущих проектах не используется, т.к. жалкие 200-500 клиентов вполне можно обслужить в традиционной модели, но потенциал очень большой Вполне реализуем подход, когда для записи и проведения можно не ждать ответа сервера. В некоторых сценариях, можно вообще не беспокоиться о доступности сервера, как это происходит при отправке SMS или email
  12. Перечислю основные меры, предпринятые в metadata.js, чтобы обеспечить приемлемую производительность и надежность Серверные сессии не используем, эту важную особенность надо учитывать в коде. Если в задаче есть сложные для вычисления и часто используемые структуры, их надо рассчитать отдельно и закешировать на клиенте. Либо, подумать над метаданными и эти структуры упростить. Возможно, пойти на некую денормализацию. Обрыв связи – это не проблема. Сервер нужен только при записи. Можно просто подождать, когда связь появится. Есть математика отложенной записи, но она годится не для всех сценариев работы И наконец, к серверу обращается только по делу Метаданные и те данные, которые меняются редко, держим на клиенте, чтобы обеспечить к ним молниеносный доступ
  13. В сети можно встретить материалы о суперкомпьютерах и других дорогих ухищрениях, чтобы обеспечить работу 1С под большой нагрузкой К сожалению, проблемы производительности не всегда решаются экстенсивно Metadata – не панацея, но раз в 10 сервер разгружает. Может и в 100, если пошевелить структуру данных и бизнес-логику С лёгким javascript клиентом, внедрения на 1000 и более пользователей возможны без суперкомпьютеров, конечно – при правильной постановке задачи
  14. Пользуйтесь и зарабатывайте на внедрениях Подробности на сайте Буду рад ответить на вопросы – интересующихся жду в малом зале Инвесторам и спонсорам предлагаю не стесняться – развивать проект в одиночку сложно Всех благодарю за внимание, большое спасибо