Eclipse Communication Framework бағдарламасымен таныстыру

Eclipse — бұл ең алдымен көптеген қосымшаларды құруға арналған сапалы платформа. Платформаның негізгі құрамдас бөлігі — Equinox, OSGi R4 спецификациясын іске асыру. Басқа құрамдас бөліктер Equinox негізінде құрастырылған, мысалы, Eclipse Communication Framework, біз бүгін айтатын боламыз.

Жасыратыны жоқ, біз қазір жасайтын қосымшалардың көпшілігі желілік ортада жұмыс істейді. Бұл әсіресе деп аталатындарға қатысты. Кәсіпорын-қосымшалар, әзірлеу үшін Java негізінен пайдаланылады. Әрине, мұндай қосымшалар жергілікті желімен және/немесе Интернетпен өзара әрекеттесу құралдарын қажет етеді. Мұндай өзара әрекеттесуді өзіңіз жазу өте қиын, сондықтан ECF желінің мүмкіндіктерін пайдаланатын және OSGi негізіндегі (атап айтқанда, Eclipse RCP қосымшалары) бағдарламаларды құруды жеңілдету үшін әзірленген.

ECF — бұл әртүрлі қолданбалы протоколдар арқылы деректерді тасымалдайтын таратылған контейнерлер тұжырымдамасының жүзеге асырылуы. Контейнерлер күй (яғни сеанс) және тұрақты емес байланысты қамтамасыз ете алады. Нүктеден нүктеге (мысалы, клиент-сервер) және жариялаушы-жазушы әрекетіне қолдау көрсетіледі. Өзара әрекеттестіктің өзі синхронды немесе асинхронды болуы мүмкін.

Шындығында, ECF әртүрлі байланыс протоколдарын қамтамасыз ететін контейнерлер үшін API интерфейстерінің бір жинағын қамтамасыз етеді және бұл жиын кеңейтіледі және белгілі бір протоколға тән мүмкіндіктерді пайдалануға мүмкіндік береді. Бұл мүмкіндік адаптер механизмін пайдалану арқылы қамтамасыз етіледі.

Жалғыз API бізге «екінші жағында» екенімізді алаңдатпауға мүмкіндік береді — протокол өзгерген жағдайда, біз жай ғана жасалған контейнерді өзгертеміз, қалған кодты өзгерту қажет емес. Мұндай біріктірудің тағы бір артықшылығы — бір технологиядан (мысалы, сол IBM WebSphere-де ұсынылған Apache ActiveMQ-дан) екіншісіне (мысалы, Oracle-дан Weblogic) оңай ауысу.

OSGi ортасында ECF қолдануына келетін болсақ, ол Equinox үшін Distributed OSGi (RFC 119) жүзеге асыруды қамтиды. Дегенмен, шеңберді толығырақ қарастырайық.

Негізгі API интерфейстерін және оларды қамтамасыз ететін кейбір контейнерлерді қарастырайық.

1. Remote Services – қашықтағы қызметтер. Қорытындысы мынада: бір желілік құрылғыда жұмыс істейтін OSGi ортасында тіркелген қызметтер басқа машиналарда пайдалану үшін қолжетімді болады. Бұл API келесі протоколдар арқылы жүзеге асырылады: generic – ECF, r-osgi, XMPP/XMPP SSL, JavaGroups, ActiveMQ, Weblogic, REST үшін арнайы әзірленген протокол.

2. Ортақ нысан – нысанның көшірмелерін ECF контейнерлері бойынша таратуға мүмкіндік береді. Мұндай көшірмелер репликалар деп аталады. Репликалар бір-бірімен хабарлама алмаса алады. Дәл Shared Object негізінде таратылған хабарламаларды өңдеу механизмі жүзеге асырылады. Бұл API келесі протоколдар арқылы жүзеге асырылады: жалпы, XMPP/XMPP SSL, Java топтары, ActiveMQ, Weblogic, Skype.

3. Datashare – ECF контейнерлері арасында ерікті деректер ағындарын алмасуға мүмкіндік береді. Орындалған: жалпы, XMPP/XMPP SSL, Java топтары, ActiveMQ, Weblogic, Skype.

4. Discovery — желіде қолжетімді қызметтерді табуды қамтамасыз етеді. Мысалы, r-osgi жүзеге асыру үшін қолданылады. ECF жүйесінде келесі протоколдарға қолдау көрсетіледі: Zeroconf/Bonjour/Rendevous және Java Service Locator Protocol (RFC 2608).

5. Presence – Messengers, IRC, Chats бағдарламаларымен жұмыс істеуге арналған API. Келесі протоколдарға қолдау көрсетіледі: XMPP/XMPP SSL, MSN, Yahoo, Skype.

6. File Transfer – аты айтып тұрғандай, біз файлдарды тасымалдау туралы айтып отырмыз. ECF HTTP протоколын URLConnector арқылы, HTTP протоколын Apache HTTPClient, Bittorrent, XMPP/XMPP SSL арқылы қолдайды.

Сондай-ақ ECF-де телефонияны, процессаралық байланысты (IPC) және басқаларды жүзеге асыруға арналған API бар.

ECF қалай орнатуға болады? Барлық орнату нұсқаулары осы бетте жинақталған. Бүгінгі күні ең соңғы тұрақты нұсқасы 3.1, оны осы жерден жүктеп алуға болады.

Жобаның негізгі құжаттамасы Eclipse WiKi-де жинақталған. Сондай-ақ барлық берілген API үшін құжаттама бар. Сіз JavaDoc бағдарламасын бөлек оқи аласыз. Мысалдармен жеке API сипаттамасын Северный Челябинск бағдарламашысының блогында табуға болады.

ECF пайдаланудың қызықты мысалы — TweetHub, Eclipse RCP қолданбасы болып табылатын толық мүмкіндікті Twitter клиенті. Бұл жоба әлі бета нұсқасында, ресми ассамблеялар жоқ, сондықтан оны өзіңіз құрастыруыңыз керек.

Мұны істеу үшін OSU Open Source Lab CVS серверінен көздерді тексеру керек. CVS қосылым жолы: :pserver:anonymous@ecf1.osuosl.org:/ecf. Жоба ағашынан плагиндер каталогын таңдаңыз, олардан біз өз кезегінде үш буманы жүктейміз:

org.eclipse.ecf.provider.twitter — twitter үшін ECF контейнерін қамтамасыз ететін провайдер
org.eclipse.ecf.provider.twitter.ui.hub — пайдаланушы интерфейсін қамтамасыз ететін плагин
org.eclipse.ecf.provider.twitter.ui.hub.product — RCP өнімі.