Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.03.27;
Скачать: [xml.tar.bz2];

Вниз

Почему 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.84 MB
Время: 0.007 c
15-1291975147
zlobniy
2010-12-10 12:59
2011.03.27
свой borderstyle окна


3-1255678695
Lanu
2009-10-16 11:38
2011.03.27
Подключение ODAC


2-1293995216
mefodiy
2011-01-02 22:06
2011.03.27
Выполнение внешней программы из хранимой процедуры MySQL


3-1255946557
Ulugbek
2009-10-19 14:02
2011.03.27
Помогите оптимизировать View .. Firebird 2


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский