Web приложение на C++
От: Oboltus  
Дата: 14.09.06 06:44
Оценка:
День добрый, прошу прощения, если тема неоднократно всплывала.
Для нового проекта (web-приложение с большим числом посетителей) выбирается платформа разработки. ASP.NET отвергнут практически сразу: производительность низка, тяжело администрировать и отлаживаться на удалённом сервере. Остаётся Java или C++, Apache как сервер приложений. Лично я бы с удовольствием написал бы всё на C++ (по CGI-интерфейсу). Производительность выше, прямой доступ к API операционной системы, более предсказуемое поведение. Но для Java уже стандартизованы, написаны и отлажены библиотеки, отвечающие за выполнение стандартных операций (например, взаимодействие с web-севером). Вопрос: есть ли для C++ надёжные отлаженные библиотеки, выполняющие:
1) Взаимодействие с web-сервером (CGI-интерфейс).
2) Работа с БД (MySQL, PostgreSQL).
3) XML/XSLT
4) Генерация отчётов (PDF) и бизнес-диаграмм (растровый формат и PDF).
Требования к бибилиотекам: открытый код. Бесплатность не обязательна. Нужно именно C++, а не C.
Кто что может посоветовать? Спасибо.
Re: Web приложение на C++
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 14.09.06 07:03
Оценка:
Здравствуйте, Oboltus, Вы писали:

O>День добрый, прошу прощения, если тема неоднократно всплывала.

O>Для нового проекта (web-приложение с большим числом посетителей) выбирается платформа разработки.



Вс зависит от требований.
Что быдет делать сервис ?
Какие требования к времени отклика ?
Какие требования к скрости разработки, измнений ?
Какое кооличество стариниц, форм будет в приложении ?
Re[2]: Web приложение на C++
От: Oboltus  
Дата: 14.09.06 07:21
Оценка:
Здравствуйте, achmed, Вы писали:

A>Что быдет делать сервис ?


Основная работа серверного модуля: обработка параметров HTTP-запроса, вызов БД, работа с массивами данных в памяти, генерация XML в виде текста на выходе.

A>Какие требования к времени отклика ?


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

A>Какие требования к скрости разработки, измнений ?


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

A>Какое кооличество стариниц, форм будет в приложении ?


Пара десятков + пара десятков PDF-отчётов, насыщенных бизнес-диаграммами. Собственно, отчёты — самое критичное место проекта, они будут сложными, объёмными, активно использующими БД.
Re: Web приложение на C++
От: astral_marine  
Дата: 14.09.06 07:44
Оценка:
O>1) Взаимодействие с web-сервером (CGI-интерфейс).
FastCGI — позволяет намного быстрее выполнять CGI приложение, поддерживает многопоточность, позволяет работать по принципу демона/сервиса.

O>2) Работа с БД (MySQL, PostgreSQL).

mysql++ например, но в инете для популярных СУБД библиотек навалом. На крайняк можно и свой враппер написать.

O>3) XML/XSLT

libxml2, libxml++, libxslt

O>4) Генерация отчётов (PDF) и бизнес-диаграмм (растровый формат и PDF).

Есть кажись libpdf, но больше не знаю. Если формат PDF не принципиален, то можно использовать Excel для этих целей:
генерить HTML со специальными тегами — таблички и графики с привязкой к Экселю делаются таким образом элементарно.
Да и конечные юзверы более благосклонны к Экселю, чем к PDF. Сам так делаю — все проходит на ура.
Генерится моментально, выглядит супер и работать с такими документами одно удовольствие.
И гимора с рисованием диаграмм вовсе нету. Если надо, смогу проконсультировать что к чему.
Re[2]: Web приложение на C++
От: Oboltus  
Дата: 14.09.06 08:22
Оценка:
Здравствуйте, astral_marine, Вы писали:

O>>4) Генерация отчётов (PDF) и бизнес-диаграмм (растровый формат и PDF).

_>Есть кажись libpdf, но больше не знаю.

Требуется именно PDF, причём нужно не просто библиотека по генерации PDF-документов, но полноценный генератор отчётов (автоматическая генерация колонтитулов, корректная разбивка по страницам, как текстов, так и таблиц, в общем, всё такое).

Ещё нужно средство генерации бизнес-диаграмм в разных выходных форматах (растровом и PDF-подобном).
Re[3]: Web приложение на C++
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 15.09.06 07:37
Оценка:
Здравствуйте, Oboltus, Вы писали:

O>Здравствуйте, achmed, Вы писали:


A>>Что быдет делать сервис ?


O>Основная работа серверного модуля: обработка параметров HTTP-запроса, вызов БД, работа с массивами данных в памяти, генерация XML в виде текста на выходе.


Нужно определить, что будет основным тормозом, вызов БД тлт раьота с массивами.

A>>Какие требования к времени отклика ?


O>Невысокие, до нескольких секунд при пиковой нагрузке. Но важна возможность одновременной работы с сотнями посетителей.


Я бы написал тестовое приложение на ASP.NET для стресс-тестирования, если оно пройдет, то забываем о C++.

A>>Какие требования к скрости разработки, измнений ?


O>Очень высокие. Времени на собственноручную реализацию и отладку типовых операций не остаётся.


Тогда C++ будет неудачним выбором.

A>>Какое кооличество стариниц, форм будет в приложении ?


O>Пара десятков + пара десятков PDF-отчётов, насыщенных бизнес-диаграммами. Собственно, отчёты — самое критичное место проекта, они будут сложными, объёмными, активно использующими БД.


Вам бы подошел MSSQL + Reporting Service.


PS чем неудобно администрирование ASP.NET и удаленная отладка ?
Re: Web приложение на C++
От: Alexey Frolov Беларусь  
Дата: 15.09.06 09:06
Оценка:
Здравствуйте, Oboltus, Вы писали:

O>День добрый, прошу прощения, если тема неоднократно всплывала.

O>Для нового проекта (web-приложение с большим числом посетителей) выбирается платформа разработки. ASP.NET отвергнут практически сразу: производительность низка, тяжело администрировать и отлаживаться на удалённом сервере.

Может вы недооцениваете производительность ASP.NET платформы? Что если попробовать пробный проект и зайти туда большим количеством юзеров?
Re: Web приложение на C++
От: remark Россия http://www.1024cores.net/
Дата: 15.09.06 16:44
Оценка: 1 (1)
Здравствуйте, Oboltus, Вы писали:

O>День добрый, прошу прощения, если тема неоднократно всплывала.

O>Для нового проекта (web-приложение с большим числом посетителей) выбирается платформа разработки. ASP.NET отвергнут практически сразу

Если очень много одновременных пользователей и при этом требования по времени отклика не очень жёсткие, то в ASP.NET есть встроенная возможность хранить состояние сессии в БД. Это должно держать практически неограниченное кол-во пользователей одновременно.

По поводу производительности. Конкретных цифр не имею, но думаю, что производительность ASP.NET должна быть как раз очень высокая. Т.к. связка Windows + IIS + ASP.NET сильно интегрирована, оптимизирована по производительности + имеет поддержку со стороны платформы (если не изменяет память чуть ли не со стороны ядра ОС).



1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[2]: Web приложение на C++
От: remark Россия http://www.1024cores.net/
Дата: 15.09.06 16:45
Оценка:
Здравствуйте, remark, Вы писали:

R>Здравствуйте, Oboltus, Вы писали:


O>>День добрый, прошу прощения, если тема неоднократно всплывала.

O>>Для нового проекта (web-приложение с большим числом посетителей) выбирается платформа разработки. ASP.NET отвергнут практически сразу

R>Если очень много одновременных пользователей и при этом требования по времени отклика не очень жёсткие, то в ASP.NET есть встроенная возможность хранить состояние сессии в БД. Это должно держать практически неограниченное кол-во пользователей одновременно.


R>По поводу производительности. Конкретных цифр не имею, но думаю, что производительность ASP.NET должна быть как раз очень высокая. Т.к. связка Windows + IIS + ASP.NET сильно интегрирована, оптимизирована по производительности + имеет поддержку со стороны платформы (если не изменяет память чуть ли не со стороны ядра ОС).



З.Ы. ну а вообще С++, конечно, рулит

R>


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[2]: Web приложение на C++
От: Alexey Frolov Беларусь  
Дата: 15.09.06 17:39
Оценка:
Здравствуйте, remark, Вы писали:

R>По поводу производительности. Конкретных цифр не имею, но думаю, что производительность ASP.NET должна быть как раз очень высокая. Т.к. связка Windows + IIS + ASP.NET сильно интегрирована, оптимизирована по производительности + имеет поддержку со стороны платформы (если не изменяет память чуть ли не со стороны ядра ОС).


Именно со стороны OS, не ошибаетесь. Часть .NET платформы работает в драйвере
Re: Web приложение на C++
От: Аноним  
Дата: 16.09.06 17:37
Оценка:
Здравствуйте, Oboltus, Вы писали:

O>Для нового проекта (web-приложение с большим числом посетителей) выбирается платформа разработки. ASP.NET отвергнут практически сразу: производительность низка, тяжело администрировать и отлаживаться на удалённом сервере. Остаётся Java или C++, Apache как сервер приложений. Лично я бы с удовольствием написал бы всё на C++ (по CGI-интерфейсу). Производительность выше, прямой доступ к API операционной системы, более предсказуемое поведение. Но для Java уже стандартизованы, написаны и отлажены библиотеки, отвечающие за выполнение стандартных операций (например, взаимодействие с web-севером). Вопрос: есть ли для C++ надёжные отлаженные библиотеки, выполняющие:

O>1) Взаимодействие с web-сервером (CGI-интерфейс).
Скорее нет. Все знакомые мне реализации сишных библиотек некорректно работают с юникодом/utf-8. У меня рукописный код "взаимодействия с веб-сервером (FastCGI)" занимает 10 килобайт — причем писался когда о веб-программировании "ни-сном-ни-духом" — работает. Так что вряд ли может стать проблемой.

Сам FastCGI — работает. Правда собранный модуль для 2.0.x апача. Для пересборки под 2.2.x — необходимо обработать напильником. В общем-то не проблема.
Подозреваю что неудасться собрать в 64-bit окружении — что-то я нехорошее в коде про указатели видел. До тех пор пока устраивает работа в 32bit окружении — не проблема.

Еще можно соорудить свой модуль к апачу.

O>2) Работа с БД (MySQL, PostgreSQL).

ODBC и все что из него вытекает.
Native интерфейс MySQL.

O>3) XML/XSLT

есть.

O>4) Генерация отчётов (PDF) и бизнес-диаграмм (растровый формат и PDF).

ахез.

O>Требования к бибилиотекам: открытый код. Бесплатность не обязательна. Нужно именно C++, а не C.

O>Кто что может посоветовать? Спасибо.
Еще раз подумать над .NET. Скорее всего производительности платформы хватит.
А так предполагаю что определяющим станет наличие генерилки pdf-а.

ИМХО: для веб-проекта, у которого дэдлайн — еще вчера — С++ подходит слабо — язык малоиспользуется в этой области, поэтому придется реализовать много велосипедов.
Re: Web приложение на C++
От: max-maxtor Россия www.rsdn.ru
Дата: 20.09.06 10:05
Оценка: 1 (1)
Здравствуйте, Oboltus, Вы писали:

O>День добрый, прошу прощения, если тема неоднократно всплывала.

O>Для нового проекта (web-приложение с большим числом посетителей) выбирается платформа разработки. ASP.NET отвергнут практически сразу: производительность низка, тяжело администрировать и отлаживаться на удалённом сервере. Остаётся Java или C++, Apache как сервер приложений. Лично я бы с удовольствием написал бы всё на C++ (по CGI-интерфейсу). Производительность выше, прямой доступ к API операционной системы, более предсказуемое поведение. Но для Java уже стандартизованы, написаны и отлажены библиотеки, отвечающие за выполнение стандартных операций (например, взаимодействие с web-севером). Вопрос: есть ли для C++ надёжные отлаженные библиотеки, выполняющие:
O>1) Взаимодействие с web-сервером (CGI-интерфейс).
O>2) Работа с БД (MySQL, PostgreSQL).
O>3) XML/XSLT
O>4) Генерация отчётов (PDF) и бизнес-диаграмм (растровый формат и PDF).
O>Требования к бибилиотекам: открытый код. Бесплатность не обязательна. Нужно именно C++, а не C.
O>Кто что может посоветовать? Спасибо.

ISAPI Расширение этим можно сделать все обращаться к БД писать в PDF гибкое распределение ресурсов, высокая производительность. И все это можно писать на C и на C++ как будет вам подходить. И все это будет работать на IIS, Apache Win32 и др..

http://www.rsdn.ru/article/inet/wrisapi.xml
Автор(ы): Алексей Остапенко
Дата: 01.04.2003
В статье описываются принципы написания ISAPI-расширений для веб-сервера Microsoft IIS. Даются рекомендации
по их отладке. В качестве дополнения рассматривается методика записи сообщений в лог Windows NT.
В версии 1.1 существенно переработан метод создания пула нитей.
В версии 1.2 исправлена ошибка инициализации/деинициализации расширения при выключенном кешировании
ISAPI-приложений.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_Internet_Server_API_.28.ISAPI.29_.Extensions.asp

Вы будите приятно потрясены широким спектром возможностей которые предоставляют ISAPI Расширения и которые недоступны не одному другому способу программирования Web.
Re[3]: Web приложение на C++
От: gear nuke  
Дата: 21.09.06 06:35
Оценка:
Здравствуйте, Alexey Frolov,

R>>По поводу производительности. Конкретных цифр не имею, но думаю, что производительность ASP.NET должна быть как раз очень высокая. Т.к. связка Windows + IIS + ASP.NET сильно интегрирована, оптимизирована по производительности + имеет поддержку со стороны платформы (если не изменяет память чуть ли не со стороны ядра ОС).


AF>Именно со стороны OS, не ошибаетесь. Часть .NET платформы работает в драйвере


как драйвер-то называется?

IIS действительно частично реализован в ядре (а именно весть http стек — http.sys) и даже может делать какое-то кеширование статических страниц... Все это относится только к 2003 Server. На XP SP2 драйвер этот тоже есть, судя по всему, сделано это специально для .NET FW2 и там это должно рулить. Хотя HTTP API и из С можно использовать (в MSDN даже есть нерабочий пример )
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.