Статьи

Платформа розробки Eclipse

  1. Не вдаючись в обговорення питання, що є програмування - мистецтво чи ремесло, визнаємо: в тому і в...
  2. організація
  3. Спільнота
  4. Структура організації Eclipse

Не вдаючись в обговорення питання, що є програмування - мистецтво чи ремесло, визнаємо: в тому і в іншому випадку програмісту не обійтися без інструментів створення програм. Разом з еволюцією процесу програмування (від «чаклунства» над машинними командами до використання високорівневих мов) удосконалювалися і можливості автоматизації нелегкої праці програмістів. Перші середовища розробки обмежувалися послідовним запуском компіляторів, компонувальник, завантажувачів та отладчиков за допомогою інтерфейсу командного рядка. У 80-і роки разом з персональними комп'ютерами з'явився ринок програмних продуктів нового класу - інтегрованих середовищ розробки (integrated development environment, IDE) для алгоритмічних (Паскаль і ін.), А потім і об'єктно-орієнтованих (Smalltalk, C ++) мов програмування. Справжнього розквіту дана область досягла завдяки активній адаптації розробниками мови Java; найбільш відомі інтегровані середовища для створення програм на цій мові - Borland JBuilder, Symantec Visual Cafe, Microsoft J ++, IBM VisualAge і Oracle JDeveloper.

Основне призначення IDE - підвищити продуктивність праці розробника. Перші середовища розробки, які об'єднують функціональність редакторів тексту програм, компіляторів і отладчиков, переважно звільняли споживачів від рутинних операцій. Згодом набір функцій IDE ставав все багатшим. До нього увійшли покрокові компілятори, браузери для більш логічного представлення програм, засоби автоматичної генерації коду і візуальні редактори для створення графічних користувацьких інтерфейсів. Дотримуючись віянь часу, середовища розробки трансформувалися з інструментів підвищення продуктивності праці програміста в засоби підтримки всіх етапів колективної роботи над програмним проектом. Остання тенденція - перетворення IDE в ALM (application lifecycle management), інтегровану систему управління життєвим циклом додатків - від визначення вимог і моделювання до управління конфігураціями і версіями програмного забезпечення, розгортання і супроводу готового рішення.

Кожна нова ступінь еволюції IDE ускладнювала середовища розробки. Однак користувачі таких продуктів як і раніше були змушені вдаватися до допомоги засобів, що не інтегрованих в IDE, - хоча б тому, що створення програми не обмежується написанням і налагодженням програм на одній мові програмування. Необхідність використовувати в прикладної системі, наприклад, HTML-сторінки, схеми реляційних баз даних або шматки коду на інших мовах (на зразок Кобола або PL / 1) змушує розробників задіяти відповідний інструментарій, з самого початку не включений в IDE.

Ось чому багато постачальників комерційних середовищ розробки прагнуть зробити їх максимально відкритими і забезпечують спеціальні механізми для інтеграції зовнішнього інструментарію. Але жодна середовище не в змозі задовольнити всі можливі вимоги користувача. Для цього вона повинна бути повністю нейтральною до мови програмування і підтримувати максимальний набір функцій. Чи не є таким середовищем і Eclipse, але зате це база, платформа, за допомогою якої можна будувати багатофункціональні і багатомовні середовища розробки.

платформа

Як пояснюють ініціатори проекту Eclipse [1], його ідеєю було створення «Apache для засобів розробки» - відкритої платформи, що забезпечує максимум базових можливостей для середовищ розробки і надає механізми інтеграції різних інструментів. Перша версія цієї платформи була розроблена корпорацією IBM і випущена в відкритих кодах в кінці 2001 року. Незабаром почали з'являтися комерційні реалізації на основі Eclipse, піонером серед яких стала місцем WebSphere Studio Application Developer 4.0. Зараз навколо Eclipse склалася ціла екосистема розробки з відкритим кодом, яка об'єднує постачальників і користувачів інструментальних засобів, дослідні організації та окремих розробників.

В офіційних документах Eclipse Foundation ( www.eclipse.org ) Eclipse Platform визначається як незалежна від постачальників відкрита платформа розробки, що надає базові (framework) і типові (exemplary) можливості, а також розширюються (extensible) інструментальні засоби. Інструментарій в рамках Eclipse Platform є типовим в тому сенсі, що з його допомогою перевіряється придатність базових можливостей платформи, ілюструються типові ситуації їх використання, підтримуються розробка і супровід самої платформи Eclipse. Інструментарій є розширюваним, оскільки його функціональність доступна за допомогою документованих програмних інтерфейсів. Базові принципи, яким керувалися творці Eclipse Platform і відповідно до яких вона продовжує розвиватися, такі [2]:

  • підтримка конструювання інструментів для розробки додатків;
  • підтримка необмеженого числа постачальників інструментальних засобів, в тому числі незалежних розробників програмного забезпечення;
  • підтримка інструментів роботи з довільними типами контенту, включаючи HTML, Java, C, JavaServer Pages, EJB, XML, GIF і ін .;
  • забезпечення «безшовної» інтеграції інструментів роботи з різними типами контенту різних виробників;
  • підтримка середовищ розробки додатків зі звичайним і з графічним призначеним для користувача інтерфейсами;
  • забезпечення можливості виконувати середу розробки на базі різних операційних систем (сьогодні інструментарій на базі Eclipse реалізований для Linux, HP-UX, IBM AIX, Sun Solaris, QNX, Mac OS X, Windows);
  • облік в інтересах розвитку платформи популярності мови Java при створенні інструментарію розробки.

Eclipse Platform являє собою написану на Java середу розробки самого загального призначення, архітектура якої забезпечує для вирішення різних завдань інтеграцію різних інструментів і мов програмування. Механізми подібної інтеграції дозволяють використовувати Eclipse Platform для побудови розвинених середовищ розробки, звільняють від рутини написання базових засобів на користь створення складних, спеціалізованих функцій. Тим самим не тільки вирішується проблема підтримки багатофункціональних і багатомовних середовищ розробки, але і закладається база для спрощення переходу від одного типу середовища до іншого в процесі їх еволюції. Що розвивається спільнотою розробників платформа Eclipse буде акумулювати останні досягнення, роблячи їх доступними для розробників конкретних продуктів і усуваючи необхідність докорінної переробки їх систем.

Основою архітектури Eclipse Platform є принцип використання модулів (plug-in). Платформа реалізує механізми виявлення, інтеграції та виконання таких модулів (див. Малюнок). Розробник, який хоче скористатися можливостями Eclipse Platform, пише свій інструментарій на Java як окремий модуль. Цей модуль буде працювати з файлами в робочому просторі, яке реалізується за допомогою компонента workspace. А його користувальницький інтерфейс базується на засобах компонента workbench, задає загальну структуру інтерфейсу і можливості його розширення.

Як правило, за допомогою одного модуля реалізується найпростіша функціональність IDE на базі Eclipse Platform, в той час як більш складні інструментальні засоби компонуються з декількох модулів. При цьому майже вся вбудована функціональність Eclipse Platform також реалізована за допомогою таких модулів - за винятком невеликого ядра Platform Runtime. Для кожного модуля є свій маніфестний файл (manifest), в якому описуються зв'язку даного модуля з іншими. При запуску середовища розробки на базі Eclipse Platform компонент Platform Runtime визначає набір доступних модулів, читає їх маніфестних файли і будує реєстр модулів. Після запуску системи додаткові модулі вже не можуть бути додані. В рамках проекту Eclipse реалізована спеціальне середовище для створення модулів - Plug-In Development Environment (PDE).

За допомогою спеціальних модулів реалізовані компоненти робочого простору (workspace) і призначеного для користувача інтерфейсу (workbench) платформи Eclipse. Робочий простір містить файли, які створюють користувачі інструментів, що реалізуються модулями. Компонент workbench забезпечує загальну структуру і засоби, що дозволяють розширювати можливості призначеного для користувача інтерфейсу середовища розробки на базі Eclipse Platform, включає в себе два компоненти для реалізації засобів надання інформації користувачеві.

  • Standard Widget Toolkit (SWT) - набір інтерфейсних елементів і графічна бібліотека, які мають механізми інтеграції з віконною системою конкретної операційної платформи, але реалізують API, незалежні від ОС. Це дозволяє за єдиними принципами будувати інтерфейси середовища розробки, які відповідають звичній для споживача віконної середовищі, але призначені для максимально можливого спектру операційних систем;
  • JFace - інструментарій для реалізації ряду спільних завдань, пов'язаних з програмуванням інтерфейсів з використанням засобів SWT.

На базі API, що надаються компонентами SWT і JFace, будується персоналізований користувальницький інтерфейс, який визначає структуру взаємодії споживача з інструментарієм розробки. Інтерфейс Eclipse Platform організовується за допомогою редакторів (editor), видів (view) і перспектив (perspective).

Призначення редакторів - відкривати, редагувати і зберігати об'єкти робочого простору. Платформа має вбудований редактор для текстових ресурсів, а також можливість вибрати повинні бути реалізовані як Plug-in. Види надають інформацію про об'єкт, з яким користувач працює в даний момент. Нарешті, механізм перспектив дозволяє вибрати і організувати потрібні редактори і види, які будуть виведені на екрані.

організація

Ведення проектів у відкритих кодах дає цілий ряд переваг. Так, одним із завдань такої платформи є надання розробникам інструментарію із загальної бази, інваріантної для різних середовищ розробки. Навіщо кожному виробнику писати заново те, що можна написати один раз? Але щоб будувати на такій платформі свої розробки, виробник повинен повністю довіряти тому, хто її створив. А це можливо лише в тому випадку, якщо він зуміє випробувати все те, що в ній закладено, тобто отримати платформу в відкритих кодах.

Розробка продукту відповідно до принципів Open Source підвищує якість коду, оскільки його спільно «відшліфовують» безліч зацікавлених розробників. Простіше і якісніше стає налагодження - завдяки доступу до вихідних текстів програми і знову ж залученню до роботи розподіленого колективу. Спільна праця дозволяє розділити ризики створення складних технологій. А колективний орган розвитку платформи забезпечує її підтримку незалежно від перипетій, які можуть статися з постачальниками конкретних середовищ розробки. Нарешті, використання платформи розробки в відкритих кодах з гнучким механізмом модулів для реалізації додаткової функціональності відкриває необмежені можливості її вдосконалення.

Однак реалізувати переваги моделі розробки з відкритим кодом, просто випустивши «у вільне плавання» технічну платформу, не вдасться. Потрібна організація процесу. З виходом першої версії Eclipse в 2001 році цю турботу взяв на себе консорціум, організований IBM разом з низкою провідних гравців ринку, а в лютому 2004 року рада директорів Eclipse вирішив перетворити Eclipse Foundation в неприбуткову незалежну корпорацію.

Консорціум Eclipse Foundation, який об'єднує понад 60 компаній, координує роботи щодо вдосконалення платформи Eclipse і інші проекти з відкритим кодом.

Проект Eclipse повністю відкритий, брати участь в ньому може будь-який зацікавлений розробник, який не зобов'язаний бути співробітником будь-якої компанії. В принципі, кожен може не тільки цікавитися деталями розробки і вносити свій внесок у виявлення помилок, але і брати участь в написанні коду і загальному проектуванні чергової версії платформи. Однак Eclipse дотримується принципу пріоритету професіоналізму. Розробник з підтвердженою професійною репутацією може розраховувати на додаткову відповідальність і можливість активно реалізувати свою кваліфікацію в проектах Eclipse. Частина розробників визначаються як «відповідальні» (committer), оскільки на них покладається відповідальність за вихідні коди, і тільки вони мають право створювати нові версії у відкритому репозитарії вихідних текстів. Як правило, такі розробники є співробітниками компаній, які оплачують їх роботу в рамках проектів Eclipse.

Процес розробки - ітеративний, спрямований на максимальне залучення членів спільноти Eclipse до роботи над проектом. Випуску чергового релізу передують кілька етапів фіксованою тривалості (порядку декількох тижнів), кожен з яких представляє собою закінчений цикл, що включає в себе планування, розробку, тестування і проміжний випуск версії. Завершення чергового циклу супроводжується відкритою публікацією опису нових можливостей системи, що стимулює членів спільноти до їх обговорення, використання і видачі рекомендацій щодо вдосконалення. В результаті на наступних етапах розробки з'являється можливість врахувати реакцію спільноти на проміжний реліз. Такий відкритий процес постійного вдосконалення платформи Eclipse і розвитку інших ініціатив на її базі.

Завданням технологічного проекту Eclipse є координація зусиль розробників, дослідників, членів наукових і освітніх організацій за визначенням перспектив Eclipse Platform і інших розробок з відкритим кодом. Серед найбільш помітних дослідних підпроектів в рамках цього напрямку можна відзначити розробку аспектно-орієнтованого програмного забезпечення (AspectJ і AJDT), створення ядра, альтернативного Eclipse Runtime (Equinox), створення платформи спільної розробки (Koi), управління конфігураціями програмного забезпечення (Stellation), інструментарій для XML-схем (XML Schema Definition) і для розробки на базі моделей (Generative Model Transformer).

Спільнота

Використання всіх матеріалів, отриманих при реалізації проектів Eclipse, регулюється ліцензійними правилами Common Public License (CPL), які схвалені організацією Open Source Initiative. Відповідно до CPL кожен може безкоштовно застосовувати і поширювати Eclipse в комерційних і некомерційних цілях. У вільному доступі на сайті eclipse.org є:

  • поточні версії Eclipse Platform для безпосереднього використання (в двійковій формі);
  • репозитарій вихідних кодів, в якому будь-хто може переглянути вміст і історію ревізій будь-якого вихідного файлу, а також отримати скрипти для рекомпіляції і збірки платформи Eclipse з вихідних кодів;
  • відкриті дискусійні форуми для обговорення Eclipse Platform;
  • база даних помилок для відстеження дефектів і проблем поточних версій платформи. За допомогою цієї бази користувачі можуть виявляти відомі дефекти в своїх розробках на базі Eclipse і оприлюднити нові виявлені ними проблеми;
  • плани розробки і контакти розробників, які беруть участь в проектах Eclipse.

сьогодні на eclipse.org у вільному доступі - більше сотні модулів у вихідних кодах для платформи Eclipse. Відкриті проекти Eclipse - це в сукупності більш 2 млн. Рядків коду.

Ключове значення для розвитку ринку програмних засобів розробки має участь в проекті Eclipse комерційних компаній. В Eclipse Platform вони отримують готові базові сервіси середовища розробки, нейтральні до мов і операційних платформах, і можуть зосередити зусилля і інвестиції на розвиток складної функціональності, яка забезпечить конкурентоспроможність їх рішень. Є приклади реалізації на базі Eclipse як повнофункціональних середовищ розробки, які просувають самі передові рішення в цій галузі, так і спеціалізованих засобів, націлених на певне коло завдань.

Так, на платформі Eclipse працюють всі продукти сімейства IBM Rational. Компанія Borland має намір перевести на Eclipse всі свої кошти підтримки життєвого циклу програм. Існує версія для Eclipse засобів розробки вбудованих додатків компанії QNX; аналогічний проект реалізує і Wind River. У свою чергу, Hewlett-Packard пропонує на базі Eclipse середу розробки компонентів для своєї системи Internet Usage Manager, цільовою аудиторією якої є оператори зв'язку. Nokia анонсувала підтримку Eclipse як платформи розробки мобільних додатків. IBM реалізувала на базі Eclipse спеціальний інструментарій Autonomic Computing Toolkit, призначений для підтримки в розроблюваних додатках технологій автономних обчислень. З усіх провідних світових виробників програмного забезпечення з Eclipse Foundation не співпрацюють лише Sun Microsystems і Microsoft.

Постачальники комерційних середовищ на базі Eclipse дають можливість незалежним компаніям-розробникам продавати додаткові модулі для їх IDE, і трапляється, що компанія реалізує один і той же модуль власної розробки для різних середовищ на платформі Eclipse. Це не тільки метод освоєння нових ринків, а й ще один спосіб підвищення значущості проекту. Користувачі цінують свободу вибору: якщо вони не задоволені існуючою функціональністю середовища на базі платформи з відкритим кодом, вони можуть розширювати її за допомогою самостійних розробок або придбання комерційних рішень того ж формату.

Перераховані групи по-різному використовують розробки Eclipse, але всі вони вносять свій внесок в їх розвиток. Тенденцією стає використання платформи Eclipse для побудови додатків, відмінних від IDE. Це можливо, оскільки в технологічному вирішенні Eclipse Platform не так багато специфічних для середовищ розробки елементів. У третій версії Eclipse відбувається еволюція від платформи для середовищ розробки до платформи реалізації повнофункціональних клієнтських робочих місць (Rich Client Platform). Не випадково IBM реалізує свою перспективну середу спільної роботи Workplace саме на базі Eclipse.

література

  1. Marc R. Erickson, Angus McIntyre. What is Eclipse and how do I use it? , 2001., November.
  2. J. dea Rivieres, J. Wiegand. Eclipse. A platform for integrating development tools. IBM Systems Journal, 2004, No. 2.

Структура організації Eclipse

Координацію розвитку Eclipse і участі в проектах з відкритим кодом різних організацій і індивідуальних розробників здійснює некомерційний незалежний консорціум Eclipse Foundation

Рада директорів Eclipse Foundation формується з чотирьох основних категорій учасників:

  • стратегічні розробники (Strategic Developers) - компанії Actuate, Borland, IBM, Computer Associates, Intel, QNX, Wind River, Sybase, Scapa Technologies, BEA Systems;
  • стратегічні споживачі (Strategic Consumers) - HP, Montavista Software, SAP, Serena Software;
  • включені постачальники (Add-in Providers);
  • керівники проектів з відкритим кодом (Open Source project leads).

Всі стратегічні розробники і стратегічні споживачі входять до ради директорів, а дві інші групи делегують в нього своїх представників. Стратегічні члени консорціуму мають і певні права на участь в комітетах з управління проектами і Радах, які координують процеси розробки.

Консорціум веде кілька базових проектів у відкритих кодах, які включають в себе ту чи іншу кількість підпроектів. Управління базовим проектом здійснює комітет Project Management Committee (PMC). Для управління розробкою в цілому створюються три основних з овет - за визначенням вимог (Requirements Council), по архітектурі (Architecture Council) і з планування (Planning Council).

Рада по визначенню вимог аналізує і структурує вимоги до проекту. Вони об'єднують вимоги, націлені на досягнення загальних цілей Eclipse Foundation і приватних цілей проекту, на вирішення завдань ключових членів консорціуму і розвиток екосистеми Eclipse. На основі аналізу формулюється список тем і пріоритетів, які визначать хід розробки. Рада по архітектурі відповідає за розробку архітектури Eclipse Platform, її чіткий опис, доведення відповідних відомостей до команд розробників і їх захист від ненавмисних спотворень. Рада з планування створює скоординований план релізів платформи.

Проекти реалізуються командами розробників, очолюваними керівниками проектів і включають в себе розробників і відповідальних розробників. Перші займаються написанням коду, виявленням помилок, тестуванням і документуванням програм, а також виконують інші завдання в рамках проекту. Відповідальні розробники маю право поповнювати репозитарій вихідних кодів і повинні впливати на хід розробки в рамках проекту. Компанії, що мають в Eclipse Foundation статус стратегічних розробників, зобов'язані очолювати принаймні один проект. Заохочується також їх керівництво комітетами.

Навіщо кожному виробнику писати заново те, що можна написати один раз?
What is Eclipse and how do I use it?

Новости