четверг, 29 декабря 2011 г.

Завершению 2011-го года посвящается...


Почитав блоги товарищей, делящихся своими впечатлениями/достижениями, Суровый решил, что он ничем не хуже и ему тоже есть чем поделиться.

Во-первых, это конечно же успешное завершение проектирования интеграционной шины в "Вимм-Билль-Данн". Наша шина объединила порядка десяти информационных систем компании, установленных в головном офисе и филиалах. И хотя роль Сурового была относительна скромна: разработал несколько адаптеров, включая адаптер к Oracle E-Business Suite на базе Oracle SOA Suite, все равно хорошо, что удалось поработать со многими интересными людьми и кое-чему научиться, т.к. несмотря на большой опыт практической работы с BPEL внедрять SOA до этого не приходилось.

Во-вторых, данный год стал в какой-то степени переломным: Суровый зарекомендовал себя в качестве системного архитектора при проектировании интеграционной шины в ЗАО "Русская телефонная компания" - МТС Розничная сеть. В рамках данного проекта мы обеспечили передачу данных с более чем 2500 точек продаж МТС и интеграцию порядка двадцати информационных систем в головном офисе. В качестве интегрируемых систем выступали как ключевые игроки рынка ERP: Oracle E-Business Suite и SAP, так и старая добрая . Самой сложной задачей было обеспечить гарантированную доставку сообщений с точек продаж в условиях не всегда надежного канала. Страна наша велика, поэтому интернет особенно в удаленных от Центра районах оставляет желать лучшего.

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

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

Всех моих читателей поздравляю с наступающим Новым годом! Счастья вам и простите, что в уходящем году писал так мало.

UPD: Проект в ЗАО "РТК" успешно завершен. Система внедрена в промышленную эксплуатацию. Впечатления руководителя проекта от заказчика представлены в данной презентации.

Понравилось сообщение - подпишитесь на блог

понедельник, 12 декабря 2011 г.

Установка и использование WebLogic Server 12c в версии для разработчиков


На прошлой неделе Oracle сделала доступным для скачивания набор дистрибутивов сервера приложений нового поколения, основы линейки продуктов Oracle Fusion Middleware, - WebLogic Server 12c. Данный продукт доступен как в виде инсталляторов под Windows, Linux и Mac OS X, так и в виде двух ZIP-архивов, предназначенных исключительно для разработчиков. В данной заметке мы рассмотрим как установить WebLogic Server из данных архивов и создать демонстрационный домен, а так же написать и развернуть в данном домене небольшое Java EE 6 приложение, используя Oracle Enterprise Pack for Eclipse 12.1.1.

четверг, 1 декабря 2011 г.

Анонсирован WebLogic Server 12c


C - обозначает Cloud.

Посмотрел две презентации, приуроченные к выходу Oracle Fusion Middleware WebLogic Server 12c. Обещают, что данный продукт будет доступен для скачивания с OTN на следующей неделе. Технический номер версии будет - 12.1.1. Вероятно, Oracle отказывается от принятой сейчас запутанной системы нумерации версий, при которой WebLogic Server 10.3.X называется WebLogic Server 11g, что не может не радовать. В 2012-м году обещали так же выход остальных компонентов Fusion Middleware, например - Oracle SOA Suite.

UPD 10.12.2011: WebLogic Server 12c доступен для скачивания на OTN.

воскресенье, 27 ноября 2011 г.

Использование Oracle MDS для хранения общих объектов композитных приложений


Oracle Metadata Services – компонент Oracle Fusion Middleware, предназначенный для управления метаданными, т.е. данными о данных. К метаданным в терминах Oracle относятся в частности WSDL-описания веб-сервисов, XSD-схемы, а так же другие XML-документы. Данная инструкция содержит описание процесса настройки подключения к серверу метаданных из Oracle JDeveloper, развертывания метаданных на сервере и использования метаданных в композитном приложении.

воскресенье, 25 сентября 2011 г.

Типичные ошибки, допускаемые при внедрении информационных систем


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

В своем посте Software product management Максим Смирнов - архитектор из Билайн - правильно указал на пять классических ошибок, которые совершают внедренцы. Я хочу привести свое видение проблемы. Некоторые мои ошибки пересекаются со списком Максима, некоторые - дополняют его.

среда, 7 сентября 2011 г.

Использование PhantomReferences в Java


Платформа Java предоставляет несколько типов ссылок для связи между объектами:

  1. Жесткие ссылки (Strong References) - стандартные, известные нам ссылки. Если на объект есть хоть одна жесткая ссылка, то данный объект не будет утилизирован при сборке мусора.

  2. Мягкие ссылки (Soft References) - создаются с помощью вызова new SoftReference<T>(T obj, ReferenceQueue<T> queue) или new SoftReference(T obj). Если на объект есть только мягкая ссылка, то будет выполнена попытка утилизации данного объекта при сборке мусора в случае, если приложению не хватает памяти.

  3. Слабые ссылки (WeakReferences) - создаются с помощью вызова new WeakReference<T>(T obj, ReferenceQueue<T> queue) или new WeakReference<T>(T obj). Если на объект есть только слабая ссылка, то будет выполнена попытка утилизации данного объекта при сборке мусора.

  4. Фантомные ссылки (PhantomReferences) - создаются с помощью вызова new PhantomReference<T>(T obj, ReferenceQueue<T> queue). Если на объект есть только фантомная ссылка, то будет выполнена попытка утилизации данного объекта при сборке мусора. Сам объект при этом не будет удален из памяти до тех пор, пока на него существует фантомная ссылка или данная фантомная ссылка не очищена с помощью вызова метода clear(). Так же стоит заметить, что метод get() фантомной ссылки всегда возвращает null.


Возникает вполне закономерный вопрос: зачем нужны ссылки, которые фактически держат объект в памяти, но по которым к нему нельзя получить доступ?

четверг, 7 июля 2011 г.

Построение композитного сервиса с помощью Oracle Service Bus


В состав Oracle Service Bus входит очень мощное средство управления последовательностью вызовов сервисов, которое называется Split-Join. Данный компонент позволяет разделить входное сообщение на части (паттерн Splitter, здесь и далее будут упоминаться паттерны из каталога EAI), пропустить данные части через разные маршруты обработки, а затем агрегировать результаты (паттерн Agregator). Сервис, агрегирующий результаты вызовов других сервисов называется композитным.

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