ACE в России

ACE в России


ЖурналСтатьиФорумИнфо

Журнал

27 апр 2007

Я очень долго не решался приобрести второй том серии "Программирование сетевых приложений на C++", и как оказалось ошибался...

Прочитав десять раз от корки и до корки первый том я был уверен, что вся прелесть этого промежуточного слоя в ОС-независимых повседневных, для сетевых программистов, классов (очереди, создание потоков, процессов, управление демультиплексированием). Но оказывается мудрость создателя АСЕ - Д. Шмидта на этом не исчерпалась, поэтому он решил реализовать все то, что раньше многократно делалось другими разработчиками.

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

Одним оператором new вы можете создать объект, который сам выбрет стратегию демультиплексирования в зависимости от ОС, для которой компилировалась АСЕ (select, poll, WaitForMultipleObject...) и будет обрабатывать события пользуясь вашими hook-методами, вы можете создать объект, который сам возьмет на себя проблемы организации многопоточной обработки, работы с очередью, лишь потребовав от вас функцию обработки задачи, можете создавать объект для работы с асинхронным вводом/выводом и АСЕ сама разберется когда работать с Completiton Ports, а если подобной опции у ОС нету, то предоставит вариант ее эмуляции...

Вобщем такой вкусной начинки я никак не ожидал. Осталось только разложить кирпичики и получить дом.

Программирование сетевых приложений на С++. Том 1. Профессиональный подход к проблеме сложности: ACE и паттерны

Программирование сетевых приложений на С++. Том 2. Систематическое повторное использование: ACE и каркасы

Ссылка

30 июля 2006

Архив с библиотекой, тестами и примерами можно скачать отсюда.

Если вы дружите с английским, то порядок компиляции найдете здесь: $ACE_ROOT/ACE-INSTALL.html или $ACE_ROOT/ACE-INSTALL (текстовый формат)

Что значит $ACE_ROOT? $ACE_ROOT - корневой каталог дистрибутива (по умолчанию ACE_wrappers). Например если вы распаковали архив в папку D:/prog/ , то $ACE_ROOT будет тождествено равен D:/prog/ACE_wrappers/

Ссылка

29 июля 2006

Недавно я купил книгу "Программирование сетевых приложений на C++. ACE и паттерны" Д.Шмидт, С. Хьюстон, в которой узнал об ACE.

ACE - ADAPTIVE Communication Enviroment, содержит ~240000 строк кода на C++ и ~500 классов. ACE является открытым ПО с открытыми исходными текстами.

ACE по сути это помежуточный слой, который выполняет всю сложную обработку ошибок в сетевом программировании. ACE не зависит от языка программирования
и операционной системы
(SunOS 4.x, Solaris, SGIIRIX, HP-UX Digital UNIX, AIX DG/UX SCO OpenServer, UnixWare, NetBSD, FreeBSD, VxWorks, OS/9, Chorus, LynxOS, Pharlap TNT, QNX Neutrino RTP, RTEMS, pSoS, OpenVMS, MVS OpenEdition, Tandem NonStop-UX, Cray UNICOS, Windows [all], WinCE, Redhat Deblan, SuSE Linux, Macintosh OS X).

ACE сделана таким образом, что бы можно было не заморачиваться на особенностях языков и ОС. Эта среда все сделает за вас, вам остается лишь реализовывать структуру вашего сервера, не обращая внимания на работу ОС с сетевой API...

К сожалению ни 1 ресурса по ACE в России нет. С одной стороны широчайшая англоязычная документация помогает, с другой родной язык помогает более комфортно ориентироваться... Поэтому я хотел бы это сообщество посвятить ACE в России.

Ссылка