IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Lotus  >

Разработка и развёртывание функционально насыщенных клиентских приложений на настольных компьютерах и мобильных устройствах с помощью IBM Lotus Expeditor V6.1

developerWorks
Опции документа

Опции документа, требующие включения JavaScript, не отображаются

Обсудить

Исходные тексты примера


Выскажите мнение об этой странице

Помогите нам улучшить содержание


Уровень сложности: средний

Шива Нистала, инженер-программист и консультант, IBM
Рикардо Росси, инженер-программист и консультант, IBM

02.12.2008

Узнайте, как с помощью новой среды IBM Lotus Expeditor V6.1 создать несколько представлений одного приложения. Разбейте ваши сервисы на компоненты в соответствии с SOA и создайте приложение платформы функционально насыщенных клиентов (RCP-приложение), способное запускаться как на настольном компьютере, так и на мобильном устройстве.

Вы когда-нибудь задумывались, как сделать, чтобы ваши приложения запускались на многих клиентских устройствах? Попробуйте с помощью новой среды IBM Lotus Expeditor V6.1 создать несколько представлений одного и того же приложения, позволяющих смартфонам, карманным компьютерам и мобильным устройствам бесшовно взаимодействовать с программными системами. Среда Lotus Expeditor поддерживает множество базирующихся на открытых стандартах технологий, например, Web-сервисы, системы обмена сообщениями и корпоративную сервисную шину (ESB), позволяя вам разбивать на компоненты ваши сервисы и выполнять их хореографию в соответствии с Сервис-ориентированной архитектурой (SOA). В настоящей статье мы опишем, как создать приложение платформы функционально насыщенных клиентов (RCP-приложение), которое можно запускать как на обычном компьютере, так и на мобильном устройстве. В соответствии с требованиями архитектуры MVC, мы создадим для одной модели несколько представлений и будем отображать необходимое представление в зависимости от типа вызывающего клиента.

Хотя статья, по сути, представляет собой введение в данную проблему, мы предполагаем, что вы знакомы с Java-программированием и имеете элементарный опыт работы как минимум с одной из Java IDE, например, Eclipse или IBM Rational Application Developer.

IBM Lotus Expeditor

IBM Lotus Expeditor – это новое название продукта IBM WebSphere Everyplace Deployment. Это всеобъемлющая среда исполнения и поддержки, обеспечивающая разработку, развёртывание и выполнение приложений на стороне клиента и выводящая Сервис-ориентированную архитектуру за границы существующих сетей. С помощью Lotus Expeditor можно предоставить вашим пользователям высокопроизводительные, безопасные и надёжные приложения с богатым пользовательским интерфейсом, способные работать даже в условиях ограниченного доступа к сети. Это может значительно повысить производительность работы пользователей и одновременно уменьшить объём передаваемых по сети данных. В Lotus Expeditor можно выделить серверные и клиентские компоненты.

Серверные компоненты предназначены исключительно для поддержки клиентов. Lotus Expeditor предоставляет следующие сервисы:

  • Database Synchronization Server
  • MQ Everyplace Server
  • Device Management Server

В среду исполнения клиента Lotus Expeditor входят:

  • Web-контейнер (для исполнения JSP 1.2 и 2.0 и Servlets 2.3 и 2.4)
  • Встроенный контейнер транзакций (являющийся ограниченной версией J2EE Enterprise Java Bean-контейнера)
  • Пользовательский интерфейс функционально насыщенного клиента
  • Контейнер портлетов (новая функция в Lotus Expeditor V6.1, предназначенная для удалённого развёртывания портлетов JSR168)
  • Клиентские и серверные возможности локальных Web-сервисов
  • Облегчённая система обмена сообщениями с подтверждением их получения абонентом (MQ Everyplace)
  • Облегчённые базы данных с JDBC-доступом (IBM Cloudscape или IBM DB2 Everyplace на ПК и DB2 Everyplace на мобильных устройствах)
  • Агент управления устройствами, позволяющий проводить удалённый аудит клиента, а также выполнять беспроводное развёртывание новых и обновлённых приложений

Lotus Expeditor базируется на Eclipse 3.2, открытой платформе для разработки. Подробную информацию по Eclipse можно получить на Web-сайте Eclipse. В нашей статье оба названия, "клиентский инструментарий Lotus Expeditor" и "инструментарий", взаимозаменяемы и обозначают одно и то же. Инструментарий можно установить поверх Eclipse 3.2 и Web Tools Project 1.5.1 или поверх IBM Rational Application Developer V7.0 (который базируется на Eclipse 3.2).

В нашей статье мы расскажем, как использовать клиентский инструментарий Lotus Expeditor для разработки RCP-приложения, способного работать на настольном компьютере или на мобильном устройстве.

Поделиться...

digg Разместить на Digg
del.icio.us Разместить на del.icio.us
Slashdot Разместить на Slashdot!

Чтобы сделать наши объяснения более понятными, мы приводим снимки экрана и пошаговые инструкции по созданию примера RCP-приложения. В самом примере приложения содержится несколько файлов Java-классов, но мы попросим вас написать код только для некоторых важных методов, необходимых для общего понимания процесса создания приложения для клиента Lotus Expeditor. Поэтому мы предоставляем вам базовое приложение, в котором уже закодирована бизнес-логика. При создании окончательного приложения одним из шагов будет импорт этого базового приложения. Ссылки на базовое приложение и его окончательную версию приведены в разделе Загрузка настоящей статьи.

Предполагается, что вы уже установили Lotus Expeditor на Rational Application Developer 7.0 или на IBM Rational Software Architect. Более подробную информацию по установке Lotus Expeditor см. в разделе Ресурсы. Хотя приводимые снимки экрана относятся к Rational Software Architect, сама концепция и выполняемые операции останутся более или менее такими же, если вы выберите любой другой базовый продукт, необходимый для работы инструментария Lotus Expeditor.

Загрузите ознакомительную версию Rational Software Architect, а также ознакомительную версию Rational Application Developer for WebSphere Software V7.0.

Для создания приложения и его развёртывания на клиенте Lotus Expeditor необходимо выполнить следующие операции:

  • Создать проект Client Services.
  • Написать простой плагин функционально насыщенного клиента.
  • Добавить необходимые точки расширения.
  • Запустить RCP-приложение на Lotus Expeditor.
  • Сконфигурировать проект RCP для поддержки устройств.
  • Запустить RCP-приложение в jclDevice workbench.
  • Развернуть и запустить RCP-приложение на устройстве.


В начало


Создание проекта Client Services

Первый шаг по созданию RCP-приложения – создание проекта Client Services, который будет служить контейнером для плагина функционально насыщенного клиента.

Создание нового рабочего пространства

Прежде чем создавать проект любого типа в среде разработки на основе Eclipse, необходимо выбрать рабочее пространство, в котором будут храниться все связанные с проектом файлы и настройки. Выберите рабочее пространство для хранения ваших файлов и перейдите в перспективу, подходящую для проекта Client Services.

  1. Откройте Rational Software Architect или Rational Application Developer. В нашей статье предполагается, что вы используете инструментарий, установленный на Rational Software Architect.
  2. Когда вам будет предложено выбрать рабочее пространство, введите его новое имя.
  3. Когда появится сообщение как на рисунке 1, в котором предлагается выполнить автоматическую настройку параметров инструментария Lotus Expeditor, нажмите OK и подождите завершения процесса.

Рисунок 1. Настройка параметров
Настройка параметров

  1. После открытия рабочего пространства закройте Страницу приветствия и переключитесь в перспективу Plug-in Development, выбрав в меню Window – Open Perspective – Other.
  2. Выберите перспективу Plug-in Development и нажмите OK.

Создание нового проекта Client Services

В инструментарий Lotus Expeditor добавлены возможности создания нескольких типов проектов Client Services для существующих сред разработки (Rational Application Developer, Rational Software Architect или Eclipse). На этом шаге мы создадим проект Client Services.

  1. Выберите в меню File – New – Project.
  2. В окне Select a Wizard разверните папку Client Services, а затем выберите Client Services Project.
  3. Нажмите Next.
  4. В окне "Create a new Client Services Plug-in Project" в качестве имени проекта (Project name) введите com.ibm.lotusphere.rcp, а другие настройки оставьте без изменений. Нажмите Next.
  5. Примите значения по умолчанию. Введите данные, необходимые для генерации плагина, и нажмите Next.
  6. Убедитесь, что в окне Select the Target Definition and Target Features для данного проекта, в ниспадающем списке Target выбрано значение Default Target, и нажмите Finish для создания нового проекта.


В начало


Написание простого плагина функционально насыщенного клиента

На данном этапе мы импортируем базовое приложение в проект Client Services, созданный на предыдущем шаге. В результате будет создан RCP-плагин в существующем проекте Client Services. После завершения импорта нужно также реализовать классы Views и UI, отвечающие за пользовательский интерфейс приложения. Прежде чем выполнять этот шаг, загрузите базовое приложение RCP_Files.zip (см. раздел Загрузка данной статьи) во временный каталог, например, C:\temp.

Импорт ресурсов

Архитектура Eclipse позволяет экспортировать и импортировать файлы проектов, чтобы облегчить портируемость и разработку. Мы создали базовое приложение и экспортировали его как RCP_Files.zip. В этом разделе мы импортируем этот файл, чтобы получить всю бизнес-логику и настройки. Изучите все XML- и Java-файлы, чтобы лучше понять, как работает это приложение.

  1. Выберите проект com.ibm.lotusphere.rcp в Package Explorer, щёлкните правой кнопкой мыши и выберите Import.
  2. В следующем окне разверните узел General и выберите мастер Archive File.
  3. Нажмите Next.
  4. В следующем окне укажите на загруженный архивный файл, RCP_Files.zip, и убедитесь, что выбран корневой узел, как показано на рисунке 2.

Рисунок 2. Выбор архивных файлов для импорта
Выбор архивных файлов для импорта

  1. Нажмите Finish для импорта файлов в проект.

Создание пользовательского интерфейса

На данном этапе мы будем создавать представление для нашего приложения. Представления для разных типов устройств сильно отличаются. О некоторых различиях, например, касающихся формирования изображения на экране, позаботится Lotus Expeditor. Тем не менее, следует убедиться, что материалы, связанные с фирменным оформлением, например, изображения, подходят для конкретного устройства, для которого ведётся разработка. В примере приложения мы демонстрируем четыре элемента: метку, ниспадающий список, изображение и текстовое окно. Графический файл представляет собой флаг определённой страны, выбранной из ниспадающего списка. Для каждой страны мы создали два изображения её флага, одно из которых немного больше другого; в остальном они одинаковы. Более крупное изображение должно отображаться на клиенте для настольной системы, а меньшее – на мобильном клиенте. На следующих шагах мы создадим Java-класс UI, содержащий пользовательский интерфейс. Этот класс используется как для настольного, так и для мобильного клиента. Чтобы различать разные типы клиентов (в нашем случае их всего два), мы создали экземплярную переменную isDesktop. Эта переменная задаётся программно, путём вызова Java-класса (он также кодируется на более позднем шаге), зависящего от типа клиента.

  1. Разверните проект com.ibm.lotusphere.rcp в представлении Package Explorer, а затем разверните папку src.
  2. Выберите com.ibm.lotusphere.rcp, щёлкните правой кнопкой мыши, а затем в меню выберите New – Class.
  3. Убедитесь, что в диалоговом окне New Java Class в качестве имени пакета выбран com.ibm.lotusphere.rcp, а в качестве нового имени класса введите UI.
  4. Нажмите кнопку Add, в поле Choose interfaces введите org.eclipse.swt.events.SelectionListener, нажмите кнопку Add, а затем – кнопку OK.
  5. Убедитесь, что выбрана опция Inherited abstract method, как показано на рисунке 3.

Рисунок 3. Создание Java-класса UI
Создание Java-класса UI

  1. Нажмите Finish, чтобы просмотреть вновь созданный класс пользовательского интерфейса UI.java в области редактирования workbench.
  2. Добавьте следующие экземплярные переменные сразу после определения класса, как показано в листинге 1.

Листинг 1. Экземплярные переменные в классе
                private Composite c;
private Label flag;
private Combo combo;
private boolean isDesktop = true;
private Text results;


  1. Щёлкните правой кнопкой мыши в любом месте редактора Java и выберите Source – Organize Imports из контекстного меню.
  2. Если будет предложено, выберите класс org.eclipse.swt.widgets.Text и нажмите Finish.
  3. В открытом в редакторе Java-классе UI создайте новый конструктор с аргументом, как показано в нижеприведённом коде:

    public UI (boolean isDesktop) {
    this.isDesktop = isDesktop;
    }
  4. Далее создаём в Java-классе UI метод makeUI(), содержимое которого показано в листинге 2.

Листинг 2. Метод, создающий графический интерфейс для приложения
                public Composite makeUI (Composite parent)  {
 
c = new Composite (parent, SWT.NONE);
GridLayout grid = new GridLayout ();
grid.numColumns = 1;
c.setLayout (grid);
			 
final Label label = new Label (c, SWT.NONE);
label.setText ("Select a country from the list:");
	
combo = new Combo (c, SWT.READ_ONLY);
Utils.loadCountryList (combo);
combo.addSelectionListener (this);
	
flag = new Label (c, SWT.FLAT);
	
results = new Text (c, SWT.WRAP | SWT.READ_ONLY | SWT.V_Scroll);
	
GridData gridData = new GridData ();
gridDate.grabExcessHorizontalSpace = true;
gridDate.grabExcessVerticalSpace = true;
gridData.verticalAlignment = GridData.FILL;
gridData.horizontalAlignment = GridData.FILL;
results.setLayoutData (gridData);
	
return c;
}		 
	

  1. Щёлкните правой кнопкой мыши в любом месте области редактирования и выберите Source – Organize Imports.
  2. Измените метод widgetSelected(), добавив в него строки кода, приведённые в листинге 3.

Листинг 3. Изменение метода WidgetSelected
                public void widgetSelected (SelectionEvent arg0)  {
	// TODO автоматически сгенерированный метод-заглушка
	Utils.loadFlag (flag, combo.getSelectionIndex (), isDesktop);
	c.layout ();
	String countryStats = "";
	int idx = coombo.getSelectionIndex () – 1;
	if (idx >= 0)  {
		Countries stats = new Countries(idx);
		countryStats = 
			"Capital: " + stats.getCapital () +
			"\nPopulation: " + stats.getPopulation () +
			"\nArea: " + stats.getArea () +
			"\nCurrency: " + stats.getCurrency () +
			"\nGDP: " + stats.getGDP () +
			"\nPer Capita GDP: " + stats.getPerCapitaGDP () +
			"\nGrowth Rate: " + stats.getGrowthRate () +
			"\nInflation: " + stats.getInflation () +
			"\nEthnicity: " + stats.getEthnicity () +
			"\nLanguages: " + stats.getLanguages () +
			"\nReligions: " + stats.getReligions ();
	}

	results.setText (countryStats);
	c.layout ();
}


  1. Измените метод widgetDefaultSelected(), добавив код, приведённый в листинге 4.

Листинг 4. Метод widgetDefaultSelected
                public void widgetDefaultSelected (SelectionEvent arg0)  {
	// TODO автоматически сгенерированный метод-заглушка
	widgetSelected (arg0) ;
}
 

  1. Сохраните и закройте UI.java.

Создание представления для настольного компьютера

К примеру приложения можно обращаться с помощью клиента для ПК или мобильного клиента. Начнём с создания класса представления для настольного компьютера, вызывающего ранее созданный класс UI.

  1. Выберите пакет com.ibm.lotusphere.rcp в Package Explorer, а затем щёлкните правой кнопкой мыши и выберите в меню New – Class.
  2. Убедитесь, что в диалоговом окне New Java Class выбран пакет com.ibm.lotusphere.rcp, в качестве имени нового класса введите DesktopView, а в качестве его суперкласса – org.eclipse.ui.part.ViewPart. См. рисунок 4.

Рисунок 4. Создание класса DesktopView
Создание класса DesktopView

  1. Убедитесь, что выбрана опция Inherited abstract methods.
  2. Нажмите Finish, чтобы сгенерировать новый класс. Теперь DesktopView.java должен отображаться в области редактирования workbench.
  3. В DesktopView.java измените метод createPartControl(), чтобы он вызывал метод класса UI, как показано в листинге 5.

Листинг 5. Метод createPartControl() в классе DesktopView
                public void createPartControl (Composite parent) {
	UI ui = new UI (true);
	ui.makeUI (parent);
}

  1. Сохраните и закройте DesktopView.java.

Создание представления для устройства

На данном этапе мы создаём представление для мобильного клиента, вызывающее созданный ранее Java-класс UI.

  1. Выберите пакет com.ibm.lotusphere.rcp в Package Explorer, а затем щёлкните правой кнопкой мыши и выберите в меню New – Class.
  2. В диалоговом окне New Java Class выберите пакет com.ibm.lotusphere.rcp, в качестве имени нового класса введите DeviceView, а в качестве его суперкласса – org.eclipse.ui.part.ViewPart.
  3. Убедитесь, что выбрана опция Inherited abstract methods.
  4. Нажмите Finish, чтобы сгенерировать новый класс. Теперь DeviceView.java должен отображаться в области редактирования workbench.
  5. В DeviceView.java измените метод createPartControl(), чтобы он вызывал метод класса UI, как показано в листинге 6.

Листинг 6. Метод createPartControl() в классе DeviceView
                public void createPartControl (Composite parent) {
	UI ui = new UI (false);
	ui.makeUI (parent);
}


  1. Сохраните и закройте DeviceView.java.


В начало


Добавление необходимых точек расширения

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

  1. Откройте файл дескриптора плагина MANIFEST.MF, расположенный в папке META-INF, с помощью представления Package Explorer. После этого выберите вкладку Extensions.
  2. Нажмите кнопку Add для открытия мастера New Extension.
  3. В мастере в поле Extension Point Filter введите org.eclipse.ui.views, а затем выберите его же в расположенном ниже окне результатов, как показано на рисунке 5.

Рисунок 5. Добавление точки расширения представлений
Добавление точки расширения представлений

  1. Нажмите Finish для создания расширения.
  2. В файле дескриптора плагина выберите только что созданное расширение org.eclipse.ui.views из списка All Extensions, щёлкните по нему правой кнопкой мыши, а затем выберите в меню New – View.
  3. Измените дополнительную информацию элемента расширения, введя следующие значения, как показано на рисунке 6.

    • id: com.ibm.lotusphere.rcp.DesktopView
    • name: Desktop View
    • class: com.ibm.lotusphere.rcp.DesktopView
    • category: org.eclipse.ercp.eworkbench.viewCategory

Рисунок 6. Свойства расширения DesktopView
Свойства расширения DesktopView

  1. В файле дескриптора плагина снова выберите точку расширения org.eclipse.ui.views из списка All Extensions, щёлкните по ней правой кнопкой мыши, а затем выберите в меню New – View.
  2. Измените значения для нового элемента расширения на следующие значения, как показано на рисунке 7.

    • id: com.ibm.lotusphere.rcp.DeviceView
    • name: Device View
    • class: com.ibm.lotusphere.rcp.DeviceView
    • category: org.eclipse.ercp.eworkbench.viewCategory

Рисунок 7. Свойства расширения DeviceView
Свойства расширения DeviceView

  1. В файле дескриптора плагина снова нажмите кнопку Add для открытия мастера New Extension.
  2. В мастере деактивируйте опцию “Show only extension points from the required plug-ins”. В поле Extension Point Filter введите org.eclipse.ercp.eworkbench.applications и выберите то же самое в расположенном ниже окне результатов. См. рисунок 8.

Рисунок 8. Добавление точки расширения приложения
Добавление точки расширения приложения

  1. Для добавления нажмите Finish, или нажмите No, если будет выдано сообщение, в котором спрашивается, хотите ли вы добавить к зависимостям плагин-обработчик.
  2. Вернитесь на вкладку Extensions файла дескриптора плагина, выберите из списка org.eclipse.ercp.eworkbench.applications и щёлкните правой кнопкой мыши, а затем выберите в меню New – Application.
  3. Измените значения следующих элементов, как показано на рисунке 9, и сохраните изменения:

    • id: com.ibm.lotusphere.rcp
    • name: Geo Info App

Рисунок 9. Изменение свойств приложения
Изменение свойств приложения

  1. Разверните org.eclipse.ercp.eworkbench.applications, щёлкните правой кнопкой мыши по узлу Geo Info App и выберите в меню New – Views.
  2. Измените значения элемента представления на следующие значения, как показано на рисунке 10, и сохраните изменения.

    • normal: com.ibm.lotusphere.rcp.DeviceView
    • large: com.ibm.lotusphere.rcp.DesktopView

Рисунок 10. Свойства расширения представления
Свойства расширения представления

  1. Теперь перейдите на вкладку plugin.xml, показывающую исходный код файла. После добавления на предыдущем шаге точки расширения код должен выглядеть как в листинге 7.

Листинг 7. Файл дескриптора плагина

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
	<extension
		point="org.eclipse.ui.views">
		<view
			category="org.eclipse.ercp.eworkbench.viewCategory"
			class="com.ibm.lotusphere.rcp.DesktopView"
			id="com.ibm.lotusphere.rcp.DesktopView"
			name="Desktop View"/>
		<view
			category="org.eclipse.ecrp.eworkbench.viewCategory"
			class="com.ibm.lotusphere.rcp.DeviceView"
			id="com.ibm.lotusphere.rcp.DeviceView"
			name="Device View"/>
	</extension>
	<extension
		point="org.eclipse.ercp.eworkbench.applications">
		<application
			id="com.ibm.lotusphere.rcp"
			name="Geo Info App">
			<views
				large="com.ibm.lotusphere.rcp.DesktopView"
				normal="com.ibm.lotusphere.rcp.DeviceView"/>
		</application>
	</extension>

</plugin>


  1. Сохраните файл и закройте редактор.


В начало


Запуск RCP-приложения на Lotus Expeditor

Теперь создадим конфигурацию запуска, чтобы запустить ваше RCP-приложение на Lotus Expeditor.

  1. Выберите Run – Run в меню Rational Software Architect.
  2. Выберите слева Client Services, щёлкните правой кнопкой мыши, а затем выберите New из контекстного меню, чтобы создать новую конфигурацию запуска для вашего приложения.
  3. Введите Geo Info App on Desktop в качестве имени вашей конфигурации запуска.
  4. Нажмите Apply, а затем нажмите Run для запуска Lotus Expeditor.
  5. При первом запуске Lotus Expeditor необходимо ввести пароль, который используется Lotus Expeditor KeyStore. Введите любой пароль по вашему выбору и обязательно запишите его, так как потребуется его вводить при дальнейших запусках.
  6. Нажмите Login.
  7. Выберите ваше RCP-приложение, нажав кнопку Launch в верхней левой части Lotus Expeditor, а затем выбрав Geo Info App из списка приложений.
  8. Ваше RCP-приложение запустится, оно должно выглядеть как на рисунке 11.

Рисунок 11. Запуск RCP-приложения
Запуск RCP-приложения

  1. Если выбрать из ниспадающего списка название страны, ниже вы увидите её флаг.
  2. Выйдите из Lotus Expeditor.


В начало


Настройка проекта RCP для поддержки устройств

Теперь изменим существующий проект, добавив в него поддержку устройств.

Изменение параметров проекта

По умолчанию параметры базовой платформы устанавливаются для настольного клиента. Инструментарий Lotus Expeditor упрощает разработку приложений для клиентских устройств, предоставляя встроенные конфигурации, подходящие тому или иному клиентскому устройству. Всё, что нужно сделать – установить соответствующие значения параметров; после этого можно запускать то же самое приложение на устройстве.

  1. Выберите Window – Preferences в меню Rational Software Architect.
  2. В левом столбце выберите Client Services, а затем в поле Default Target Selection выберите Default Device Target.
  3. В левом столбце выберите Java – Installed JREs, а затем на правой панели выберите jclDevice Win32 x86.
  4. В левом столбце выберите Plug-in Development – Target Platform. Найдите на правой панели раздел Pre-defined Target. Затем выберите из ниспадающего списка Default Device Target и нажмите кнопку Load Target для загрузки необходимых плагинов для целевого устройства. См. рисунок 12.

Рисунок 12. Загрузка целевого устройства
Загрузка целевого устройства

  1. Нажмите OK, чтобы сохранить изменения, и выйдите из окна параметров проекта.

    ПРИМЕЧАНИЕ: Вы увидите, что в вашем проекте несколько ошибок. Мы исправим эти ошибки на следующих шагах.

Изменение файла plugin.xml

После загрузки целевого устройства по умолчанию набор плагинов, доступных приложению во время исполнения, также изменяется. Некоторые ранее доступные плагины более недоступны приложению Geo Info. Поэтому для импорта необходимых пакетов нужно изменить файл plugin.xml.

  1. Откройте plugin.xml.
  2. На вкладке Dependencies в разделе Imported Packages нажмите Add. Затем добавьте следующие пакеты, как показано на рисунке 13:

    • org.eclipse.swt
    • org.eclipse.swt.events
    • org.eclipse.swt.graphics
    • org.eclipse.swt.layout
    • org.eclipse.swt.widgets
    • org.eclipse.ui.part
    • org.eclipse.ui.plugin

Рисунок 13. Добавление импортированных пакетов
Добавление импортированных пакетов

  1. Сохраните и закройте файл plugin.xml.

    ПРИМЕЧАНИЕ: Теперь все ошибки должны быть устранены.


В начало


Запуск RCP-приложения в jclDevice workbench

Теперь запустим RCP-приложение с помощью конфигурации запуска jclDevice из Rational Software Architect, чтобы протестировать приложение при помощи стандартных библиотек устройства.

  1. Выберите Run – Run в меню Rational Software Architect.
  2. Выберите Client Services, щёлкните правой кнопкой мыши, а затем выберите New из контекстного меню, чтобы создать новую конфигурацию запуска для вашего приложения.
  3. В качестве имени конфигурации запуска введите RCP Application on Device.
  4. Нажмите Apply, а затем – Run для запуска RCP-приложения на eWorkbench.
  5. Вы должны увидеть ваше RCP-приложение в списке eWorkbench, как показано на рисунке 14. Щёлкните для его запуска и протестируйте его работу, выбирая из списка названия стран, как показано на рисунках 15 и 16.

Рисунок 14. Приложение eWorkbench
Приложение eWorkbench


Рисунок 15. Запуск приложения
Запуск приложения


Рисунок 16. Просмотр информации о стране
Просмотр информации о стране

  1. Выйдите из Lotus Expeditor.


В начало


Развёртывание и запуск RCP-приложения на устройствах

На данном этапе мы упакуем RCP-плагин как функцию, а затем развернём его при помощи сайта обновления, передаваемого в файловую систему устройства, чтобы можно было выполнить локальную установку с помощью менеджера приложений (Application Manager).

Создание проекта функции (Feature project)

Функции являются контейнерами плагинов и логически представляют функциональность конкретного продукта. Функции используются для упаковки плагинов и доставки продукта. В этом разделе мы экспортируем пример приложения как функцию.

  1. Выберите File – New – Project, чтобы получить доступ к мастерам проектов.
  2. В разделе Plug-in Development выберите Feature Project.
  3. Нажмите Next.
  4. В поле Project name введите Geo Info App.
  5. Нажмите Finish для создания проекта функции. Теперь файл feature.xml проекта функции должен быть открыт в области редактирования workbench.
  6. В файле feature.xml выберите вкладку Plug-ins.
  7. Нажмите кнопку Add рядом с разделом Plug-ins and Fragments и добавьте плагин com.ibm.lotusphere.rcp к списку.
  8. Сохраните и закройте feature.xml.

Создание проекта сайта обновления (Update Site project)

Проекты сайта обновления позволяют создавать хранилище всех необходимых функций и плагинов. Они используются в качестве механизма для установки функций и/или плагинов.

  1. Выберите File – New – Project, чтобы получить доступ к мастерам проектов.
  2. В разделе Plug-in Development выберите Update Site Project.
  3. Нажмите Next.
  4. В поле Project name введите Geo Info App UpdateSite.
  5. Нажмите Finish для создания проекта сайта обновления. Теперь файл site.xml проекта сайта должен быть открыт в области редактирования workbench.
  6. Выберите вкладку Site Map в файле site.xml, если она ещё не выбрана.
  7. Нажмите New Category.
  8. В разделе Category Properties этого окна введите My Apps в качестве имени категории и метки, как показано на рисунке 17.

Рисунок 17. Добавление категорий
Добавление категорий

  1. Нажмите Add Feature и введите Geo_Info_App, как показано на рисунке 18.

Рисунок 18. Добавление функций к сайту обновления
Добавление функций к сайту обновления

  1. Убедитесь, что функция была добавлена в категорию. Если нет, перетащите Geo_Info_App в категорию My Apps.
  2. Нажмите Build All.
  3. В файле site.xml перейдите на вкладку site.xml и добавьте атрибут типа к узлу сайта, как показано в коде листинга 8.

Листинг 8. Обновление XML-файла
 <?xml version="1.0" encoding="UTF-8"?>
 <site type="org.eclipse.ercp.update.http">
 <feature url="features/Geo_Info_App_1.0.0.jar" id="Geo_Info_App" version="1.0.0">
 <category name="My Apps"/>
 </feature>
 <category-def name="My Apps" label="My Apps"/>
 </site>
 </code>

  1. Сохраните и закройте файл site.xml.

Экспорт и установка с сайта обновления на устройства

Чтобы подготовить установку примера приложения на устройство, экспортируем необходимые функции, плагины и относящиеся к сайту файлы в локальный каталог. Перед выбором устройства убедитесь, что используется одно из поддерживаемых устройств (см. ссылку на Информационный центр в разделе Ресурсы данной статьи). Установите клиент IBM Lotus Expeditor на устройство, если вы этого ещё не сделали.

  1. Щёлкните правой кнопкой мыши на проекте My Update Site и выберите Export.
  2. В разделе General выберите File System.
  3. Нажмите Next.
  4. Выберите каталог для экспорта (или перейдите в него), а затем нажмите Finish.
  5. Для установки вашего RCP-приложения на устройство убедитесь, что устройство подключено через USB. С помощью Проводника перейдите в Mobile Device, а затем в \My Documents\Personal.
  6. Скопируйте экспортированные файлы (site.xml, каталоги функций и плагинов) в каталог \My Documents\Personal устройства, как показано на рисунке 19.

Рисунок 19. Файлы сайта обновления
Файлы сайта обновления

  1. На устройстве откройте Lotus Expeditor.
  2. В Lotus Expeditor запустите Application Manager и выберите Install New Applications/Features.
  3. После появления сообщения "You can create a new location by Command>Add Location" нажмите OK.
  4. Выберите Command – Add Location, а затем – Local site.
  5. Нажмите Next.
  6. Выберите папку Personal и выделите сайт.
  7. Нажмите Finish.
  8. Выберите новый локальный сайт и нажмите Next.
  9. Разверните сайт и выберите Geo_Info_App_Feature.
  10. Нажмите Next, примите все параметры и нажмите OK для перезапуска Lotus Expeditor.
  11. Подождите, пока перезапустится Application Manager, а затем нажмите OK, чтобы его закрыть. Через несколько секунд вы должны увидеть приложение Geo Info App, установленное в eWorkbench устройства.
  12. Запустите приложение и проверьте его в работе, как делали раньше.

Мы успешно запустили приложение на клиенте устройства. Хотя мы могли бы усовершенствовать наше приложение, включив в него конструктивные шаблоны и другую серверную инфраструктуру, например, MQe, Web-сервисы и DB2e, мы решили этого не делать, чтобы не усложнять статью. Цель нашего примера – дать общее представление о последовательности операций, необходимых для создания приложения, которое можно запускать на настольном компьютере и на клиенте устройства.



В начало


Заключение

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




В начало


Загрузка

ИмяРазмерМетод загрузки
RCP_Files.zip669KBHTTP
GeoInfoAppDesktop.zip1.36MBHTTP
GeoInfoAppUpdateSite.zip591KBHTTP
Информация о методах загрузки


Ресурсы

Научиться

Получить продукты и технологии

Обсудить


Об авторах

Шива Нистала (Shiva Nistala) – инженер-программист и консультант в IBM Developer Relations. Шива занимается внедрением технических решений у бизнес-партнёров IBM, использующих IBM WebSphere Portal, IBM Workplace и связанные с ними технологии и инструменты. Шива публиковался и выступал по некоторым проблемам, связанным с WebSphere Portal и технологиями совместной работы Lotus.


Рикардо Росси (Ricardo Rossi) – инженер-программист и консультант в Центре инноваций IBM в Далласе, Техас. В его обязанности входит разработка и проведение семинаров по IBM Lotus Expeditor и IBM Lotus Notes, а также участие в экспериментальных и других мероприятиях по привлечению клиентов. Он получил степень магистра наук по информационным технологиям и менеджменту в Техасском университете в Далласе.




Выскажите мнение об этой странице


Пожалуйста, найдите минутку и заполните форму, чтобы повысить уровень сервиса.



 


 


 


Поделиться этой статьей:

забобрить забобрить memori сохранить в memori




В начало


IBM обладает всеми авторскими правами касательно информации, расположенной на developerWorks. Использование информации приведенной на этом ресурсе без явного письменного разрешения от IBM или первоначального автора запрещены. Если Вы желаете использовать информацию с developerWorks, пожалуйста воспользуйтесь регистрационной формой для того, чтобы связаться с нами запрос на использование материалов developerWorks Россия.
    IBM в России Конфиденциальность Контакты