Сравнительные характеристики рассмотренных в обзоре сайтов сведены в табл. 2.1.
2.2. Интернет и World Wide WebИнтернет (Internet) - это совокупность компьютерных сетей, использующих определённое множество протоколов для обмена информацией. За основу сети Интернет выбраны протоколы семейства TCP/IP (Transmission Control Protocol / Internet Protocol). Сети, входящие в Интернет, используют единую систему адресации: каждая сеть, присоединяясь к Интернет, получает в своё распоряжение множество адресов, которые распределяются среди её клиентов. Протоколы Интернет полностью регулируют техническую сторону, обеспечивающую обмен информацией между любыми двумя машинами, входящими в сети, принадлежащие к Интернет. [20] Интернет охватывает весь земной шар и объединяет более 20 тысяч компьютерных сетей в 150 странах света. В рамках данной сети работают миллионы компьютеров. World Wide Web (WWW или Web) - это "вершина Интернет". Web представляет собой самое большое хранилище информации в электронном виде во всём мире. Другими словами, Web - это миллионы связанных между собой документов, которые расположены на компьютерах по всему земному шару. В идеале для доступа к этой информации необходим только WWW-браузер (browser), с помощью которого можно смотреть текст, графику, видеоролики и слушать аудиоклипы (всё это вместе называется гипермедиа), обращаясь к различным узлам Web. Интернет является связующим звеном, которое позволяет компьютерам по всему миру взаимодействовать между собой. Следовательно Web представляет собой глобальную коммуникационную систему, которая организует обмен электронными гипермедиа-данными между компьютерами в рамках Интернет. Другими словами можно рассматривать Web как систему, состоящую из программного обеспечения и связанных документов, в некотором роде надстройку над Интернет. На протяжении нескольких лет пользователи хранили свои документы в файлах, разбросанных по всей сети Интернет. Доступ к данным файла осуществлялся при помощи утилиты FTP, которая использует одноимённый протокол (FTP - File Transfer Protocol) для быстрого обмена файлами между компьютерами, входящими в Интернет. К сожалению, с ростом числа файлов пользователям всё сложнее становилось отыскивать необходимые им файлы. FTP нельзя назвать программой, понятной большинству пользователей. В результате этого в Интернет хранилось огромное количество документов (их число исчислялось миллионами), о которых большинство пользователей не имело ни малейшего понятия. С появлением Web, позволяющего связывать документы между собой, резко упростились такие задачи, как поиск документов или переход от одного документа к другому. Технология WWW организована по принципу "клиент-сервер" и позволяет пользователю при использовании специальной программы-клиента (браузера) получать с удаленной компьютерной системы (WWW-сервера) данные, описанные на языке HTML (HyperText Markup Language, язык гипертекстовой разметки). Этот язык позволяет разметить документ как гиперсреду, включающую в себя не только текст, но и графические изображения, звук, анимацию, ссылки на другие документы. Обмен данными между браузером и WWW-сервером организуется при помощи протокола HTTP (HyperText Transfer Protocol). Браузер предоставляет пользователю Web средства работы с переданным документом, в том числе и возможность перехода по гиперссылке, выбранной пользователем. При помощи механизмов, заложенных в WWW, можно предоставлять пользователям Интернет доступ к самым различным ресурсам, используя один и тот же инструмент - WWW-браузер. Этот подход упрощает процедуру получения данных из сети, "приближает" сетевые ресурсы к конечному пользователю. Поэтому WWW все шире используется как универсальный механизм доступа к ресурсам Интернет. [12] 2.3. WWW-сайтWWW-сайт (узел Web) является интерфейсом между пользователями системы и её программной частью и с точки зрения посетителей представляет собой множество связанных между собой WWW-страничек (HTML-страничек). Такой вид интерфейса продиктован необходимостью обеспечения доступа к сервису посредством World Wide Web. Для получения возможности работы с системой необходимо наличие компьютера, подключённого к Интернет, с установленной на нём программой-браузером. К наиболее известным браузерам принадлежат:
В качестве посетителей WWW-сайта выступают работодатели, а также люди, заинтересованные в поиске работы. Работодатели посещают сайт с целью подбора кадров (сотрудников, работников, рабочих, служащих). Безработные или же в полной мере не удовлетворённые своим местом работы люди заходят на сайт с целью поиска подходящей работы. Таких посетителей в дальнейшем будем называть кандидатами. 2.4. Выбор технологии разработки WWW-сайтаДадим краткое описание технологий Web, используемых для разработки Web-сайтов, в процессе развития.
Первые приложения для Internet состояли из статических HTML-страниц, содержание которых передавалось браузеру клиента. Такие приложения не могли реагировать на действия пользователя. Хотя данная модель и обеспечивает доступ к красиво оформленным страничкам, она обеспечивает ограниченное взаимодействие между пользователем и Web-сервером - для изменения содержания (модернизации) статических HTML-страниц приходилось редактировать их вручную.
Развитие таких интерфейсов как Common Gateway Interface (CGI) и Internet Server Application Programming Interface (ISAPI) добавило в Web динамическое содержание. При использовании динамического содержания браузер может посылать запросы на получение информации. Сервер, вместо того, чтобы возвращать статичную страничку, запускает CGI-скрипт, который в соответствии с запросом формирует HTML-страничку, которая и возвращается браузеру. Неудобство такого подхода заключается в трудности внесения изменений, так как код не интегрирован в HTML файлы. Другой недостаток использования CGI заключается в том, что все CGI-скрипты работают на сервере и тем самым сильно загружают его.
Данная технология (DHTML - Dynamic HTML, динамический HTML) позволяет использовать динамическое содержание посредством включения скриптов непосредственно в HTML-страницы. Скрипты пишутся на языках JScript (Java Script) и VBScript (Visual Basic Script). HTML-страницы с внедрёнными в них скриптами отправляются браузеру. Работу по выполнению скриптов выполняет браузер. Использование DHTML позволяет несколько разгрузить сервер.
ASP представляет собой среду серверных скриптов, которую можно использовать для создания динамических Web-страниц или построения мощных Web-приложений, использующих HTML-страницы в качестве интерфейса. ASP страницы представляют собой файлы с расширением asp, содержащие как текст и HTML теги, так и скрипт-команды. (Таким образом, не исключается возможность использования DHTML). ASP страницы могут использовать ActiveX компоненты для выполнения различных задач, например, для взаимодействия с базой данных. При запросе ASP-страницы на сервере выполняются содержащиеся в ней серверные скрипты, которые формируют HTML-страницу, отправляемую браузеру в качестве ответа. ASP приложения просты в реализации и модификации. Программы, основанные на технологии ASP, на порядок производительнее программ, основанных на CGI. Это достигается оптимизацией процессов ASP на сервере, учитывающей архитектуру Windows NT. Для написания серверных скриптов ASP-страниц используются языки JScript и VBScript. Так как для функционирования Биржи потребуется автоматическая генерация Web-страниц на сервере, выбор ограничивается технологиями CGI и ASP. Наиболее передовой является технология ASP, поэтому она и выбрана за основу реализации WWW-сайта. 2.5. Microsoft SQL ServerВ качестве системы управления базами данных (СУБД) предложено использовать Microsoft SQL Server версии 6.5. Microsoft SQL Server 6.5 - одна из наиболее мощных СУБД архитектуры "клиент-сервер". Эта СУБД позволяет удовлетворять такие требования, предъявляемые к системам распределённой обработки данных, как тиражирование данных, параллельная обработка, поддержка больших баз данных на относительно недорогих аппаратных платформах при сохранении простоты управления и использования. Построенная на основе технологических решений, появившихся в Microsoft SQL Server, версия 6.5 демонстрирует много значительных нововведений. SQL Server 6.5 превосходит предыдущую версию с точки зрения использования многопоточной параллельной архитектуры операционной системы для повышения производительности и масштабируемости, то есть очень эффективно использует возможность ускорения работы в том случае, если на компьютере установлено несколько процессоров. SQL Server 6.5 имеет новую масштабируемую архитектуру блокировок, называемую динамической блокировкой (Dynamic Locking), которая комбинирует блокировку на уровне страницы и записи для достижения максимальной производительности и подключения максимального числа пользователей. [8] Microsoft SQL Server 6.5 Enterprise Edition разрабатывался с учётом требований к работе в корпоративных средах. В лучших традициях линии продуктов Microsoft SQL Server он обеспечивает высокий уровень масштабируемости и отказоустойчивости. Оптимизированный под Windows NT Enterprise Edition, он спроектирован для построения хранилищ данных и создания Internet/Intranet приложений и отвечает требованиям отказоустойчивости и работы в режиме 24x7 для критичных для бизнеса приложений. Как составная часть семейства Microsoft BackOffice Microsoft SQL Server 6.5 Enterprise Edition взаимодействует с другими серверными продуктами BackOffice, что позволяет создавать лучшие клиент-серверные и Web-приложения. [26]. Платформу Microsoft SQL Sever используют такие известные российские компании как 1С ("1С:Предприятие"), "АйТи" ("БОСС-Кадровик") и "Галактика" (одноимённый продукт). Показательно, что к разработкам на платформе Microsoft SQL Server все три компании приступили в начале или по крайней мере в середине 1997 года, другими словами, вслед за тем, как была представлена версия 6.5 реляционной СУБД от Microsoft. В качестве причины выбора новой платформы были названы:
Платформа Microsoft SQL Server продолжает развиваться, уже доступна следующая версия этого продукта - Microsoft(r) SQL Server(tm) 7.0. Сказанное выше позволяет отнести Microsoft SQL Server 6.5 к современным мощным, надёжным и перспективным СУБД архитектуры "клиент-сервер" и использовать его для построения устойчивых Web-приложений. 2.6. Решение задачи обеспечения соответствия между предложением работы в виде вакансий и спросом не неё2.6.1. ПодборОсновной задачей, которую должна решать Биржа, является обеспечение соответствия между спросом и предложением работы (в виде вакансий). Эта задача названа подбором.
Рис. 2.1. Иллюстрация задачи подбора Окончательный ответ на вопрос о совместимости конкретного кандидата и предлагаемой вакансии может дать только работодатель после личной беседы. Поэтому, последним (и обязательным) этапом отбора является собеседование. В процессе подбора первым делом отсеиваются все кандидаты, которые не подходят на данную вакансию по специальности (отбор по специальности). В большинстве случаев нет смысла приглашать на собеседование всех кандидатов, прошедших отбор по специальности. Это объясняется наличием у работодателя жёстких требований (ограничений), предъявляемых к кандидатам на вакансию. (Примером такого ограничения может служить естественное требование наличия высшего образования у кандидата на вакансию директора фирмы). На основе этих требований можно организовать автоматический отбор кандидатов. Некоторые работающие в Internet сайты (http://www.job.ru/) предлагают работодателям ограничения, заданные по каждому параметру отдельно (Например, ограничение возраста, от __ до __ лет). Такой подход легко обобщить, предложив работодателю задавать не множество ограничений (на каждый отдельный параметр по ограничению), а одно выражение, результатом которого является булевское значение:
Такое нововведение с одной стороны (с точки зрения функциональности) позволит задавать более сложные ограничения, а с другой усложнит реализацию (так как потребует разбора и вычисления выражений). Результат выражения позволяет сделать предварительный вывод о совместимости кандидата и вакансии. Если результатом является значение false, то кандидат отсеивается. Таким образом организуется пороговый отбор кандидатов. Для отбора кандидатов можно предложить использование конкурсного отбора. Результат выражения, так как оно возвращает логическую константу, не позволяет судить о степени соответствия кандидата вакансии. Поэтому для получения возможности реализации конкурсного отбора необходимо, чтобы выражение возвращало числовое значение (в дальнейшем это значение называется рейтингом кандидата, а выражение - выражением для рейтинга). Таким образом, появляется возможность организации как порогового, так и конкурсного отбора. Пороговый отбор организуется так. Работодатель задаёт пороговое значение рейтинга. Рейтинг кандидата сравнивается с пороговый значением. Если рейтинг кандидата меньше порогового значения, то кандидат отсеивается. Конкурсный отбор организуется следующим образом. Работодатель указывает количество участников конкурса. Как только количество кандидатов достигнет этого значения происходит отбор, при котором нужное количество кандидатов с наибольшими рейтингами считаются прошедшими отбор, а остальные отсеиваются. В тех случаях, когда
Данный отбор назван ручным отбором. Таким образом выделены пять видов отбора:
Весь подбор можно разделить на три стадии.
Биржа должна обеспечить реализацию автоматического отбора, а также автоматизировать ручной отбор и собеседование. Для обеспечения комбинации вышеперечисленных видов отбора введены схемы отбора кандидатов, которые представляют собой последовательности различных видов отбора.
Рис. 2.2. Схемы отбора Для организации многих видов отбора необходима информация о кандидатах. Возможности её получения рассматриваются в следующем параграфе. 2.6.2. Концепция параметров отбора кандидатовВ результате анализа работающих в Internet русскоязычных сайтов, предоставляющих услуги подбора работы, можно выделить две формы получаемой о клиенте информации:
В данном случае резюме понимается как информация о клиенте в произвольной форме, а анкета - как совокупность ответов на определённые вопросы. Рассмотрим преимущества и недостатки получения информации о клиенте только в форме резюме и только в форме анкеты. Резюме представляет собой наиболее распространённый способ представления информации о клиенте, в нём клиент указывает те данные, которые, по его мнению, достаточны для работодателя. Многие работодатели публикуют объявления о подборе работников с предложением посылать им резюме (по факсу, e-mail или как-то ещё). В таких случаях предварительный вывод о пригодности клиента делается на основе анализа резюме. При получении информации о клиенте в виде резюме становится практически невозможным реализация механизма автоматического ограничения потока кандидатов. Это объясняется тем, что информация предоставлена в произвольной форме и выделить из неё параметры, которые можно бы было использовать в качестве критериев отбора в достаточной степени сложно. Напротив же, получая данные в виде анкеты, каждый её вопрос можно использовать как критерий отбора, что позволяет чрезвычайно просто ограничивать поток кандидатов. Недостатком анкетного представления данных является то, что каждая служба, подбирающая работу, использует свои анкеты и, поэтому клиенту приходится заполнить множество анкет, в отличие от резюме, которое составляется лишь однажды. Все рассмотренные работающие сайты предоставляют клиентам для заполнения анкеты с фиксированным множеством вопросов, что не позволяет учитывать специфические требования работодателей к клиентам. Используя анкету с фиксированным множеством вопросов не стоит требовать обязательного ответа на каждый из них, так как в некоторых случаях некоторые (а иногда и многие) вопросы могут оказаться лишними. На основе проведённого анализа сделаны следующие выводы:
С точки зрения реализации работа с резюме не вызывает сложностей, так как для этого необходимо лишь:
С анкетой же дела обстоят несколько сложнее. Для получения от клиентов специфической информации необходимо предоставить работодателям возможность создавать новые параметры отбора. При этом сразу же встаёт вопрос, неужели для каждого клиента генерировать анкету, состоящую из объединения специфических вопросов всех работодателей? Такой путь является крайностью - он требует от клиента ответов на множество лишних вопросов. Выход из этой ситуации представляется так:
В качестве такого минимума информации идеально подойдут специальности, которыми обладает клиент, так как многие специфические вопросы работодателей возникают именно в связи со спецификой требуемых специальностей. Предложенную схему можно улучшить, если дать работодателю возможность связывать созданные ими параметры с вакансиями. Так как одной вакансии соответствует ровно одна специальность, то фактически параметры окажутся связанными со специальностями. Улучшенная схема выглядит так:
Следующий вопрос касается ситуации, возникающей, когда множество работодателей создают, а затем и связывают с вакансиями по сути одинаковые параметры. В этом случае клиенту придётся отвечать на один и тот же вопрос много раз. Эта проблема решена разработчиком следующим образом:
2.6.3. Синтаксис выражения для рейтингаРассмотрим правила построения выражения для рейтинга. Выражение для рейтинга должно возвращать число, которое позволяет судить о степени пригодности кандидата на данную вакансию. В выражении могут быть использованы:
Выражением является комбинация операндов, операций и скобок. 2.6.3.1. КонстантыКонстанты бывают трёх типов:
Строковые константыСтроковая константа представляет собой текст, заключённый в двойные кавычки. Примеры строковых констант:
Для строк определены следующие операции и функции: + (конкатенация), =, <>, VAL. Числовые константыЧисловая константа представляет собой число. Примеры числовых констант:
Для чисел определены следующие операции и функции: +, -, *, /, <, >, =, <>, <=, >=, STR. Логические константыЛогических констант всего две:
Для логических переменных и констант определены следующие операции: =, ==, !=, <>, NOT, !, AND, &&, OR, ||. 2.6.3.2. ПеременныеПеременными являются параметры отбора кандидатов. При вычислении значения рейтинга для каждого кандидата вместо переменных будут подставлены соответствующие значения параметров. 2.6.3.3. ОперацииАрифметические операцииОперанды арифметических операций должны быть числового типа.
Операции сравнения
Логические операции
2.6.3.4. ФункцииФункции преобразования типов
2.6.3.5. Приоритеты и арность операцийТабл. 2.2
2.6.4. Обратная польская нотацияВыражение для рейтинга, задаваемое работодателем, сохраняется в таблице базы данных. Кроме этого, в той же таблице сохраняется выражение для рейтинга, преобразованное в обратную польскую нотацию. Такое решение обосновано тем, что вычисление значения выражения, записанного в обратной польской нотации, производится быстрее, нежели при использовании обычной формы записи алгебраических выражений. Причём преобразование выражения в обратную польскую нотацию необходимо выполнить лишь однажды. Обратная польская нотация весьма полезна при вычислении выражений на компьютере. Любое алгебраическое выражение может быть записано в обратной польской нотации - записи без скобок. Нотация "польская", потому что её предложил польский математик Ян Лукашевич (Jan Lukasiewicz). Нотация "обратная", потому что в сравнении с обычным вариантом записи порядок операндов и операций был обращён. [3] Пример Исходное выражение: A + (B - C) * D - F/(G + H).
То же выражение в обратной польской нотации:
2.6.5. Выделение задачи подбора как отдельного приложенияИтак, из сказанного выше можно сделать вывод, о том, что задача подбора является основой функционирования Биржи. Если подбор кандидатов осуществлять непосредственно в ASP-приложении, то клиенту Биржи придётся достаточно долго ждать окончания подбора, что неминуемо вызовет ощущение "зависания" сервера. Длительность ожидания сильно зависит от количества вакансий и количества кандидатов. Выходом из такой ситуации может послужить разработка отдельного приложения, работающего на сервере, которое занималось бы подбором кандидатов. Причём запросы на выполнение задач подбора должны поступать от ASP-приложения. При этом, в то время как на сервере выполняется задача подбора, клиент Биржи не ожидает её окончания. Узнать о текущих результатах подбора клиент может в любое время, посетив страницу с результатами отбора.
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|