Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Проверено и работает. Инструменты Oracle для разработки веб приложений

5,190 views

Published on

Published in: Technology, Business
  • Be the first to comment

Проверено и работает. Инструменты Oracle для разработки веб приложений

  1. 1. <ul><ul><li>Олег Оленин, </li></ul></ul><ul><ul><li>Форс Центр Разработки, </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul>Проверено и работает. Инструменты Oracle для разработки веб приложений.
  2. 2. В следующие полчаса: <ul><li>Технические возможности Oracle 10G XE и применение в production </li></ul><ul><li>Типовые варианты решений для веб приложений c использованием </li></ul><ul><li>Oracle Application Express (APEX)‏ </li></ul>
  3. 3. В следующие полчаса: <ul><li>Имеет ли смысл использовать Oracle XE? Готова ли она для production? </li></ul><ul><li>Есть ли разница вообще, какую СУБД использовать? </li></ul><ul><li>Почему есть мнение, что Oracle сложно ставить и тяжело администрировать? </li></ul><ul><li>Большой вендор - абсолютное зло или симбиоз? </li></ul>
  4. 4. Oracle 10G XE <ul><li>30 years old, mature enterprise grade DBMS </li></ul><ul><li>Функционал с запасом </li></ul><ul><li>Бесплатная, базируется на том же ядре, что и коммерческие редакции </li></ul><ul><li>Есть проверенные способы построения веб приложений </li></ul><ul><li>Кроме этого, вместе с Oracle XE поставляется так же бесплатно Oracle Application Express (APEX)‏ </li></ul>
  5. 5. Заблуждения <ul><li>Oracle трудно ставить и администировать </li></ul><ul><li>Oracle, который распространяется свободно, ненастоящий Oracle </li></ul><ul><li>Oracle это прямой путь к vendor lock-in </li></ul><ul><li>В моем случае нет разницы, какую СУБД использовать – selectы и insertы есть, вот и хорошо </li></ul><ul><li>Богатый функционал, который есть в Oracle, мне никогда не пригодится. </li></ul>
  6. 6. Некоторые СУБД оценивают по времени, затраченному на ее установку <ul><li>Oracle 8i ставится сейчас за 3 минуты </li></ul><ul><li>В нем есть все, что есть в некоторых СУБД, которые ставятся за 7 минут </li></ul><ul><li>Oracle 8i вышел в production в 2000 году </li></ul><ul><li>У некоторых СУБД есть еще 8 лет на окончание инсталляции. </li></ul>
  7. 7. Vendor Lock-in vs. Open Source Lock-in <ul><li>Lock-in всегда одинаковы </li></ul><ul><li>Знакомая ситуация – ведущий разработчик open source проекта женился/вышел замуж? </li></ul><ul><li>В случае Oracle lock-in ведет к стабильности и предсказуемости </li></ul><ul><li>Помните про Cobol и Fortran, ….. Zinger, Запорожец, Gibson 38 года, … </li></ul>
  8. 8. Меня устроит то, что есть <ul><li>Вам не надоело? Перед детьми и заказчиками не стыдно? </li></ul><ul><li>Запас функционала в ситуации, когда реагировать нужно будет быстро, важен </li></ul><ul><ul><li>Внутренний портал перерос в полноценную корпоративную систему </li></ul></ul><ul><ul><li>Требуется интеграция с EIS причем в темпе </li></ul></ul><ul><ul><li>У заказчика уже стоит Oracle </li></ul></ul><ul><li>Чем ближе к данным, тем быстрее изменения реализуются </li></ul>
  9. 9. Опрос разработчиков
  10. 10. <ul><li>аналитические функции </li></ul><ul><li>любимая фича - ролбэк сегменты. ну они позволяют не париться с уровнями изоляции </li></ul><ul><li>мая любимая фича xmlDB и mod_plsql </li></ul><ul><li>самое главное - нормальный язык PL/SQL, изначально спроектированный вменяемыми людьми таким образом, что даже поколения индусов не смогли его испортить </li></ul><ul><li>хммм... удобное администрирование через веб... </li></ul><ul><li>всесторонняя поддержка явы, как внутри бд, так и внешне )‏ </li></ul><ul><li>поддержка различных ИДЕ как мелкософта, кодегера, и есесно самого оракла </li></ul><ul><li>заточка почти под любые мыслимые и немыслимые функции приложений... </li></ul><ul><li>динамический PL/SQL </li></ul>
  11. 11. Установка Oracle 10G XE <ul><li>Windows </li></ul><ul><ul><li>OracleXEUniv.exe </li></ul></ul><ul><li>Linux </li></ul><ul><ul><li>oracle-xe-univ-10.2.0.1-1.0.i386.rpm </li></ul></ul><ul><ul><li>oracle-xe-universal_10.2.0.1-1.0_i386.deb </li></ul></ul>
  12. 12. Установка Oracle 10G XE. Linux. <ul><li>rpm -ivh oracle-xe-10.2.0.1-0.1.i386.rpm </li></ul><ul><li>/etc/init.d/oracle-xe start/stop  </li></ul><ul><ul><li>  </li></ul></ul>
  13. 13. Установка. Пара копеек. <ul><li>Выбирайте Oracle Database 10 g Express Edition (Universal)‏ </li></ul><ul><li>Oracle Database изначально создавалась как СУБД корпоративного уровня: </li></ul><ul><ul><li>Разработчики инсталлятора считают, что Oracle живет один на машине. Или почти один. </li></ul></ul><ul><ul><li>Oracle listener: </li></ul></ul><ul><ul><ul><li>protocol, host, port, SID or service </li></ul></ul></ul><ul><ul><ul><li>tnsnames.ora </li></ul></ul></ul><ul><ul><ul><li>Закрывайте для публичного доступа порт 1521 </li></ul></ul></ul><ul><li>Терминология иная: </li></ul><ul><ul><li>database = schema </li></ul></ul>
  14. 14. Oracle XE
  15. 15. Что есть в Oracle XE? <ul><li>Идея не нова – Oracle Personal Edition </li></ul><ul><li>Free to develop, deploy, and distribute </li></ul><ul><li>Упрощенная инсталляция </li></ul><ul><li>After installation, be sure to register for an exclusive Oracle Database 10 g Express Edition Discussion Forum hosted by Oracle expert Tom Kyte—click on the &quot;Registration&quot; link on XE's Database homepage. </li></ul>
  16. 16. Features <ul><li>Flashback Query. Recover older versions of data without complex, time-consuming operations. </li></ul><ul><li>PL/SQL Native Compilation Write stored procedures deployed in the database in PL/SQL. </li></ul><ul><li>Data Encryption Toolkit Protect vital data by providing an extra layer of protection for data on storage media. </li></ul><ul><li>Oracle SQL Developer Graphical tool that enhances productivity and simplifies database development tasks </li></ul><ul><li>Application Express. Develop and deploy fast, secure applications with a rapid web application development tool </li></ul><ul><li>Comprehensive XML Support. Store and retrieve XML natively with support for the W3C XML data model; use standard access methods for navigating and querying XML. </li></ul><ul><li>PL/SQL Pages. Utilize a server-side stored procedural language; secure, portable and seamless with SQL. </li></ul><ul><li>Comprehensive Microsoft .Net Support, OLE DB, ODBC Support multiple Windows data access methods. </li></ul><ul><li>Automatic Memory Management. Automate management of shared memory used by an Oracle Database instance. </li></ul>
  17. 17. Features <ul><li>Automatic Undo Management Monitor configuration of all Oracle systems for parameter settings, security set-up, storage and file space conditions. </li></ul><ul><li>Star Query Optimization Join a fact table and a number of dimension tables. </li></ul><ul><li>Advanced Queuing Allow database queues to serve as durable message stores via queue-based publish-subscribe. </li></ul><ul><li>Distributed Queries/Transactions Query or update data on two or more distinct nodes of a distributed database. </li></ul><ul><li>XML DB High-performance, native XML storage and retrieval technology. </li></ul><ul><li>Text Build text query applications and document classification applications </li></ul><ul><li>Locator Manage geospatial data to leverage the business value of location. </li></ul>
  18. 18. Ограничения <ul><li>Будет работать на машинах с несколькими процессорами, но утилизировать будет только один </li></ul><ul><li>Будет работать на машинах с любым объемом памяти, но использовать будет только до 1 G </li></ul><ul><li>Есть ограничение на размер пользовательских данных, до 4G. (системные данные не входят в это ограничение) </li></ul><ul><li>Сейчас есть версии 32-bit Windows и 32-bit Linux. При этом работает и на 64-bit. </li></ul><ul><li>В IT инфраструктуре Small and Medium Companies широко используются либо Microsoft Access, либо MSDE (Microsoft Database Engine). В обоих случаях есть ограничение в 2G хранимых данных. Однако это никого не останавливает. </li></ul>
  19. 19. Применение Oracle XE
  20. 20. Oracle 10G XE и PHP <ul><li>Поддержка напрямую производителем mod_oci8 </li></ul><ul><ul><li>SQL and PL/SQL </li></ul></ul><ul><ul><li>Long Objects (LOB), including Temporary LOBs </li></ul></ul><ul><ul><li>Collections </li></ul></ul><ul><ul><li>REFCURSORS </li></ul></ul><ul><ul><li>Bind Data </li></ul></ul><ul><ul><li>Change Password </li></ul></ul><ul><ul><li>Privileged Connections </li></ul></ul><ul><ul><li>Meta Data </li></ul></ul><ul><li>Zend Core и Oracle. Коммерческая подержка </li></ul>
  21. 21. <ul><li>OCI8 Extension History </li></ul><ul><li>Refactored by Oracle and Zend in 2005 </li></ul><ul><ul><li>• Stable and fast </li></ul></ul><ul><ul><li>• In PHP 5.1.2+ </li></ul></ul><ul><ul><li>• Same API as original OCI8 in PHP 3 and PHP 4 </li></ul></ul><ul><ul><li>• New php.ini parameters for </li></ul></ul><ul><ul><ul><li>• Persistent connection management </li></ul></ul></ul><ul><ul><ul><li>• Row prefetching </li></ul></ul></ul><ul><ul><ul><li>• Client side statement cache </li></ul></ul></ul><ul><li>Enhanced OCI8 Beta released October 2007 </li></ul><ul><ul><li>• Connection pooling support (DRCP)‏ </li></ul></ul><ul><ul><li>• High availability support (FAN)‏ </li></ul></ul>
  22. 22. OCI8 Performance Features <ul><li>Prefetch Rows </li></ul><ul><li>• Array Binds </li></ul><ul><li>• Statement Cache </li></ul><ul><li>• Fast Application Notification * </li></ul><ul><li>• With Oracle Database 11g </li></ul><ul><ul><li>• Server Result Cache </li></ul></ul><ul><ul><li>• Consistent Client Cache </li></ul></ul><ul><ul><li>• PL/SQL Function Cache </li></ul></ul><ul><ul><li>• Database Resident Connection Pooling* </li></ul></ul><ul><ul><li>* Support in PHP is currently Beta </li></ul></ul>
  23. 23. Database Resident Connection Pool <ul><li>Pools dedicated servers on database side </li></ul><ul><li>Shares connections across apache processes </li></ul><ul><li>Shares connections across middle tier nodes </li></ul><ul><li>Co-exists in all database server configurations </li></ul><ul><ul><li>Dedicated Servers, Shared Servers, RAC </li></ul></ul><ul><li>Exposed to PHP </li></ul>
  24. 24. Проверено. Работает.
  25. 25. Не только PHP <ul><li>Ruby on Rails. Ruby OCI drivers </li></ul><ul><li>Java </li></ul><ul><li>.Net </li></ul><ul><li>C++ </li></ul><ul><li>Oracle XE -> Oracle без проблем </li></ul>
  26. 26. Ajax + mod_plsql+ PL/SQL Web Toolkit <ul><li>Чем ближе к таблицам, тем быстрее изменения </li></ul><ul><li>Oracle HTTP Server powered by Apache + mod_plsql + PL/SQL Web Toolkit </li></ul><ul><li>DBMS_EPG, PL/SQL gateway позволяют обращаться к PL/SQL stored procedure с помощью HTTP listener, встроенного в СУБД </li></ul><ul><li>Самый быстрый способ положить BLOB в таблицу </li></ul>
  27. 27. PL/SQL Web Toolkit <ul><li>Web Toolkit API предоставляет возможность выполнять следующие действия из PL/SQL: </li></ul><ul><ul><li>Получать HTTP request </li></ul></ul><ul><ul><li>Создавать HTTP headers, в том числе указывать content-type и mime-type </li></ul></ul><ul><ul><li>Работать с browser cookies </li></ul></ul><ul><ul><li>Создавать HTML pages </li></ul></ul>
  28. 28. Средства по сериализации в XML <ul><li>DBMS_XMLQUERY </li></ul><ul><li>DBMS_XMLGEN </li></ul><ul><li>Oracle XML DB SQL </li></ul><ul><li>Пример: Oracle XE + AJAX: Asynchronous XML in Action </li></ul>
  29. 29. Проверено. Работает. <ul><li>Пример. DHTMLX + mod_plsql </li></ul>
  30. 30. Oracle Application Express (APEX)‏
  31. 31. Назначение <ul><li>Декларативное средство разработки Web-сайтов </li></ul><ul><li>Инфраструктура выполнения Web-сайтов </li></ul><ul><li>Инструменты сопровождения Web-приложений </li></ul><ul><li>Весь Web-контент динамический (формируется на “лету”)‏ </li></ul>
  32. 32. Предоставляемые возможности <ul><li>Быстрое создание отчетов и </li></ul><ul><li>форм ввода данных </li></ul><ul><li>Создание Web-сайтов на основе </li></ul><ul><li>существующей структуры таблиц и </li></ul><ul><li>представлений БД </li></ul><ul><li>Могут использовать пользователи непрограммисты </li></ul><ul><li>Полноценные Web-приложения (security, sessions, forms, etc.)‏ </li></ul><ul><li>Использует весь мощный арсенал Oracle Database 9i/10g </li></ul>
  33. 33. Предоставляемые возможности (для разработчиков) <ul><li>Встроенный API для создания нестандартных элементов управления </li></ul><ul><li>Расширения разрабатываются на PL/SQL, Java-stored procedures и .NET- stored procedures (только Windows!) </li></ul><ul><li>Большой набор встроенных библиотек функций (отправка сообщений по e-mail, фоновые задания и т.д.)‏ </li></ul><ul><li>Большой набор готовых расширений </li></ul><ul><li>http://apex.oracle.com/studio </li></ul>
  34. 34. Архитектура APEX Browser Oracle Database HTML DB Oracle HTTP Server
  35. 35. Логическая архитектура Applications Applications Applications Applications Schema A Applications Schema B Applications Schema C Finance Human Resources Payroll Oracle HTML DB
  36. 36. Техническая архитектура (продолжение)‏ <ul><li>В Oracle Database 10g Rel.2 может работать без HTTP-сервера (есть встроенный в БД HTTP-листенер)‏ </li></ul><ul><li>Реализован на PL/SQL и полностью выполняется внутри сервера БД </li></ul><ul><li>Поддерживает все платформы на которых работает Oracle Database </li></ul><ul><li>Поддерживает версии начиная с Oracle Database 9.2.0.3 и выше </li></ul>
  37. 37. Интеграция с внешними системами <ul><li>Интеграция с помощью всех средств Oracle Database (gateway, db-link, external-tables, etc)‏ </li></ul><ul><li>Интеграция с помощью Web-сервисов </li></ul><ul><li>Интеграция с Oracle Application Server и Oracle Portal </li></ul>
  38. 38. Терминология Tabs Navigation Bar Menu Button Items Region Page Application
  39. 39. Этапы разработки приложения на APEX <ul><li>Создание структуры базы данных (tables, indexes, views, etc)‏ </li></ul><ul><li>Создание бизнес-логики с помощью хранимых процедур (PL/SQL, Java, .NET-языки)‏ </li></ul><ul><li>Дизайн пользовательского интерфейса </li></ul><ul><li>Подключение бизнес-логики к пользовательскому интерфейсу </li></ul><ul><li>Отладка и тестирование </li></ul><ul><li>Перенос приложения в промышленную среду </li></ul>
  40. 40. Сообщество разработчиков
  41. 41. Примеры приложений
  42. 42. Проверено. Работает.
  43. 43. Oracle и ISV
  44. 44. Партнерство <ul><li>Создавайте свое решение на Oracle XE </li></ul><ul><li>Становитесь ISV партнером Oracle </li></ul><ul><ul><li>это просто </li></ul></ul><ul><ul><li>финансовые затраты сравнимы с покупкой нового велосипеда </li></ul></ul><ul><li>Крутите педали вместе с Oracle </li></ul><ul><ul><li>Совместные маркетинговые программы </li></ul></ul><ul><ul><li>Технологический центр по работе с компаниями разработчиками </li></ul></ul><ul><ul><li>Embedded License </li></ul></ul><ul><li>Идите вместе с Oracle на новых заказчиков </li></ul>
  45. 45. Итого <ul><li>Oracle для многих синоним для «круто», «можно доверять» и т.д. </li></ul><ul><li>Есть бесплатный Oracle 10G XE, который можно использовать в production без хлопот </li></ul><ul><li>Компания Oracle – это ISV ориентированная компания </li></ul><ul><li>Проверено. Работает. PHP. AJAX. RIA. APEX </li></ul><ul><li>LAMP -> OPLA </li></ul>
  46. 46. Контакты <ul><li>Олег Оленин, [email_address] </li></ul><ul><li>Дмитрий Никитов, [email_address] </li></ul>

×