ДонНТУ   Портал магістрів

Реферат за темою випускної роботи

Зміст

Вступ

На сьогоднішній день Інтернет є активним середовищем поширення і збору інформації. За допомогою інтелектуального аналізу даних можна автоматично виявити раніше невідомі корисні знання в Інтернет-сторінках. Окрім блоків основного вмісту, на сторінці також знаходяться блоки панелей навігації, повідомлення про авторське право і конфіденційність, і рекламні оголошення. У інтелектуальному аналізі Інтернет-сторінок такі блоки називають «галасливими блоками» (noisy blocks). Доставка Інтернет-сторінок в мобільні телефони або персональним цифровим асистентам стали можливими з останньою безпровідною технологією. Проте, в мобільних пристроїв є дуже маленькі екранні розміри і ємкості пам'яті. Перетворення Інтернет-сторінок для постачання до мобільного пристрою є важливою новою проблемою. Існує маса алгоритмів про очищення «галасливих блоків», щоб оцінити об'єкти контента в межах Інтернет-сторінки. Це дозволяє екстракцію лише важливих частин Інтернет сторінок для постачання до мобільних пристроїв. Окрім цього усунення «галасливих блоків» може поліпшити аналіз вмісту Інтернет-сторінок. Отже, усування «галасливих блоків» поліпшить сприйняття інформації.

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

Програмний шлюз реалізований на мові Java з використанням неблокуючих сокетів. Особливістю шлюзу є підтримка одночасного підключення тисяч клієнтів і передачу вмісту сторінок в реальному часі. Під передачею даних в реальному часі розуміється завантаження Інтернет-сторінок для безлічі одночасних користувачів без помітної для них затримки, пов'язаної з впровадженням сервера-посередника.

1. Архітектура системи аналізу вмісту Інтернет-сторінок

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

2. Програмний шлюз аналізу вмісту Інтернет-сторінок

Програмний шлюз реалізований на кроссплатформенной мові програмування Java. Це забезпечує працездатність шлюзу більш ніж на одній апаратній платформі і операційній системі.

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

Фундаментом реалізації програмного шлюзу є бібліотека MINA. MINA - акронім для «Multipurpose Infrastructure for Network Applications» («Багатоцільова інфраструктура для мережевих застосувань»). В даний час MINA підтримує протоколи TCP і UDP на основі Java NIO API, забезпечує підтримку для послідовного порту, і транспортує на основі виконання Apache Portable. На даний момент вийшли 3 версії Міни 1.0, 1.1, 2.0. Розробники радять використовувати останню точку-реліза 2.0 (для Java 5 або вище). Для використання MINA потрібний JDK 1.5 або вище. Але MINA працює ідеально і з JDK 1.4, лише якщо не використовувати Sslfilter, який використовує Java 5 Sslengine. Це означає, JDK 1.5 або вище потрібний для використання SSL з MINA. SSL (Secure Sockets Layer — рівень захищених сокетів) — криптографічний протокол, який забезпечує встановлення безпечного з'єднання між клієнтом і сервером.

Основний модуль MINA залежить від двох бібліотек, Slf4j і backport-util-concurrent (для 1.0). Slf4j (Simple Logging Facade for Java) надає прив'язки для Log4j, JDK 1.4 API реєстрації і Nlog4j. Backport-util-concurrent є реалізацією портірованія з пакету java.util.concurrent, який був введений в JDK 1.5. MINA 1.0 використовує це, щоб зберегти час виконання сумісності з JDK 1.4. MINA 1.1 або вище, залежить від пакет java.util.concurrent безпосередньо, і тому не залежать від нього більше. MINA дозволяє досить легкий створювати клієнтські і серверні застосування, використовуючи класи Ioconnector і Ioacceptor.

При реалізації програмного шлюзу використовувалася структура MINA. Враховуючи правила реалізації MINA для програмного шлюзу спочатку необхідний об'єкт для прослухування вхідних з'єднань. Оскільки шлюз повинен підтримувати протоколи TCP/IP, то в ролі об'єкту буде виступає acceptor класу Niosocketacceptor. Після чого потрібна реалізація конфігурацій фільтрів, які будуть обробляти інформацію. Першим додається фільтр для переведення двійкових або протокольних даних в об'єкт повідомлення. За це відповідає фільтр Protocolcodecfilter. Потім необхідний фільтр для зберігання списку всіх дій, а саме знов створених сесій, повідомлень одержувача і відправника, і так далі. Фільтр виконуючий ці дії – Loggingfilter. Після установки конфігурації фільтрів визначається обробник, який використовується для обслуговування клієнтських підключень і запитів на поточний час. Створений клас Serverhandler є обробником, оскільки реалізує інтерфейс Iohandler. Цей обробник є головним класом проекту окрім класу Server, що містить метод main, а значить обслуговуватиме всі вхідні запити від клієнта. Обов'язковим етапом є ініціалізація порту, який прослухується шлюзом, і вказівки які дії будуть можливі при відкритій сесії. За допомогою класу Inetsocketaddress визначається який хост прослухуватиметься, а методом bind встановлюється, що при відкритій сесії можна читати дані запиту і в той же час відправляти відповідь клієнтам. Наочно показано використання структури MINA в створенні шлюзу (мал. 1).

Создание конфигураций работы шлюза используя структуру MINA

Мал. 1. Створення конфігурацій роботи шлюзу використовуючи структуру MINA

3. Алгоритми розбору запитів для реалізації програмного шлюзу

Програмний шлюз обробляє запит URL від користувача, розбиває його по параметрах, парсит. Распасенний запит заповнює список Map по параметрам URI, Method, Context, Protocol. Запит GET передає дані серверу використовуючи URL. Схема кодування URL для методу пересилки GET полягає в наступному. Для кожного елементу форми, що має ім'я, формується пара «name=value», де value — значення елементу, введене користувачем або призначене за умовчанням. Значення може бути відсутнім. Всі пари об'єднуються в рядок, як роздільник служить символ «&». Оскільки імена і значення є звичайним текстом, то вони можуть містити символи, недопустимі у складі URL. Такі символи замінюються послідовністю, що складається з символу «%» і їх шістнадцятиричної ascii-коді. Символ пропуску може замінюватися не лише кодом «%20», але і знаком «+».

При читанні запиту клас Httprequestdecoder враховує символи URL запиту при розбитті методу GET. Клас Httprequestmessage служить для тимчасового зберігання распарсенного запиту і надає доступ до частин запиту. Клас Serverhandler є обробником, який використовується для обслуговування клієнтських підключень і запитів на поточний час. У нім визначаються дії під час простою сесії і час, в перебігу якого сесія простоюватиме. Так само цей обробник відповідає за витягання типа протоколу HTTP. Метод dohttpurlconnectionaction приймає параметр домена, який запрошує користувач, і створює об'єкт класу Httpurlconnection, з якого витягується тип протоколу HTTP. Це дозволяє отримати вміст Інтернет сторінки. У класі Httpresponseencoder формується відповідь клієнтові на його запит, враховуючи стандарти формування кодування відповіді. У класі Httpresponsemessage зберігається тіло HTTP відповіді клієнтові і здійснюється коннект виводу в браузер Інтернет сторінки, обробленої методом dohttpurlconnectionaction класу Serverhandler.

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

Висновки

Були розглянуті методи аналізу вмісту Інтернет-сторінок. Запропонована архітектура системи аналізу вмісту Інтернет-сторінок, що передбачає надалі прозоре очищення Інтернет-сторінок перед їх переглядом користувачами. Що покращує сприйняття вмісту Інтернет сторінок мобільними пристроями. Реалізована підсистема доставки вмісту Інтернет-сторінок безлічі одночасних користувачів в реальному часі.

Перелік посилань

  1. MINA [Електронний ресурс] – Режим доступу: http://mina.apache.org/.
  2. URLConnection [Електронний ресурс] – Режим доступу: http://docs.oracle.com/javase/tutorial/networking/urls/readingWriting.html.
  3. Lan Yi, Bing Liu, Xiaoli Li Eliminating Noisy Information in Web Pages for Data Mining.
  4. Xinyi Yin, Wee Sun Lee Using Link Analysis to Improve Layout on Mobile Devices.

Важливе зауваження

На момент написання даного реферату магістерська робота ще є не завершеною. Передбачувана дата завершення: 1 грудня 2012 р., зважаючи на що повний текст роботи, а також матеріали по темі можуть бути отримані у автора або його керівника лише після вказаної дати.