Google Analytics

среда, 20 июля 2011 г.

Особенности паттернов параллельного программирования для бизнес приложений [PoEAA]

Параллельное программирование давно уже перестало быть уделом матёрых гуру. Трудно представить современное приложение, реализация которого игнорировала бы этот вопрос. Аналогично трудно представить прикладного программиста, который бы не держал на вооружении паттернов корпоративных приложений от Фаулера с компанией. Собственно об особенностях присущих этим паттернам и пойдёт речь в этом посте. Материал представленный далее почти не коррелирует с технологиями реализации, поэтому может быть интересен любым прикладным программистам не смотря на то, что примеры базируются на Java и PostgreSQL. И ещё одно замечание, чтобы не вносить путаницу с названиями паттернов, я буду использовать их оригинальные названия на английском языке.

суббота, 11 июня 2011 г.

Конкурентный доступ к реляционным базам данных

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

Вопросы конкурентного доступа к реляционным базам данных встают практически перед любыми разработчиками прикладного программного обеспечения и не только перед ними. Результатом такой востребованности этой области является наличие большого количества созданных архитектурных паттернов. Это позволяет успешно справляться с большой сложностью разработки таких программ. Ниже пойдёт речь о таких рецептах, а также механизмах на которых базируется их реализация. Повествование будет иллюстрироваться примерами кода на Java, но большинство материала не привязано к языку. Цель статьи - описать проблемы конкурентного доступа к реляционным базам данных, в качестве введения в предмет, а не полноценного охвата темы.

понедельник, 9 мая 2011 г.

Spring 3 или Java EE 6




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

воскресенье, 24 апреля 2011 г.

Управление ресурсами с помощью cgroups

Cgroups(Control Groups) - обеспечивают механизм для агрегирования множества задач и их будущих потомков в иерархические группы с определенным поведением. Так начинается документация посвященная cgroups поставляемая с ядром Linux. Собственно это и есть достаточно ёмкое описание технологии. Но конечно же его недостаточно.

воскресенье, 6 марта 2011 г.

Anemic Domain Model и JPA сущности

В этой заметке я хочу поговорить о проблеме, которая вставала перед большинством Java разработчиков задумывающихся об архитектуре ПО. Как можно понять из названия, это проблема анемичности классов сущностей JPA. Для тех кто не знаком с термином "Anemic Domain Model" сразу отсылаю к Martin Fowler. Коротко суть этого антипатерна в вырождении класса инкапсулирующего данные и логику в класс инкапсулирующий только данные. Таким образом подрывается одна из основ ООП: класс инкапсулирует данные и логику обработки этих данных. Вроде все просто и вывод напрашивается сам собой: поместить логику в класс сущностей JPA. Но стоп! Не все так просто. Попробую объяснить почему.

суббота, 23 октября 2010 г.

Java EE, Maven и Eclipse

Это заметка о настройке maven проекта для ear приложения с несколькими подпроектами и работа с ним в IDE Eclipse. Версии программного обеспечения следующие: maven 3.0, eclipse 3.6(Helios), m2eclipse 0.10.2, glassfish 3.0.1, jdk 1.6.0_22-b04, debian squeeze. Для продолжения необходимо чтобы все программное обеспечение было настроено и готово к работе.

суббота, 2 октября 2010 г.

Практическое знакомство с Cassandra: Часть 3 Учебное приложение MyBlog


В этом посте речь пойдет о разработке учебного приложения блога, в качестве хранилища данных для которого будет применяться Cassandra. Для чтения этого материала желательно ознакомиться с предыдущими постами на эту тему "Часть 1 Модель данных и установка" и "Часть 2 Типы сортировщиков колонок, TimeUUIDHelper и генератор кода Thrift".