Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.03.27;
Скачать: CL | DM;

Вниз

Почему JAVA не используется в HighLoad интернет-проектах?   Найти похожие ветки 

 
Дмитрий Тимохов   (2010-11-05 21:48) [0]

Добрый день, уважаемые!

Осмысляя свое место в мире "IT и заработка на IT" я, зная только дельфи, но желаючи знать что-то еще, мечусь в своих размышлениях - а не изучить ли мне вот эту классную технологию, сделать эту классную штуку и не срубить на этом определенное количество денег.

И вот дошел я таки до Java.

Ну Java я немного знаю - и 1.4 и 1.5 смотрел. И т.д. - банальные десктопные приложения писал. Пытался изучить пару интернет-фреймворков, но дело до практики не дошло.

Многие хвалят Java не только как средство разработки от Sun, но и как хорошую платформу для интернет-проектов. В Java много готовых и поддерживаемых community фреймворков разных направлений. Вообще хорошее community за рубежом. И вообще - это не галимый скриптовый язык, это все же компилятор!

Однако, посмотрев на разные HighLoad интернет-проекты я не вижу вообще применения Java для их создания! Почему?

Достоинства Java:
1. Это же компилятор, т.е. по идее быстрее, чем обычный скриптовый PHP (я знаю про компиляторы под PHP, но не уверен, что они имеют массовое применение).
2. Это все же язык с хорошими IDE. Возможно NetBeans не дотягивает до Дельфи, но я этот NetBeans мучал сильно - эта зараза ни разу не упала и ни разу я вообще ошибки не видел (но я, напомню, не профессионально смотрел этот NetBeans - просто изучал). К тому же NetBeans бесплатен (был, сейчас - не знаю). Есть нормальный дебагер, не то, что в PHP.
3. Опять же есть большое количество фреймворков разных направлений.

Так почему на Java мало HighLoad (с высокой нагрузкой) интернет-проектов?

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


 
DiamondShark ©   (2010-11-05 21:52) [1]


> Так почему на Java мало HighLoad (с высокой нагрузкой) интернет-
> проектов?

А это утверждение откуда взялось?


 
Дмитрий Тимохов   (2010-11-05 21:54) [2]


> DiamondShark ©   (05.11.10 21:52) [1]
>
>
> > Так почему на Java мало HighLoad (с высокой нагрузкой)
> интернет-
> > проектов?
>
> А это утверждение откуда взялось?


Назови примеры, я не знаю такие.

Я смотрю на известные - ВКонтакт, FaceBook, однокамерники ну и т.д.


 
картман ©   (2010-11-05 21:56) [3]


> Возможно NetBeans не дотягивает до Дельфи

Idea посмотри - за дельфи(как ИДЕ) стыдно станет, по крайней мере за 7-ку


 
DiamondShark ©   (2010-11-05 22:03) [4]


> Дмитрий Тимохов   (05.11.10 21:54) [2]
> Назови примеры,  я не знаю такие.

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

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


 
DVM ©   (2010-11-05 22:05) [5]


> Дмитрий Тимохов   (05.11.10 21:48) 

У Сбербанка есть Интернет бизнес-онлайн сайт. Нагрузка на него судя по всему высокая ибо он периодически жутко тормозит :) По всей видимости на джаве оно.


 
Дмитрий Тимохов   (2010-11-05 22:16) [6]


> DiamondShark ©   (05.11.10 22:03) [4]
>
>
> > Дмитрий Тимохов   (05.11.10 21:54) [2]
> > Назови примеры,  я не знаю такие.
>
> А я не знаю ни одного китайца. Почему в мире так мало китайцев?
>
> Кстати, спорим, что ты не назовёшь много знакомых китайцев.
>  Значит, моё утверждение, что в мире мало китайцев будем
> считать верным.
> :)
>


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

Я вот читаю периодически блог http://www.insight-it.ru/ (это не скрытый маркетинг, просто мне блог очень задуматься заставляет). Автор пишет о многих проектах. О десятках проектов. Все они на слуху. Он дает либо переводные статьи, либо свою стенограмму конференций с авторами проектов. Нет там Java.

Почему? Скажи, что думаешь по теме ))


 
Anatoly Podgoretsky ©   (2010-11-06 07:13) [7]

> Дмитрий Тимохов  (05.11.2010 22:16:06)  [6]

Вроде как AJAX достаточно распространен, да и ASP.NET его широко использует,
а буква J это от JAVA


 
icelex ©   (2010-11-06 10:31) [8]


> Anatoly Podgoretsky ©   (06.11.10 07:13) [7]

вапщето от джаваскрипт :)


 
Дмитрий Тимохов   (2010-11-06 12:14) [9]


> Anatoly Podgoretsky ©   (06.11.10 07:13) [7]
>
> > Дмитрий Тимохов  (05.11.2010 22:16:06)  [6]
>
> Вроде как AJAX достаточно распространен, да и ASP.NET его
> широко использует,
> а буква J это от JAVA


Дядя Толя, ты чего. J - это JavaScript.

JavaScript активно используется и на серверной и на клиентских сторонах. Это да.


 
Фокс Йовович   (2010-11-06 12:20) [10]


> ВКонтакт, FaceBook, однокамерники ну и т.д.

Разве они HighLoad? Никаких вычислений, отчетности, никакой ресурсоемкой обработки данных.


 
Дмитрий Тимохов   (2010-11-06 12:34) [11]


> Фокс Йовович   (06.11.10 12:20) [10]
>
>
> > ВКонтакт, FaceBook, однокамерники ну и т.д.
>
> Разве они HighLoad? Никаких вычислений, отчетности, никакой
> ресурсоемкой обработки данных.


Ну а почему нет? Десятки (сотни) тысяч запросов в секунду, гигабайты трафика в секунду, десятки тысяч серверов.

Я согласен, это не расчет ядерного взрыва на суперкластере. Но там JAVA и подавно нет. Там Фортран.


 
Anatoly Podgoretsky ©   (2010-11-06 12:37) [12]

> Дмитрий Тимохов  (06.11.2010 12:14:09)  [9]

А зачем нам Ява?


 
Фокс Йовович   (2010-11-06 12:48) [13]


> Ну а почему нет? Десятки (сотни) тысяч запросов в секунду,
>  гигабайты трафика в секунду, десятки тысяч серверов.


вот и ответ :-) Взяли готовый движок, допилили, установили на десятках тысяч серверов.


 
Фокс Йовович   (2010-11-06 12:51) [14]

А там, где вычисления и отчетность, например, в банковской сфере, там и Java. Пример - Websphere.


 
Дмитрий Тимохов   (2010-11-06 13:06) [15]


> А там, где вычисления и отчетность, например, в банковской
> сфере, там и Java. Пример - Websphere.


я понимаю.

видимо Java подходит для ответственных дел. Транзакции там распределенные, например. Опять же - Java есть язык разработки под многие корпоративные продукты. Упомянутая Websphere так же.

А вот в развлекательном вебе можно и без Java. PHP хороший выбор.

Так как-то надо понимать современные тенденции?


 
icelex ©   (2010-11-06 13:14) [16]

какааааааааая каша в голове!!!


 
Фокс Йовович   (2010-11-06 13:23) [17]

Вот тут интересно дядька рассказывает про HighLoad: http://video.yandex.ru/users/ysirotkin/view/2/


 
Дмитрий Тимохов   (2010-11-06 13:30) [18]


> icelex ©   (06.11.10 13:14) [16]
> какааааааааая каша в голове!!!


Ну вот так всегда - все бы на личности перейти.
Это же форум. А форум изначально это место где люди могут свободно
общаться. Если есть что полезное сказать или дать ссылку почитать, то дай.
А так, то что языком трепать.


> Фокс Йовович   (06.11.10 13:23) [17]
>
> Вот тут интересно дядька рассказывает про HighLoad: http:
> //video.yandex.ru/users/ysirotkin/view/2/


Пасиб, смотрю.


 
Дмитрий Тимохов   (2010-11-06 21:12) [19]


> Фокс Йовович   (06.11.10 13:23) [17]
>
> Вот тут интересно дядька рассказывает про HighLoad:
> http://video.yandex.ru/users/ysirotkin/view/2/


Благодарю за кино. В принципе все, что сказано мне знакомо. Но посмотреть полезно такие фильмы всегда - всегда приятно понимать, что у тебя не каша в голове )))

Как они задорно на восьмой минуте ржут над словом Борланд. Лемминги )))

Умиляет рассуждение о том, что отдавать данные в сокет, если на конце клиента модем, видите ли долго, поэтому кончаются потоки.

Ну почему у них нет асинхронной обработки запросов!!? Задаю вопрос не первый раз:
http://delphimaster.net/view/15-1288472674/.

Смешно просто - люди в HiLoad борются с системой, которая их заставляет пользоваться синхронными блокирующими сокетами.

ВОПРОС (конкретный) к знатокам, особенно к тем, у кого каши в голове нет (я имею в виду индивидума icelex): в java есть возможность использовать асинхронные сокеты, или нет, т.к. native уровень не предоставляет такую возможность?


 
asail ©   (2010-11-06 21:21) [20]


> Anatoly Podgoretsky ©   (06.11.10 12:37) [12]

Пральна... Нафик Яву - Курилы ж есть! :)


 
DVM ©   (2010-11-06 22:00) [21]


> Дмитрий Тимохов   (06.11.10 21:12) [19]


> в java есть возможность использовать асинхронные сокеты,
>  или нет, т.к. native уровень не предоставляет такую возможность?
>

Я не знаю, есть ли в JAVA асинхронные сокеты или нет, но если как ты говоришь, сама ОС не предоставляет такой возможности (Linux) то, очевидно, реализация этого в JAVA (если оно там есть) будет опираться на неблокирующие (в лучшем случае) сокеты или блокирующие и потоки (или их имитацию), что не лучшим образом отразится на производительности.

Теперь касательно асинхронности сокетов в Windows. Кто нибудь знает внутреннюю кухню этого дела? Как эта асинхронность устроена внутри системы?


 
Дмитрий Тимохов   (2010-11-06 22:32) [22]


> Теперь касательно асинхронности сокетов в Windows. Кто нибудь
> знает внутреннюю кухню этого дела? Как эта асинхронность
> устроена внутри системы?


А зачем тебе это знать?

Они дико производительные, это точно.

Один поток на фронтенде может может обрабатывать тысячи запросов в секунду.

Для примера http://rouse.drkb.ru/network.php#fwiocompletionpipe. Это Розыч написал на неблокирующих именованных каналах (концептуально те же сокеты) свой сервер - мы соревновались у кого толще. У Розыча по определению толще, но мой сервер схож по производительности. Главная особенность у нас обоих - один поток на фронтенде.

Вот автор Дмитрий Завалишин (автор http://video.yandex.ru/users/ysirotkin/view/2/) говорит, что HiLoad - это когда ты уперся во все мыслимые пределы одновременно. Полностью согласен, между прочим. Но есть ощущение, что юниксоиды и javисты борются с пределами, которые на самом деле не являются пределами. Т.е. не являются пределами при иной архитектуре ОС.

Поясню мысль. Я понял, что в Java 8000 потоков предел. У асинхронных подключений тоже есть предел - количество сокетов, я так понял, что это примерно 64000. Т.о. если использовать фронтенд с асинхронным вводом/выводом, то можно обрабатывать одновременно в 8 раз больше подключений, к тому же делать это без переключений контекста потоков.

Удивляют меня в общем даклады, которые рассказывают, как они классно реализовали обходной путь для несовершенства системы: блокирующие синхронные сокеты!


 
Игорь Шевченко ©   (2010-11-06 23:10) [23]

Дмитрий Тимохов   (06.11.10 22:32) [22]

Димыч, бабла ты на этом все равно не срудишь - все уже срублено до тебя :)


 
Дмитрий Тимохов   (2010-11-06 23:13) [24]

Игорь, ну интересно разобраться.
Что так много народу носится с линуксами и java, когда там даже асинхронного ввода вывода нет!


 
DiamondShark ©   (2010-11-06 23:18) [25]


> Теперь касательно асинхронности сокетов в Windows. Кто нибудь
> знает внутреннюю кухню этого дела? Как эта асинхронность
> устроена внутри системы?

А что такое асинхронные сокеты в Windows?

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

А что такое асинхронные сокеты -- не знаю.


 
Pavia ©   (2010-11-07 00:00) [26]


> Вот автор Дмитрий Завалишин (автор http://video.yandex.ru/users/ysirotkin/view/2/)

Пока лица не увидел сразу то и не догадался. Только я его советую не слушать. Фантазёр ещё тот.


 
Pavia ©   (2010-11-07 00:03) [27]


> А что такое асинхронные сокеты -- не знаю.

Используй метод дедукции.


 
DVM ©   (2010-11-07 00:06) [28]


> DiamondShark ©   (06.11.10 23:18) [25]

Термин весьма устоявшийся.
Везде применяется, вот например http://msdn.microsoft.com/en-us/library/5w7b7x5f.aspx

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


> Дмитрий Тимохов   (06.11.10 22:32) [22]

Судя по всему, асинхронные сокеты опираются на специальный системный пул потоков.


 
DiamondShark ©   (2010-11-07 00:13) [29]


> DVM ©   (07.11.10 00:06) [28]
>  вот например http://msdn.microsoft.com/en-us/library/5w7b7x5f.aspx

То, что там описано -- это CLR-обёртка над обычными блокирующими сокетами, обслуживаемыми отдельным потоком (из пула потоков).

А что такое асинхронные сокеты в Windows?


> Термин весьма устоявшийся.

Тем не менее, в документации по WS2 он не используется.


 
DiamondShark ©   (2010-11-07 00:24) [30]


> Поясню мысль. Я понял, что в Java 8000 потоков предел. У
> асинхронных подключений тоже есть предел - количество сокетов,
>  я так понял, что это примерно 64000.


"примерно 64000" (точнее, ровно 64К-1) -- это теоретически возможное количество TCP-портов (для IPv4). Я, почему-то, думаю, что TCP-стек сдохнет значительно раньше, чем будет установлено 64К одновременных подключений.
Хочешь -- проведи тест, мне влом. Но я буду только рад, если оказался неправ.

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


 
DVM ©   (2010-11-07 00:32) [31]


> DiamondShark ©   (07.11.10 00:13) [29]


> Тем не менее, в документации по WS2 он не используется.

Уже почти не используется. Раньше попадалось. Сама приставка WSA разве не означает Windows Socket Asynchronous? Сейчас чаще пишут что -то типа сокет в асинхронном режиме работы или сокет использующий асинхронный режим.


 
Pavia ©   (2010-11-07 00:42) [32]


> Что так много народу носится с линуксами и java, когда там
> даже асинхронного ввода вывода нет!

Тут вы заблуждаетесь.

И в компиляторах вы не разбираетесь.


 
DiamondShark ©   (2010-11-07 00:50) [33]


> Уже почти не используется. Раньше попадалось.

Ну, у меня поиск по локальному мсдну выдаёт только ссылки на .NET Framework: Networking.


> Сама приставка WSA разве не означает Windows Socket Asynchronous?

Да, вроде, Windows Socket API, ведь WSA -- это префикс для не-берклевских расширений.

В общем, получается: блокирующий сокет, обслуживаемый потоком из пула.
Может Дмитрий Тимохов скажет, что он имеет в виду.


 
Pavia ©   (2010-11-07 00:55) [34]


> "примерно 64000" (точнее, ровно 64К-1) -- это теоретически
> возможное количество TCP-портов (для IPv4). Я, почему-то,
>  думаю, что TCP-стек сдохнет значительно раньше, чем будет
> установлено 64К одновременных подключений.

Ты еще на IP забыл по множить.

Вообще соединений может быть гораздо больше.
Кому интересно советую раскопки начать отсюда.
http://www.wasm.ru/forum/viewtopic.php?id=22123
Дальше по ссылкам.


 
DVM ©   (2010-11-07 01:04) [35]

Мне вот другое интересно, ну подключим мы 10 000 клиентов, дальше что. С ними же обмен какой то надо вести. Я не представляю как это возможно.
Только если примитивное что-то совсем.


 
DiamondShark ©   (2010-11-07 01:16) [36]


> Pavia ©   (07.11.10 00:55) [34]

ВнушаетЪ.


 
Eraser ©   (2010-11-07 01:23) [37]

> [35] DVM ©   (07.11.10 01:04)

обычно с 99% соединений идет обмен только сообщениями вроде keep alive. реально одновременно работает весьма малое количество. пример - любые ICQ, Skype и т.д. подобные системы.


> [28] DVM ©   (07.11.10 00:06)


> Судя по всему, асинхронные сокеты опираются на специальный
> системный пул потоков.

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


 
Pavia ©   (2010-11-07 01:56) [38]


> Мне вот другое интересно, ну подключим мы 10 000 клиентов,
>  дальше что. С ними же обмен какой то надо вести. Я не представляю
> как это возможно.Только если примитивное что-то совсем.

Skype действуют по принципу пиринга. Есть кластер серверов. К которым может коннектится клиент, а дальше уже только keep alive. Или запрос IP:порт  для прямого соединения клиентов. Так что трафик не велик.

Вот в ICQ там нагрузка меньше. И балансировка несколько иначе происходит.

А вот если уже не хватает ресурсов, то задействуют кластеры. С балансировкой нагрузки.
Один из методов.
http://www.oszone.net/4187/Network_Load_Balancing

Гугл собственно как и ICQ использует службу DNS для раскидывания клиентов на разные сервера с разными IP.

И другие методы применяются.

10 000 * 1 500 байт=15 000 000 = 15 мбайт/с *8= 120МБит/с.


 
Anatoly Podgoretsky ©   (2010-11-07 09:01) [39]

> DVM  (07.11.2010 00:06:28)  [28]

асинхронные сокеты опираются на сообщения.


 
Anatoly Podgoretsky ©   (2010-11-07 09:03) [40]

> DiamondShark  (07.11.2010 00:24:30)  [30]

TCP-стек держит как минимум 32000 сокетов.


 
Anatoly Podgoretsky ©   (2010-11-07 09:09) [41]

> DVM  (07.11.2010 01:04:35)  [35]

Например выдача страницы.


 
Дмитрий Тимохов   (2010-11-07 11:28) [42]


> DVM ©   (07.11.10 01:04) [35]
>
> Мне вот другое интересно, ну подключим мы 10 000 клиентов,
>  дальше что. С ними же обмен какой то надо вести. Я не представляю
> как это возможно.
> Только если примитивное что-то совсем.


Фронтенды всегда примитивны. Дальше запросы уже можно раскидать на сервера, например, согласно выбранному алгоритму балансировки нагрузки.
Тут еще можно масштабироваться как тебе вздумается - хоть 1000 серверов ставь. А фронтенд должен принять все запросы.


> DiamondShark ©   (07.11.10 00:13) [29]
> > DVM ©   (07.11.10 00:06) [28]
> >  вот например http://msdn.microsoft.com/en-us/library/5w7b7x5f.
> aspx
>
> То, что там описано -- это CLR-обёртка над обычными блокирующими
> сокетами, обслуживаемыми отдельным потоком (из пула потоков).
>
> А что такое асинхронные сокеты в Windows?


Насчет асинхронности.

Под асинхронностью я понимаю расширение WSA, где события пересылаются посредством оконных сообщений. Т.е. есть один поток, который работает с сокетом, для каждого коннекта отсылается сообщение, параметром является структура идентифицирующая клиента. Код в событии либо читает, либо пишет - что нужно по протоколу. Надеюсь, понятно объяснил.

Конечно это не какая не обертка над обычными берклевскими сокетами. Вообще откуда ноги растут у асинхронных сокетов? Ноги растут еще с Windows 3.1. Если помнишь там не вытесняющая многозадачность была. Я не помню деталей, если честно, но там писать программы в которых много потоков должны обслуживать каждый свое соединение было сложно. Поэтому были придуманы асинхронные средства ввода/вывода. Т.е. прямо в одном потоке можно было делать весьма производительные сервера. Потом оказалось, что и в мире вытесняющей многозадачности, асинхронность хорошая штука - опять же из-за высокой производительности.

Это "неблокирующие сокеты" называется? Пусть, так, сути не меняет.


 
_Юрий   (2010-11-07 11:40) [43]


> Это "неблокирующие сокеты" называется? Пусть, так, сути
> не меняет.
>


Нет, неблокирующие и асинхронные - это разное
неблокирующие - это те, которые сразу управление возвращают,  асинхронные - то что ты выше описал.


 
DVM ©   (2010-11-07 11:55) [44]


> Anatoly Podgoretsky ©   (07.11.10 09:01) [39]
> > DVM  (07.11.2010 00:06:28)  [28]
>
> асинхронные сокеты опираются на сообщения.

необязательно на сообщения


 
Омлет ©   (2010-11-07 12:02) [45]

Amazon
http://highscalability.com/amazon-architecture
http://aws.amazon.com/ec2/

eBay
http://highscalability.com/ebay-architecture


 
DiamondShark ©   (2010-11-07 13:05) [46]


> Дмитрий Тимохов   (07.11.10 11:28) [42]
> Фронтенды всегда примитивны.
> <...>
> А фронтенд должен принять все запросы.

Вот тебе и ответ на сабж: раз фронтенд примитивен, но требует высокой производительности, то проще и полезнее всего его написать на нативном языке.
А уже на высокоуровневом языке писать прикладные модули, которые оперируют на существенно более высоком уровне абстракции.


> Под асинхронностью я понимаю расширение WSA, где события
> пересылаются посредством оконных сообщений.

Ну мы примерно так и дотелепатировали уже ;)


> Вообще откуда ноги растут у асинхронных сокетов? Ноги растут
> еще с Windows 3.1.

Не ноги, а костыли ;)))


> Я не помню деталей, если честно, но там писать программы
> в которых много потоков должны обслуживать каждый свое соединение
> было сложно.

Я бы даже сказал, что не сложно, а невозможно. По причине отсутствия понятия "поток" в принципе.


>  Потом оказалось, что и в мире вытесняющей многозадачности,
>  асинхронность хорошая штука - опять же из-за высокой производительности.

Эта "штука", которая с сообщениями, не может обладать высокой производительностью.
Во-первых, узким местом будет очередь и цикл выборки.
Во-вторых, эта фича оставлена только для обратной совместимости, и эмулируется (сюрприз!) таки фоновыми потоками. О том, что новые приложения не должны пользоваться этой фичей, а должны использовать новые возможности мильтитридинга говорит сама микрософт.

Там вот (Pavia ©   (07.11.10 00:55) [34]) ссылочка была, недалеко от которой находится интересная глава из книги
http://www.microsoft.com/mspress/books/sampchap/5726a.aspx
в которой есть интересная табличка.

Обрати внимание на строку WSA-AsyncSelect


 
Eraser ©   (2010-11-07 13:32) [47]

> [39] Anatoly Podgoretsky ©   (07.11.10 09:01)

уже лет 10 как в MS рекомундуют на сообщения не опираться.


 
Anatoly Podgoretsky ©   (2010-11-07 14:33) [48]

> DiamondShark  (07.11.2010 13:05:46)  [46]

Лучше пусть посмотрит на WonSock Direct или Socket Direct


 
Дмитрий Тимохов   (2010-11-07 14:50) [49]

Коллеги, благодарю за участие в ветке. Это же форум?! Очень качественно и, уверен, не только для меня полезно.

Что смогу из посоветованного обязательно почитаю.

Но все же я хочу заметить, что исходная тема была несколько не в том, чтобы обсуждать в деталях WinSock. Общую картину, достаточную для обсуждения, я неплохо знаю.

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

Вот у ВКонтакта 32 фронденд линуксовых сервера. Перед ними скорее всего некая желязяка стоит, которая поочередно на неком принципе распределяет запросы по этим серверам. Железяки такие, насколько я знаю, дорогие.

Это вопрос религии, что не делают подобные гетерогенные сети (фронт енд на винде, а основные сервера на линуксах)? Или как в рекламе, "а мужики то и не знают", что так можно (ведь, может же быть такое :) )?


 
Pavia ©   (2010-11-07 17:12) [50]


> Вот у ВКонтакта 32 фронденд линуксовых сервера. Перед ними
> скорее всего некая желязяка стоит, которая поочередно на
> неком принципе распределяет запросы по этим серверам. Железяки
> такие, насколько я знаю, дорогие.

Что вы опять придумываете. Нет такой железке. Вернее есть но к делу она не имеет отношение.

Есть служба DNS локальна в каждом городе. Которая по кругу дает разные IP.
Тем самым эти 32 сервера могут находится где угодно.
Но физически находятся в дата центре. К дата центру подведен широкий канал. И там стоит дорогая железка которая держит этот широкий канал. Но так как в дата-центре не один сайт держится то окупается запросто.

Так вот на этих 32 серверах стоит nginx.  Который выполняет вторую стадию балансировки нагрузки. Раскидывая по кластеру пользователей.

Почему на линуксе а не на виндоусе? Да по тому что линукс ничем не хуже.


 
DVM ©   (2010-11-07 17:30) [51]


> Почему на линуксе а не на виндоусе? Да по тому что линукс
> ничем не хуже.

Потому что ngnix уже есть готовый и те то делали систему вероятно с ним уже были знакомы. Это все проще чем писать заново что-то.


 
Дмитрий Тимохов   (2010-11-07 17:38) [52]


> Pavia ©   (07.11.10 17:12) [50]



> Что вы опять придумываете. Нет такой железке. Вернее есть
> но к делу она не имеет отношение.


Ну это было предположение.


> Есть служба DNS локальна в каждом городе. Которая по кругу
> дает разные IP.


Т.е. специально настроенная служба DNS, которая для www.vkontakte.ru дает последовательно (например) 111.111.111.0, 111.111.111.1 .. 111.111.111.31.
Так?

А как такая настройка называется? Это может расширение какое-то для DNS серверов?


 
Дмитрий Тимохов   (2010-11-07 22:34) [53]

Может продаст кто-то в Москве?
http://www.ozon.ru/context/detail/id/942504/


 
DVM ©   (2010-11-08 00:31) [54]


> Дмитрий Тимохов   (07.11.10 22:34) [53]

Она в отсканированном виде есть в сети. Понятно, что исключительно для ознакомления :)


 
Вариант   (2010-11-08 08:06) [55]


> Дмитрий Тимохов   (06.11.10 21:12) [19]


> Ну почему у них нет асинхронной обработки запросов!!? Задаю
> вопрос не первый раз:

Тебе уже отвечали еще в той ветке -есть select и есть неблокирующие сокеты, есть еще Poll и ePoll. И кстати в Java c 1.5 (могу ошибиться номером версии) поддерживает неблокирующий ввод вывод - java.nio.channels. Чем и насколько они хуже асинхронных сокетов в Windows?


 
Pseudoslav Miroedov   (2010-11-08 09:51) [56]

Дмитрий Тимохов

>неблокирующие сокеты

Если речь идет о Java для веб, то это автоматически означает сервер приложений. А сервер приложений (плюс веб фреймворк, плюс фреймворк данных, плюс dependency injection и иже с ними) это такой уровень абстракций на уровне абстракций, что говорить про неблокирующие сокеты уже не столько смысла, сколько, например, в случае простого веб-сервера с CGI. Хотя, кластеризация, load balancing, параллелизм из коробки наличествуют, и используются в основном в энтерпрайзе для приложений mid-уровня, кроме того, фреймворки позволяют делать довольно красивую и бизнес-логику и фронтенды со всеми прелестями ООП и высокой повторной используемостью кода.


 
Дмитрий Тимохов   (2010-11-08 10:09) [57]


> Pseudoslav Miroedov   (08.11.10 09:51) [56]


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


> DVM ©   (08.11.10 00:31) [54]
> > Дмитрий Тимохов   (07.11.10 22:34) [53]
> Она в отсканированном виде есть в сети. Понятно, что исключительно
> для ознакомления :)


Да у меня есть где-то. Но такие книги в бумаге надо иметь. Своего рода книжный фетиш ))

Предложение в силе. Может у кого завялялось? Помню у Сереги Маслова была (он фотку выкладывал своей книжной полки) )))  Ну само-собой у Розыча... Может у кого есть, кому не нужно?


 
DiamondShark ©   (2010-11-08 10:44) [58]


> Я в общем укрепился во мнении, что все же Java больше для
> интерпрайза, а не не интертеймента.

А в чём разница?
На Яве пишут высокоуровневую логику, где уровня сокетов вообще не видно под толстым-толстым слоем шоколада. При чём здесь интерпрайз или интертеймент?


 
Дмитрий Тимохов   (2010-11-08 11:12) [59]


> При чём здесь интерпрайз или интертеймент?


Слуш, ты мне домик не разрушай. )))
У меня все стройненько и понятненько )

У меня была (да и сейчас есть) мечта сделать экономическую mmog.

Мне хороший приятель предлагал ее сделать на Java.
Но у меня возникли сомнения, что это не лучший инструмент для создания подобных программ. Поизучав практику использования Java для создания онлайн игр, я пришел к выводу, что насчет излишеств Java как инструмента для данной задачи я пожалуй прав. Инструмент хороший, но слишком "крутой" что-ли для онлайн игр.

На том истою пока )))


 
Sergey Masloff   (2010-11-08 11:26) [60]

Дмитрий Тимохов   (08.11.10 10:09) [57]
Дим я давно хотел подарить ее тебе, отложил даже но куда - не помню, если найдется - сразу позвоню и она твоя. P.S. на полке сейчас ее нет - смотрел ;-)


 
Дмитрий Тимохов   (2010-11-08 11:32) [61]


> Sergey Masloff   (08.11.10 11:26) [60]
>
> Дмитрий Тимохов   (08.11.10 10:09) [57]
> Дим я давно хотел подарить ее тебе, отложил даже но куда
> - не помню, если найдется - сразу позвоню и она твоя. P.
> S. на полке сейчас ее нет - смотрел ;-)


Сергей, только ты подпиши ее ))
С радостью возьму. Телефон у тебя есть вроде.
Благодарю!!!


 
DiamondShark ©   (2010-11-08 11:37) [62]


> У меня была (да и сейчас есть) мечта сделать экономическую
> mmog.

Если тебе нравится Ява, если твой приятель хорошо владеет Явой, то почему бы не сделать её на Яве? Тому нет никаких объективных препятствий.

Если тебя тошнит от Явы, если у вас там никто ни в зуб ногой в Яве, то почему бы не послать Яву в дупло? На то не требуется никаких объективных обоснований.

Где-то так ;)


 
Дмитрий Тимохов   (2010-11-08 12:56) [63]


>
> Если тебе нравится Ява, если твой приятель хорошо владеет
> Явой, то почему бы не сделать её на Яве? Тому нет никаких
> объективных препятствий.


Там же инвестироваться надо. Т.е. не забесплатно.

Я побаиваюсь подсесть на то, что замучаюсь потом с поддержкой.

А язык мне нравится, очень нравится.

Ладно, пошел с тараканами разбираться своими сам. )))


 
Anatoly Podgoretsky ©   (2010-11-08 13:13) [64]

> Дмитрий Тимохов  (08.11.2010 12:56:03)  [63]

Тапок бери.


 
Mystic ©   (2010-11-08 13:21) [65]

Главным образом потому, что перечисленные тобою проекты выходят из стартапов, где вложения на начальной стадии минимальны, и непонятно, что будет в результате :)


 
DVM ©   (2010-11-08 13:38) [66]


> Дмитрий Тимохов   (07.11.10 22:34) [53]
> Может продаст кто-то в Москве?
> http://www.ozon.ru/context/detail/id/942504/

к той книге вот эта еще вероятно будет хорошим подспорьем:
http://www.piter.com/book.phtml?978531800535&at=exc&n=0


 
Дмитрий Тимохов   (2010-11-08 23:37) [67]


> Pavia ©   (07.11.10 17:12) [50]


Вчерне прочел Стивенсона в части DNS.
Что-то я не понял, как штатный DNS сервер может выдавать разные IP одного имени домена.
Поясни, если можешь, пожалуйста.


 
Eraser ©   (2010-11-09 00:26) [68]

> [67] Дмитрий Тимохов   (08.11.10 23:37)

а почему не может то? он что хошь выдать может, было бы желание )


 
DVM ©   (2010-11-09 00:47) [69]


> Дмитрий Тимохов   (08.11.10 23:37) [67]

Балансировка DNS + google

http://project.net.ru/others/article9/gl4_7.html


 
Дмитрий Тимохов   (2010-11-09 01:27) [70]


> Eraser ©   (09.11.10 00:26) [68]
>
> > [67] Дмитрий Тимохов   (08.11.10 23:37)
>
> а почему не может то? он что хошь выдать может, было бы
> желание )
>


Ну, видимо, такая балансировка на основе DNS все же побочное явление, а не as design. Собственно, в ссылке http://project.net.ru/others/article9/gl4_7.html и говорится, что такая балансировка есть особенность сервера BIND. Поэтому, видимо, Стевенс и не излагает таких тонкостей.


> DVM ©   (09.11.10 00:47) [69]
> > Дмитрий Тимохов   (08.11.10 23:37) [67]
> Балансировка DNS + google
> http://project.net.ru/others/article9/gl4_7.html


Ага, благодарю. Все же я был прав, говоря, что такую балансировку можно делать на основе железяки (дорогостоящей, CISCO, например) на основе TCP протокола.


 
Anatoly Podgoretsky ©   (2010-11-09 09:36) [71]

> Дмитрий Тимохов  (08.11.2010 23:37:07)  [67]

Robin Round - штатная возможность ДНС

host.domain.ru    IP1
host.domain.ru    IP2
host.domain.ru    IP3


 
Alx2 ©   (2010-11-09 09:40) [72]

Наш Java-проект www.ecwid.com - загрузка нехилая.


 
Дмитрий Тимохов   (2010-11-09 09:42) [73]


> Anatoly Podgoretsky ©   (09.11.10 09:36) [71]
>
> > Дмитрий Тимохов  (08.11.2010 23:37:07)  [67]
>
> Robin Round - штатная возможность ДНС
>
> host.domain.ru    IP1
> host.domain.ru    IP2
> host.domain.ru    IP3


Ага, пасиб, буду изучать.


 
Дмитрий Тимохов   (2010-11-09 09:55) [74]


> Alx2 ©   (09.11.10 09:40) [72]
>
> Наш Java-проект www.ecwid.com - загрузка нехилая.

да вы издеваетесь - iPhone 3Gs за  $199 (http://www.ecwid.com/demo-frontend.html#ecwid:category=3003&mode=category&offset=0&sort=normal)

$-)

Дайте мне десяток!

Ну это я понял для заграницы? Все платежные средства не наши.


 
Anatoly Podgoretsky ©   (2010-11-09 09:58) [75]

> Дмитрий Тимохов  (09.11.2010 09:42:13)  [73]

Это должен поддерживать ДНС, не все еще поддерживают. Но это самый дешевый,
самый малозатратный метод из коробки.
Только точное название Round Robin


 
Alx2 ©   (2010-11-09 10:02) [76]

>Дмитрий Тимохов   (09.11.10 09:55) [74]

>Дайте мне десяток!
:))

>Ну это я понял для заграницы? Все платежные средства не наши.

На российский рынок тоже есть заточка (и продолжает затачиваться:) ): http://www.ecwid.ru


 
Kostafey ©   (2010-11-09 13:51) [77]


> Дмитрий Тимохов   (05.11.10 21:48) 

> а не изучить ли мне вот эту классную технологию, сделать
> эту классную штуку и не срубить на этом определенное количество
> денег

1C


> Однако, посмотрев на разные HighLoad интернет-проекты я
> не вижу вообще применения Java для их создания! Почему?

Зайдя на некий сайт вы не обязаны узнать, что серверная чать крутиться на java. Потом, в интранете ее много.


> 1. Это же компилятор, т.е. по идее быстрее, чем обычный
> скриптовый PHP

Говоря и java vs php как о том, что у одного есть быйт-компиляция а у другого нет... ну ближайший аналог - сравнивать вертолет и бабочку, рассуждая что у одной есть усики, а у вертолета нет. Отличий тьма.


> Это все же язык с хорошими IDE. Возможно NetBeans не дотягивает
> до Дельфи, но я этот NetBeans мучал сильно - эта зараза
> ни разу не упала и ни разу

Да там дыр тьма! Меня больше всего развлекали сообшения их баг-трекера, типа: "поздравляем! вы 1541-й пользователь, сообщивший об этом баге!" Класс.

Я немного обобщу впечателения о работе с java. Веб-фреймворкойв действительно есть, есть и хорошо документированные. Но не всякий веб-сервер тянет всякий фреймворк при тех же самых бубноплясках. Для JEE в целом принцип "Write Once Run Everywhere" соблюдается довольно слабо (читай не соблюдается).
Для JSE с переносимостью проблем действительно мало, однако писать полноценные GUI - приложения под десктоп, используюя открытые средства разработки почти невозможно (только не нужно говрить что в нетбинсе тоже можно баттоны на форму кидать - намаялся). Так что или ручками медитируем с лэйаут менеджерами (так я делал) или смотрим платные продукты (так я не делал).
Работа с БД, как правило, радует. Библиотека для джавы крайне богатая. Можно найти готовые решения под очень многие задачи.
Сам язык (java) оставляет двойственное впечатление. С одной стороны, кажется, там сделано все для повешения надежности кода, с другой стороны, язык добольно жесткий, топорный (нет функций, нет анонимных массивов, передача типа как объкета - можно, но муторно и т.д.). Да, можно использовать java и только как платформу, не прибегая к самому языку (см scala, clojure, jython, jruby, groovy, kava, etc).
Про производительность... Сановцы в свое время много копий поломали доказывая и придумывая искусственные примеры того, что java в xyz раз выполняется быстрее, чем приложения написанные на C (или иных нативных приложений). Если пример не искусственный, то это конечно не так, однако, от java какой-то безумной производительности требуют редко, а для своих задач ее производительности, как правило, более чем достаточно. Вообще, по сравнению с другими системами байт-компиляции (не считая .net, конечно, но это отдельная история, заточенная под единственную платформу) java многих опережает. С масштабируемостью дела обстоят еще лучше.
Резюме. Пользоваться java можно, иногда и нужно, но фанатеть от нее не стоит ;).


 
Anatoly Podgoretsky ©   (2010-11-09 13:57) [78]

> Kostafey  (09.11.2010 13:51:17)  [77]

Просто ты не видел вертолета с усами.


 
Alex Konshin ©   (2010-11-09 14:12) [79]

Батоны на форму кидать теперь гораздо лучше в Eclipse c установленым WindowsBuilder. Netbeans на дух не перевариваю, особенно после того, как попытался сделать что-нибудь сложнее Hello world на JavaFX.


 
tesseract ©   (2010-11-09 14:19) [80]


> Дайте мне десяток!


См Ebay.com :-)


 
Kostafey ©   (2010-11-09 14:22) [81]


> Alex Konshin ©   (09.11.10 14:12) [79]

> Батоны на форму кидать теперь гораздо лучше в Eclipse c
> установленым WindowsBuilder.

WindowBuilder Pro is now offered as a free download by Google.
Надо же, он теперь бесплатный?! Надо глянуть.
Я долго ждал пока допилят VE, он для старых еклипсов был довольно неплох, но по-моему его опять забросили...


 
Kostafey ©   (2010-11-09 14:24) [82]


> Anatoly Podgoretsky ©   (09.11.10 13:57) [78]
> > Kostafey  (09.11.2010 13:51:17)  [77]Просто ты не видел
> вертолета с усами.

Да я и без усов давно уже не видел ;))


 
Mystic ©   (2010-11-09 14:27) [83]


> Наш Java-проект www.ecwid.com - загрузка нехилая.


А в цифрах?


 
Anatoly Podgoretsky ©   (2010-11-09 14:36) [84]


> Да я и без усов давно уже не видел ;))

А пытаешься говорить о вкусе устриц, которых ты тоже не ел.


 
Kostafey ©   (2010-11-09 16:21) [85]


> Anatoly Podgoretsky ©   (09.11.10 14:36) [84]
> > Да я и без усов давно уже не видел ;))
>А пытаешься говорить о вкусе устриц, которых ты тоже не ел.

Не правда, этих "устиц" я ел %).
На php тоже писал, только давно, конечно.


 
Alx2 ©   (2010-11-09 16:40) [86]

>Mystic ©   (09.11.10 14:27) [83]

>А в цифрах?

Сорри. Насколько именно серьезная нагрузка я сказать не могу. Сейчас на себе тянет около 30 000 магазинов.


 
iZEN   (2010-11-10 10:07) [87]


> Дмитрий Тимохов   (06.11.10 21:12) [19]
> ВОПРОС (конкретный) к знатокам, особенно к тем, у кого каши
> в голове нет (я имею в виду индивидума icelex): в java есть
> возможность использовать асинхронные сокеты, или нет, т.
> к. native уровень не предоставляет такую возможность?


См. Java NIO API, который появился в Java2 1.4.
http://download.oracle.com/javase/1.4.2/docs/api/java/nio/package-summary.html
В частности, классы java.nio.channels.ServerSocketChannel и java.nio.channels.SocketChannel.

Работает на любых операционных системах, где вообще заводится Java SE.


 
Дмитрий Тимохов   (2010-11-10 13:15) [88]


> iZEN   (10.11.10 10:07) [87]


Скажи, а как это может эффективно жить, если в самом Linux нет асинхронных сокетов? Может это эмуляция какая-то?


> Anatoly Podgoretsky ©   (09.11.10 09:36) [71]
>
> > Дмитрий Тимохов  (08.11.2010 23:37:07)  [67]
>
> Robin Round - штатная возможность ДНС
>
> host.domain.ru    IP1
> host.domain.ru    IP2
> host.domain.ru    IP3


Изучил DNS. Да, интересно. Все так и есть. Благодарю.


 
Вариант   (2010-11-10 15:00) [89]


> Дмитрий Тимохов   (10.11.10 13:15) [88]


Почитай


> DVM ©   (08.11.10 13:38) [66]


> к той книге вот эта еще вероятно будет хорошим подспорьем:
>
> http://www.piter.com/book.phtml?978531800535&at=exc&n=0
>


Глава 6  - интересно, впрочем и вся книга интересна


 
iZEN   (2010-11-10 15:17) [90]


> Дмитрий Тимохов   (10.11.10 13:15) [88]
>
> Скажи, а как это может эффективно жить, если в самом Linux
> нет асинхронных сокетов? Может это эмуляция какая-то?


Правда что ли? А я и не знал.

В Java не составляет труда эмулировать средствами самого языка любые асинхронные взаимодействия и обрабатывать внезапно случающиеся события, не прерывая исполнения основной программы. Для этого есть нити (Thread"s) и механизм поддержки параллельного выполнения кода (мониторы объектов).


 
Дмитрий Тимохов   (2010-11-10 15:20) [91]


> Вариант   (10.11.10 15:00) [89]
> > http://www.piter.com/book.phtml?978531800535&at=exc&n=0
> Глава 6  - интересно, впрочем и вся книга интересна


закачал 3-е издание. благодарю, буду изучать.


 
DiamondShark ©   (2010-11-10 15:28) [92]


> В Java не составляет труда эмулировать средствами самого
> языка любые асинхронные взаимодействия и обрабатывать внезапно
> случающиеся события, не прерывая исполнения основной программы.
>  Для этого есть нити (Thread"s)

Тут человек как раз пытается уйти от ситуации "на каждый сокет по потоку".


 
iZEN   (2010-11-10 15:44) [93]


> DiamondShark ©   (10.11.10 15:28) [92]
>
> >  Для этого есть нити (Thread"s)
>
> Тут человек как раз пытается уйти от ситуации "на каждый
> сокет по потоку".


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

Есть паттерны проектирования: Thread pools и Work queues, которые могут совмещаться.
http://www.ibm.com/developerworks/java/library/j-jtp0730.html?Open&t=grj,l=904,p=queues


 
Eraser ©   (2010-11-10 16:59) [94]

> [93] iZEN   (10.11.10 15:44)


> Да давно уже не пишут по одному треду на сокет

хотя это крайне удобно. думаю в будущем к этому и прийдет все в очередной раз.


 
DiamondShark ©   (2010-11-10 17:41) [95]


> Eraser ©   (10.11.10 16:59) [94]
> хотя это крайне удобно.

Это крайне плохо масштабируемо.


 
Eraser ©   (2010-11-10 18:08) [96]

> [95] DiamondShark ©   (10.11.10 17:41)

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


 
DiamondShark ©   (2010-11-10 19:41) [97]


> Eraser ©   (10.11.10 18:08) [96]

Бр-рр... Минут пять фтыкал во фразу. Нифига не понял. Зочем это? Как это?

Если что и стоит разрабатывать, так это исполняющие среды (в пределе, конечно, целая ОС) и языки с автоматическим и легковесным параллелизмом. Типа, сделал программист блокирующий вызов, а у него -- фигак! -- и пошёл исполняться дальше код, инвариантный к этому вызову. А потом в точке, где появилась зависимость -- хопа! -- блокировка, и после сихронизации инварианты опять по параллельным веткам.


 
_iZEN   (2010-12-03 15:56) [98]

Новость проскочила
Джеймс Гослинг об Apple, Apache, Google, Oracle и о будущем Java
Страничка с видео: http://marakana.com/forums/java/general/205.html

Тезисы: http://www.linux.org.ru/jump-message.jsp?msgid=5635934&cid=5636273


 
DiamondShark ©   (2010-12-03 17:38) [99]


> _iZEN   (03.12.10 15:56) [98]
> Новость проскочила



> .NET (CLR) — плохо проработанный клон Java.

РжалЪ.


> Поддерживать Java на ОС компании Apple без помощи Apple
> проблематично: необходим доступ к секретным API

Так вот ты какая, кросплатформенность.


 
_iZEN   (2010-12-04 00:54) [100]


> DiamondShark ©   (03.12.10 17:38) [99]
> > .NET (CLR) — плохо проработанный клон Java.
>
> РжалЪ.

Ну да. А что не так? После судебного разбирательства с Sun, после которого MS должна была выплатить 20 млн. $ за ущерб, причинённый торговой марке "JAVA" собственными несовместимыми "расширениями", у Microsoft не оставалось другого выхода, кроме как переизобрести Java. Благо, что будущий архитектор .NET — Андреас Хайлсберг — уже имел опыт работы с MS JVM, под которую клепал библиотечку Windows Foundation Classes (WFC) с нативными вызовами Win32 API назло Sun. ;)


 
DiamondShark ©   (2010-12-05 01:13) [101]


> Ну да. А что не так?

Кроме знаков препинания - всё.


 
Какой кыашмар   (2010-12-06 06:09) [102]


> А что такое асинхронные сокеты в Windows?


Эт неблокирующй сокет, к которому прикручен механизм уведомления о комплешин операций. Фишка в том, что реализовано оно в ring0, отсель минимальный оверхед.


> Поэтому, если количество одновременных соединений реально
> приближается к 8000

8000 фигня. Даж на клиентской оси сервак на IOCP легко держит овер 30k, мож и больше, лиш бы non-paged пула хватило. Но нать в реестре подкрутить, штоб зарезервированный диапазон портов поджать.


> Под асинхронностью я понимаю расширение WSA, где события
> пересылаются посредством оконных сообщений.

Сообщения - одно из средств доставки, самое оверхедное. В ring0 событие порождается прерыванием и либо ставит в messge queue, либо взводит event, либо извещает IOCP.

Под виндой для сервака выбор IOCP - вне конкуренции.

Про никсов для знакомства
http://groups.google.com/group/fido7.ru.unix.prog/msg/95dfba39d50be659?
http://www.kegel.com/c10k.html


 
Какой кыашмар   (2010-12-06 06:23) [103]


> Это крайне плохо масштабируемо.

Масштабируемо это таки крайне хорошо. Само по себе. Ежель не угробить параллелизм локами то фактически линейно. Тока толку с того мало, для хорошей производительности нать по ядру на каждые 20-30 потоков плюс памяти немеряно.


 
Какой кыашмар   (2010-12-06 06:30) [104]


> Судя по всему, асинхронные сокеты опираются на специальный
> системный пул потоков.


Нетуть там никакого пула и не нужен. Про IOCP у Руссиновича хорошо расписано.


 
Дмитрий Тимохов   (2010-12-06 08:51) [105]


> Какой кыашмар   (06.12.10 06:09) [102]


> Про никсов для знакомства
> http://groups.google.com/group/fido7.ru.unix.prog/msg/95dfba39d50be659?


Очень познавательно. Благодарю за ссылку!


 
_iZEN   (2010-12-10 14:10) [106]

Фонд Apache вышел из комитета JCP, управляющего развитием Java
http://www.opennet.ru/opennews/art.shtml?num=28948

Начинается глобальный делёж и опроприетаривание Java. Пользователи и программисты OpenJDK теперь будут в роли подопытных кроликов, на них будут ставить опыты. Полезные фичи Oracle будет вносить в проприетарный Oracle JDK, а собственные разработки попридержат в блобах и не дадут распространиться в OpenJDK.


 
DiamondShark ©   (2010-12-10 14:40) [107]


> Начинается глобальный делёж и опроприетаривание Java.

"Яву, Яву взял я нахаляву."


 
Anatoly Podgoretsky ©   (2010-12-10 16:32) [108]

> DiamondShark  (10.12.2010 14:40:47)  [107]

А скоро будешь платить, на крючок то посадили.


 
DiamondShark ©   (2010-12-10 16:40) [109]


> Anatoly Podgoretsky ©   (10.12.10 16:32) [108]

Ненене, Дэвид Блэн.
Я заранее сел на другой крючок. ;)


 
Anatoly Podgoretsky ©   (2010-12-10 16:59) [110]

> DiamondShark  (10.12.2010 16:40:49)  [109]

Неужели на НЕТ


 
DiamondShark ©   (2010-12-10 17:41) [111]


> Anatoly Podgoretsky ©   (10.12.10 16:59) [110]

Аз грешен


 
tesseract ©   (2010-12-10 19:16) [112]


> А скоро будешь платить, на крючок то посадили.


Гугл выпучил(да выпучил) свою яву с синтаксическими сокращениями. Так что не вся так просто.


> Я заранее сел на другой крючок. ;)


mono почти как .Net, но бесплатно.


 
Anatoly Podgoretsky ©   (2010-12-10 19:44) [113]

> tesseract  (10.12.2010 19:16:52)  [112]

Это НЕТ и есть, другое название.


 
DiamondShark ©   (2010-12-10 23:37) [114]


> mono почти как .Net, но бесплатно.

А .Net платно?


 
_iZEN   (2010-12-11 23:39) [115]

Если к Java-технологиям приписать слева букву N, то получатся .NET-технологии: Nant, Nhibernate и т.д. :))


 
_iZEN   (2010-12-14 09:30) [116]

Редвуд Шорс, Купертино, Калифорния, 12 ноября 2010

Сегодня Oracle и Apple объявили об открытии проекта по разработке OpenJDK для Mac OS® X. Apple будет создавать большинство ключевых компонентов, инструментов и технологий, которые необходимы для реализации Java SE 7 на Mac OS X, включая 32-битную и 64-битную виртуальную мащину на основе HotSpot, библиотеки классов, сетевой стек и основу для нового графического клиента. OpenJDK будет доступна разработчикам свободного программного обеспечения, так что они смогут получить доступ к проекту и участвовать в нем.

«Мы рады приветствовать Apple как важного участника в развивающемся сообществе OpenJDK» — сказал Хэйзен Ризви (Hasan Rizvi), вице-президент Oracle по разработке. «Доступность Java на Mac OS X играет ключевую роль в кроссплатформменной поддержке платформы Java. Сообщество разработчиков Java может вздохнуть спокойно, будучи уверенным что новейшая среда Java и в будущем продолжит быть доступной для Mac OS X. Если вспомнить сделанное месяц назад заявление про то, что IBM тоже подключилась к OpenJDK, тепепь проект подхвачен тремя крупнейшими компаниями в мире разработки ПО.»

«Нам нравится работать вместе с Oracle, и перестраховаться что на Маке всегда будет отличная Java», — сказал Бертран Серлет (Bertrand Serlet), вице-президент Apple по разработке ПО. «Если наши пользователи захотят постоянно иметь в наличии самую новую и безопасную версию Java, то лучший способ для этого — взять ее напрямую у Oracle.»

Также в Apple подтверили, что они продолжат предоставлять Java SE 6 как для Snow Leopard®, так и для грядущего релиза Mac OS X Lion. Java SE 7 и будущие версии Java для Mac OS X будут предоставляться уже самой Oracle.

Обсуждение новости: http://www.linux.org.ru/forum/talks/5676993

А вот с Mono дела неважные: http://www.opennet.ru/opennews/art.shtml?num=28984


 
Anatoly Podgoretsky ©   (2010-12-14 09:42) [117]

> _iZEN  (14.12.2010 09:30:56)  [116]

Красио излагает зараза.


 
Marser ©   (2010-12-14 14:16) [118]

Я в лучших традициях ЮЗ от нечего делать за день изучил PHP, за другой JavaScript, и тут же написал обрезку демотиваторов. Так оказалось, что альфа-версия моей поделки это вещь в себе, потому что на бесплатных хостингах нет одной необходимой фичи :-)

Да, и я уже два года в .NET, там и обосновался, с теплотой вспоминая родную Делфю :)


 
Marser ©   (2010-12-14 14:24) [119]


> DiamondShark ©   (10.12.10 23:37) [114]
>
>
> > mono почти как .Net, но бесплатно.
>
> А .Net платно?

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

А Java... Она такая... Такая большая, что лучше я в ASP.NET въеду поглубже, а с её сетевыми технологиями просто познакомлюсь.


 
Чоппер   (2010-12-14 15:05) [120]

Кто о чем, а Marser, как всегда, о себе.


 
Marser ©   (2010-12-14 16:55) [121]


> Чоппер   (14.12.10 15:05) [120]
>
> Кто о чем, а Marser, как всегда, о себе.

Кстати да :-)
Только я как всегда знаю - если за моими постами идёт ник анонимуса - значит, кто-то безликий решил написать что-то эдакое. Уже лет пять наблюдаю :-)


 
DiamondShark ©   (2010-12-14 18:03) [122]


> Мне сегодня юное поколение доказывало, что PHP этот - адов
> ацтой, только потому что там много надо делать ручками :
> -)))

Это да. Юное поколение такое юное.
PHP -- адов ацтой вовсе не потому что там много надо делать ручками.


> Естественно, при таком подходе бесплатность компилятора
> и фреймворка никого не интересует, если за IDE надо платить.

Так .Net IDE есть и бесплатные.



Страницы: 1 2 3 4 вся ветка

Текущий архив: 2011.03.27;
Скачать: CL | DM;

Наверх




Память: 0.86 MB
Время: 0.011 c
2-1293339350
adminmax
2010-12-26 07:55
2011.03.27
ошибка при компиляции


1-1250807356
Ruzzz
2009-08-21 02:29
2011.03.27
Как проверить успешно ли начался "процесс" в другом потоке?


1-1250345651
x-rusik
2009-08-15 18:14
2011.03.27
Фокусировка на DropDownList e


6-1235915557
Alik
2009-03-01 16:52
2011.03.27
Обработчик прихода данных для TIdTCPClient


15-1292161314
stas
2010-12-12 16:41
2011.03.27
Inno setup и манифест