За последние 24 часа нас посетили 21777 программистов и 1023 робота. Сейчас ищут 677 программистов ...

Выбор платформы для написания веб-сервисов

Тема в разделе "Вопросы от блондинок", создана пользователем rss354, 25 авг 2006.

  1. rss354

    rss354 Активный пользователь

    С нами с:
    23 авг 2006
    Сообщения:
    10
    Симпатии:
    0
    Выбор платформы для написания веб-сервисов (главные критерии: надежность, масштабируемость, скорость) – помогите определиться с выбором платформы

    Из кандидатов:
    1. Perl
    2. PHP
    3. ASP (ASP .NET)
    4. Ruby, Python (другие?)...

    Для написания небольших задач - наверное что лучше знаешь и что больше нравится - то и выбирай.
    По крайней мере для небольшой задачи я бы так и сделал :)
    А что лучше выбрать при больших нагрузках (исходим из того, что сервер свой и поставить туда можно что угодно)?

    Если составить базовый список критериев, то получится:
    1. Надежность (99,999%) и безопасность.
    2. Масштабируемость.
    3. Скорость.
    4. Работа с большими нагрузками – большие объемы трафика, большое количество одновременно работающих пользователей.

    По результатам поиска в интернете получается:
    1. Самый надежный и безопасный - Perl. Следом - ASP, потом PHP (с безопасностью для него ситуация вроде довольно быстро меняется в лучшую сторону – благодаря PHP Security Consortium).
    2. По масштабируемости - неясно. PHP активно используют крупные компании – к примеру Yahoo и JupiterMedia (http://www.citnews.ru/news/341/), про ASP встречал упоминания eBay.com. Идеальный вариант - чтобы в случае большой нагрузки можно было просто добавить новый сервер с минимальным переконфигурированием. Что в этом случае лучше?
    3. По скорости - получается что Perl и PHP приблизительно одинаковы при использовании mod_perl и mod_php. А как в случае использования ASP .NET? Если разделить задачи на расчетные (скажем формирование контента) и выборки/занесения данных из базы?
    4. Что здесь предпочтительней? Платформа на основе PHP/Perl или на основе ASP?


    Конечно есть и другие не менее важные критерии:
    1. Скорость написания кода.
    2. Удобство отладки.
    3. Сопровождение кода (тем-же или другим человеком).
    4. Расширение функциональности действующей системы.
    5. Наличие готовых стандартных библиотек "на все случаи жизни" (обработка XML, юникод и т.д.).

    ... вообщем полный цикл поддержки системы.

    Как здесь обстоит дело? Если исходить из того, что это будет не пара скриптов, а система, которую будет разрабатывать команда (около 5-10 человек) в течении минимум полугода и потом она будет активно развиваться - что в этом случае предпочтительней?

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

    Поделитесь пожалуйста вашим личным опытом - он самый ценный! :)
    Если был опыт в разработке крупных систем (пусть они совсем не похожи на мета-поиск) - какие возникали проблемы, насколько они хорошо решались на разных платформах? В пользу чего в итоге был сделан выбор? По каким соображениям и критериям?

    Спасибо за помощь!

    P.S. Буду также благодарен за ссылки на статьи, обсуждения в форумах, проясняющие вопрос - возможно я что-то упустил при поиске информации.

    Мой e-mail для приватных сообщений - rss354_собака_rambler_точка_ru
     
  2. svk

    svk Активный пользователь

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    вы всерьез думаете что на форуме про php вам ответят что ASP - лучший?
     
  3. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Главное за что не люблю ASP, это то, что оно работает только под виндой.
    Так по п.1(безопастность) оно в глубокой ...

    Perl имхо не лучший язык для web-программирования.

    А для поисковиков имхо главное не выбор языка, а выбор БД и проработка ее структуры.
     
  4. Davil

    Davil Guest

  5. rss354

    rss354 Активный пользователь

    С нами с:
    23 авг 2006
    Сообщения:
    10
    Симпатии:
    0
    Нет, но вот аргументированнй ответ почему PHP будет в данном случае предпочтительней был бы неплохим вариантом :)
     
  6. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    FreeBSD, Apache 1.3.xx, Oracle
    компилируемый язык (С, C++)
    оперативочки побольше да процессор помощнее, а лучше два! и харды - SCSI в рэйде!


    А на самом деле я думаю, что вам надо вот это:
    FreeBSD, Apache 1.3.xx, PHP 5.1.5, PostgreeSQL

    и надёжно, и быстро
     
  7. svk

    svk Активный пользователь

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    PHP 4.4.4 - и быстрее и надежнее 8)
     
  8. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    впринципе согласен, но посоветовал пятый, потому-что не знаю задачки...
     
  9. rss354

    rss354 Активный пользователь

    С нами с:
    23 авг 2006
    Сообщения:
    10
    Симпатии:
    0
    А чем (PHP/Perl) лучше производить выборку из базы? Что будет быстрее? Надежнее? Удобнее?
     
  10. rss354

    rss354 Активный пользователь

    С нами с:
    23 авг 2006
    Сообщения:
    10
    Симпатии:
    0
    Если есть опыт в создании таких систем - просьба поделиться!

    Спасибо! :)
     
  11. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    это больше зависит от команды, а не от инструмента
     
  12. rss354

    rss354 Активный пользователь

    С нами с:
    23 авг 2006
    Сообщения:
    10
    Симпатии:
    0
    Я думал о связке PHP и С++.
    PHP - паук, веб-интерфейс.
    C++ - ядро (морфология, индексирование, ранжирование).
    Насчет дальнейшей поддержки - в начале систему разработает классная команда. Потом неизбежно возникнет вопрос поддержки - ею скорее всего будут заниматься совсем другие люди (уровнем пониже). Нужно будет также добавлять новую функциональность. Идея такая - ядро сделано, меняется минимально. Все остальное (расширение функционала) - дописывается на PHP другими людьми.
    Вот такие вот мысли :)

    Насчет масштабируемости - тут весь нюанс в том, что одного серверва может и не хватить - нужно будет несколько, работа которых должны координироваться... Как это лучше сделать - тоже хороший вопрос...

    Насколько надежен PostgreeSQL? Есть опыт его использования в реальных проектах при больших нагрузках? Насколько он хорошо справляется в таких случаях?

    Спасибо за ответы!
     
  13. rss354

    rss354 Активный пользователь

    С нами с:
    23 авг 2006
    Сообщения:
    10
    Симпатии:
    0
    Вопрос команды открыт - то есть её ещё нет.
    Хотелось вначале определиться в вопросе "что использовать", а потом исходя из этого формировать команду.
     
  14. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    сравните их преимущества и недостатки


    php5:

    достоинства
    - очень быстр (быстрее Perl)
    - прост
    - кроссплатформен
    - изначально веб-ориентированный
    - C-подобный синтаксис
    - ООП
    - XML
    - поддержка громадного числа баз данных
    - много готовых решений
    - много инструментов

    легенды о небезопасном php пошли от дырявых приложений написанных на нем (проблема программеров, а не языка)
     
  15. Davil

    Davil Guest

    Как же тут поделишься, это же не кусок хлеба :)

    А вообще:

    -компиллируемый язык
    -кроссплатформенный
    -по скорости немного уступает C, но более удобен для интернет приложений, а также во много раз быстрее PHP,PERL,ASP.
    -работает с огромным количеством баз данных
    -ООП
    -Даже плохому разработчику будет трудно создать уязвимый код
    я бы мог перечислять еще, но боюсь клаву пробить :)
     
  16. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    могу сказать, что за два года работы сервера статистики (биллинг) ни одного сбоя не было...
    Поищи в инете,,, сравнительный анализ различных сереверов баз данных для определённых задач... Информации полно.
     
  17. rss354

    rss354 Активный пользователь

    С нами с:
    23 авг 2006
    Сообщения:
    10
    Симпатии:
    0
    Документ "Выбор платформы для веб"

    Возникла мысль сделать некий сборник мнений разных авторов - и выложить его в свободный доступ.
    Думаю не я первый и не я последний интересуюсь этой темой - а так уже будет готов небольшой сборник мнений на эту тему.
    Я думаю это будет очень полезная вещь - поскольку здесь будет показан опыт нескольких авторов, который высказывает именно свои соображения исходя из своего опыта, а не понаслышке.
    Ну а мне в свою очередь хочется сделать полезное сетевому сообществу.

    Что для этого нужно - просто высказать свое мнение. Приблизительная табличка (это мое мнение) - во вложении.
    Лучше все содержание стереть, и заполнить своим - в произвольной форме. Это не обязательно будет табличка. Вообще пишете то, что считаете нужным (с чем вы сталкивались).

    Я очень надеюсь что инициатива найдет поддержку с вашей стороны - с моей стороны - я буду "склеивать" ваши мнения, потом всю информацию оформлю и выложу в открытый доступ.
    Кто уже публиковал свои мнения - я включу ваши мнения в документ. Если есть уточнения или возражения - высказывайте, я их обязательно учту.

    Ключевые моменты:
    1. Тема "Выбор платформы для веб на основе С++, Java, PHP, Perl, ASP" (возможны другие языки).
    2. Каждый пишет только то, что считает нужным (т.е. нет задачи описать все). Это может быть просто пару абзацев о вашем инструменте и о опыте использования.
    3. Это ваше субъективное мнение. Задача читателя - сформировать свое объективное мнение.
    4. Напишите также кратко кто вы и чем занимаетесь и откуда. Cвоеобразная реклама авторам в благодарность за потраченное время :)

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

    Можно отвечать в форуме, или если удобней - то на мою почту (rss354_собака_rambler_точка_ru) - я обязательно пришлю подверждение о получении письма.

    Сам файл-вложение можно взять с http://www.rsdn.ru/File/57981/Comparison.doc
     
  18. masterik

    masterik Активный пользователь

    С нами с:
    28 авг 2006
    Сообщения:
    9
    Симпатии:
    0
    rss354
    Опыта с подобными крупными проектами у меня нет, поэтому сказать какие были или могут быть проблемы не могу... но могу выделить perl, php, asp/asp.net и python, которые успешно используются при создании ооочень крупных проектов (смотри на гугл, мсн и яху)...
    На всех этих языках возможно реализовать мета-поисковик, если захотеть... а выбирать нужно тот, с которым ты имеешь больше опыта работы... имхо
     
  19. svk

    svk Активный пользователь

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    поисковичОк пишем? у меня есть готовый продукт (поиск по ФТП серверам), успешно работающий уже 10 месяцев, написан полностью на PHP 4.3.x
     
  20. rss354

    rss354 Активный пользователь

    С нами с:
    23 авг 2006
    Сообщения:
    10
    Симпатии:
    0
    Более точно - метапоисковик.
    Можно ссылку - если он в открытом доступе?
     
  21. Vah

    Vah Активный пользователь

    С нами с:
    15 май 2006
    Сообщения:
    228
    Симпатии:
    0
    rss354
    ну вообще для создания мега-поисковика задача стоит не только в выборе на чем писать...... а ещё и стартовых технических мощностей......

    БД для таких вещей я бы посоветовал Оракл..... быстро, надежно, масштабируемо, безопастно...... но это коммерческий вариант.....
    Посгрес думаю будет не быстрее того же mysql 5..... и по функциональности не сильно опередит......а вот вакуум при частых апдейтах придется делать часто...... а это простой БД на несколько часов при больших объемах данных..... фрагментация......

    для больших нагрузок думаю скриптовый язык не подойдет вообще...... самое оптимальное что приходит в голову - связка nginx + apache в котором будет модулем (подчеркиваю модулем!!!) крутится реализация клиентской части поисковой системы..... это пожалуй один из самых быстрых способов....... заисключением написания своего небольшого быстренького хттп-сервера..... ну можно ещё модулем nginx написать........ nginx в данном случае будет служить для масштабирования нагрузки на www сервера..... прокся типа такая хитрая....
    так что язык на взгляд С++....
    некритичные куски кода можно всегда реализовать на перле и использовать интерфейс между С и Перл.....

    Операционная система...... думаю даже не ФриБСД..... ОпенБСД побыстрее и побезопастнее будет.... и отказоустойчивость повыше.....

    ну на совсем худой конец - Linux..... если написать свою реализацию БД и пропатчить ядро, чтоб работать с ней через вызов ф-й ядра - это даст значительный прирост производительности......

    короче расписывать можно много......
    в итоге ИМХО язык - С++
    ОС - юнекс-совместимая
    БД - Оракл или написанная самим в идеале ну или на худой конец - mysql или интербейз или еще что на Ваш выбор.....
     
  22. Vah

    Vah Активный пользователь

    С нами с:
    15 май 2006
    Сообщения:
    228
    Симпатии:
    0
    а, и ещё....... советую начать с исследования уже готовых систем и их плюсов и минусов..... такие как ASPseek, mnogosearch и т.д.
     
  23. rss354

    rss354 Активный пользователь

    С нами с:
    23 авг 2006
    Сообщения:
    10
    Симпатии:
    0
    Документ, который получился в итоге.

    http://www.rsdn.ru/File/57981/PlatformChoose.zip

    Получилось не так обширно как хотелось, но тем не менее есть информация к размышлению.
    Комментарии и исправления приветствуются!

    Спасибо всем участникам!

    Романча Сергей.
    Мой e-mail для приватных сообщений - rss354_собака_rambler_точка_ru
     
  24. Davil

    Davil Guest

    http://www.rsdn.ru/File/57981/PlatformChoose.zip
    Не согласен с очень многим в этой документации! Причем в основном это касается PHP и Java! Почему такая неточность? Нельзя ли было уточнить данную информацию из официальных источников? Лично мне было оскорбительно читать ЭТО! :(
     
  25. rss354

    rss354 Активный пользователь

    С нами с:
    23 авг 2006
    Сообщения:
    10
    Симпатии:
    0
    Davil, давайте дополним документ - я только за. Если быть точнее - то не документ, а мнения разных авторов.

    Я не могу корректировать мнения разных авторов - они изначально субъективны - в принципе я этого и хотел - чтобы каждый желающий, мог высказать свое личное мнение.

    Но я могу обновить ваше - оно есть в PHP_RU.htm - можно ещё дополнить (или добавить вашу таблицу сравнения).

    Ещё как вариант - добавить новые ссылки на интересные статьи/обзоры и т.д. - то что находится в файлы links.txt.

    Я понимаю, что мнения авторов без указания источников - часто не аргумент, но требовать от всех чтобы так делали - не реально - иначе никто бы не захотел тратить время на документ (оно то и понятно).

    Если будут дополнения с указанием источников - я обновлю документ.

    Спасибо за ваш комментарий!