Создание заказного содержимого при помощи Yahoo Pipes Объединение фидов и переделка их по вашему вкусу
Уровень сложности: простой Джефф К. Уилсон, разработчик программного обеспечения для ведения электронного бизнеса, IBM 16.01.2008 Узнайте о преимуществах использования фильтрации фидов (feeds), аналогичной Yahoo Pipes, для улучшения сбора, объединения и изменения данных из различных источников. В данном руководстве рассмотрены некоторые технические приемы преобразования фидов. В руководство включено три демонстрационных примера использования ключевых возможностей среды. Перед началом работы О данном руководстве В данном руководстве рассматриваются основы Yahoo Pipes, сервиса, который фильтрует, преобразовывает и объединяет фиды содержимого. Приведен полный обзор доступного набора инструментальных средств и три демонстрационных примера, иллюстрирующих возможности сервиса. Наконец, рассмотрены пошаговые инструкции для одного из примеров и приведен подробный видеоролик этого процесса. Цели Назначением данного руководства является описание сервиса Yahoo Pipes для управления доступными фидами. Основное внимание уделяется доступным функциональным возможностям и инструментальным средствам. Предварительные требования Никакие требования не предъявляются. Вся функциональность доступна в интерактивном режиме.
Введение Недавно у меня появилась возможность погрузиться в различные технологии Web 2.0 и исследовать их возможный эффект на разработку приложений. Концепция Web 2.0 означает разные вещи для разных людей, но одним из основных принципов является ее влияние на общедоступные вычисления, принимающее разнообразные формы. И что интересно, по мере привыкания сообщества к интерактивным взаимодействиям все мы все меньше доверяемся пользовательским интерфейсам, предоставляющим конкретную информацию, и все более полагаемся на самостоятельный запрос информации, что позволяет отображать или использовать ее по своему усмотрению. Прямой путь использования фидов содержимого: информация без интерфейса.
Такое использование фидов оказывает влияние не только на разработчиков, но и на пользователей. Порталы, или интерфейсы к информации, распространяются все более широко и часто реализуются в виде домашних страниц, на которых пользователям предоставляются инструменты для изменения отображаемой информации. Эти инструменты дают возможность пользователю самому решать, что отображать на странице. Для разработчиков влияние заключается в наличии инструментальных средств, позволяющих отображать или использовать данные стандартными, традиционными способами, снабжая ими эти новые гибкие UI-среды. Наиболее важно то, что разработчики теперь могут не быть одновременно высококвалифицированными техническими специалистами и экспертами в предметной области. Раньше программист-одиночка должен был знать интерфейсные технологии и сам управлять информацией, используемой в разрабатываемом приложении. Теперь, в связи с доступностью структурированных данных, решив создать очередное грандиозное сообщество, стать виртуальным дилером по продаже автомобилей или создать сайт реселлера компьютерной техники, я могу сделать это на своем кухонном столе. О Yahoo Pipes Но существует маленькая проблема: если мой новый сайт JeffsWayCoolEventCoordinatorPortal.com зависит от чьих-то еще потоковых данных, как мне выбрать то, чего я хочу? Естественно, потоков очень много, и зачастую можно выполнять их фильтрацию, но редко (если вообще возможно) можно управлять данными так, как это обычно делается с данными из локального источника. Например, что если я захочу получить фид для определенных товаров, но только конкретного цвета? Или мне нужно будет отсортировать элементы определенным образом? Или, не дай бог, мне понадобиться объединить данные из разных источников? Обходной путь с использованием Yahoo Pipes: нет информации, нет интерфейса. Только инструменты, необходимые для настройки того, что передается между ними. Yahoo Pipes - это чрезвычайно полезный инструмент, располагающийся между приложением и источником данных. Этот сервис позволяет разработчикам преобразовывать, настраивать и менять каким-либо образом содержимое перед тем, как оно дойдет до приложения. Это простой, но мощный механизм, экономящий значительное время при разработке алгоритмов внутреннего анализа и редактирования в приложениях. Я записал действия данного руководства во Flash-видеоролик (в разделе "Заключение" приведены ссылки на него). Вы можете просмотреть его, если не имеете времени на реализацию своих собственных каналов данных (pipes).
Ловкий и захватывающий Для начала давайте рассмотрим инструментальные средства. Если честно, разработчики данной среды действительно выполнили интересную работу по созданию дружественного пользователю и привлекательного интерфейса.
Конечной целью является помещение содержимого в инструментальную программу, поэтапное выполнение каких-либо действий с ним и, наконец, вывод в новый поток. Этот процесс определенно поддерживается подобного рода визуально ориентированной программой, преобразующей его в последовательность операций. Возможности переноса и расположения компонентов, установки атрибутов с использованием встроенных в эти компоненты форм и прорисовки соединений выхода одного с входом другого являются очень мощными и простыми. Базовая среда Основой инструментальной среды является координатная сетка редактора и палитра компонентов (см. рисунок 1).
Рисунок 1. Палитра компонентов и редактор
Как и ожидалось, можно перетаскивать интересующие вас компоненты с палитры и сбрасывать на координатную сетку редактора. Для подключения компонента в схему просто рисуется канал передачи от выхода одного компонента ко входу другого, как показано на рисунке 2. Довольно просто.
Рисунок 2. Перетаскивание и сброс компонентов с палитры в редактор
Кроме того, имеется информационная панель и вид (view) отладчик/содержимое. Они будут очень полезны.
При выборе компонента в палитре отображается его краткое описание, а так же ссылка на пример использования. Аналогично, при выборе компонента в редакторе отображается его влияние на содержимое в отладчике. Если пользователь выбирает различные компоненты в схеме преобразования, отладчик отображает обновленное содержимое фида. На рисунке 3 изображено подмножество оригинального фида, основанное на правиле, описанном в компоненте filter.
Рисунок 3. Информационная панель и панель отладчика
Источники данных Чтобы начать что-нибудь делать, необходимо иметь фид. Можно использовать либо реальный RSSпоток, либо указать сайт, например Google или Yahoo, используя компонент source, представленный на палитре. Последний вариант значительно мощнее для сгенерированного заново содержимого, поскольку не все доступно через каким-либо образом указанный фид содержимого, - иногда лучше просто что-то найти. Следовательно, если вы хотите активировать в Google Base поиск работы конкретного типа, либо (как показано на рисунке 4) использовать Yahoo Local для поиска событий определенного типа в данном регионе, вам необязательно знать о конкретном фиде, предоставляющем эту информацию.
Рисунок 4. Пример источника данных Yahoo Local
Можно просто непосредственно указать URL существующего фида содержимого, как показано на рисунке 5.
Рисунок 5. Использование компонента Fetch для указания конкретного потока
содержимого
После определения первоначального источника данных содержимое передается в инструментальную программу, где другие компоненты начинают дорабатывать, анализировать и преобразовывать данные во что-то новое и более полезное.
Операторы Большая часть базовых операций принадлежит группе компонентов Operators. Эти операторы предоставляют возможности от фильтрации и сортировки до циклов и ввода регулярных выражений, а также специфичных функций, таких как преобразование языков и извлечение полезных подробностей. На рисунках 6 и 7 изображен фильтр, помещенный после оригинального содержимого, записываемого в канал. Фильтр ограничивает отображаемую информацию, показывая только те элементы, которые содержат текст "Wii".
Рисунок 6. Добавление фильтра Wii к потоку (отладчик отображает содержимое оригинального RSS до фильтра)
Рисунок 7. Добавление фильтра Wii к потоку (отладчик отображает отфильтрованное содержимое RSS после фильтрации)
Как можно заметить на снимках экранов, есть возможность реализовать несколько других операторов в вашем канале данных. Опишем некоторые из них: •
For Each: Annotation: Предоставляет средство прохода в потоке по каждому элементу, добавляя новый узел, содержащий выходные данные из другого потока.
•
For Each: Replace: Предоставляет средство прохода по элементам в фиде, в котором выходные данные другого фида замещают элемент оригинального фида. В обоих компонентах For Each атрибуты оригинального элемента могут передаваться во
вторичный поток. Например, фид job bank, содержащий открытые вакансии, может выполнить цикл, передавая ключевые слова каждому элементу в новом фиде, который выдает резюме, содержащие эти ключевые слова. •
Rename: Позволяет переименовать атрибуты.
•
Split: Разделяет потоки данных на основе некоторого критерия.
•
Count: Количество возвращенных элементов. Его можно использовать для установки поля количества в другом месте.
•
Truncate: Ограничивает количество элементов, которые разрешено передавать.
•
Content Analysis: Анализирует содержимое элемента, находя важную описательную информацию.
•
Sort: Сортирует элементы.
•
Regex: Обрабатывает с использованием регулярных выражений.
•
BabelFish: Переводит на (с) различные языки.
•
Location Extractor: Определяет адрес, выполняя поиск различных форматов месторасположения в теле текста.
•
Unions: Объединяет потоки. Обычно используется после оператора split, в котором выполняется разнообразная обработка на основе определенного критерия, а затем части объединяются заново.
•
Unique: Ограничивает повторяющиеся элементы на основе заданного атрибута.
Пользовательский ввод данных Другими ключевыми компонентами в палитре являются инструменты пользовательского ввода данных (user input). Для большинства инструментов в различных компонентах можно вручную определить или создать поля для сбора динамических данных. Эти динамические данные, хотя и обозначенные как пользовательский ввод данных (user input), не ограничиваются только вводом данных пользователей, а являются входными данными, предоставляемыми чем-то, определенным в другом месте. Если пользователь реализует канал данных от интерфейса Yahoo Pipes, то это, фактически, компонент user input, и интерфейс динамически создает и отображает необходимые компоненты формы "на лету". Однако, как вы увидите в последнем демонстрационном примере данного руководства, поле user input может заполняться некоторой другой частью структурной схемы обработки. Так или иначе, эти компоненты ввода данных позволяют схеме преобразования генерировать выходные данные, основываясь на некоторой настраиваемой части информации, и увеличивать ее гибкость. Например, можно подключиться к фиду технического журнала, используя фильтр для извлечения подмножества элементов на основе определенного пользователем критерия. В одной реализации пользователь может передать в один день ключевое слово "цифровые фотоаппараты", а в другой день - "принтеры"; в обоих случаях будут извлекаться только соответствующие
элементы. В другой реализации динамические входные данные могут передаваться из ключевых слов, извлеченных из другого фида "новые товары", отображая только элементы технического журнала, содержащие недавно выпущенные товары, какими бы они ни были. На рисунке 8 показано, как можно определить текст, который вы хотите использовать в качестве фильтра для потока содержимого. Точнее говоря, текст фильтра не кодируется жестко в компоненте filter; в этом примере он предоставляется в форме, и эти данные направляются в поле компонента filter. Кроме того, как вы увидите в последнем демонстрационном примере, можно также связать некоторое доступное свойство с входным компонентом field. При этом динамические данные определяются тем, что обрабатываются где-то в другом месте, а не непосредственным вводом пользователя.
Рисунок 8. Подключения компонента user input к filter
Связать входной элемент с конкретным полем можно просто путем перемещения точки соединения от входа к точке соединения данного поля. На рисунке 8 изображены различные типы компонентов user input.
Другие компоненты В дополнение к компонентам URL, String и Date для последующей обработки этих типов Yahoo Pipes предлагает еще одну очень мощную возможность: способность накладывать каналы данных из раздела My Pipes. My Pipes отображает все разработанные вами процессы, которые можно встроить в другие схемы обработки. Это позволяет организовать определенный уровень повторной используемости и разбиения на компоненты. Все, созданное при помощи компонентов user input, становится потенциальным местом для атрибута, который можно связать каналом с другими используемыми фидами. На рисунке 9 определен некий процесс для поиска антиквариата на Craigslist. Процесс отображает один динамически указываемый поисковый запрос, обозначенный query. Поле input позволяет пользователю (или, как в данном случае, другому фиду) передать конкретные поисковые запросы в схему обработки antique. Вы можете вручную указать этот запрос (например, как "стол" или "буфет") или принять его по каналу откуда-то еще, как в данном примере. На рисунке 9 показано объединение фида New York Times, связанного с мебелью, и элементов, доступных на Craigslist, на основе ключевых слов, перекрывающих оба источника данных. Ключевые слова передаются из фида New York Times при помощи компонента Content Analysis, который заполняет атрибут y:content_anaysis в оригинальном фиде. Обратите внимание на указание этого выражения в
цикле For Each для использования в поле query. Этот цикл For Each: Annotate создает новый атрибут stuff_on_craigslist для каждого элемента оригинального фида и заполняет его информацией, возвращенной из подпроцесса antique.
Рисунок 9. Использование атрибутов одного фида в качестве входных данных для другого вложенного фида
Заключение Инструментальную программу Yahoo Pipes (с ее интерфейсом с перемещаемыми компонентами) использовать очень легко. В нее также входит много вспомогательных инструментальных средств базового преобразования, которые вы, возможно, захотите использовать. В следующих разделах мы рассмотрим процесс создания некоторых демонстрационных преобразований, к которым можно обратиться, запустить и (при условии сохранения собственной копии) изменить в интерактивном режиме.
Демонстрационный пример 1: Поиск грузовиков в Austin Обзор демонстрационного примера К этому каналу данных можно обратиться по следующему URL: http://pipes.yahoo.com/pipes/pipe.info?_id=Tsxjv_nX2xGcxwfnp2IyXQ Обратите внимание на то, что просмотреть и запустить демонстрационные каналы данных, используемые в данном руководстве, может каждый. Если вы бесплатно зарегистрируете учетную запись на Yahoo, то сможете также выполнить импорт, редактирование и копирование этих примеров.
В первом демонстрационном примере вы познакомитесь с общим процессом настройки канала данных. В данном примере вы просто создадите фид, отображающий объявления о продажах автомобилей, попадающих под определенные вами категории. Этот фид можно направить в считыватель или домашнюю страницу портала. Если по указанной выше ссылке видна работа канала данных, посмотрите, как я сделал этот канал, - нажмите на графический элемент, представляющий структурную схему в левом нижнем углу страницы, как показано на рисунке 10.
Рисунок 10. Нажмите на структурную схему для редактирования копии канала данных
Если вы запишете существующий поток данных в свой собственный профиль, его можно будет редактировать, но я опишу в следующей части данного раздела процесс создания схемы потока с нуля.
Создание схемы потока 1. Для начала выберите пункт Create pipe, а если смотрите, как этот канал данных был сделан в редакторе, нажмите New. При этом отобразится чистый редактор для работы (возможно, придется зарегистрироваться в Yahoo, для того чтобы это можно было сделать). 2. Разверните Sources, если это еще не сделано, и перетащите компонент Google Base в редактор, как показано на рисунке 11. Рисунок 11. Перетащите компонент Google Base в редактор
3. В ниспадающем меню Find выберите пункт vehicles.
4. В поле keyword введите truck. 5. В ниспадающем меню выберите 20 miles. 6. В поле location введите почтовый индекс. Ваш компонент должен выглядеть примерно так, как показано на рисунке 12. Рисунок 12. Введите критерий поиска
7. Разверните группу Operators и перетащите компонент Sort под компонент Google Base. 8. Для подключения Google Base к Sort перетащите точку, расположенную внизу компонента Google Base, в точку, расположенную вверху компонента Sort. Ваш экран должен выглядеть примерно так, как показано на рисунке 13. Рисунок 13. Добавьте сортировку
9. В ниспадающем меню sorting выберите g:condition. 10.Нажмите левой кнопкой мыши знак плюс рядом с Sort by, чтобы добавить еще одну категорию сортировки, и выберите g:year. 11.Установите везде порядок сортировки по возрастанию. Ваш экран должен выглядеть примерно так, как показано на рисунке 14. Рисунок 14. Добавьте критерий сортировки
12.С палитры перетащите компонент Filter в редактор. 13.Для подключения Sort к Filter перетащите выходную точку Sort к входной точке Filter. 14.Настройте поля выбора вариантов на Permit items that match all of the following (разрешить элементы, соответствующие всему нижеследующему). 15.Выберите категории правил g:mileage и is less than (меньше чем), введите 100000, как показано на рисунке 15. Рисунок 15. Добавьте критерий фильтрации
16.Из палитры компонентов перетащите в редактор еще один компонент filter ниже первого компонента filter. 17.Подключите выход двух компонентов filter ко входу, как делали это раньше. 18.На этот раз снова выберите Permit, но с вариантом any of the following (любое из следующего). 19.Нажмите знак плюс рядом с Rules. 20.Назначьте оба правила на чтение g:color и Contains, но для одного укажите black, а для второго red. Оба фильтра (этот и предыдущий) указывают на то, что все элементы должны иметь пробег до 100,000 миль и быть либо черного, либо красного цвета. При этом не допускается смешение цвета. Ваш экран должен выглядеть примерно так, как показано на рисунке 16. Рисунок 16. Добавьте дополнительные критерии фильтрации
21.Для упорядочивания схемы нажмите Layout в правом верхнем углу редактора, как показано на рисунке 17. Рисунок 17. Приведение схемы в порядок
22.Наконец, подключите выход второго компонента Filter ко входу компонента Pipe Output, как показано на рисунке 18. Рисунок 18. Последние штрихи
23.Для тестирования канала данных выберите компонент Google Base и просмотрите информацию, выводимую в панели Debugger ниже. Экран должен выглядеть примерно так, как показано на рисунке 19. Рисунок 19. Тестирование подключения Google Base
24.Теперь выберите компонент Sort component для просмотра влияния потока данных на панель Debugger. Рисунок 20 должен быть вам знаком. Рисунок 20. Тестирование сортировки
25.Затем, выберите компоненты filter для просмотра их влияния на выводимую информацию (как видно на рисунке 21, я сузил выбор новых грузовиков до двух, находящихся в моем регионе). Рисунок 21. У меня осталось только два
26.Теперь можно сделать канал данных доступным для остального мира. Нажмите кнопку Save, а затем Publish, введя все, что вам понравится, как показано на рисунке 22. Я назвал свою работу My new article test. Рисунок 22. Сохранение канала данных (не забудьте опубликовать...)
27.Для просмотра страницы канала данных, который вы только что сделали доступным, нажмите Pipe Preview, как показано на рисунке 23. Рисунок 23. Ссылка Pipe preview
28.Запустите My new article test! Вы увидите нечто похожее на рисунок 24! Рисунок 24. Выполнение Pipe preview
29.Для использования созданного канала данных можно щелкнуть правой кнопкой мыши на ссылке Get as RSS или Get as JSON для сохранения назначения ссылки и использовать этот URI в любом приложении, где нормально можно использовать фид. Например, если вы, как и я, используете Firefox, можете нажать Get as RSS, а затем оставить выбранным Live Bookmarks и нажать Subscribe Now, как показано на рисунке 25. Рисунок 25. Добавление Live Bookmark нового канала данных
30.Выберите месторасположение, где вы хотите сохранить ваш канал данных в списке закладок. Ваша новая динамическая закладка всегда будет держать вас в курсе доступных автомобилей, как показано на рисунке 26. Рисунок 26. Новая закладка Live Bookmarks
31.Вернитесь к рабочему каналу данных. 32.Выберите Subscribe и отметьте все месторасположения, куда вы можете передать ваш поток, как показано на рисунке 27. Рисунок 27. Доступные подписки
На рисунке 28 показан наш канал данных, встроенный в персонализированную домашнюю страницу Google.
Рисунок 28. Новый канал данных в персонализированной домашней странице Google
Демонстрационный пример 2: Поиск тегов del.icio.us Для второго демонстрационного примера я создал канал данных, использующий подписку, настроенную на сайте del.icio.us на возврат популярных сайтов, которые другие пользователи помечают тегом "dessert". Мой канал данных запрашивает эту подписку и позволяет отфильтровать сайты по ключевому слову. 1. Перейдите по URL канала данных http://pipes.yahoo.com/pipes/pipe.info? _id=knPV_OTX2xG9LijZp2IyXQ. Должно отобразиться нечто похожее на рисунок 29.
Рисунок 29. Мой канал данных, запрашивающий подписку на del.icio.us
Эта форма генерируется динамически при использовании компонентов User Input в структурной схеме потока. Для просмотра того, как это делается, нажмите пиктограмму How this pipe was made в левой части. 2. В поле Subscription введите dessert и нажмите Run Pipe. При этом возвратится информация обо всех сайтах, отмеченных тегом dessert, отсортированная по популярности (то есть по количеству посещений пользователями отмеченных этим тегом Web-страниц). 3. Теперь введите chocolate в поле Search for. При этом возвратится подмножество подписки dessert, состоящее из сайтов, которые содержат слово chocolate в заголовке или описании фида. 4. Для использования этого канала данных в ваших собственных подписках просто нажмите Clone и измените URL источника для указания вашего профиля del.icio.us, а затем введите названия ваших подписок в отображаемой форме, а также любые критерии поиска, которые вы хотите добавить. Ключевые моменты В компоненты user input пользователи могут вводить информацию во время работы канала данных. Вы можете связать эти компоненты с любыми текстовыми полями других компонентов и, по существу, заставить устанавливать указанное поле в значение определенной динамической входной информации. На рисунке 30 можно увидеть два компонента user input, выделенные в самом правом углу и в центре, а также текстовые поля, в которые они будут предоставлять динамические данные.
Рисунок 30. Объединение динамических данных при помощи компонентов user input
Эти типы компонентов затем автоматически отображаются пользователям в виде формы из пользовательского интерфейса Yahoo Pipes. Их можно также закодировать вручную в строке запроса URL, как показано на рисунке 31.
Рисунок 31. Что компоненты user input преобразовывают в браузере и строке запроса URL
Демонстрационный пример 3: Фид агента Craigslist В третьем демонстрационном примере описывается наложение каналов данных - по существу, процесс создания нового компонента Source, аналогичного тому, который приведен в демонстрационном примере #1 с компонентом Google Base. Этот пример использует два отдельных канала данных, каждый из которых можно выполнять независимо, но здесь они будут использоваться совместно. Целью комбинирования этих каналов является поиск соответствий товаров, продаваемых на Craigslist.org, требуемым позициям, указываемым пользователями. Сначала с сайта передается список требуемых позиций. Затем для каждой позиции выполняется второй запрос для поиска продажи этого товара. Все элементы, найденные для продажи, добавляются как дочерний узел к элементу wanted record. Этот демонстрационный пример создан из двух каналов данных (один встроен в другой). Первый поток выполняет простой поиск на Craigslist, используя определенное поисковое выражение, и генерирует RSS-фид продаваемых товаров. Это - вложенный канал данных. Второй канал данных направляет все требуемые позиции с Craigslist.org. Затем он определяет действительные желаемые позиции при помощи специального компонента Content Analysis. Это важно для извлечения коротких терминов из потенциально длинных описаний. Термин "желаемой
позиции" сохраняется в виде атрибута и передается в первый канал "товары на продажу" как динамическая входная информация. Это приводит к формированию списка "товаров на продажу", основанного на предоставленной "желаемой позиции", и записи этого списка с желаемой позицией. Результатом является список позиций, желаемых пользователями Craigslist, хранящий ссылки на сообщения об этих позициях или аналогичных товарах на продажу. Обратите внимание на то, что если вы пропустите этот канал данных через Yahoo Pipes, соответствующие товары "на продажу" не отображаются, даже несмотря на то, что они содержатся в RSS-фиде. Причина этого заключается в ограничении на отображаемую информацию, что не дает вам выбирать, какие части элементов в фиде отображать (потолкайтесь на форумах Pipes и увидите пользователей, просящих большей гибкости в данной области). Однако, если вы разработчик фида и передаете потоки в ваши собственные приложения, можете выполнять навигацию и отображать любые желаемые части фида. Следовательно, этот пример может быть использован в очень специализированных приложениях. 1. Перейдите по URL http://pipes.yahoo.com/pipes/pipe.info?_id=5ldWJJHY2xGrYNryqGIyXQ и введите table в поле Query, как показано на рисунке 32. Рисунок 32. Мой канал данных, запрашивающий Craigslist
2. Получаемый список будет отображать все столы, выставленные на продажу на Craigslist. 3. Теперь перейдите по URL http://pipes.yahoo.com/pipes/pipe.info? _id=hk7ADojO2xGdmQTulPXiAA. Отобразятся только товары, желаемые на Craigslist. Вы можете перейти отсюда в оба канала данных в редакторе, чтобы посмотреть, как они были созданы.
Ключевые моменты Главное в этом примере - использование еще одного канала данных, встроенного в структурную схему процесса. На рисунке 33 можно увидеть основной поисковый канал данных Craigslist, использующийся для передачи фида для каждого элемента в первом канале. Хранящийся с оригинальным элементом атрибут используется для передачи во второй поисковый канал данных. Получаемый вторичный список сохраняется в качестве атрибута supplies в данном случае. Теперь приложение, использующее окончательный поток, может отобразить родительский список RSSэлементов с дополнительными ссылками, найденными в узле supplies каждого элемента.
Стандартный RSS-вид не увидит этот дополнительный список ссылок, но специализированное приложение не будет иметь проблем с использованием этого фида.
Рисунок 33. Мой канал данных, запрашивающий Craigslist
Заключение Резюме Как вы увидели в этих базовых примерах преобразования фидов, Yahoo Pipes может быть мощным средством управления динамическими данными, доступным на данный момент. Дополнительная информация по использованию этого инструментария приведена в документации раздела "Ресурсы". Также, для ознакомления с каналами данных, созданными другими пользователями, выбирайте Browse Pipes на страницах, которые используются в моих демонстрационных примерах.
Если вы впервые сталкиваетесь с руководством developerWorks, содержащим демонстрационные материалы, вот несколько моментов, о которых вы, возможно, захотите знать:
Демонстрационные материалы - это необязательный способ просмотра действий, аналогичных описанным в данном руководстве. Для просмотра анимированных материалов нажмите ссылку Show me image "Показать". Демонстрация откроется в новом окне браузера. Каждый демонстрационный материал содержит навигационную панель внизу экрана. Используйте ее для остановки, выхода, прокрутки назад или быстрого просмотра фрагментов. Демонстрационные материалы имеют размер 800 x 600 пикселей. Если максимальная разрешающая способность вашего экрана меньше этого значения, вы должны будете выполнять прокрутку для просмотра некоторых областей демонстрации. В браузере должен быть разрешен JavaScript, а также должна быть установлена программа Macromedia Flash Player 6 или выше.
Ресурсы Научиться •
Оригинал руководства "Made-to-order content with Yahoo Pipes" (EN).
•
Каналы данных руководства: поработайте с Yahoo Pipes.(EN)
•
Yahoo Pipes: на этом Web-сайте размещен интерактивный агрегатор фидов и система управления ими.(EN)
•
Самые часто используемые каналы данных: взгляните на наиболее популярные каналы данных.(EN)
•
"Yahoo! Каналы данных и Web в качестве базы данных", (Алекс Искольд (Alex Iskold), Read/ Write Web, февраль 2007): введение в принципы включения данного сервиса.(EN)
•
Обсуждение Digg: разговоры о последних версиях Yahoo Pipes.(EN)
•
Раздел XML на developerWorks : дополнительные ресурсы по XML.
•
Сертификация IBM XML: информация о том, как получить сертификат IBM-Certified Developer по XML и смежным технологиям.(EN)
•
Техническая библиотека XML: в разделе XML на developerWorks размещены разнообразные технические статьи и советы, учебные руководства, стандарты и книги IBM Redbooks.
•
Технические события и web-трансляции developerWorks: следите за последними новостями технологии.(EN)
Получить продукты и технологии •
Пробное программное обеспечение IBM: разработайте ваш следующий проект, используя пробное программное обеспечение IBM, доступное для загрузки непосредственно на developerWorks.(EN)
Обсудить Примите участие в обсуждении материала на форуме.