Вариант 11

Материал из SimHardWiki
Перейти к: навигация, поиск

Содержание

Создание веб-приложения для поиска информации в сети

Введение

Интернет – это информационное пространство, в котором можно отыскать ответ практически на любой интересующий пользователя вопрос. Это огромная глобальная сеть, в которую как информационные ручейки стекаются потоки более мелких сетей. Любой пользователь, располагающий ПК и соответствующими программами, сможет подключиться к сети, используя её возможности для самых разных целей – проведения досуга, обучения, чтения научных работ, отправки электронной почты и т.д. По различным данным, ещё в 2006 г. количество пользователей интернет достигло миллиарда человек. Сегодня глобальная сеть превращается в важный социальный и политический фактор современного информационного общества. С развитием Интернет-технологий появился новый гигантский источник информационных ресурсов, доступ к которым является не только относительно дешевым, но и очень быстрым.
Поиск в компьютерных сетях становится искусством и требует вполне определённых знаний, которыми современному человеку необходимо овладеть. И для того, чтобы не утонуть во всём изобилии информации необходимо научиться не только её искать, но и находить.

Использованные технологии

дипломная работа

Исходя из поставленной задачи, в моей работе было исполь-зовано следующее программное обеспечение и технологии:

  1. Java Development Kit 1.7
  2. JavaServer Pages
  3. JSTL
  4. Свободная интегрированная среда разработки модульных кроссплатформенных приложений Eclipse.
  5. В качестве основного языка разработки я выбрал Java EE.
  6. Фреймворк для автоматизации сборки проектов Apache Maven.
  7. Система управления базами данных MySQL
  8. Контейнер сервлетов Apache Tomcat
  9. Различные паттерны, такие как MVC, Singleton, Command Factory и др.

Java

В этой работе основное внимание будет уделено разработке веб-приложений. В качестве платформы для разработки выбрана Java, т.к. эта технология на данный момент является наиболее развитой, стандартизированной, применяемой на уровне Enterprise и классической (т.е. из нее в основном идут заимствования в других платформах). Она обладает следующими преимуществами:

  • Большое сообщество опытных пользователей, программистов, администраторов. Не возникает проблем с поиском интересующей информации.
  • Стандартизированность и постоянное развитие через Java Community Process - стандартный процесс, позволяющий заинтересованным сторонам участвовать в разработке будущих версий платформы.
  • Большое количество и разнообразие разработанных библиотек.
  • Переносимость между различными платформами.
Версия Полное имя Дата публикации
1.0 Java 2 Platform Enterprise Edition, v 1.0 декабрь 1999
1.2 Java 2 Platform Enterprise Edition, v 1.2 2000
1.2.1 Java 2 Platform Enterprise Edition, v 1.2.1 23 мая 2000
1.3 Java 2 Platform Enterprise Edition, v 1.3 24 сентября 2001
1.4 Java 2 Platform Enterprise Edition, v 1.4 24 ноября 2003
5.0 Java Platform, Enterprise Edition, v 5 11 мая 2006
6.0 Java Platform, Enterprise Edition, v 6 6 декабря 2009
7.0 Java Platform, Enterprise Edition, v 7 12 июня 2013

Язык Java изначально позиционировался производителем, как язык для Интернет. Технология Java обеспечивает разработчиков основой для создания решений, при разработке которых не нужно задумываться об операционной системе и аппаратной платформе, на которых эти решения будут функционировать. Независимость от платформы достигается за счет того, что уникальные характеристики каждой из поддерживаемых Java 2 платформ, реализованы в виде оболочки, называемой Java Runtime Environment (JRE). Компилятор языка Java преобразует код в последовательность байт-кодов, которая будет выполняться на одной из платформ в рамках JRE.

Тип Длина (в байтах) Диапазон или набор значений
boolean 1 в массивах, 4 в переменных[1] true, false
byte 1 −128..127
char 2 0..216−1, или 0..65535
short 2 −215..215−1, или −32768..32767
int 4 −231..231−1, или −2147483648..2147483647
long 8 −263..263−1, или примерно −9.2·1018..9.2·1018
float 4 -(2-2−23)·2127..(2-2−23)·2127, или примерно −3.4·1038..3.4·1038, а также , , NaN
double 8 -(2-2−52)·21023..(2-2−52)·21023, или примерно −1.8·10308..1.8·10308, а также , , NaN
Компоненты Java Runtime Environment
Java Runtime Environment содержит специальные средства проверки кода, обеспечивающие надежность и защищенность программ, загрузчик классов, который динамически загружает классы в процессе выполнения и виртуальную машину Java (Java VM), которая выполняет последовательность байт-кодов, взаимодействуя с конкретной операционной системой. Компоненты Java Runtime Environment показаны на диаграмме ниже. То, что язык Java за короткое время стал одним из самых популярных коммерческих объектноориентированных языков программирования, помогает распространению технологии Java и подтверждается тем, что в настоящее время этот язык использует около 1 млн. разработчиков (80% из них создает кроссплатформенные приложения), продукты для Java выпускают сотни фирм, а число копий JDK, загруженных с сайта фирмы Sun, превысило 2.5 млн. С пользовательскими приложениями у Java не сложилось, но зато на стороне сервера Java применяется очень широко и имеет большое количество различных интересных возможностей. Прежде всего существует несколько конкурирующих серверов веб-приложений, которые несмотря на различия придерживаются некоторых стандартов, установленных Sun, а значит большинство приложений без каких-либо значительных модификаций могут быть перенесены с сервера на сервер. Кроме того существует несколько разного уровня сложности и с разными подходами фреймворков для разработки веб-приложений (т.е. библиотек классов, на основе которых строится веб-приложение). Это фреймворки для структурирования приложений на основе паттерна MVC (Struts, Spring), библиотеки для построения шаблонов веб-страниц (JSTL, Velocity, Java ServerFaces), библиотеки для отображения реляционной таблицы на объекты и обратно (Hibernate).
Паттерн MVC

Пример. Код на языке программирования Java.
  outer:
  for (int i = 2; i < 1000; i++) {
      for (int j = 2; j < i; j++) {
          if (i % j == 0)
              continue outer;
      }
      System.out.println (i);
  }

Достоинства и недостатки быстрой сортировки

Достоинства:

  • Один из самых быстродействующих (на практике) из алгоритмов внутренней сортировки общего назначения.
  • Прост в реализации.
  • Требует лишь дополнительной памяти для своей работы. (Не улучшенный рекурсивный алгоритм в худшем случае памяти)
  • Хорошо сочетается с механизмами кэширования и виртуальной памяти.
  • Допускает естественное распараллеливание (сортировка выделенных подмассивов в параллельно выполняющихся подпроцессах).
  • Допускает эффективную модификацию для сортировки по нескольким ключам (в частности — алгоритм Седжвика для сортировки строк): благодаря тому, что в процессе разделения автоматически выделяется отрезок элементов, равных опорному, этот отрезок можно сразу же сортировать по следующему ключу.
  • Работает на связных списках и других структурах с последовательным доступом, допускающих эффективный проход как от начала к концу, так и от конца к началу.

Недостатки:

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


График работы

Таблица дат выполнения
Название глав дипломной работы Дата начала выполнения Дата конца выполнения
WEB-ПРИЛОЖЕНИЯ 04.04.2014 14.04.2014
ПРИНЦИП РАБОТЫ ВЕБ-ПРИЛОЖЕНИЯ SEARCHER 15.04.2014 24.04.2014
СТРУКТУРА СЕРВЕРА 25.04.2014 16.05.2014


Таблица отметок о выполнении
Название глав дипломной работы Отметка о выполнении
WEB-ПРИЛОЖЕНИЯ
Plus.png
ПРИНЦИП РАБОТЫ ВЕБ-ПРИЛОЖЕНИЯ SEARCHER
Plus.png
СТРУКТУРА СЕРВЕРА
Minus.jpg



[svg]

Заключение

Мною было создано веб-приложение, позволяющее упростить поиск в сети интернет, комбинирующее возможности трёх крупных поисковых систем и обладающее дополнительным функционалом.
СПИСОК ЛИТЕРАТУРЫ

[1] http://jakarta.apache.org/faq
[2] http://faq.realcoding.net/index.php
[3] http://java.sun.com/j2ee/learning/tutorial/index.html
[4] http://egor.spb.ru/doc/db/mysql/14.html#_ftnref1
[5] http://www.coreservlets.com/Apache-Tomcat-Tutorial/
[6] http://www-ucs.usc.edu/~toms/jakartafaq.html


  1. JVM не имеет поддержки для переменных типа boolean, поэтому они представляются в виде значений типа int. Однако массивы boolean[] поддерживаются. VM Spec The Structure of the Java Virtual Machine