|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Здравствуйте, уважаемые коллеги. Есть приложение клиент-сервер для автоматизации в области ЖКХ. Написано на PowerBuilder 8, СУБД ASA 9. В приложении реализована функциональность: 1. Расчет начислений и перерасчетов по услугам для населения: квартплата, мусор, отопление, горячая вода, холодная вода, стоки, электроэнергия. 2. Ручной ввод оплат за эти услуги, загрузка оплат из DBF-файлов (иногда текстовых и экселевских файлов) из банков (обычно у каждого банка своя структура DBF-файла), почты (УкрПочта), предприятий (удержание из зарплаты работников за коммунальные услуги), субсидий. 3. Внесение корректировок по лицевым счетам абонентов (изменения по площади, жильцам, временно выбывшим (армия, тюрьма, отпуск, временно работающие за границей, студенты на время обучения), тарифам, нормам, льготникам, типам собственности). 4. Разнообразные отчеты для бухгалтерии (большинство отчетов реализовано как DataWindow, но некоторые реализованы на FastReport+Delphi как отдельная утилита EXE, т.к. не все отчеты можно реализовать возможностями DataWindow). 5. Обмен данными с отделом субсидий и УТСЗН (Управление Труда и Социальной Защиты Населения) через DBF-файлы - выгрузка льгот для УТСЗН в DBF-файлы указанной ими структуры (потом эти файлы обрабатываются программой ЕДАРП (Единый Державный Автоматизований Реестр Пільговиків)), обмен с отделом субсидий по тарифам, нормам, жильцам и льготникам. 6. Вход в систему пользователей под своим логином и паролем, несложный контроль прав пользователя (кто-то может делать только изменения по ЛС, кто-то только заносить оплаты, кто-то только делать перерасчеты, кто-то вводить показания и т.д.). 7. Внесение показаний по приборам учета (счетчикам отопления, гор. и хол. воды, электроэнергии) как в ручном режиме так и из DBF-файлов банков. Заказчиками являются коммунальные предприятия, бывшие ЖЭКи, ОСМД (Общества Совладельцев Многоквартирных Домов), СЕЗы (Службы Единого Заказчика), управляющие компании. Расчеты начислений, перерасчетов, загрузка и распределение оплат реализовано средствами СУБД с помощью хранимых процедур (ХП). Импорт/экспорт данных реализован с помощью команд Interactive SQL - INPUT, OUTPUT. Все пользователи созданы прямо в БД. Для соединения с БД используется ODBC. Обычно у заказчика выделяется мощный компьютер для БД, для рабочих мест выделяются более слабые компьютеры (некоторые всего с 128 МБ ОЗУ), используется ОС Windows (98, 2000, ХР, 7). Поэтому не всегда толстый клиент шустро работает на таких машинах. При обновлении ПО нужно обновлять все клиентские компьютеры, что не всегда удобно, т.к. часто у заказчиков своих админов нет. Часто заказчики хотят для каждого пользователя свое личное меню в приложении в зависимости от своих прав, это не реализовано. Тоже касается и внешнего вида справочников, редакторов, отчетов (например: 1) бухгалтер по мусору открывая карточку лицевого счета не хочет видеть информацию о площади, нормах по воде, тарифах по другим услугам. 2) похожие отчеты приходится дублировать, т.к. один заказчик хочет видеть один набор колонок, а другой заказчик эти же колонки, но без последней, или те же колонки, но не в таком порядке). Не реализован некий мастер-отчетов, используя который пользователь смог бы создать нужный ему отчет на основе некоторого шаблона. Или один и тот же отчет по подходит нескольким заказчикам, но один заказчик хочет, чтобы сортировка в отчете была по адресу, а другой - по лицевым счетам (была попытка реализовать это показом окна с полями для сортировки, где пользователь мог выбрать необходимые поля для сортировки, но поля там все по английски, как и в самом запросе селект или ХП они названы). Да и сама сортировка не на стороне БД, а на стороне клиента при столь слабых машинах с 128 МБ ОЗУ тормозила. Используется несколько вариантов инсталляции приложения: 1. EXE и PBD файлы, ODBC источник и Interactive SQL на каждой клиентской машине. 2. EXE и PBD файлы на машине, где крутится БД, в общей папке, на клиентских машинах вызывается EXE с компьютера, где крутится БД, ODBC источник и Interactive SQL на каждой клиентской машине. 3. EXE и PBD файлы на машине, где крутится БД, в общей папке, на клиентских машинах настроен удаленный рабочий стол, который подключается к машине, где крутится БД. Сопровождением, программированием и обновлением данного приложения занимался 1 человек. В связи с увеличением кол-ва заказчиков, их пожеланиями в добавлении нового функционала и исправления существующих недостатков на работу был взят еще один программист в помощь тому 1 человеку. Новый программист (джавист) имеет за плечами большой опыт работы с Java, 3-х уровневыми приложениями с использованием серверов приложений (СП), различными доступными фреймверками, неплохо разбирается в SQL, администрировании. Он часто повторяет слова: Java, Сервер приложений, фреймворк, новые технологии. За неимением такого опыта возразить ему трудно. На этом форуме был топик с обсуждением 3-хзвенки . На счет этого джавист сказал следующее: авторДействительно странные. Тем более что это было в 2003 году. Сейчас таких странных мыслей уже ни у кого не возникает. 3х уровневое приложение это как минимум стандарт для больших приложений. Теперь рассматривается возможность переписывания приложения под 3-хзвенку с такими пунктами: 1. Будет тонкий клиент (ТК), сервер приложений (СП) и сама СУБД. 2. ТК без проблем будет работать на слабых машинах с 128 МБ ОЗУ. 3. СУБД будет хранить только данные и индексы, использоваться как хранилище данных, вся бизнес-логика (то что сейчас делается на ХП, триггерах и функциях и работает довольно быстро - расчеты, отчеты, права пользователей) будет перенесена на СП (страшно представить во сколько раз увеличится время расчета начисления по горячей воде, если считать все это на Java, сейчас 10 тыс. лицевых счетов начисляются за 10-15 мин с помощью ХП, и эту ХП еще можно оптимизировать). Как например оптимизировал расчет начисления заработной платы и приводил свои рекомендации и советы на этом форуме ASCRUS. У него 1000 сотрудникам зарплата начислялась на ХП всего за 8 сек - отличный результат. Нашего джависта время расчета не пугает, главное, чтобы считалось правильно. 4. На СП на Java будет использоваться стандарт ANSI-SQL 99, чтобы СП мог поддерживать в будущем не только СУБД ASA 9, но и другие СУБД (FireBird, PostgreSQL и т.д.), т.е. не привязываться к возможностям расширений SQL конкретной СУБД. 5. Пользователей, их права и роли перенести на СП, в БД будет только 1 пользователь. 6. На СП будет реализована возможность занесения показаний контролером через мобильное устройство, использующее современные ноу-хау (например пришел контролер в квартиру с мобильным устройством, снял показания, внес их на клавиатуре своего устройства и они успешно передались в БД). 6. На СП будет реализована возможность отправки смс на мобильный и автодозвон на телефон абонента (мобильный, рабочий, домашний) с информацией о задолженности за коммунальные усулги и т.п.. 7. На СП будет реализована возможность импорта/экспорта XML-файлов в/из БД (есть надежда, что DBF формат скоро умрет и вместо него для общения с банками, организациями, УТСЗН будет использоваться формат XML). 8. На СП будет реализована возможность поддержки веб-интерфейса для абонентов (например абонент дома при наличии интернета зашел на сайт коммунального предприятия под своим логином и паролем, где может посмотреть информацию о своих долгах/переплатах за коммунальные услуги, начислениях и оплатах, а не идти вместо этого в ЖЭК на сверку). Прошу высказаться уважаемых коллег по всему вышенаписанному. Любая критика, советы, рекомендации, реальные примеры успешных переводов на новую 3-х уровнемую технологию приветствуются. Всем спасибо за внимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 11:56 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Бред. Производить огромные расчеты на СП фактически высасывая все данные из базы, практически лишая себя гибкости изменения и тюнинга. Уже сто раз все это обговаривалось. А ваш товарищ - настоящий русский программист. Но такая позиция часто встречается у веб-разработчиков. Оказывается им так тяжело понимать простые конструкции языка SQL. Не хочет привязываться к БД или пиши в стандарте ANSI или смени прокладку между клавиатурой и сиденьем. Тем более ASA, которая обеспечивает любые коммуникационные возможности и поддерживает несколько стандартов кода. А версия для WEB еще и бесплатна. Тут надо очень и очень подумать. Что мешает использовать существующие процедуры написав к ним WEB-интерфейс? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 12:44 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
авторЧто мешает использовать существующие процедуры написав к ним WEB-интерфейс? Ничего не мешает. Тот же СП может вызвать ХП, как это сейчас и делает приложение на PowerBuilder. Джавист мотивирует перенос расчетов с SQL на Java тем, что хоть и можно написать расчет на SQL, но он для этого не предназначен, в отличие от высокоуровневых языков типа Java. Или возможно ему трудно самому дописывать/переделывать расчеты на SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 13:08 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lioner1. Будет тонкий клиент (ТК), сервер приложений (СП) и сама СУБД. Тонкий клиент будет жить в браузере? Если ответ положительный, то: lioner2. ТК без проблем будет работать на слабых машинах с 128 МБ ОЗУ. Никаких противоречий не замечаете? lioner4. На СП на Java будет использоваться стандарт ANSI-SQL 99, чтобы СП мог поддерживать в будущем не только СУБД ASA 9, но и другие СУБД (FireBird, PostgreSQL и т.д.), т.е. не привязываться к возможностям расширений SQL конкретной СУБД. А такое требование действительно существует где-то, кроме воображения вашего нового коллеги? lioner5. Пользователей, их права и роли перенести на СП, в БД будет только 1 пользователь. Очередной велосипед с квадратными колесами. Кроме того, рекомендую прикинуть трудоемкость реализации имеющегося функционала на новой платформе. Хотя здравые идеи в реализации нового функционала, безусловно, присутствуют. Если, разумеется, за этими идеями стоит реальный опыт их реализации в паре-тройке проектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 13:29 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lionerДжавист мотивирует перенос расчетов с SQL на Java тем, что хоть и можно написать расчет на SQL, но он для этого не предназначен, в отличие от высокоуровневых языков типа Java. Похоже для расчетов ваш коллега собрался решать систему нелинейных дифференциальных уравнений )))) Самый лучший ТК это терминал 25 на 80 ! И дешево и от работы не отвлекает. Развитие происходит по спирали,2-х звенка,3-х звенка, скоро он вам предложит уйти в облака, но всё вернется к истокам хоть и на более высоком уровне. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 13:55 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
авторТонкий клиент будет жить в браузере? Нет, не в браузере. Предполагается, что ТК - это будет легкое приложение на Java, которое будет только отображать справочники, редакторы и отчеты, которые в свою очередь будут формироваться СП. Хотя для этого на слабой машине со 128 МБ ОЗУ должна быть установлена виртуальная Java машина, которая тоже требует ресурсы ОЗУ. И эти затраты ОЗУ предположительно будут меньше затрат ОЗУ, которые использует PowerBuilder для интерпретации библиотек PBD. авторА такое требование действительно существует где-то, кроме воображения вашего нового коллеги? Пока еще не было заказчиков, у которых была своя СУБД, отличная от ASA, но все может быть. Вполне возможно, что появится заказчик, который захочет, чтобы БД была бы например на FireBird или на какой-нибудь другой СУБД. Тут 2 варианта: 1. Весь функционал, который реализован на SQL сейчас для ASA перевести на FireBird и далее поддерживать реализацию для обеих СУБД. 2. Написать функционал на ANSI SQL 99 так, чтобы он работал как на ASA, так и на FireBird. авторОчередной велосипед с квадратными колесами. Когда будет создан сайт, куда любой абонент сможет войти со своим логином и паролем, предполагается хранить этих юзеров не в БД, а на СП, ведь таких юзеров может быть столько же, сколько и лицевых счетов в БД, и каждому такому юзеру нужно дать права на просмотр только своих данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 14:03 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lioner, Попросите джависта (а лучше независимого) оценить объем работ, а потом покажите это тому кто будет оплачивать эти работы. Думаю многие воросы отпадут :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 14:19 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
авторПопросите джависта (а лучше независимого) оценить объем работ, а потом покажите это тому кто будет оплачивать эти работы. Джавист говорит, что он сам напишет сервер приложений на Java за полгода. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 14:26 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lionerавторТонкий клиент будет жить в браузере? Нет, не в браузере. Предполагается, что ТК - это будет легкое приложение на Java, которое будет только отображать справочники, редакторы и отчеты, которые в свою очередь будут формироваться СП.Я правильно понимаю, что ваш коллега уже имеет опыт реализации клиентских приложений на Java? Поинтересуйтесь, какую платформу или набор библиотек компонентов он предпочитает и какова трудоемкость реализации, например, пары грид/форма редактирования с парой вкладок по сравнению с аналогичной задачей на PB. lioner Хотя для этого на слабой машине со 128 МБ ОЗУ должна быть установлена виртуальная Java машина, которая тоже требует ресурсы ОЗУ. И эти затраты ОЗУ предположительно будут меньше затрат ОЗУ, которые использует PowerBuilder для интерпретации библиотек PBD.Попросите предоставить обоснование. Лучше всего, в виде исполняемого кода. lioner авторА такое требование действительно существует где-то, кроме воображения вашего нового коллеги? Пока еще не было заказчиков, у которых была своя СУБД, отличная от ASA, но все может быть. Вполне возможно, что появится заказчик, который захочет, чтобы БД была бы например на FireBird или на какой-нибудь другой СУБД.Значит, пока такого требования не существует. оригиналНа СП на Java будет использоваться стандарт ANSI-SQL 99, чтобы СП мог поддерживать в будущем не только СУБД ASA 9, но и другие СУБД (FireBird, PostgreSQL и т.д.), т.е. не привязываться к возможностям расширений SQL конкретной СУБД.переводЯ не знаком с SQL и не собираюсь его изучать lioner1. Весь функционал, который реализован на SQL сейчас для ASA перевести на FireBird и далее поддерживать реализацию для обеих СУБД. 2. Написать функционал на ANSI SQL 99 так, чтобы он работал как на ASA, так и на FireBird. Единственно правильный подход, если это экономически целесообразно, использовать вариант 1. Сами-то верите, что вариант 2 возможен? lionerавторОчередной велосипед с квадратными колесами. Когда будет создан сайт, куда любой абонент сможет войти со своим логином и паролем, предполагается хранить этих юзеров не в БД, а на СП, ведь таких юзеров может быть столько же, сколько и лицевых счетов в БД, и каждому такому юзеру нужно дать права на просмотр только своих данных.Это решается немножко другими средствами. lionerДжавист говорит, что он сам напишет сервер приложений на Java за полгода.Попробуйте. Не забудьте через полгода рассказать о результатах. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 15:33 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
PL99lioner Хотя для этого на слабой машине со 128 МБ ОЗУ должна быть установлена виртуальная Java машина, которая тоже требует ресурсы ОЗУ. И эти затраты ОЗУ предположительно будут меньше затрат ОЗУ, которые использует PowerBuilder для интерпретации библиотек PBD.Попросите предоставить обоснование. Лучше всего, в виде исполняемого кода. Не будут, проверено ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 15:53 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
To PL99: авторПоинтересуйтесь, какую платформу или набор библиотек компонентов он предпочитает Eclipse. Spring Framework. авторПопросите предоставить обоснование. Лучше всего, в виде исполняемого кода. Сам хотел бы посмотреть на это чудо программирования на Java. авторЯ не знаком с SQL и не собираюсь его изучать Есть такое дело, он не очень любит SQL. авторЕдинственно правильный подход, если это экономически целесообразно, использовать вариант 1. Сами-то верите, что вариант 2 возможен? Если и придется поддерживать несколько СУБД, то больше склоняюсь к варианту 1. Имеется ввиду, что варианте 2 будут использоваться только стандартные SQL операторы: Select, Insert, Update, Delete. авторЭто решается немножко другими средствами. Если не секрет, подскажите какими ? авторПопробуйте. Не забудьте через полгода рассказать о результатах. Джавист преисполнен энтузиазма и готов к нападению жуткого работуна. О результатах работуна через полгода обязательно доложу. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 17:06 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
spas2001PL99пропущено... Попросите предоставить обоснование. Лучше всего, в виде исполняемого кода. Не будут, проверено Есть подозрения, что при 128 МБ ОЗУ клиент на Java может вообще не запуститься. Сама среда разработки Eclipse загружается очень долго на его рабочем компьютере, где памяти побольше. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 17:13 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lionerДжавист говорит, что он сам напишет сервер приложений на Java за полгода. Учтите что у вас есть существующее приложение которое 1) работает 2) имеет небольшое кол-во известных багов 3) имеет ряд известных юзеру фич, но возможно неизвестных разработчикам А на выходе вы получите приложение которое 1) возможно работает (если разработчик понял правильно ТЗ) 2) имеет кучу неизвестных багов 3) уже не имеет неофициальных фич к которым привык юзер 4) внедряется в забюрократизировнном учреждении (судя по теме ЖКХ) с очень консервативными юзерами предпенсионного возраста (т.е. возможен саботаж внедрения) Никаких шансов за полгода получить что-то что сможет заменить старое приложение. Забиваю себе в календарь вернуться в эту тему через год и поржать :) Вам советую рассчитывать на 2 года неспешного внедрения. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 18:03 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
2 года я получил исходя из формулы: оценка программиста * К. К - коэффициент адекватности программиста. Минимум К=2 - для самых адекватных. Для тех у кого горят глаза при озвучивании оценки сроков - К=4. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 18:16 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Вставлю свои 5-ть копеек. Не забываем о сервере приложений. Как правило это отдельный компьютер (сервер) с хорошим процом и оперативкой. Также надежность системы немного уменьшается, так как появляется 3-е звено, сервер приложений от сети отрубится и усе... Толстоту клиента можно уменьшить, пененеся часть логики на сервер СУБД, но нужно понимать, что тут четкая должна быть документируемость проекта и доступна база средствами проектирования, PowerDesiner например. Насчет неудобства обновления, вы можете часть компонент отрисовывать динамически, в базе хранится, не только сам код sql для datawindow но и способ отрисовки самого отчета. Конструктор присобачить, чтобы сам программист не лазил в код, а конструировал сам отчет с помощью конструктора. О библиотеках проекта и их версии, можно хранить инфу в самой базе, тогда при работе пользователя например раз в 3 часа при несовпадении версии - предупреждать о необходимости обновления. Обновление должно проверяться автоматом при старте приложения и обновляться, как вариант, с сети, куда программист выкладывает исходники. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 20:40 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
To lioner : извините если я совсем не по теме. Такие проекты хорошо затевать в бюджетных организациях. Бюджету можно напилить прилично. А если к Вам через полгода в помощь программистам нужен будет третий ( а он таки будет нужен ) и он окажется лихим спецом по .net можете начинать экранизацию басен дедушки Крылова. Всегда думал что владелец ( работодатель) диктует правила написания кода. Да Powerbuilder не модный нынче язык , но я не поверю что задача автоматизации в области ЖКХ поставит его в тупик. Возможно вам нужно модернизировать ваш билдеровский фреймворк , который у вас наверняка существует. В общем удачи Вам. и ждем новостей через полгода . ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 20:43 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lionerавторПопросите джависта (а лучше независимого) оценить объем работ, а потом покажите это тому кто будет оплачивать эти работы. Джавист говорит, что он сам напишет сервер приложений на Java за полгода. Это значит, что ни единому его слову доверять нельзя, и по возможности от него нужно избавиться :-))) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 22:52 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Филиппlionerпропущено... Джавист говорит, что он сам напишет сервер приложений на Java за полгода. Это значит, что ни единому его слову доверять нельзя, и по возможности от него нужно избавиться :-))) Откуда у Филипа такая кровожадность, американская мораль появилась и мозги промыла? Наверное Вашингтон решит Москву бомбить, Филипп буде двумя руками тоже за, ох уж эти янки с наносимой на штыках "демократией"! По делу-пусть средний по сложности 1 блок jav- ист перепишет и вы посмотрите и сравните, с тем, что есть сейчас! :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 09:13 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lionerавторЯ не знаком с SQL и не собираюсь его изучать Есть такое дело, он не очень любит SQL. На java очень любят ОРМ и судя по озвученному он там будет. Но хороший ОРМ так никто пока и не придумал (чтобы хоть как-то по скорости с native SQL конкурировало). Да, в некоторых случаях удобно работать с базой, как с классами. Но чуть отступаешь от примеров типа Hello World и понимаешь, что без ОРМ гораздо веселее. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 09:16 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Я же говорю, что он настоящий русский программист И уберите свои руки от Фила:) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 10:41 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Локшин Маркlionerпропущено... Есть такое дело, он не очень любит SQL. На java очень любят ОРМ и судя по озвученному он там будет. Но хороший ОРМ так никто пока и не придумал (чтобы хоть как-то по скорости с native SQL конкурировало). Да, в некоторых случаях удобно работать с базой, как с классами. Но чуть отступаешь от примеров типа Hello World и понимаешь, что без ОРМ гораздо веселее. Библиотека Hibernate позволяет отобразить каждую таблицу БД в отдельный класс на Java. При этом джависту не обязательно знать SQL, он будет работать с этими обьектами, а те в свою очередь с помощью своих методов посылать SQL-запросы в базу. Очень удобно, но работает медленнее чем на уровне SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 10:54 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
pandTo lioner : извините если я совсем не по теме. Такие проекты хорошо затевать в бюджетных организациях. Бюджету можно напилить прилично. А если к Вам через полгода в помощь программистам нужен будет третий ( а он таки будет нужен ) и он окажется лихим спецом по .net можете начинать экранизацию басен дедушки Крылова. Всегда думал что владелец ( работодатель) диктует правила написания кода. Да Powerbuilder не модный нынче язык , но я не поверю что задача автоматизации в области ЖКХ поставит его в тупик. Возможно вам нужно модернизировать ваш билдеровский фреймворк , который у вас наверняка существует. В общем удачи Вам. и ждем новостей через полгода . В существующем приложении действительно хватает ошибок и багов, они исправляются с помощью очередных костылей и велосипедов, поэтому джавист предлагает полность все переписать правильно. Большинство нюансов, тонкостей и подводных камней в предметной области ЖКХ уже известны, в отличие от того времени, когда начинался писаться существующий проект. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 10:59 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Филиппlionerпропущено... Джавист говорит, что он сам напишет сервер приложений на Java за полгода. Это значит, что ни единому его слову доверять нельзя, и по возможности от него нужно избавиться :-))) Сколько по вашему занимает времени написание приложения с нуля на Java для работы с БД, с учетом того, что предметная область и бизнес-логика уже хорошо изучены на практике существующего приложения ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 11:03 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
medoedВставлю свои 5-ть копеек. Не забываем о сервере приложений. Как правило это отдельный компьютер (сервер) с хорошим процом и оперативкой. Также надежность системы немного уменьшается, так как появляется 3-е звено, сервер приложений от сети отрубится и усе... Толстоту клиента можно уменьшить, пененеся часть логики на сервер СУБД, но нужно понимать, что тут четкая должна быть документируемость проекта и доступна база средствами проектирования, PowerDesiner например. Насчет неудобства обновления, вы можете часть компонент отрисовывать динамически, в базе хранится, не только сам код sql для datawindow но и способ отрисовки самого отчета. Конструктор присобачить, чтобы сам программист не лазил в код, а конструировал сам отчет с помощью конструктора. О библиотеках проекта и их версии, можно хранить инфу в самой базе, тогда при работе пользователя например раз в 3 часа при несовпадении версии - предупреждать о необходимости обновления. Обновление должно проверяться автоматом при старте приложения и обновляться, как вариант, с сети, куда программист выкладывает исходники. Спасибо за советы, примем к сведению. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 11:05 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
spas2001Я же говорю, что он настоящий русский программист Улыбнуло :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 11:23 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lionerБиблиотека Hibernate...Коллега, мы тут, вообще говоря, в курсе. lionerПри этом джависту не обязательно знать SQL, он будет работать с этими обьектами, а те в свою очередь с помощью своих методов посылать SQL-запросы в базу.Таких быстрообучаемых клепателей соцсетей к реальным проектам, связанным с обработкой данных, лучше не подпускать. lionerОчень удобно...Вы пробовали? lionerНовый программист (джавист) имеет за плечами большой опыт работы с Java, 3-х уровневыми приложениями с использованием серверов приложений (СП), различными доступными фреймверками, неплохо разбирается в SQL, администрировании. 14551341 lionerЕсть такое дело, он не очень любит SQL. 14553918 Речь идет об одном и том же человеке? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 11:55 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Филиппlionerпропущено... Джавист говорит, что он сам напишет сервер приложений на Java за полгода. Это значит, что ни единому его слову доверять нельзя, и по возможности от него нужно избавиться :-)))+1 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 12:05 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
PL99Вы пробовали? Нет, не пробовал, с Java не работал. Удобно в том смысле, что можно работать с БД, не владея навыками SQL. PL99Речь идет об одном и том же человеке? Да, об одном и том же человеке, который неплохо разбирается в SQL, но не очень его любит использовать, когда дело касается расчетов. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 12:14 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lioner... неплохо разбирается в SQL, но не очень его любит использовать, когда дело касается расчетов. Называйте вещи своими именами - вообще не разбирается в SQL и не знает реляционную алгебру. Мало того, не знает и не хочет узнавать, прикрываясь словами, что все надо сделать универсально ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 12:19 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
spas2001Называйте вещи своими именами - вообще не разбирается в SQL и не знает реляционную алгебру. Мало того, не знает и не хочет узнавать, прикрываясь словами, что все надо сделать универсально Не совсем так. Джавист вник в создание окон в PowerBuilder, возможности PowerScript и DataWindow, как создавать отчеты, написал несколько ХП с расчетами (несколько перерасчетов и распределение оплат по услугам, когда абонент оплачивает одной суммой за несколько услуг). Правда эти ХП работают медленно и нужно их оптимизировать (например 1000 оплат распределяются около 15 минут). Просто он привык программировать, работая с обьектами, используя ООП, а ХП на SQL - это процедурное программирование, а не обьектно-ориентированное. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 12:40 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lionerПри этом джависту не обязательно знать SQL, он будет работать с этими обьектами, а те в свою очередь с помощью своих методов посылать SQL-запросы в базу. Очень удобно, но работает медленнее чем на уровне SQL. А как он будет работать только с объектами, мне вот интересно? ОРМ обертка обеспечивает CRUD операции с объектами. Но далеко не все можно выразить в терминах намепленных сущностей - по сути это возврат к сетевой/иерархической модели данных. Для того, чтобы было не все так печально придумали HQL - по сути весьма урезанный SQL и CriteriaQuery - урезанный HQL в объектно-ориентированной обертке. Ввиду этого весьма странно было бы не знать SQL. Это не касаясь вопросов изменения схемы данных и прочего с этим связанного. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 12:53 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Локшин МаркА как он будет работать только с объектами, мне вот интересно? ОРМ обертка обеспечивает CRUD операции с объектами. Но далеко не все можно выразить в терминах намепленных сущностей - по сути это возврат к сетевой/иерархической модели данных. Для того, чтобы было не все так печально придумали HQL - по сути весьма урезанный SQL и CriteriaQuery - урезанный HQL в объектно-ориентированной обертке. Ввиду этого весьма странно было бы не знать SQL. Это не касаясь вопросов изменения схемы данных и прочего с этим связанного. Опишу как я понял со слов джависта простой расчет для одного лицевого счета: Есть 2 таблицы: account - лицевые счета tarif - тарифы Таблица account: ЛСОбщая площадьТарифная схема100052.701 Таблица tarif: Тарифная схемаКод услугиТариф112.50 Т.е. у ЛС № 1000 общая площадь=52.70м2 и тариф=2.50грн. Начисление = 52.70 * 2.50 = 131.75 грн. Расчет на SQL: Код: sql 1. 2.
На Java будет 3 обьекта: account - лицевые счета tarif - тарифы doc - документы с начислениями Обьект account методом GetValue получает значение св-ва area, обьект tarif методом GetValue получает значение св-ва tarif, перемножает, и рез-т присваивает св-ву SUM обьекта doc, тот в свою очередь сохраняет эту сумму в таблицу DOC. Это самый упрощенный вариант конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 13:16 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lioner1000 оплат распределяются около 15 минут Зато какое пространство для оптимизаций ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 13:20 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Anatoly Moskovskylioner1000 оплат распределяются около 15 минут Зато какое пространство для оптимизаций Да, там несколько курсоров, много проверок. Если убрать курсоры и заменить на инсерты во времянки, а потом их обьединения, то будет значительно быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 13:34 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lionerДа, там несколько курсоров, много проверок. Если убрать курсоры и заменить на инсерты во времянки, а потом их обьединения, то будет значительно быстрее. Лучше попробуйте рассчитать все в одном запросе. Это будет самый быстрый вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 15:07 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lionerРасчет на SQL: Код: sql 1. 2.
На Java будет 3 обьекта: account - лицевые счета tarif - тарифы doc - документы с начислениями Обьект account методом GetValue получает значение св-ва area, обьект tarif методом GetValue получает значение св-ва tarif, перемножает, и рез-т присваивает св-ву SUM обьекта doc, тот в свою очередь сохраняет эту сумму в таблицу DOC. Это самый упрощенный вариант конечно. Это как-то совершенно не эквивалентно. Почему на Java результат пишется в документ, а на SQL нет - не ясно. Сделайте на SQL англогично. Потом сравните запросы, которые генерит ОРМ и то что написано на SQL и посчитайте производительность. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 16:53 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lioner, Вы, случайно, не из Житомира? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2013, 18:47 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lioner! Хотите победить jav - виста за один день, за один тест - я про чудо ORM)) Идея: Пусть есть таблица городов, есть таблица фамилий клиентов, связанных с городами. Соответственно, создаем на тестовой базе пару таблиц и заполняем их (для реальных тестов нагенерите нагрузку на 10 000 городов, по 10 000 клиентов в каждом городе): /* Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
-- НЕ ЗАБУДЬТЕ СОЗДАТЬ ИНДЕКСЫ в базе!!! */ 2. Задача проста по каждому городу - вывести - клиента который встречается максимальное кол-во раз в каждом городе. Для нашего примера ответ должен выглядеть: Код: html 1. 2. 3. 4.
3. Вы сделайте запрос на базе и отретривьте в dw на PB соответсвенно (засеките время). Перестартуйте тестовый сервер СУБД, чтобы кэшь сбросить запросов. 4. Пусть java -ист выведет данные, используя ORM также на экран. 5. Выложите результаты вашего времени и jav - виста нам)) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2013, 22:43 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
rolekslioner, Вы, случайно, не из Житомира? Вы узнаете "техзадание" и/или знаете кто этот "джавист"? Поведайте, в чем секрет? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2013, 13:48 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
как жавист знающий ПБ скажу в сложных случаях создается вьюшка выполняющая калькуляцию на уровне БД либо сложные калькуляции делаются заранее и хранятся в БД предрассчитанные так, что при использовании достойных фреймворков задача на жаве не особо более сложная чем в пб. 3-х звенка однозначно добавит работы. не понял идею тонкого клиента... почему не браузер? писать кастомного клиента дорого. для старых компов можно использовать что-то вроде http://distro.ibiblio.org/baslinux/ PS: java не панацея. используйте grails ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2013, 14:18 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Dmitry.как жавист знающий ПБ скажу в сложных случаях создается вьюшка выполняющая калькуляцию на уровне БД либо сложные калькуляции делаются заранее и хранятся в БД предрассчитанные так, что при использовании достойных фреймворков задача на жаве не особо более сложная чем в пб. Дмитрий, автор же раньше писал, что jav-ист ихний не любит sql и не особо в нем разбирается. Он думает, что за него сделает ORM, а он уже через массивы объектов усе разрулит. Вот я и дал задачку, чтобы Hibirnate или Ibatis базку подвесили!:-) Пусть начальство и сам jav-ист, что ORM нужно к месту и не является панацеей! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2013, 16:47 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Филиппlionerпропущено... Джавист говорит, что он сам напишет сервер приложений на Java за полгода. Это значит, что ни единому его слову доверять нельзя, и по возможности от него нужно избавиться :-))) К сожалению, правда. Ничего тут кровожадного нет. У нас вполне вменяемый джавист работает на вебсфере. Они действительно не любят SQL и попытки делать сложные расчеты и отчеты приводят к локальным катастрофам. Приходится все это отслеживать и оперативно исправлять. Неумение работать с SQL - это не только проблемы оптимизации, но, зачастую, и проблемы управления транзакциями. А они мастера на замечательные dead-локи :) Сервера приложений не надо самим писать, а пользоваться готовыми. Самописки не имеют нормального окружения и не решают зачастую задачи масштабирования, надежности, балансировки нагрузки и много еще чего. Все это приводит к запущенным проблемам у конечных пользователей. Это как писать свои СУБД, средства разработки... На эту тему можно распространятся долго, но Филипп был как всегда краток и прямолинеен. Как хирург! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2013, 08:58 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
AISrolekslioner, Вы, случайно, не из Житомира? Вы узнаете "техзадание" и/или знаете кто этот "джавист"? Поведайте, в чем секрет? Я знаю что в Житомире работает подобная система ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2013, 11:12 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lionerФилипппропущено... Это значит, что ни единому его слову доверять нельзя, и по возможности от него нужно избавиться :-))) Сколько по вашему занимает времени написание приложения с нуля на Java для работы с БД, с учетом того, что предметная область и бизнес-логика уже хорошо изучены на практике существующего приложения ? Как минимум в 3 раза дольше чем на РВ :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2013, 18:42 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Филиппlionerпропущено... Сколько по вашему занимает времени написание приложения с нуля на Java для работы с БД, с учетом того, что предметная область и бизнес-логика уже хорошо изучены на практике существующего приложения ? Как минимум в 3 раза дольше чем на РВ :-) Пожалуй подпишусь, в простейших случаях, если субд сама не упакована в классы, что порой удобно для наследования, то dw уделает любую ORM. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2013, 19:53 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
andy753Филипппропущено... Это значит, что ни единому его слову доверять нельзя, и по возможности от него нужно избавиться :-))) К сожалению, правда. Ничего тут кровожадного нет. У нас вполне вменяемый джавист работает на вебсфере. Они действительно не любят SQL и попытки делать сложные расчеты и отчеты приводят к локальным катастрофам. Приходится все это отслеживать и оперативно исправлять. Неумение работать с SQL - это не только проблемы оптимизации, но, зачастую, и проблемы управления транзакциями. А они мастера на замечательные dead-локи :) Сервера приложений не надо самим писать, а пользоваться готовыми. Самописки не имеют нормального окружения и не решают зачастую задачи масштабирования, надежности, балансировки нагрузки и много еще чего. Все это приводит к запущенным проблемам у конечных пользователей. Это как писать свои СУБД, средства разработки... На эту тему можно распространятся долго, но Филипп был как всегда краток и прямолинеен. Как хирург! :) Лень было писать общеизвестную банальность :-))) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2013, 23:19 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
rolekslioner, Вы, случайно, не из Житомира? Нет, из Донецка. medoedФилипппропущено... Как минимум в 3 раза дольше чем на РВ :-) Пожалуй подпишусь, в простейших случаях, если субд сама не упакована в классы, что порой удобно для наследования, то dw уделает любую ORM. ORM решили для расчетов не использовать, ХП с расчетами останутся. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2013, 17:22 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lionerORM решили для расчетов не использовать, ХП с расчетами останутся. А где решили использовать и для чего? В XML захотелось property попрописывать для binding -а или для чего? Сервер приложений я так понимаю решили все же делать?((( ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2013, 20:16 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
medoedСервер приложений я так понимаю решили все же делать?((( С чего вы взяли? Перечитайте первое сообщение. Везде пишется "На СП будет реализован...". Т.е. под сервером приложений имеется в виду бизнес-логика на сервере приложений, а не то, в чем она исполняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2013, 21:23 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
lionerДжавист говорит, что он сам напишет сервер приложений на Java за полгода. Ну что, прошел год. Сколько джавистов уже уволили? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.06.2014, 03:42 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyНу что, прошел год.Как бы смешно это не выглядело, но мы понемножку начали двигаться в этом направлении. Речь идет о приложении на java, которое интерпретирует метаданные, хранящиеся в БД. С БД напрямую взаимодействует еще одно приложение, эдакий минисервер, мы его называем адаптером. В качестве бонуса написали аналогичный интерпретатор на javascript и получили еще и веб-приложение. Вся логика хранится в процедурах на pl/sql. При необходимости пишутся модули на java/javascript, реализующие сложную функциональность на клиенте. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2014, 20:39 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Anatoly MoskovskylionerДжавист говорит, что он сам напишет сервер приложений на Java за полгода. Ну что, прошел год. Сколько джавистов уже уволили? Что-то мне кажется, что в Донецке сейчас не до переписывания приложений. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2014, 19:43 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Локшин Марк, Так полгода уже как должно быть готово :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2014, 02:01 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Локшин МаркAnatoly Moskovskyпропущено... Ну что, прошел год. Сколько джавистов уже уволили? Что-то мне кажется, что в Донецке сейчас не до переписывания приложений. Надеюсь, ТС в ополчении, защищает родную землю от нациков и бандеров, думаю в этом случае приложение и текущая работа подождет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 20:10 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
medoed, Вообще-то для политики на форуме есть специально отведенные отхожие места, так сказать для желающих окунуться в атмосфЭру. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2014, 21:52 |
|
PowerBuilder или Java, приложение клиент-сервер или трехуровневое приложение
|
|||
---|---|---|---|
#18+
Поддерживаю ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2014, 16:36 |
|
|
start [/forum/topic.php?all=1&fid=15&tid=1335326]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
171ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
90ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 325ms |
0 / 0 |