Cделать выбор между J2EE и Oracle Forms и Reports

 

Питер Колецки
Дункан Миллс

ORACLE JDEVELOPER 10G
Руководство по разработке Интернет-приложений с помощью Oracle JDeveloper и Oracle ADF

 

Издательство «Лори», 2012, 608 стр., тираж 500 экз., ISBN 978-5-85582-307-3

 

Оригинал: "ORACLE JDEVELOPER 10G for Forms & PL/SQL Developers", Peter Koletzke, Duncan Mills; ©2007 McGraw-Hill Companies, Inc. (Publisher), ISBN-13: 978-0-07-225960-5, ISBN-10: 978-0-07-225960-4

 

Одним из спорных решений, которые мы сделали в самом начале,
было не заниматься миграцией приложений Forms и PL/SQL в J2EE.
Мы думали, что в долгосрочной перспективе такая миграция не была
бы правильной для наших клиентов и, следовательно, для Oracle.

Кристоф Джоб (Christophe Job) Вице-президент,
Средства разработки приложений Oracle Corporation

Обычно рецензируя перевод какой-либо книги по Oracle с американского издания, приходится с сожалением констатировать, что на Западе уже вышла новая книга под тем же названием, но уже по следующей версии этого продукта, будь-то база данных Oracle Database, язык SQL PL/SQL, Real Application Clusters и так далее. Приходится и немного оправдывать издателей, и вполне искренне убеждать читателей, возможных пользователей рецензируемой книги, что не стоит терять драгоценное время в ожидании более современного перевода, а пользоваться ею, как вполне приемлемой ступенькой в освоении продукта. Так было и так, скорее всего, будет, но данный случай - очень приятное исключение.

Рецензируемая книга - это первый русский перевод из тетралогии "ORACLE JDEVELOPER 9i/10g/11g" Питера Колецки:

  1. "Oracle9i JDeveloper Handbook" - в соавторстве с Paul Dorsey и Avrom Faderman, 2002.
  2. "ORACLE JDEVELOPER 10G Handbook. Build Java 2 Platform, Enterprise Edition (J2EE) Applications" - в соавторстве с Dr. Avrom Roy-Faderman и Dr. Paul Dorsey, 769 стр., 2004.
  3. "ORACLE JDEVELOPER 10G for Forms & PL/SQL Developers" - в соавторстве с Duncan Mills, 540 стр., 2007.
    ["ORACLE JDEVELOPER 10G. Руководство по разработке Интернет-приложений с помощью Oracle JDeveloper и Oracle ADF" - русский перевод: изд. «Лори», 2012, 608 стр.]
  4. "Oracle JDeveloper 11g Handbook: A Guide to Fusion Web Development" - в соавторстве с Duncan Mills и Avrom Roy-Faderman, 912 стр., 2009.

Легко видеть, что и по названиям, и по авторам, и по объему эти книги сильно различаются, хотя и написаны в одном направлении. Можете мне поверить (я проверял), что и по оглавлениям, и по представленному материалу они различны, хотя, конечно, во многом пересекаются и имеют общие части. Этого нельзя избежать, поскольку каждая из них является полностью самостоятельной публикацией и направлена в свою сторону.

Итак, цель книги "ORACLE JDEVELOPER 10G. Руководство по разработке Интернет-приложений с помощью Oracle JDeveloper и Oracle ADF" в том, чтобы "... наши пользователи смогли задействовать весь арсенал профессиональных навыков, ... чтобы JDeveloper и ADF раскрыли свои концепции тем, кто привык писать приложения на Forms и PL/SQL" (из Предисловия Кристофа Джоба). Именно реализуя эту задачу, в структуре книги выделены части "Обзор технологий" (8 глав, 270 стр.), "Разработка приложений" (6 глав, 240 стр.) и "Дополнительные методики" (2 главы, 60 стр.). К сожалению, в русское издание не вошел Index, занимающий в американском оригинале 22 стр.

Авторы предполагают у читателей своей книги начальную осведомленность в области технологий Java и J2EE, рассчитывая, что она поможет пользователям воспринять материал, обеспечив их базовой информацией о web-разработках. Улыбнемся и вспомним, что эта книга была впервые опубликована почти 10 лет назад на гребне популярности, правда, тогда уже спадающем, средств разработки приложений Oracle Forms и Oracle Reports. Настоящее время - время практически полного превалирования Java-технологий. Но язык PL/SQL существует и продолжает развиваться. Поэтому в силе и значимости остается пожелание авторов "не обязательно изучать Oracle Forms, чтобы понять материал этой книги, а спокойно предложение [ :)!] все отсылки к Oracle Forms, и книга по-прежнему останется вашим проводником по технологии разработки в J2EE". Добавим, что каждая глава второй "Разработка приложений" и третьей "Дополнительные методики" частей книги включает в себя одно-два-три и даже четыре практических занятий, например: "Создание входной и начальной JSF-страниц", "Создание рабочей области и проектов", "Настройка примера приложения" и т.д. Словом, эта книга представляет собой не только учебник по основам J2EE и переходу с Oracle Forms и Oracle Reports, но практическое методическое пособие для желающих познакомиться и овладеть технологиями разработки интернет-приложений с помощью Oracle JDeveloper и Oracle ADF .

Авторы настоятельно рекомендуют выполнить шаг за шагом предложенные практические занятия, что покажет читателю качество его понимания пройденного материала. И хотя сделана очень осторожная авторская оговорка, что при использовании более поздней версии JDeveloper, чем JDeveloper 10.1.3 build 3673 плюс все серверные обновления, включая Service Update 4, придется подкорректировать некоторые инструкции в упражнениях, принципы и приемы работы должны остаться неизменными. Мне представляется, что это предложение можно применить и к следующим версиям JDeveloper, включая самый последний релиз "Oracle JDeveloper and Application Development Framework (ADF) 11g Release 2 (11.1.2.0.0)", естественно, "подкорректировав некоторые инструкции", поскольку от замены, от усовершенствования инструмента "принципы и приемы работы должны остаться неизменными".

И всё же каков ответ авторов на вопрос, как сделать выбор между J2EE и Oracle Forms и Reports. Правда, самый определенный ответ дала сама жизнь, а Питер Колецки и Дункан Миллс, явно осторожничая (не забудем, что это 2007 год), советуют разработчикам приложений на Oracle Forms и Reports соблюдать осторожность при переходе к новой среде, так как "в будущем [то есть, сегодня - А.Б.] Oracle ориентируется на J2EE, поскольку таким образом обеспечивается гибкость, широкое промышленное сопровождение и значительно возрастает открытость". И остальная часть книги уже целиком посвящена JDeveloper, Java, ADF (Application Development Framework).

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

Но нельзя же всё уместить в одну, даже в самую большую книгу! "Если вам потребуется дополнительная информация о других средствах IDE, следует обратиться к справочной системе JDeveloper" - советуют авторы книги.

В заключение несколько слов о качестве российского издания книги Питера Колецки и Дункана Миллса. К моему большому удовольствию я должен отметить значительное повышение качества переводов и типографского исполнения ИТ-книг, которые попадают ко мне в руки. По неизвестной мне причине издательство "ЛОРИ" не обозначило имен переводчика и научного редактора книги "ORACLE JDEVELOPER 10G. Руководство по разработке Интернет-приложений с помощью Oracle JDeveloper и Oracle ADF". А хотелось бы выразить им свою (и надеюсь всех пользователей этой книги) благодарность за перевод и научную редактуру, а также самому изд. "ЛОРИ" за хорошо изданную книгу, с которой приятно работать.

Анатолий Бачин,
интернет-журнал "FORS Magazine"
главный редактор

Приложение

Оглавление книги «ORACLE JDEVELOPER 10G.   Руководство по разработке Интернет-приложений с помощью Oracle JDeveloper и Oracle ADF»:
   
Предисловие
Введение
Часть I Обзор технологий

Глава 1 Основы J2EE
Что необходимо знать об архитектуре приложений с базами данных?              
Что такое J2EE?
        J2EEи JavaEE5
Составляющие J2EE
        Платформа J2EE      
Какие web-технологии, невходящие в J2EE, популярны в среде J2EE?            
        Технологии пользовательского интерфейса            
        Службы Интернета      
Чем архитектура J2EE отличается от традиционной архитектуры?                 
Как сделать выбор между J2EE и Oracle Forms и Reports?                 
        Направления развития Oracle  
        Oracle Forms или J2EE?
        Oracle Reports или J2EE?  
Следует ли уделять внимание .NET?  
Как сервисы OracleFormsServicesвписываются в J2EE?    

Глава 2 Передача данных в Интернете
Как работает HTTP?    
        HTTP-запрос      
        HTTP-ответ     
        Методы
        POST 
        Другие особенности HTTP
Основные этапы цикла работы web-приложения    
Как Oracle Forms Services использует HTTP?     

Глава 3 JDeveloper и ADF как средства быстрой разработки
Что мы понимает под RAD?
Что такое framework?      
        Анатомия framework           
        Что отличает хорошую framework-систему?  
        OracleForms как framework-система           
Что такое OracleADF?      
        Как выбрать технологии?        
        Интерфейс пользователя
        Интеграция с базой данных   
Почему JDeveloper – это IDE для RAD?            
        Знакомая среда разработки?     
        Начало работы с JDeveloper          
        Компановка IDE  
        А где же мастера?  
        RAD-средства и системы  framework

Глава 4 Языки web и основы языка Java
Какие языки я действительно должен знать?    
        Сколько кода мне придется писать?   
        Насколько хорошо я должен знать языки программирования?
Что мне нужно знать об XML?          
Какие концепции Java наиболее важны?           
        Основы Java   
        Управляющие структуры
        Типы данных  
        Операторы  
        Ресурсы   

Глава 5 Основы Java Server Faces  
Зачем была разработана технология JSF?  
Какие языки, кроме Java, важны для работы в JSF?
Какие концепции JSF мне действительно необходимо знать?    
        Что такое JSF?       
        Архитектура среды исполнения
        Файлы, используемые в JSF 
        Компоненты
        Создание кроссплатформенных интерфейсов      
Где найти дополнительную информацию по JSF?    
        Web-сайты   
        Книги        

Глава 6 Business Services в ADF
 Как выполнить запрос к базе данных?        
         1. Создание рабочей области приложения и проекта для ADF Business Components
         2. Создание объекта Query            
         3. Определение запроса 
         4. Раскрытие запроса
         5. Тестирование запроса
Как обновить данные?    
         1. Создание объекта сущности (EntityObject) 
         2. Создание редактируемого объекта представления    
         3. Определение атрибутов объекта представления     
         4. Уточнение запроса для объекта представления 
         5. Тестирование объекта представления
Как сгенерировать значение первичного ключа?       
        Использование триггера базы данных для назначения последовательностей 
        Мутация данных       
Как управлять транзакциями?
Как работает блокировка записей?
        Конфигурация ADF Business Component   
Где находится диалог авторизации?       
        Пулы соединений 
        Безопасность стиле J2EE
Как определить бизнес-правила? 
        Ограничения ссылочной целостности базы данных  
        Проверка содержимого данных 
        Сложные проверки и правила           
        Порядок использования проверок
Как динамически изменить запрос?       
Как ADFBC взаимодействует с PL/SQL?      
        Вызов хранимой процедуры PL/SQL       
        Возврат данных из PL/SQL в ADF BC   
        Создание объекта сущности на базе PL/SQL 

Глава 7 Уровень ADF Model    
Как создавать страницы, связанные с данными?           
        Data Control Palette 
        Использование Data Control Palette          
         Опции  “Drop as”  
Какие файлы принимают участие в привязке данных?        
        Создание компонента Data Control
        Использование компонента Data Control
        Сводка файлов, используемых в data binding

Глава 8 Подробнее об ADF Model Bindings            
Как редактировать привязки к данным?
        Привязка атрибутов   
        Привязка таблиц     
        Привязка действий    
        Привязка методов   
        Привязка списков       
        Привязка навигационных списков  
        Булевы  привязки   
        Привязка деревьев      
        Очистка привязок  
Что такое итератор?        
Как управлять исполнением программы в ADF Model?  
        Другой взгляд на executables            
        Расширение жизненного цикла ADFm  
Что такое параметры?      
        Присвоение значений параметрам
Как писать код, используя ADF Model?    
        Доступ к данным и методам            
        Выполнение методов и операций      

Часть II Разработка  приложений 

Глава 9 Знакомство с JSF  
Практическое занятие: создание входной и начальной JSF-страниц  
        I    Создание рабочей области приложения и проекта 
        II   Диаграмма переходов между страницами Diagram the Page Flow
        III  Создание входной (Login) и начальной (Home) страниц  
        IV   Добавление компонент на входную страницу
        V    Добавление компонент на начальную страницу  
        VI   Добавление в приложение логики переходов и проверки  
Централизация сообщений     
Практическое занятие: создание и вызов пакета сообщений   
Практическое занятие: доступ к сообщениям пакета сообщений  с помощью EL

Глава 10 Основные принципы дизайна и обзор примера приложения
Системный дизайн  
Инструменты системного дизайна и SDLC      
        Анализ дизайна приложения       
        Лучшие практические методики      
Проектирование системы для примера            
        Проектирование базы данных                 
        Дизайн приложения
Практическое занятие: создание рабочей области и проектов   

Глава 11 Начальная страница и меню
Практическое занятие: создание начальной страницы и меню   
        I     Подготовка проекта Model
        II    Подготовка проекта ViewController     
        III   Создание шаблона
        IV    Копирование файла шаблона и доработка полученных копий
        V     Завершение разработки начальных страниц            

Глава 12 Страница поиска
Функция поиска и редактирования   
Практическое занятие: разработка страницы поиска сотрудника (Employee Search Page)
         I     Подготовка объектов уровня Model                 
         II    Добавление компонентов на страницу поиска   
         III   Усовершенствование функциональности страницы поиска

Глава 13 Страница редактирования        
Практическое занятие: завершение создания страницы редактирования
         I     Подготовка компонентов проекта Model        
         II    Создание страницы редактирования данных сотрудника
         III   Завершение построения перехода от страницы поиска
         IV    Создание выпадающих списков и списков LOV       

Глава 14 Добавление системы безопасности 
Система обеспечения безопасности
         Обеспечение безопасности в приложениях Oracle Forms и Oracle Reports      
         Система безопасности  в Web-приложениях
Практическое занятие: настройка примера приложения
         I     Конфигурация системы безопасности контейнера
         II    Настройка система безопасности приложения    
         III   Добавление системы безопасности к пользовательскому интерфейсу     

Часть III Дополнительные методики 

Глава15 Улучшение примера приложения
Практическое занятие: заполнение столбцов аудита с помощью процедуры базы данных 
 и контекста приложения             
          I     Создание объектов базы данных
          II    Установка значений контекста из приложения  
Практическое занятие: переименование Rename ADF-ориентированных файлов JSF JSP
Предотвращение атак, связанных с внедрением SQL-кода 
         Организация защиты режима Find 
Реализация механизма Partial Page Rendering PPR      
         Практическое занятие: использование PPR для блокирования меню до фиксирования
 внесенных изменений
Определение глобальных масок форматов
         Практическое занятие: применение стандартного форматирования к полю зарплаты             

Глава16 Oracle JHeadstart
Что такое JHeadstart?        
          Преимущества JHeadstart   
          Использование JHeadstart    
Основные понятия описания приложения       
          Создание описания приложения               
          The Application Definition Editor        
          Элементы описания приложения                 
Запуск JHeadstart ApplicationGenerator    
          Шаблоны генератора
          Результаты работы генератора
          Внесение изменений после генерации и их сохранение 
Запуск сгенерированного приложения
          Примеры создаваемых экранов         
          Роль runtime-версии JHeadstart      
JHeadstart Designer Generator
          Обратное проектирование(design-capturing) Oracle Forms в Oracle Designer
Миграция  приложений Oracle Forms          
          Возможно ли осуществление частичной миграции приложения?
          Как выбрать подходящий инструмент для осуществления миграции?       
Лицензирование, поддержка и другие ресурсы