Содержание
Введение2
1. Характеристика информационного обеспечения управления предприятием4
1.1. Информационное обеспечение управления предприятием на современном этапе4
1.2. Содержание и требования, предъявляемые к информации5
1.3. Понятие информационной системы управления предприятием6
1.4. Значение внутриорганизационной системы информации9
1.5. Основные принципы, цели, задачи и функции внутриорганизационной системы информации11
1.7. Обзор рынка автоматизированных информационных систем управления предприятием14
2. Техническая сторона информационного обеспечения управления предприятием19
2.1. Этапы проектирования информационных систем19
2.2. Технические средства, используемые во внутриорганизационной системе информации23
2.3. Система ведения записей23
2.4. Формы как носители информации24
2.5. Информационные базы данных25
2.6. Общая характеристика угроз, служб и механизмов безопасности27
2.7. Программные вирусы и вопросы их нейтрализации30
Заключение34
Список использованной литературы35
Выдержка из текста работы
Разработка автоматизированной информационной системы интернет-проектирования для ЗАО «Агропромышленная компания «СТАВХОЛДИНГ» под управлением ОС Linux RedHat 8.0.
Место дипломирования — СевКавГТУ, кафедра АСОИУ.
Руководитель — к.э.н., доцент Степанова Е. Г., 2011 г.
ГЭК №_________; ____ стр., ____ табл., ____ рис., ____прилож.
Организационная структура ЗАО «Агропромышленная компания «СТАВХОЛДИНГ», организационно-функциональная модель предприятия, маршруты документов, АИС отдела интернет проектирования, описание и разработка WEB магазина для сайта организации, ОС Linux REDHAT 8.0., хранимые процедуры, экономическая эффективность.
Проведен анализ существующей АИС предприятия. Проанализировано состояние дел в области организации Интернет бизнеса отдела менеджмента Интернет проектов в ЗАО «Агропромышленная компания «СТАВХОЛДИНГ». Выявлена необходимость разработка Web магазина, что позволит расширить функциональные возможности существующего web сайта, и связанный с ним Интернет бизнеса.
Разработана схема Интернет магазина. Дано описание функционирования системы, определены требования к программному и техническому обеспечению. Осуществлена техническая реализация системы. Определены затраты на разработку подсистемы документооборота и экономический эффект от ее внедрения. Результаты дипломного проектирования будут использованы ЗАО «Агропромышленная компания «СТАВХОЛДИНГ».
ВВЕДЕНИЕ
В последнее время на организацию хозяйственной деятельности коммерческой организации, а также на внутреннюю структуру управления оказывают большое влияние новейшие достижения в области информационных технологий. Современным фирмам трудно обойтись без персональных компьютеров, облегчающих рутинный труд по обработке документов и произведению разных вычислений. За счёт применения вычислительной техники в целом повышается эффективность работы предприятия.
Управленческая деятельность выступает в современных условиях как один из важнейших факторов функционирования и развития коммерческих фирм. Эта деятельность постоянно совершенствуется в соответствии с объективными требованиями производства и реализации товаров, усложнением хозяйственных связей, повышением роли потребителя в формировании технико-экономических и иных параметров продукции.
Изменения условий производственной деятельности, необходимость адекватного приспособления к ней системы управления, сказываются не только на совершенствовании организации, но и на перераспределении функций управления по уровням ответственности, формам их взаимодействия и т.д. Все это требует от фирм адаптации к новым условиям, преодоления возникающих противоречий в экономическом и научно-техническом процессах.
Новейшие достижения в области микроэлектроники привели к новым концепциям в организации информационных служб. Благодаря высокопроизводительным и экономичным микропроцессорам информационно-вычислительные ресурсы приближаются к рабочим местам менеджеров, конструкторов, плановиков, дизайнеров, инженеров и других категорий работников. Совершенствуются персональные системы обработки данных, упрощается документооборот, внедряются автоматизированные рабочие места на базе персональных компьютеров.
Подходя к современным требованиям, предъявляемым к качеству работы инженерного звена коммерческой компании, нельзя не отметить, что эффективная работа его всецело зависит эксплуатируемой на предприятии автоматизированной информационной системы (АИС). Правильно подобранный состав компонентов АИС (техническое, информационное, программное обеспечения, средства телекоммуникации и др.) являются залогом стабильной и конкурентоспособной работы фирмы в современных условиях рыночной экономики. Важным требованием к АИС является соответствие её организационной и управленческой структуре предприятия. АИС должна выполнять все функции по обработке, хранению, передаче и приёме информации, обеспечивающие хозяйственные процессы организации.
Особую нишу в современной торговли занимают информационные технологии, которые позволяют автоматизировать большую часть рутинной работы. Целью отдела менеджмента Интернет проектов организации является техническая поддержка сайта предприятия и рассмотрение заказов от клиентов с перенаправлением в бухгалтерию после одобрения заказа руководителем предприятия.
Для эффективного управления производством крайне важную роль играет количество и качество информации, которую получает руководитель организации. С повышением уровня продаж и накоплением подобного рода информации о поступающих заказах на получение товара заказчиком уходит значительное время. Довольно проблематично наращивать уровень продаж без использования средств автоматизации.
В настоящее время существует множество систем автоматизации Интернет бизнеса, но они либо слишком дороги, либо не обеспечивают специальных возможностей конкретного предприятия или предприятий определенной отрасли. На предприятии ЗАО «Агропромышленная компания «СТАВХОЛДИНГ» использовалась стандартная форма оформления заказа с последующей отсылкой формы на указанный почтовый адрес. После чего велась дальнейшая переписка, пока в итоге товар не оказывался у покупателя, а деньги у производителя, часть процентов от продаж отходила предприятию ЗАО «Агропромышленная компания «СТАВХОЛДИНГ». К недостаткам автоматизированной системы можно отнести:
1 Подлинность данных форм приходилось перепроверять в ручную.
2 Отсутствие непосредственной привязки форм к базе данных.
3 Отсутствие привязки списка товаров к базе данных.
4 Отсутствие возможности работы сайта как магазина в автономном режиме.
Поэтому темой дипломной работы стала разработка Web магазина, что позволит расширить функциональные возможности существующего web сайта, и связанный с ним Интернет бизнеса ЗАО «Агропромышленная компания «СТАВХОЛДИНГ». В результате должен быть получен экономический эффект в виде увеличения продаж и повышении оперативности работы.
1. ОБЩАЯ ХАРАКТЕРИСТИКА ПРЕДПРИЯТИЯ ЗАО «АГРОПРОМЫШЛЕННАЯ КОМПАНИЯ «СТАВХОЛДИНГ»
1.1 ИСТОРИЯ ОРГАНИЗАЦИИ
Предприятие образовано в 2009 году как один из проектов Агропромышленной компании «СТАВХОЛДИНГ». Предприятие расширяется с каждым годом. Был создан отдел по создание и поддержки Интернет проектов компании.
С 2009 году отделу Интернет проектов было поручено разработать сайт для поддержки продаж программного обеспечения и маркетингового продвижения организации в Интернете.
В 2009-2010 годы сайт компании стал приносить приличную статью дохода от общего количества продаж. Предприятие занималось процентной перепродажей программного обеспечения сторонних производителей. С 2009 по 2010 годы отдел Интернет проектов бурно развивался и открывал дополнительные сайты, расширяя сферы деятельности организации.
На текущий момент принято решение о полной реконструкции сайт компании и максимальной автоматизации процесса продаж через Интернет. Дополнительно приняты на работу специалисты занимающиеся дизайном, программированием, безопасностью и иностранным переводом. Закуплена дополнительная техника и увеличена пропускная способность канала связи с сетью Интернет.
1.2 ХАРАКТЕРИСТИКА ОРГАНИЗАЦИИ
ЗАО «Агропромышленная компания «СТАВХОЛДИНГ» является инвестиционной компанией и вкладывает средства перспективные направления бизнеса в сфере высоких технологий.
Согласно закону у участников общества с ограниченной ответственностью могут появляться дополнительные права и обязанности. Такие права и обязанности могут предоставляться как всем без исключения участникам общества, так и определенным (отдельным) участникам. В обоих случаях они предусматриваются либо уставом конкретного общества, либо единогласным решением общего собрания. Речь, например, может идти о праве участника (независимо от размера его доли) назначать одного из членов правления или совета директоров общества или о его обязанности периодически оказывать обществу какие-либо услуги. Возложение дополнительных обязанностей на конкретного участника общества либо прекращение или ограничение принадлежащих ему дополнительных прав возможны только по решению общего собрания, принятому большинством не менее двух третей голосов участников общества, и при обязательном согласии с этим самого участника.
Для достижения установленных целей своей деятельности Общество вправе от своего имени заключать любые допустимые законом сделки, приобретать имущественные и неимущественные права и нести обязанности, быть истцом и ответчиком в арбитражном и третейском суде.
Общество самостоятельно формирует производственную программу, выбирает поставщиков и потребителей своей продукции, самостоятельно устанавливает на нее цены.
Фирменное наименование общества: Закрытое Акционерное Общество «Агропромышленная компания «СТАВХОЛДИНГ».
Организационная структура:
А) Отдел автоматизации:
— Управление компьютерной сетью;
— Администрирование сервера документа оборота;
Б) Отдел Интернет проектирования:
— Проектирование новых Интернет проектов;
— Поддержка имеющихся Интернет проектов;
— Планирование сотрудничества с другими смежными Интернет проектами;
В) Отдел инвестирования;
— Расчет рентабельности инвестиций;
— Планирование инвестирование в проекты;
Г) Отдел разработки:
— Разработка программного обеспеченья для организации;
— Разработка программ под заказ;
— Разработка программ и скриптов для Интернет проектов;
Д) Отдел безопасности:
— Поддержка безопасности в организации;
— Тестирование Интернет проектов на безопасность;
— Юридические консультации;
Е) Отдел дизайна:
— Разработка фирменных логотипов и банеров;
— Разработка уникальных дизайнов для Интернет проектов;
— Рекламные щиты;
Ж) Отдел бухгалтерии:
— Ведение расчетов с покупателями и заказчиками;
— Ведет документацию всех операций;
— Налоговые отчетности;
Основные направления деятельности:
— проектирование новых Интернет проектов;
— поиск новых авторов программ;
— привлечение покупателей программ;
— поиск новых направлений в Интернет бизнесе;
— поддержка и раскрутка имеющихся Интернет проектов;
Потребности пользователей компьютеров и Интернет пользователей в качественном программном обеспечении растут с каждым годом. Интернет дает возможность быстро найти интересующий продукт или найти организации или частные лица, которые могли бы создать необходимый для заказчика программный продукт.
Интернет, служивший когда-то исключительно исследовательским и учебным группам, чьи интересы простирались вплоть до доступа к суперкомпьютерам, становится все более популярным в деловом мире.
При низкой стоимости услуг (часто это только фиксированная ежемесячная плата за используемые линии или телефон) пользователи могут получить доступ к коммерческим и некоммерческим информационным службам США, Канады, Австралии и многих европейских стран. В архивах свободного доступа сети Интернет можно найти информацию практически по всем сферам человеческой деятельности, начиная с новых научных открытий до прогноза погоды на завтра.
Кроме того, Интернет предоставляет уникальные возможности дешевой, надежной и конфиденциальной глобальной связи по всему миру. Это оказывается очень удобным для фирм имеющих свои филиалы по всему миру, транснациональных корпораций и структур управления. Обычно, использование инфраструктуры Интернет для международной связи обходится значительно дешевле прямой компьютерной связи через спутниковый канал или через телефон.
Практически все услуги сети построены на принципе клиент-сервер. Сервером в сети Интернет называется компьютер способный предоставлять клиентам (по мере прихода от них запросов) некоторые сетевые услуги. Взаимодействие клиент-сервер строится обычно следующим образом. По приходу запросов от клиентов сервер запускает различные программы предоставления сетевых услуг. По мере выполнения запущенных программ сервер отвечает на запросы клиентов.
Все программное обеспечение сети также можно поделить на клиентское и серверное. При этом программное обеспечение сервера занимается предоставлением сетевых услуг, а клиентское программное обеспечение обеспечивает передачу запросов серверу и получение ответов от него.
Электронная почта — самая распространенная услуга сети Интернет. В настоящее время свой адрес по электронной почте имеют приблизительно 20 миллионов человек. Посылка письма по электронной почте обходится значительно дешевле посылки обычного письма. Кроме того, сообщение, посланное по электронной почте, дойдет до адресата за несколько часов, в то время как обычное письмо может добираться до адресата несколько дней, а то и недель.
Поэтому важнейшим аспектом и преимуществом Интернет бизнеса является электронная почта. В ЗАО «Агропромышленная компания «СТАВХОЛДИНГ» имеются несколько почтовых серверов поддерживающих непрерывный обмен информацией как внутри организации, так и с клиентами.
Отдел Интернет проектов ведет постоянную переписку с клиентами. Клиентами организации являются как авторы программного обеспечения, так и его покупатели. В качестве авторов выступают организации и частные лица. У каждого автора имеются отдельный набор процентов, которые отчисляются к ЗАО «Агропромышленная компания «СТАВХОЛДИНГ». Покупатели так же могут иметь некоторые скидки, которые определяет автор приобретаемой программы. Перечислениями занимается бухгалтерский отдел.
Отдел инвестирования периодически занимается раскручиванием популярного автора, тем самым, повышая доходы организации и автора. Создает новые проекты, которые реализуются и поддерживаются остальными отделами.
Отдел безопасности проводит плановые проверки всех отделов, технического и программного обеспечения. Дают рекомендации по изменению конфигурации серверов и рабочих станций.
Отдел дизайна постоянно занимается разработкой и оптимизацией графических компонентов сайтов организации. Графика является одной из важнейших компонентов по привлечению клиентов. Банера обменная сеть требует постоянного обновления из-за особенности системы раскрутки авторов.
Отдел автоматизации постоянно занят поддержкой локально сети, внешними и внутренними серверами компании. Устанавливает новые версии программных продуктов, с которыми ежедневно работают сотрудники из разных отделов. А так же вносит изменения в конфигурацию серверов и рабочих станций, реализуя тем самым необходимые рекомендации, исходящие из других отделов. Например, внедрение системы учета локального и внешнего трафика разных отделов, переход с одного серверного программного комплекса на другой и т. д.
Отдел бухгалтерии занимается контролем расхода средств на нужды организации. Например, оплатой за Интернет трафика, арендной платы за рабочие помещения, расходные материалы, и т.п. А так же начисляет заработную плату сотрудникам, занимается отчетностью в налоговой инспекции и в других контролирующих органах. Занимается финансовой частью работы с клиентами, перечислением средств в отделы на развитие имеющихся проектов.
Отдел разработки занимается разработкой программных продуктов для внутренних нужд организации и внешними заказами. Под внутренними нуждами понимается разработка программ по запросу из других отделов. Например, специфические клиент серверные приложения для работы как внутри организации, так и с Интернетом. В основном такие заказы приходят из отдела автоматизации в свою очередь, в который приходят просьбы и пожелания их остальных отделов, которые сами не могут автоматизировать или разработать, какой либо процесс.
1.3 ПОСТРОЕНИЕ ОРГАНИЗАЦИОННО-УПРАВЛЕНЧЕСКОЙ СТРУКТУРЫ (ОУС)
В процессе управления предприятием ЗАО «Агропромышленная компания «СТАВХОЛДИНГ» принимаются стратегические, тактические и оперативные решения, в связи с чем, в управленческом аппарате выделяют высший, средний и оперативный уровни управления, как на рисунке 1.1 представленном ниже.
Рисунок 1.1 — Уровни ОУС
Высший уровень включает менеджеров-руководителей, определяющих цели управления, внешнюю политику, материальные, финансовые и трудовые ресурсы, разрабатывающих долгосрочные планы и стратегию их реализации. В их компетенцию может входить анализ рынка и конкурентов, поиск альтернативных стратегий развития предприятия в случае выявления угрожающих тенденций в сфере его интересов. Кроме того, в аппарат управления, находящийся на верхнем уровне структуры, входят руководители каждого из отделов. Такой состав аппарата управления обеспечивает тесную связь между руководством организации и непосредственно подразделениями, осуществляющими производственные процессы на предприятии.
Средний уровень включает отдел автоматизации, отделы обслуживающие производственные процессы в плане финансового, бухгалтерского, кадрового учёта отделы: бухгалтерия, отдел экономики и ценообразования, отдел кадров. К среднему звену управления относятся менеджеры-исполнители, обеспечивающие контроль над выполнением планов, отслеживание ресурсов, разработку управляющих директив для вывода предприятия на уровень, определенный в планах. Данный уровень является связующим звеном между руководством и оперативным звеном, между планированием и исполнителями планов, а также между различными стадиями и участками производства. На этом уровне происходит обработка поступающей информации с производств, а также из внешних источников и доведение её до аппарата управления. Через это звено управляющая информация со стороны руководства доводится до непосредственных исполнителей.
Оперативный уровень характеризуется реализацией планов и составлением отчетов о ходе их выполнения. Основной задачей здесь является согласование всех элементов производственного процесса с необходимой степенью его детализации. Руководство на данном уровне заключается в управлении структурным подразделением (цехом, участком, сменой, отделом, службой и т.д.).
В зависимости от уровня управления используются различные виды информации: внутренняя и внешняя. Так, для высшего руководства, разрабатывающего стратегию деятельности, применяется в основном внешняя и в меньшем объеме внутренняя информация. На оперативном уровне используется только внутренняя информация, на среднем уровне в значительной степени внутренняя и частично внешняя. Таким образом, каждый уровень имеет свой объем информации, который является частью всего объема используемого организацией.
Во главе предприятия стоит генеральный директор, решения которого реализуются в производстве директорами младшего ранга. Директорат младшего ранга состоит: директор отдела разработки, директор отдела дизайна, директор отдела автоматизации, директор отдела, Интернет проектов, главный бухгалтер; группа ведущих специалистов (ГВС), включающая старших инженеров, руководящих работой подчиненных им младших специалистов при этом так же занимаясь производственным трудом. В функции заместителя директора по общим вопросам входит решение различных вопросов, не отнесенных к перечисленным службам, а также руководство службой отделов разработки и отдела Интернет проектирования. Младшие директора со своими службами управления организуют, планирует и регулирует работу основных отделов, которые формируют каждый свою модель продукции, которая будет использоваться для получения прибыли, не зависимо от того рекламный банер это или программный продукт.
В контур автоматизированного организационного управления предприятием может быть включен контур АСУТП — автоматизированной системы управления технологическими процессами, охватывающий основное производство и службы главных специалистов.
Общая организационно-управленческая структура ЗАО «Агропромышленная компания «СТАВХОЛДИНГ» представлена на рисунке 1.2.
Рисунок 1.2 — Организационно-управленческая структура ЗАО «Агропромышленная компания «СТАВХОЛДИНГ»
1.4 ФУНКЦИОНАЛЬНЫЙ АНАЛИЗ ДЕЯТЕЛЬНОСТИ ПРЕДПРИЯТИЯ
Каждый из уровней организационно-управленческой структуры отвечает за выполнение определенного круга функций по отношению к непосредственному производству. Традиционно выделяют функции планирования, учета и контроля, анализа и обработки информации, оказывающие непосредственное влияние на принятие решения.
Планирование — функция, посредством которой реализуется цель управления. Оно занимает значительное место в деятельности высшего руководства, меньшее — на среднем уровне и минимальное — на оперативном.
Учет и контроль производственно-хозяйственной деятельности предприятия являются важнейшей функцией управления и ориентированы на получение информации о ходе всей работы путем наблюдения, измерения и систематической регистрации всех ресурсов, хозяйственных процессов и их результатов. При учете применяются экономические группировки, позволяющие путем их обобщения получать развернутую картину о результатах хозяйственной деятельности. Объекты учета отражаются в учетных документах с помощью натуральных, трудовых и денежных показателей, что дает возможность более полно и правильно отразить и проконтролировать отдельные хозяйственные операции и их результаты. В зависимости от характера данных, методов их получения и способов группировки хозяйственный учет делится на первичный, бухгалтерский и статистический. Учет осуществляется в основном на оперативном и среднем уровнях управления. Для учёта информации о ходе процесса производства (набор показателей, установленных на предприятии или внешними контролирующими организациями), прошедшая первичную обработку, поступает на средний уровень управления, где происходит её обработка и анализ. После этого результаты анализа поступают в другие отделы для последующего изучения или на верхний уровень управления для принятия решений по управлению производством. На высшем уровне учёт и контроль отсутствует, однако на его основе в полной мере выполняются анализ результатов производства и регулирование его хода.
Анализ и регулирование — это сопоставление фактических показателей с нормативными (директивными, плановыми), определение отклонений, выходящих за пределы допустимых параметров, установление причин отклонений, выявление резервов, нахождение путей исправления создавшейся ситуации и принятие мер по выводу объекта управления на плановый курс.
Деятельность хозяйственного субъекта базируется на трех составляющих: системе управления предприятием, его экономической системе и информационных технологиях, используемых в качестве инструментария двух предыдущих компонент. Центральным звеном информационной системы является экономическая информационная система, основу которой составляет бухгалтерская информационная система, где хронологически и систематически накапливаются и обрабатываются данные, связанные с учетом, контролем, планированием, анализом и регулированием. На основе этих данных формируется информация о ходе работы предприятия, сопоставляются фактические показатели и нормативные, формулируются глобальные и локальные направления деятельности, разрабатываются предложения по установлению причин отклонений и корректировке результатов, осуществляется прогнозирование эффективности политики управления предприятием.
На рисунке 1.3. показано взаимное влияние системы управления хозяйственным субъектом, характеризуемой декомпозицией организационной структуры управления и информационной системой предприятия.
Необходимость выполнения глобальной цели влечет за собой формирование множества локальных целей, которые, в свою очередь, делятся на подцели. Одной из таких локальных целей является организация поддержки принятия решений на всех уровнях управления на основе своевременного предоставления информации всем заинтересованным службам и лицам с требуемой степенью детализации.
Реализации этой цели выражается в построении автоматизированной информационной системы. Эффективность организационной структуры определяется соответствием каждого исполнителя своему рабочему месту.
Предпосылками построения системы является комплексное решение следующих взаимосвязанных аспектов: организационных, кадровых, финансовых, разработки технологии и методологии организации профессиональной деятельности. Кадровый аспект характеризуется тем, что в связи с изменением методологии учета и обработки, переходом к автоматизированным формам ведения учета качественно изменяются требования к персоналу. Необходимо изменить отношение к работе, создать условия, при которых сотрудники будут заинтересованы в результатах своего труда, и будут стремиться совершенствовать свои знания. Для этого требуется утвердить кадровую политику, включающую решение задачи подготовки кадров, повышения профессионализма, расширение специализации. При разработке штатного расписания следует разработать должностные обязанности, четко выделив перечень обязательных функций и определив требования к каждой должности.
Рисунок 1.3 — Функциональная схема предприятия
Решение кадровой задачи необходимо начать с проведения аттестации каждого сотрудника. Эффективность функционирования системы определяется менталитетом каждого исполнителя на своем рабочем месте, и если работники не будут выполнять предъявляемых требований, то даже самая идеальная система не даст желаемых результатов.
В рамках решения финансового вопроса необходимо акцентировать внимание на вопросах нормирования, оценки и контроля издержек производства, в том числе на рабочую силу. Это касается, например, определения затрат на оплату труда по каждой технологической операции, заработной платы в расчете на один час нормативного, а также фактически отработанного времени. Ещё одной важной задачей финансовой функции является определение политики цен на производимую продукцию. Гибкая система цен должна соответствовать ситуации на рынке, успевать реагировать на неблагоприятные ситуации, возникающие на рынке. С другой стороны система цен должна опираться на показатели себестоимости продукции, отражающие издержки производства, и не приводить к убыточному производству.
1.5 АНАЛИЗ ЦЕЛЕЙ И ВИДОВ ДЕЯТЕЛЬНОСТИ
В дальнейшем возьмем в качестве главной цели функционирования организации (Ц0) получение прибыли. Главная цель достигается за счет достижения подцелей, на которые она разделяется. Достижение каждой из подцелей возможно за счет некоторых средств, и фиксируется определенным критерием. Достижение всех подцелей автоматически ведет к достижению главной цели. Описание подцелей расположено в таблице 1.1, а так же на рисунке 1.4 расположено дерево целей.
Таблица 1.1 — Описание подцелей.
Подцель главной цели |
Средства достижения |
Критерий достижения |
|
Ц1) Повышение качества организационного управления |
Ц11) Уменьшение внутреннего документооборота |
Наличие стратегии развития Сокращение времени на принятие решения |
|
Ц12) Повышение качества и оперативности принятия решений |
|||
Ц14) Повышение степени систематизации и оптимальности планирования стратегии развития |
|||
Ц2) Повышение качества и оперативности сбора и обработки информации |
Ц21) Повышение качества передачи информации |
Использование высокоскоростных линий связи Сокращение времени сбора и обработки информации Уменьшение стоимости сбора и обработки информации Замена бумажных носителей электронными |
|
Ц22) Модернизация технического, программного, математического и организационного обеспечения процесса циркуляции и обработки информации |
|||
Ц23) Оптимизация информационных потоков |
|||
Ц24) Улучшение технологий сбора и обработки информации |
|||
Ц3) Повышение качества взаимодействия с потребителями |
Ц31) Увеличение номенклатуры услуг |
Увеличение количества клиентов |
|
Ц32) Укрепления связей с потребителями |
|||
Ц33) Увеличение рекламы |
|||
Ц4) Улучшение качества бухгалтерского учета |
Ц41) Модернизация методов учета, автоматизация учета |
Повышение качества бух. Документов Уменьшение времени подготовки документов |
|
Ц41) Модернизация методов учета, автоматизация учета |
|||
Ц42) Уменьшение ошибок в учетных документах |
|||
Ц43) Повышение оперативности подготовки документов |
|||
Ц5)Увеличение производственной мощности и повышение её качества |
Ц51) Освоение новых технологий |
Увеличение площади введённого в эксплуатацию жилья Увеличение спроса на квартиры Выход на рынок с новой продукцией |
|
Ц52) Введение новых подсобных производств |
|||
Ц53) Расширение производства |
|||
Ц54) Повышение профессионализма руководящего и рабочего персонала |
Рисунок 1.4 — Дерево целей
Вывод по дереву целей в достижении главной цели Ц0 имеет большой вес для достижения целей обеспечивающей подсистемы.
Предприятие вправе осуществлять любые виды деятельности, не запрещенные законом. При этом указания в учредительных документах предмета и целей деятельности не требуется. Однако если предмет и цели деятельности предусмотрены учредительными документами, деятельность общества должна укладываться в их рамки.
1.6 ПОСТРОЕНИЕ ОРГАНИЗАЦИОННО-ФУНКЦИОНАЛЬНОЙ МОДЕЛИ ПРЕДПРИЯТИЯ
Суть данной модели состоит в том, чтобы определить исполнителей и ответственных в процессах, происходящих в функциональных областях управления. По данной модели можно делать выводы об эффективности выполнения, как самих процессов, так и об эффективности функционирования отдельных отделов и организации в целом. Для этого выделим элементарные процессы в деятельности предприятия и ответственных исполнителей в таблице 1.2.
Таблица 1.2 — Организационно-функциональная модель
Процесс |
Исполнитель |
|
1 |
2 |
|
1. Управление и контроль |
Генеральный директор и аппарат управления |
|
2. Учёт и контроль |
Бухгалтерия |
|
3. Планирование и управление финансами |
Отдел экономики и финансов, аппарат управления |
|
4. Решение вопросов при работе с клиентами |
Юрист |
|
5. Разрешение вопросов безопасности при разработке Интернет проектов, а так же внутри организации. |
Отдел безопасности |
|
6. Управление и администрирование внешней и внутренней сетью документа оборота. |
Отдел автоматизации |
|
7. Проектирование и поддержка Интернет проектов, исследование рынка, планирование сотрудничества. |
Отдел Интернет проектирования |
|
8. Планирование и инвестирование в проекты, расчет рентабельности инвестиций. |
Отдел инвестирования |
|
9. Разработка программ: под заказ, для внутренних нужд организации, для Интернет проектов. |
Отдел разработки |
|
10. Разработка логотипов, дизайна, стилей, рекламы под заказ и для внутренних нужд организации. |
Отдел дизайна |
1.7 СХЕМА ДОКУМЕНТООБОРОТА
Любая система образуется наличием технологии преобразования исходных данных в результатную информацию. Такие технологии принято называют информационными. Информационная технология представляет собой систему методов и способов сбора, накопления, регистрации, передачи, обработки, хранения, поиска, модификации, анализа, защиты, выдачи необходимой информации всем заинтересованным подразделениям на основе применения аппаратных и программных средств. Понятие информационной технологии неотделимо от понятия документооборот на предприятии, технической и программной среды. Информационная технология направлена на уменьшение времени прохождения документов по каналам передачи, времени составления и обработки документов.
Функциональной называется такая модификация обеспечивающих информационных технологий, при которой реализуется какая-либо из предметных технологий. Так, работа Интернет проектировщика отдела Интернет проектирования использующего персональный компьютер, обязательно предполагает применение технологий автоматизированного проектирования:
* применение алгоритмов обработки заказов
* использование алгоритмов расчетов “сетки” скидок и поощрений для производителей, заказчиков и простых покупателей.
* использование сетевых технологий, реализованных в какой-либо информационной технологии (электронная почта, обновление сайта).
Использование компьютера необходимо для нормальной работы специалистов по Интернет проектированию, а автоматизации большинства процессов путем создание программных комплексов должно внести изменения в предметную технологию, исключив из обработки значительное количество повторяющихся действий пользователя, используемых при традиционной системе работы, а также предоставив принципиально новые оперативные возможности. Рассмотрим рисунок 1.5.
На схеме объект управления — производственный процесс. Для организации «Агропромышленная компания «СТАВХОЛДИНГ» таким объектом являются отделы и офисы, занимающиеся созданием программных алгоритмов, дизайном, безопасностью проектов. Узлы схемы имеют отделы являющиеся элементами управления в организации. В этих отделах производится составление и обработка документов. Отделы ответственны за своевременную передачу информации между собой. В виде стрелок на схеме документооборота изображены каналы передачи документов.
Рисунок 1.5 — Схема документооборота предприятия
Для данной организации можно выделить следующие каналы передачи документов:
1 — управляющие документы, характеризующие направления деятельности фирмы поступают в отдел Интернет проектирования;
2 — документы, характеризующие финансовую и ценовую политику в виде планов, поступают из аппарата управления в Инвестиционный отдел;
3 — руководитель отдела Интернет проектирования получает инвестиционный пакет для разрабатываемого объекта;
4 — инженеры и руководители отделов разработки и дизайна получают проекты для реализации;
5 — через этот канал передаются тактические планы и указания работ для руководителей отделов;
6 — работники составляют договора с клиентами план выполняемых действий для отчета в бухгалтерии;
7 — по этому каналу поступают сведения об окладах специалистов и дополнительные сведения плана выполняемых работ;
8 — обмен документами учёта процесса производства (материалы, выполненные работы, заключенные договора с производителями и покупателями и т.д.);
9 — в бухгалтерию поступают сведения о продаже программ производимых организацией, а также о процентах при перепродаже сторонних производителей программ;
10 — клиенты заключают договора о купле/продаже программ или договора о сотрудничестве;
11 — контрольная информация о ходе процесса продаж поступает в службу главных специалистов;
12 — различные виды отчётов поступают для рассмотрения аппарату управления.
1.8 АНАЛИЗ ПРОБЛЕМНЫХ СИТУАЦИЙ
Неожиданности и трудности могут возникать на протяжении всего этапа достижения какой-либо подцели в дереве целей, при этом возникают трудности в достижении главной цели организации. Пути решения возникшей проблемы это средства достижения соответствующей подцели. Анализ проблемных ситуаций приведен в таблице 1.3.
Таблица 1.3 — Анализ проблемных ситуаций.
Проблемная ситуация |
Способы решения |
|
1.Ухудшение качества управления организацией |
||
1.1. Увеличение почтовой неразберихи |
Автоматизация фильтрации почты |
|
1.2. Увеличение времени на принятие решения, ухудшение его качества |
Модернизация методов принятия решения, автоматизация Лучший анализ ситуации при принятии решения |
|
1.3. Плохое взаимодействие с вышестоящими инстанциями и др. организациями |
Модернизация методов решения конфликтов Улучшение качества выходных документов |
|
1.4. Медленное развитие планов или недостаточное его качество |
1. Акселерация развития путем модернизации планирования |
|
2. Ухудшение качества сбора и обработки информации, оперативности |
||
2.1. Недостаточное качество связи |
Переход на более скоростные каналы связи |
|
2.2. Старение оборудования и системных программ |
Модернизация оборудования Закупка новых систем |
|
2.3. Медленное развитие и внедрение новых технологий на сайтах организации |
1. Структурный анализ сайтов, упрощение информационных потоков, автоматизация работы с клиентами online |
|
2.4. Алгоритмы и программы не справляются с потоком информации |
Постоянное совершенствование прикладного ПО используемого на серверной стороне Применение новых технологий обработки информации (НИТ) |
|
3. Ухудшение качества бухгалтерского учета |
||
3.1. Трудности при глобальном учете клиентов, трудоемкость учета |
1. Автоматизация учета 2. Модернизация методов учета 3. Увеличение скорости учета |
|
3.2. Увеличение ошибок при учете |
||
3.3. Увеличение времени на обработку учетных данных |
||
4. Увеличение времени на разработку проектов. |
||
4.1. С введением новых технологий строительства увеличилась громоздкость проектов. |
Автоматизация проектирования зданий и коммунальных систем |
|
4.2. Требования к качеству проектов увеличились |
Использование новых технологий проектирования |
Основной проблемой для большинства Web магазинов является трудоемкость обработки электронной почты при переписке с клиентами, а так же определение достоверности данных и форм, заполняемых клиентами. Для решения этих проблем необходимо разрабатывать специализированные ИС и АРМы либо усовершенствовать существующие.
По сути, сделка на сайте организации состоит из трех основных частей, это договор с производителем на продаже программы, продажа программы через Web магазин покупателем, распределение средств между всеми сторонами договора. Каждая часть сопровождается документооборотом в файловом виде по электронной почте, документированием сделки в базе данных. Успешная работа сайта организации во многом зависит от скорости документооборота и качества поступающей информации.
В отделе Интернет проектов (ОИП) ЗАО «Агропромышленная компания «СТАВХОЛДИНГ» работа автоматизирована при помощи стандартных средств входящих в поставку Microsoft Windows XP плюс, специализированное ПО для связи с базой данных разработанное в отделе программирования. Сайт организации использует не автоматизированные формы, такие формы занимают дополнительное время у производителей, покупателей и работников отдела, так как их приходится проверять и отправлять самостоятельно. По этому в данной работе рассматриваются проблемные участки, которые необходимо автоматизировать.
1.9 ВЫВОДЫ
Не автоматизированные формы, постоянная пересылка почты от одной стороны сделки к другой, не могут обеспечить необходимый в условиях жесткой конкуренции экономический рост для данной организации. Имеет смысл автоматизировать формы и процессы оформления сделок, а так же создать централизованную базу, которая обеспечит быстрый доступ к основной информации, как для работников, так и для клиентов организации.
2. АВТОМАТИЗИРОВАННАЯ ИНФОРМАЦИОННАЯ СИСТЕМА ОТДЕЛА ИНТЕРНЕТ ПРОЕКТИРОВАНИЯ ПРЕДПРИЯТИЯ
2.1 ОБЩАЯ ХАРАКТЕРИСТИКА ИМЕЮЩЕЙСЯ СИСТЕМЫ
В состав автоматизированной информационной системы отдела Интернет проектирования организации ЗАО «Агропромышленная компания «СТАВХОЛДИНГ» в качестве технической составляющей входит 4 компьютеров семейства i8086 с разными техническими характеристиками. Все компьютеры объединены и связанны между собой локальной вычислительной сетью с выходом в Интернет. Сеть обслуживает:
1. Генерального Директора
2. Инвестиционный отдел
3. Отдел Интернет проектирования
4. Отдел автоматизации
5. Отдел безопасности
6. Отдел разработки
7. Отдел дизайна
Все компьютеры присоединены к двум концентраторам. В качестве линий связи используется витая пара. В сети присутствуют два сервера, первый используется в качестве котроллера домена и является маршрутизатором и шлюзом для выхода в Интернет, второй в качестве локального web, ftp, mail, mysql, InterBase сервера. В сети установлены как локальные, так и сетевые принтеры. В этой сети эксплуатируется сетевое ПО “RegIT” созданная в отделе разработки. Целью её создания является использование общего доступа к базе данных клиентов. Взаимодействие пользователей осуществляется посредством чтения общих файлов или передачи их через сеть. Кроме компьютеров в ИС предприятия входят технические средства ввода\вывода информации — принтеры, сканеры, цифровые фотокамеры, а также для связи с удалёнными компьютерами и глобальной сетью Интернет — ISDN.
В программную часть автоматизированной информационной системы входят операционные системы: сетевая — Windows 2000 Server, которая обслуживает сервер котроллера домена, RedHat 7.1 (SeaWolf), который обслуживает web сервер, а также локальные операционные системы семейства Windows 2003, XP. Основными используемыми программами являются офисные программы общего назначения — Microsoft Office, Fine Reader, Outlook Express, The Bat, Kaspersky AntiVirus, Интернет Explorer и другие. Также в некоторых отделах используются специализированные программы, необходимые для эффективной работы только этих отделов:
1. в отделе безопасности — Xspider, SSS, ISS, nmap (для тестирования и прогнозирования безопасности внешних и внутренних серверов, компьютеров в локальной сети)
2. в отделе «Разработки» — BC++, BJ++, Delphi, ASP+ (для создания программ)
3. в отделе «Дизайна» — 3DMax, CorelDraw, PhotoShop, DreamWeaver, FrontPage (для расчета смет по строительству)
4. в отделе «Интернет проектирования» — SmartWhois, SmartPayPal, RegIT, CuteFTP Pro, Promt 2000 (для проверки подлинности данных вводимых через формы с сайта организации)
Отдел Интернет проектирования имеет специфические особенности работы с непосредственными клиентами организациями, это постоянное отслеживание поддельной корреспонденции. Использование чужих счетов, почтовых ящиков с целью не законного получения лицензированного ПО производителей. Для отслеживания таких “поддельных” клиентов используются программы SmartWhois, SmartPayPal, RegIT. RegIT позволяет получить свежую информацию о зарегистрованых производителях ПО, например: Ф.И.О., адреса, контакты, счета, список предлагаемых программ для перепродажи. RegIT является сетевой программой с общей базой данных с которой в режиме реального времени работают множество пользователей.
Программа позволяет добавлять, редактировать, просматривать и удалять записи о клиентах и о программах, которые они предлагают, ведет статистику покупок и обновлений имеющихся в базе программа.
SmartWhois проверка принадлежности IP адреса географическому местоположению, помогает сверять реальные данные о клиенте. Данные приходят по почте от клиентов, чтобы проверять IP, его сначала надо выделить из заголовка тела электронного письма. После чего SmartWhois делает запросы к серверам с базами данных по IP адресам. Программа также может работать с доменами или делать проверки по списку, выводя результат в удобной для пользователя форме.
SmartPayPals позволяется производить начисление средств производителям программ непосредственно через Интернет в реальном времени. Это довольно удобный способ работы с клиентами, однако требующий множества перепроверок, чтобы исключить возможность ошибки.
Помимо специфических программ используемых в отделе Интернет проектирования, так же используются довольно известные продукты, такие как Outlook Express и The Bat. Эти две программы для получения электронной почты просты в обращении, имеют русифицированный интерфейс и широкий набор функций. Каждый пользователь сам решает, какой из программ он будет пользоваться, основным критерием является опыт работы пользователя с одной из двух этих программ. Важным является факт интеграции двух этих программ с антивирусным продуктом лаборатории Касперского AVP. Отдел безопасности ставит обязательным условием использование антивирусных программ при работе с электронной почтой, а так же постоянное обновление программ новыми версиями.
Отдел Интернет проектирования обязан постоянно обновлять сайт организации, дополнять списки программ поставленных на продажу. Обновление сайта включает в себя и обновление дизайна, логотипов, банеров, форм, стилей страниц, так как это привлекает массу Интернет пользователей, то есть потенциальных покупателей. Для обновления используется набор программ DreamWeaver, FrontPage, CuteFTP Pro, первые две программы так же используются и в дизайнерском отделе и по необходимости они же могут вносить строчные изменения на сайте организации, если есть такая необходимость. Каждый специалист имеют свой уровень доступа на сайте организации, и обновляет отведенную ему часть сайта.
После каждого обновления сайта отдел безопасности тестирует сайт на возможные бреши с точки зрения безопасности. При обнаружении брешей на сайте организации отдел безопасности сообщает о них начальнику отдела Интернет проектирования, после чего производится устранение ошибок с последующим обновлением сайта с тестированием на локальном сервере.
Важным моментом является работа с иностранными клиентами. В отделе Интернет проектирования имеется переводчик, который занимается переводом документации, пересылки, электронной почты, текстов для сайта.
Основной комплекс программ разработан для использования в операционной системе Windows XP. Структурная схема прохождения документации выглядит следующим образом (рисунок 2.1):
Серьёзным недостатком некоторых программ является отсутствие поддержки механизма импорта и экспорта созданных или измененных выходных данных. То есть, база данных клиентов не может быть экспортирована на сайт напрямую, и нескольким отделам приходится вручную обновлять на сайте специфичные для них разделы. А так же наоборот, данные с сайта трудно импортировать в базу данных.
______ основной поток проекта
——— поток коррекции проекта
Рисунок 2.1 — Структурная схема документооборота
Ежедневной работой отдела Интернет проектирование является разбор электронной почты, через которую происходят сделки, и поступает разнообразная информация о клиентах. Сделки покупок и перепродаж программного обеспечения занимают большую часть времени отдела, так как приходится перепроверять данные, связываться с покупателем, с производителем и передавать итоги переговоров или сделки в отдел бухгалтерии, отдел инвестирования. Разработка дипломного проекта направлена на устранение этих недостатков и переходу к как можно более полной автоматизации процесса продаж через сайт организации.
2.2 ХАРАКТЕРИСТИКА ИСПОЛЬЗУЕМОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ ОТДЕЛА ИНТЕРНЕТ ПРОЕКТИРОВАНИЯ
В качестве системы автоматизированного проектирования используется эти основные программы: Outlook Express/TheBat, Promt 2000, SmartWhois, SmartPayPals, CuteFTP, RegIT, AVP.
Outlook Express и The Bat являются почтовыми программами, которые на сегодняшний день наиболее распространенные программы своего класса. Они имею возможности фильтрации входящей почты, интеграцию с антивирусными программами и защиту почтовых ящиков от санкционированного доступа. Эти программы используют все сотрудники отдела.
Promt 2000 является мощным комплексом по переводу текста с иностранных языков и обратно. Хотя в отделе имеется переводчик Promt 2000, который помогает переводить рутинные тексты и проверять орфографию.
RegIT это программа для связи с базой данных клиентов. Структура базы состоит из данных о клиенте, счета, адреса и т.п., и программах которые он продает или же купил. Данные можно изменять, удалять, добавлять, создавать новые записи.
CuteFTP является программой клиентом для связи с ftp сервером организации, чтобы обновлять сайт. Все настройки и уровни доступа регулируются на серверной стороне.
SmartWhois сетевая программа клиент для связи с серверами баз данных по IP адресам в Интернете. SmartWhois получает ответ от сервера форматирует его и выводит ответ в удобном для отчета виде. Это нужно чтобы сопоставить географию IP адреса отправленного письма с адресом указанным в письме, чтобы уменьшить вероятность ошибки или обмана.
SmartPayPals является сетевой программой клиентом для связи с сервером обмена Интернет транзакциями, достаточно иметь лишь личный счет и зарегистрированное имя и пароль. Регистрация платная.
2.3 ФУНКЦИОНАЛЬНАЯ СТРУКТУРА АВТОМАТИЗИРОВАННОЙ ИНФОРМАЦИОННОЙ СИСТЕМЫ ОТДЕЛА ИНТЕРНЕТ ПРОЕКТИРОВАНИЯ
Функциональная структура автоматизированного комплекса соответствует отделам, функции которых разделены по этапам, но при этом имеет связи по процессам и операциям, а также соподчинение функций.
Для того, чтобы показать соподчиненность функций приведем следующую таблицу 2.1.
Таблица 2.1 — Функции и подфункции отделов
Функции АИС отдела Интернет проектирования |
Подфункции АИС отделов |
|
Главный Инженер проекта |
Проектирование проектов Планирование работы проектов Управление работой отдела Связь с другими отделами Отчет перед вышестоящим руководством |
|
Переводчик |
Перевод текстов Перевод писем |
|
Старший менеджер |
Работа с базой клиентов Обновление сайта организации Переписка с клиентами |
|
Младший менеджер |
Поиск новых клиентов Оформление сделок с покупателями |
Ниже на диаграмме представлена взаимосвязь функций отделов при создании проектной документации (рисунок 2.2).
Рисунок 2.2 — Функциональная диаграмма комплекса автоматизированной системы отдела Интернет проектирования
На схеме видно, что документооборот внутри отдела имеет связь типа каждый к каждому. Кроме случаев, когда имеет место связь с другими внешними отделами, если есть такая необходимость. В конечном итоге любая поставленная перед отделом задача считается выполненной, если утверждена главным инженером проекта.
Рассмотрим работу сайта на примере его структурной схемы (рисунок 2.3):
Рисунок 2.3 — Схематичная структурная схема сайта
Из рисунка видно, что сайт выполняет только функции листинга программ, формы покупок, регистраций и передачи форм на форум нет никакой автоматизации и связи с базой данных, что создает большие неудобства, как для клиентов, так и для работников отдела Интернет проектирования.
Таким образом, проанализировав недостатки сайта организации с которым постоянно работает отдел Интернет проектирования, для разработки выберем следующее задание для дипломного проекта. Необходимо разработать Web магазин для расширения функций сайта организации. Добавим к существующим функциям выбор языка, с которым будет работать клиент, связь сайт с базой данных от казавшись от ручной генерации страниц продуктов, автоматизировать процесс проверки данных вводимых в формы, автоматизироваться процесс перепродажи путем внедрения автоматического счисления денег со счета покупателя и распределение средств между сторонами договора, автоматизироваться процесс регистрации клиентов и добавления программ таким образом, чтобы данные автоматически заносились в базу данных с уведомлением о событии по электронной почте. Добавить функции поиска и составить книги отзывов и предложений с обратной связью непосредственно на сайте организации.
2.4 ВЫВОДЫ
Трудоемкость рутинной повторяющейся работы по оформлению сделок, необходимо автоматизировать путем внедрения Интернет магазина в уже имеющийся сайт организации . С сотрудников появится больше времени для разработки других проектов. Снижение затрат трафика так же положительно скажется на экономическом росте организации. Интернет магазин обеспечит торговлю 24 часа в сутки с любым покупателем, который имеет доступ в Интернет.
3. РАЗРАБОТКА WEB МАГАЗИНА ДЛЯ САЙТА ОРГАНИЗАЦИИ
3.1 ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ И СОЗДАНИЕ СТРУТУРНОЙ МОДЕЛИ
Предметной областью Web магазина является данные, вводимые пользователями на сайте организации, которые в свою очередь будут обрабатываться, и пересылаться через Интернет до тех пор, пока не будет совершенна сделка. По совершению сделки с Web магазин должен разослать уведомления о том, что сделка свершилась всем участвовавшим в сделке сторонам.
Web магазин должен иметь гибкий механизм трансформации данных между различными ее представлениями. Иными словами, должно иметь место соотношение скорости и совместимости данных, между различными приложениями с минимальным участием пользователя в этих процессах. Чтобы достичь этого, необходимо применять языки программирования для создания приложений автоматизирующих процессы на серверной стороне и стороне пользователя.
Данные, вводимые пользователем через формы на сайте организации сначала должны форматироваться, и проверятся на стороне пользователя, чтобы избежать грубых ошибок и опечаток, тем самым сберечь Интернет трафик и снизить нагрузку на сайт. При этом нужно учитывать особенности операционной системы и Интернет браузера на пользовательской стороне. Вторая стадия форматирования и проверки подлинности данных происходит на серверной стороне, например принадлежность кредитной карточки, пароль и имя пользователя, правомерность его действий. На серверной стороне необходимо учитывать дефицит ресурсов системы и четко распределить рамки для особо ресурсоемких приложений.
В работе Web магазина будет участвовать база данных производителей программ. Поэтому необходимо преобразовать существующую базу таким образом, чтобы появились новые поля, которые будут вести учет покупок, количество скачек программы, популярность и т.п. Структурная модель сайта организации с добавленным для автоматизации класса Web магазин (рисунок 3.1)/
Рисунок 3.1 — Структурная модель сайта организации
Серым цветом обозначен поток данных сайта организации, а прозрачным с добавлением функций Web магазина.
3.2 ВЫБОР СРЕДСТВ ПРОГРАМИРОВАНИЯ И СЕРВЕРНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Для создания Web магазина требуется один из языковых программных интерпретаторов типа Perl 5.x, PHP 4.x и JSP, а так же Web сервер класса Apache Tomcat 4.x и MySQL сервер. Выше перечисленные программы должны находится на серверной стороне, дабы достичь максимальной автоматизации процессов. Исходя из экономической выгоды, самым недорогим и простым решением будет внедрение Web магазина под управлением операционной системы Linux RedHat 8.0. Выбор языковых интерпретаторов сделан тоже из соображений экономии, так как они являются свободно распространяемыми. Web магазин будет работать базой данных производителей в реальном времени с возможностью внесения изменений.
При выполнении дипломной работы в качестве средства программирования для разработки Web магазина были выбраны языковые интерпретаторы CGI, PHP, JSP, скриптовый язык Java Script, язык web программирования HTML, язык разработки стилей для web CSS, для настройки базы данных воспользуемся MySQL-Admin. Для разработки HTML воспользуемся Dreamweaver v4.0. В качестве среды разработки JSP воспользуемся Borland Java Builder. А для всех остальных языков воспользуемся редактором имеющимся в командной оболочке FAR v1.6.
Проверять работу каждого языка будем при помощи web браузера Internet Explorer на локальном тестовом сервере Apache Tomcat 4.0 и MySQL Server для связи с базой данных. В качестве тестового адреса возьмем доменное имя http://web-zine.local с привязкой к LoopBack адаптеру.
Выше перечисленные технологии, выбранные языки программирования и программы требуют описания для того, чтобы можно было дать им обоснование.
Основой Web магазина является Интернет. Интернет это глобальная компьютерная сеть, охватывающая весь мир. Сегодня Интернет имеет около 15 миллионов абонентов в более чем 150 странах мира. Ежемесячно размер сети увеличивается на 7-10%. Интернет образует как бы ядро, обеспечивающее связь различных информационных сетей, принадлежащих различным учреждениям во всем мире, одна с другой.
Компании соблазняют быстрота, дешевая глобальная связь, удобство для проведения совместных работ, доступные программы, уникальная база данных сети Интернет. Они рассматривают глобальную сеть как дополнение к своим собственным локальным сетям.
Фактически Интернет состоит из множества локальных и глобальных сетей, принадлежащих различным компаниям и предприятиям, связанных между собой различными линиями связи. Интернет можно представить себе в виде мозаики сложенной из небольших сетей разной величины, которые активно взаимодействуют одна с другой, пересылая файлы, сообщения и т.п.
Основное, что отличает Интернет от других сетей — это ее протоколы — TCP/IP. Вообще, термин TCP/IP обычно означает все, что связано с протоколами взаимодействия между компьютерами в Интернет. Он охватывает целое семейство протоколов, прикладные программы, и даже саму сеть. TCP/IP — это технология межсетевого взаимодействия, технология Интернет. Сеть, которая использует технологию Интернет, называется » Интернет «. Если речь идет о глобальной сети, объединяющей множество сетей с технологией Интернет, то ее называют Интернет.
Свое название протокол TCP/IP получил от двух коммуникационных протоколов (или протоколов связи). Это Transmission Control Protocol (TCP) и Internet Protocol (IP). Несмотря на то, что в сети Интернет используется большое число других протоколов, сеть Интернет часто называют TCP/IP-сетью, так как эти два протокола, безусловно, являются важнейшими.
Как и во всякой другой сети в Интернет существует 7 уровней взаимодействия между компьютерами: физический, логический, сетевой, транспортный, уровень сеансов связи, представительский и прикладной уровень. Соответственно каждому уровню взаимодействия соответствует набор протоколов (т.е. правил взаимодействия).
Протоколы физического уровня определяют вид и характеристики линий связи между компьютерами. В Интернет используются практически все известные в настоящее время способы связи от простого провода (витая пара) до волоконно-оптических линий связи (ВОЛС).
Для каждого типа линий связи разработан соответствующий протокол логического уровня, занимающийся управлением передачей информации по каналу. К протоколам логического уровня для телефонных линий относятся протоколы SLIP (Serial Line Interface Protocol) и PPP (Point to Point Protocol). Для связи по кабелю локальной сети — это пакетные драйверы плат ЛВС.
Протоколы сетевого уровня отвечают за передачу данных между устройствами в разных сетях, то есть занимаются маршрутизацией пакетов в сети. К протоколам сетевого уровня принадлежат IP (Internet Protocol) и ARP (Address Resolution Protocol).
Протоколы транспортного уровня управляют передачей данных из одной программы в другую. К протоколам транспортного уровня принадлежат TCP (Transmission Control Protocol) и UDP (User Datagram Protocol).
Протоколы уровня сеансов связи отвечают за установку, поддержание и уничтожение соответствующих каналов. В Интернет этим занимаются уже упомянутые TCP и UDP протоколы, а также протокол UUCP (Unix to Unix Copy Protocol).
Протоколы представительского уровня занимаются обслуживанием прикладных программ. К программам представительского уровня принадлежат программы, запускаемые, к примеру, на Unix-сервере, для предоставления различных услуг абонентам. К таким программам относятся: telnet-сервер, FTP-сервер, Gopher-сервер, NFS-сервер, NNTP (Net News Transfer Protocol), SMTP (Simple Mail Transfer Protocol), POP2 и POP3 (Post Office Protocol) и т.д.
К протоколам прикладного уровня относятся сетевые услуги и программы их предоставления.
WWW — система для работы с гипертекстом. Потенциально она является наиболее мощным средством поиска. Гипертекст соединяет различные документы на основе заранее заданного набора слов. Например, когда в тексте встречается новое слово или понятие, система, работающая с гипертекстом, дает возможность перейти к другому документу, в котором это слово или понятие рассматривается более подробно.
Главное отличие WWW от остальных инструментов для работы с Internet заключается в том, что WWW позволяет работать практически со всеми доступными сейчас на компьютере видами документов: это могут быть текстовые файлы, иллюстрации, звуковые и видео ролики, и т.д.
Для обмена документами в Web магазине используется электронная почта. Электронная почта — самая распространенная услуга сети Интернет. В настоящее время свой адрес по электронной почте имеют приблизительно 30 миллионов человек. Посылка письма по электронной почте обходится значительно дешевле посылки обычного письма. Кроме того, сообщение, посланное по электронной почте дойдет до адресата за несколько часов, в то время как обычное письмо может добираться до адресата несколько дней, а то и недель.
Все эти документы написаны на специально разработанном для этого языке, который называется HyperText Markup Language (HTML). Он чем-то напоминает язык, использующийся для написания текстовых документов, только HTML проще. Причем, можно использовать не только информацию, предоставляемую Интернет, но и создавать собственные документы. В последнем случае существует ряд практических рекомендаций к их написанию.
HTML — простой язык разметки, который позволяет помечать фрагменты текста и задавать ссылки на другие документы, выделять заголовки нескольких уровней, разбивать текст на абзацы, центрировать их и т. п., превращая простой текст в отформатированный гипермедийный документ. Достаточно легко создать html-файл вручную, однако, имеются специализированные редакторы и преобразователи файлов из других форматов.
Для просмотра документов используются специальные просмоторщики, такие как Mosaic, Netscape, Internet Explorer, lynx, www и другие. Mosaic и Netscape удобно использовать на графических терминалах. Для работы на символьных терминалах можно порекомендовать lynx.
Архитектура взаимодействия программного обеспечения в системе World Wide Web. WWW построена по хорошо известной схеме “клиент-сервер”. На рисунке 3.2 показано, как разделены функции в этой схеме.
Программа-клиент выполняет функции интерфейса пользователя и обеспечивает доступ практически ко всем информационным ресурсам Интернет. В этом смысле она выходит за обычные рамки работы клиента только с сервером определенного протокола, как это происходит в telnet, например. Отчасти, довольно широко распространенное мнение, что Mosaic или Netscape, которые являются WWW-клиентами, это просто графический интерфейс в Интернет, является отчасти верным. Однако, как уже было отмечено, базовые компоненты WWW-технологии (HTML и URL) играют при доступе к другим ресурсам Mosaic не последнюю роль, и поэтому мультипротокольные клиенты должны быть отнесены именно к World Wide Web, а не к другим информационным технологиям Интернет. Фактически, клиент—это интерпретатор HTML. И как типичный интерпретатор, клиент в зависимости от команд (разметки) выполняет различные функции.
Рисунок 3.2 — Структурная схема ”клиент — сервер” предприятия.
В круг этих функций входит не только размещение текста на экране, но обмен информацией с сервером по мере анализа полученного HTML-текста, что наиболее наглядно происходит при отображении встроенных в текст графических образов. При анализе URL-спецификации или по командам сервера клиент запускает дополнительные внешние программы для работы с документами в форматах, отличных от HTML, например GIF, JPEG, MPEG, Postscript и т. п. Вообще говоря для запуска клиентом программ независимо от типа документа была разработана программа Luncher, но в последнее время гораздо большее распространение получил механизм согласования запускаемых программ через MIME-типы. Другую часть программного комплекса WWW составляет сервер протокола HTTP, базы данных документов в формате HTML, управляемые сервером, и программное обеспечение, разработанное в стандарте спецификации CGI, PHP, JSP и т.п. В настоящее время число базовых серверов расширилось, появился очень неплохой сервер для Linux это Apache Tomcat 4.0.
Прикладное программное обеспечение, работающее с сервером, можно разделить на программы-шлюзы и прочие. Шлюзы — это программы, обеспечивающие взаимодействие сервера с серверами других протоколов, например c ftp, или обмен данными с другими серверами. Прочие программы это программы, принимающие данные от сервера и выполняющие какие-либо действия: получение текущей даты, реализацию графических ссылок, доступ к локальным базам данных или просто расчеты. В качестве программ шлюзов будут использоваться JavaScript, Perl, PHP, JSP.
Назначение языка Perl — помочь программисту в выполнении рутинных задач, которые для shell слишком трудны или плохо переносимы, а также чересчур заумны, одноразовы или сложны для кодирования на С или ином используемом в UNIX языке.
Мощные конструкции этого языка позволяют создавать (с минимальной затратой сил) некоторые очень эффективные специализированные решения и универсальные инструменты. Эти инструменты можно использовать и в дальнейшем, потому что написанные на Perl программы отличаются высокой переносимостью и готовностью к использованию.
Технология Java Server Pages ™ (JSP) позволяет разработчикам и дизайнерам web-приложений быстро разрабатывать и легко сопровождать web-страницы с динамическим наполнением информацией. Но описание практически каждой технологии подобного назначения (ASP, PHP, Net.Data) сопровождают подобные слова — быстро и легко …
При внешней схожести JSP отличают некоторые моменты, делающие данную технологию чем-то большим, чем ещё одно средство для создания динамически генерируемого содержания web-страниц.
Сначала простое перечисление:
· действительно высокая межплатформенная переносимость;
· использование универсального языка высокого уровня Java в качестве скриптового;
· JSP — это не какое-то отдельно стоящее средство для решения достаточно узкого круга задач, пусть и достаточно мощное, а ещё одно в ряде целой плеяды технологий, объединяемых Java;
Это дает реальную возможность разделить задачи написания бизнес-логики web-приложения и пользовательского интерфейса, что позволяет разрабатывать и сопровождать различные части проекта независимо.
Технология JSP является прямым расширением ещё одной Java-технологии — Servlets ™ а также тесно связана с технологией Java Beans ™ и использует XML-подобные теги (tags) и скриптлеты (scriptlets), написанные на языке программирования Java для введения логики создания динамического наполнения web-страницы, при этом HTML или XML-теги передаются клиентской стороне напрямую.
Количество тегов достаточно невелико, что упрощает начальное освоение данной технологии; впрочем, для простых вещей та же Net.Data или PHP тоже весьма просты.
PHP — это система разработки скриптов, включающая в себя CGI — интерфейс, интерпретатор языка и набор функций для доступа к базам данных и различным объектам WWW. По личному мнению автора этой статьи, на данный момент PHP является наиболее удобным и мощным средством разработки приложений WWW и интерфейсов к БД в Интернет.
Система PHP устанавливается на Web-сервер в качестве обработчика определенного mime — типа, аналогично системе SSI (Server Side Include), то есть PHP-скрипт представляет собой обычный html-документ с редкими (или не очень) вставками тэгов PHP — команд. Благодаря этому, создание и отладка скриптов PHP значительно проще, чем отладка и создание скриптов на других языках (например, C или Perl).
Вместе с тем, PHP обеспечивает разработчику очень большие возможности при разработке приложений web или активных страниц, так как обладает значительным набором функций и относительно большой гибкостью.
По своему синтаксису язык PHP наиболее походит на классический С, хотя видны и некоторые заимствования из Java и Perl. По крайней мере, программист на С очень быстро освоит данный язык и сможет использовать его с максимальной эффективностью.
В принципе, в PHP есть практически все операторы и функции, имеющиеся в стандартном GNU С (или их аналоги), например есть циклы (while, for), операторы выбора (if, switch), функции работы с файловой системой и процессами (fopen, *dir, stat, unlink, popen, exec), функции ввода-вывода (fgets,fputs,printf) и множество других…
В системе PHP работа с БД осуществляется в основном путем работы с различными SQL-серверами, причем SQL-сервер в любом случае рассматривается как удаленный, то есть создается сетевое соединение. Благодаря этому возможно открывать из одного скрипта либо несколько пользовательских сессий, либо работать с различными SQL-серверами. После установки соединения с сервером, выбирается рабочая база данных, после чего можно отправлять и обрабатывать запросы (так как SQL является клиент-серверной архитектурой, любая работа с данными осуществляется с помощью запросов к SQL-серверу на получение или изменение данных). При выполнении запроса создается некий объект, в котором хранится результат выполнения запроса, после чего можно получать отдельные ряды, путем выполнения специальных функций. Если вы когда-нибудь работали с SQL — вы очень быстро разберетесь с использованием функций работы БД в PHP.
Рассмотрим технологию JavaScript. JavaScript — новый язык для составления скриптов, разработанный фирмой Netscape. С помощью JavaScript Вы можете легко создавать интерактивные Web-страницы. Программы просмотра гипертекстовых страниц традиционно называют скриптами (scripts) по аналогии с исполняемыми файлами, написанными для командных интерпретаторов типа sh. Собственно как это было и раньше в локальных системах, в программировании просмотра гипертекстовых документов World Wide Web существуют два подхода: создание интерпретируемых программой просмотра скриптов или компиляция байт-кода. Первый подход следует традиции World Wide Web, согласно которой для разработки гипертекстовой страницы нужен только обычный текстовый редактор и сам гипертекстовый документ должен легко читаться человеком-оператором. Второй подход позволяет повысить эффективность исполнения программы и защищенность кода от несанкционированных модификаций. Как первый, так и второй способ опираются на объектно-ориентированный подход к программированию. По поводу байт-кодов или мобильных кодов, как их еще называют, написано в контексте технологии программирования Java достаточно много, поэтому сосредоточим свое внимание на скриптах, а точнее на скриптах, написанных на языке JavaScript.
Идея JavaScript очень проста. Все операции, которые можно исполнять в программе на JavaScript, описывают действия над хорошо известными и понятными объектами, которыми являются элементы рабочей области программы Netscape Navigator и контейнеры языка HTML. Собственно объектная ориентированность JavaScript на этом и кончается. Есть только объекты с набором свойств и набор функций над объектами. Последние называются методами. Кроме методов существуют и другие функции, которые больше похожи на функции из традиционных языков программирования и позволяют работать со стандартными математическими типами или управлять процессом выполнения программы. Еще в JavaScript есть события — аналог программных прерываний. Эти события также ориентированы на работу в World Wide Web, например, загрузка страницы в рабочую область Navigator’a или выбор гипертекстовой ссылки. Используя события, автор гипертекстовой страницы и программы ее отображающей может организовать просмотр динамических объектов, например, бегущая строка, или управление многооконным интерфейсом.
Кроме HTML и JavaScript в формировании страницы используются так называемые CSS стили. CSS — Cascading Style Sheets — таблицы каскадных стилей. Идея CSS очень проста. Если в HTML вы прямо в документе ставили указание на то, как должен выглядеть тот или иной элемент, то при использовании CSS такие указания выносятся в отдельный блок (который может либо включаться в документ, либо читаться из внешнего файла).
Такой простой ход стразу дает массу преимуществ разработчику Интернет страницы. Прежде всего, значительно облегчается изменение внешнего вида сайта или отдельных его элементов — достаточно изменить определение соответствующего стиля в единственном CSS-файле, и эти изменения распространятся на весь сайт. Второе преимущество — сокращение размеров документов, которое особенно заметно на «красивых» страницах.
Первая версия CSS — CSS level 1 — принятая в 1996 и пересмотренная в 1999 году, позволяла оперировать только цветами, шрифтами, отступами и им подобными относительно простыми и частоиспользуемыми элементами. Принятая в 1998 году, спецификация CSS level 2 добавила возможность абсолютного позиционирования элементов, создания стилей для разных типов устройств, использования собственных курсоров, расширила возможности по выбору элементов, к которым должен применяться тот или иной стиль и многое другое. Естественно, что CSS level 2 поддерживает и таблицы стилей, созданные в CSS level 1. В настоящее время консорциум W3C активно ведет разработку стандарта CSS level 3 и CSS level 2 revision 1, которые должны учесть все возрастающие потребности web мастеров и web дизайнеров, по созданию современных и удобных сайтов.
Apache — это web-сервер, один из наиболее популярных, безопасных, удобных во всем мире. Для создания динамичного сайт с использованием языков программирования или с использованием директив SSI, подойдет именно Apache. Существуют версии Apache под все операционные системы и платформы. Apache можно скачать по адресу http://www.apache.org . Распространяется бесплатно. Там же находится полная электронная документация.
Apache имеет модульную основу, которая позволяет быстро подключать или отключать различные модули обладающие дополнительными возможностями, например модули php, perl, jsp.
Существует большое количество модификаций web сервера Apache, это связано с тем, что его исходный код может скачать из Интернета любой пользователь. Различные организации и просто энтузиасты занимаются разработкой разных модулей и специализированных версий Apache. Одина из таких бурно развивающихся модификаций web сервера apache это Apache Tomcat.
Сервер приложений Tomcat сам по себе способен общаться с браузером пользователя и выступать в качестве полноценного WEB-сервера. Но, в некоторых случаях, требуется настроить для совместной работы связку Apache HTTP Server + Apache Tomcat.
Способов связать данные сервера множество (SSI, редиректы, использование WEB-сервера в качестве proxy и др.). В данной статье рассматривается только один из этих способов, который обеспечивает наиболее плотную связку (интеграцию) серверов Apache и Tomcat — с помощью коннекторов «Coyote/JK2». Именно коннекторы рекомендуются разработчиками Tomcat для глубокой интеграции с WEB-серверами.
В этом случае на Apache обычно возлагается обработка статической части сайта, а также обеспечение безопасности и авторизации (в том числе, при помощи SSL). А сервер приложений Tomcat получает только ту часть запросов, которая адресована динамической части сайта (реализованной на сервлетах и JSP) и пользуется механизмами обеспечения безопасности и авторизации WEB-сервера Apache.
На момент написания этой дипломной работы существовали коннекторы для интеграции Tomcat с различными WEB-серверами (Apache, Microsoft IIS, Lotus Domino, Netscape/iPlanet). Для WEB-сервера Apache доступно четыре альтернативных коннектора:
· JServ — давно устарел
· JK — недавно устарел
· Coyote/JK2 — рассматривается в данной статье
· WebApp — перспективен, но пока недоступены некоторые функции, уже имеющиеся в Coyote/JK2 («load balancing» и «in-process»). Кроме того, WebApp пока недоступен на платформе Windows и недоступен ни для каких WEB-серверов, кромя Apache.
Коннекторы состоят из двух частей — из частей, написанных на Java и устанавливаемых на сервер приложений Tomcat и из native-модулей, написанных на C и устанавливаемых на WEB-сервер Apache. Части, написанные на Java, входят в состав дистрибутива Tomcat последних версий и всегда инсталлируются в каталог Tomcat.
Native-модуля, в отличие от частей, написанных на Java, специфичны WEB-сервера и операционной системы, под управлением которой работает WEB-сервер. Строго говоря, Вам нужен один единственный файл — модуль «mod_jk2» (обычно имеющий расширение «.so») или его исходные тексты.
В современные дистрибутивы Tomcat уже включены коннекторы «Coyote/JK2» — та часть, что написана на Java и предназначена для работы на сервере Tomcat. Более того, в конфигурационном файле сервера Tomcat обычно уже имеется запись, подключающая коннектор к Tomcat. Возможно, только, что эта запись закомментирована.
Кроме подключения и настройки коннекторов «Coyote/JK2» в конфигурационном файле сервера Tomcat, в некоторых случаях, возможно, понадобится настроить конфигурационный файл «jk2.properties».
В конфигурационных файлах должен быть указан путь к Sun Java SDK SE 1.4.1_01, который является компилятором *.java приложений. После чего остается добавить модуль mod_jk в конфигурационный файл web сервера Apache, после чего можно приступать к работе.
Для того чтобы связать web с базой данных, необходим сервер баз данных. В качестве бесплатного, простого, удобного и популярного выступает MySQL сервер.
MySQL — это сервер базы данных SQL (язык структурированных запросов). SQL является одним из самых популярных языков баз данных в мире (Вы заметили, что все програмное обеспечение, о котором идет речь в этой статье, самое лучшее или самое популярное? Делайте вывод!). MySQL — это воплощение связи «клиент — сервер», которая состоит из сервера mysqld и множества разных клиентских програм и библиотек.
Основными целями для MySQL выступают скорость и ошибкоустойчивость.
База, на которой был создан MySQL, является набором задач, которые успешно использовались в высокотребовательной среде в течение многих лет. Несмотря на то, что MySQL по сей день интенсивно развивается, он уже предоставляет целый ряд удобных функций и инструментов для эффективной работы. Для среды Unix продукт распространяется бесплатно, а для Windows надо покупать лицензию, хотя разработчики и предоставляют условно бесплатную версию этой базы данных, которая не так надежна и ошибкоустойчива, как лицензированная и более новая версия.
Связующим звеном будет являться программа, написанная на Jbuilder. JBuilder представляет собой интегрированную среду визуальной разработки, предназначенную для создания приложений, апплетов, сервлетов, JSP, компонентов JavaBeans и Enterprise JavaBeans, а также приложений J2EE для платформ Java 2. JBuilder ускоряет разработку EJB, Web, XML, а также приложений баз данных для большинства хорошо известных платформ, таких как BEA Weblogic, IBM WebSphere, iPlanet Application Server, Oracle 9i Application Server и интегрированный Borland Application Server.
Благодаря визуализации кода UML , рефакторингу, управлению конфигурациями и тестированию модулей JBuilder увеличивает производительность труда разработчиков и помогает коллективам разработчиков воспользоваться преимуществами высокоэффективного процесса создания приложений («экстремального программирования»). JBuilder предоставляет гибкость в отношении разработки и развертывания приложений на платформах Windows, Linux, Solaris и Mac OS. Интеграция с корпоративными процессами сборки приложений обеспечивается при помощи технологии Apache Ant. Поддержка ведущих систем управления версиями обеспечивает эффективность сотрудничества между разработчиками при работе в коллективах.
3.3 РАЗРАБОТКА СТРУКТУРЫ БАЗ ДАННЫХ
Рассмотрим общую характеристику реляционной модели данных. Основы реляционной модели данных были впервые изложены в статье Е.Кодда в 1970 г. Эта работа послужила стимулом для большого количества статей и книг, в которых реляционная модель получила дальнейшее развитие. Наиболее распространенная трактовка реляционной модели данных принадлежит К.Дейту. Согласно Дейту, реляционная модель состоит из трех частей:
· Структурной части.
· Целостной части.
· Манипуляционной части.
Структурная часть описывает, какие объекты рассматриваются реляционной моделью. Постулируется, что единственной структурой данных, используемой в реляционной модели, являются нормализованные парные отношения.
Целостная часть описывает ограничения специального вида, которые должны выполняться для любых отношений в любых реляционных базах данных. Это целостность сущностей и целостность внешних ключей.
Манипуляционная часть описывает два эквивалентных способа манипулирования реляционными данными — реляционную алгебру и реляционное исчисление.
Мы рассматриваем структурную часть реляционной модели. Типы данных, используемые в программировании, имеют свои типы данных.
Реляционная модель требует, чтобы типы используемых данных были простыми.
Для уточнения этого утверждения рассмотрим, какие вообще типы данных обычно рассматриваются в программировании. Как правило, типы данных делятся на три группы:
— Простые типы данных.
— Структурированные типы данных.
— Ссылочные типы данных.
Простые, или атомарные, типы данных не обладают внутренней структурой. Данные такого типа называют скалярами. К простым типам данных относятся следующие типы:
— Логический.
— Строковый.
— Численный.
Различные языки программирования могут расширять и уточнять этот список, добавляя такие типы как:
— Целый.
— Вещественный.
— Дата.
— Время.
— Денежный.
— Перечислимый.
— Интервальный.
— И т.д.…
Конечно, понятие атомарности довольно относительно. Так, строковый тип данных можно рассматривать как одномерный массив символов, а целый тип данных — как набор битов. Важно лишь то, что при переходе на такой низкий уровень теряется семантика (смысл) данных. Если строку, выражающую, например, фамилию сотрудника, разложить в массив символов, то при этом теряется смысл такой строки как единого целого.
Структурированные типы данных предназначены для задания сложных структур данных. Структурированные типы данных конструируются из составляющих элементов, называемых компонентами, которые, в свою очередь, могут обладать структурой. В качестве структурированных типов данных можно привести следующие типы данных:
— Массивы
— Записи (Структуры)
С математической точки зрения массив представляет собой функцию с конечной областью определения. Например, рассмотрим конечное множество натуральных чисел
называемое множеством индексов. Отображение
из множества во множество вещественных чисел задает одномерный вещественный массив. Значение этой функции для некоторого значения индекса называется элементом массива, соответствующим . Аналогично можно задавать многомерные массивы.
Запись (или структура) представляет собой кортеж из некоторого декартового произведения множеств. Действительно, запись представляет собой именованный упорядоченный набор элементов , каждый из которых принадлежит типу . Таким образом, запись
есть элемент множества
Объявляя новые типы записей на основе уже имеющихся типов, пользователь может конструировать сколь угодно сложные типы данных.
Общим для структурированных типов данных является то, что они имеют внутреннюю структуру, используемую на том же уровне абстракции, что и сами типы данных.
Поясним это следующим образом. При работе с массивами или записями можно манипулировать массивом или записью и как с единым целым (создавать, удалять, копировать целые массивы или записи), так и поэлементно. Для структурированных типов данных есть специальные функции — конструкторы типов, позволяющие создавать массивы или записи из элементов более простых типов.
Работая же с простыми типами данных, например с числовыми, мы манипулируем ими как неделимыми целыми объектами. Чтобы «увидеть», что числовой тип данных на самом деле сложен (является набором битов), нужно перейти на более низкий уровень абстракции. На уровне программного кода это будет выглядеть как ассемблерные вставки в код на языке высокого уровня или использование специальных побитных операций.
Ссылочный тип данных (указатели) предназначен для обеспечения возможности указания на другие данные. Указатели характерны для языков процедурного типа, в которых есть понятие области памяти для хранения данных. Ссылочный тип данных предназначен для обработки сложных изменяющихся структур, например деревьев, графов, рекурсивных структур.
Собственно, для реляционной модели данных тип используемых данных не важен. Требование, чтобы тип данных был простым, нужно понимать так, что в реляционных операциях не должна учитываться внутренняя структура данных. Конечно, должны быть описаны действия, которые можно производить с данными как с единым целым, например, данные числового типа можно складывать, для строк возможна операция конкатенации и т.д.
С этой точки зрения, если рассматривать массив, например, как единое целое и не использовать поэлементных операций, то массив можно считать простым типом данных. Более того, можно создать свой, сколь угодно сложных тип данных, описать возможные действия с этим типом данных, и, если в операциях не требуется знание внутренней структуры данных, то такой тип данных также будет простым с точки зрения реляционной теории. Например, можно создать новый тип — комплексные числа как запись вида
Можно описать функции сложения, умножения, вычитания и деления, и все действия с компонентами и выполнять только внутри этих операций. Тогда, если в действиях с этим типом использовать только описанные операции, то внутренняя структура не играет роли, и тип данных извне выглядит как атомарный.
Именно так в некоторых пост реляционных СУБД реализована работа со сколь угодно сложными типами данных, создаваемых пользователями.
В реляционной модели данных с понятием тип данных тесно связано понятие домена, которое можно считать уточнением типа данных.
Домен — это семантическое понятие. Домен можно рассматривать как подмножество значений некоторого типа данных имеющих определенный смысл. Домен характеризуется следующими свойствами:
· Домен имеет уникальное имя (в пределах базы данных).
· Домен определен на некотором простом типе данных или на другом домене.
· Домен может иметь некоторое логическое условие, позволяющее описать подмножество данных, допустимых для данного домена.
· Домен несет определенную смысловую нагрузку.
Например, домен , имеющий смысл «возраст сотрудника» можно описать как следующее подмножество множества натуральных чисел
Если тип данных можно считать множеством всех возможных значений данного типа, то домен напоминает подмножество в этом множестве.
Отличие домена от понятия подмножества состоит именно в том, что домен отражает семантику, определенную предметной областью. Может быть несколько доменов, совпадающих как подмножества, но несущие различный смысл. Например, домены «Вес детали» и «Имеющееся количество» можно одинаково описать как множество неотрицательных целых чисел, но смысл этих доменов будет различным, и это будут различные домены.
Основное значение доменов состоит в том, что домены ограничивают сравнения. Некорректно, с логической точки зрения, сравнивать значения из различных доменов, даже если они имеют одинаковый тип. В этом проявляется смысловое ограничение доменов. Синтаксически правильный запрос «выдать список всех деталей, у которых вес детали больше имеющегося количества» не соответствует смыслу понятий «количество» и «вес».
Понятие домена помогает правильно моделировать предметную область. При работе с реальной системой в принципе возможна ситуация когда требуется ответить на запрос, приведенный выше. Система даст ответ, но, вероятно, он будет бессмысленным.
Не все домены обладают логическим условием, ограничивающим возможные значения домена. В таком случае множество возможных значений домена совпадает с множеством возможных значений типа данных.
Фундаментальным понятием реляционной модели данных является понятие отношения. В определении понятия отношения будем следовать книге К. Дейта
Определение 1. Атрибут отношения есть пара вида <Имя_атрибута : Имя_домена>.
Имена атрибутов должны быть уникальны в пределах отношения. Часто имена атрибутов отношения совпадают с именами соответствующих доменов.
Определение 2. Отношение , определенное на множестве доменов (не обязательно различных), содержит две части: заголовок и тело.
Заголовок отношения содержит фиксированное количество атрибутов отношения
Тело отношения содержит множество кортежей отношения. Каждый кортеж отношения представляет собой множество пар вида <Имя_атрибута : Значение атрибута
таких что значение атрибута принадлежит домену
Отношение обычно записывается в виде
или короче , или просто .
Число атрибутов в отношении называют степенью отношения.
Мощность множества кортежей отношения называют мощностью отношения.
Возвращаясь к математическому понятию отношения, введенному в предыдущей главе, можно сделать следующие выводы:
Заголовок отношения описывает декартово произведение доменов, на котором задано отношение. Заголовок статичен, он не меняется во время работы с базой данных. Если в отношении изменены, добавлены или удалены атрибуты, то в результате получим уже другое отношение (пусть даже с прежним именем).
Тело отношения представляет собой набор кортежей, т.е. подмножество декартового произведения доменов. Таким образом, тело отношения собственно и является отношением в математическом смысле слова. Тело отношения может изменяться во время работы с базой данных — кортежи могут изменяться, добавляться и удаляться.
Прежде чем начать проектирование базы данных, необходимо определить какие данных нам необходимо хранить и их взаимосвязь.
Таблица 3.1 — Поля таблицы PROGRAMERS
PROGRAMERS — список производителей программ |
|||
ID |
Integer |
Идентификатор производителя |
|
LOGIN |
VARCHAR |
Логин производителя |
|
PASSWORD |
VARCHAR |
Пароль производителя |
|
P_NAME |
VARCHAR |
Ф.И.О. или название фирмы |
|
ADDRES |
VARCHAR |
Адрес производителя |
|
GOROD |
VARCHAR |
Город |
|
STRANA |
VARCHAR |
Страна |
|
TELEFON |
VARCHAR |
Телефон |
|
FAX |
VARCHAR |
Факс |
|
INEMAIL |
VARCHAR |
Внутренний E-mail производителя |
|
OUTEMAIL |
VARCHAR |
Публичный E-mail производителя |
|
CNUM |
VARCHAR |
Номер счета merchant для банка |
Таблица 3.2 — Поля таблицы SOFT
SOFT — список продаваемых программ |
|||
ID |
INTEGER |
Идентификатор программы |
|
GID |
INTEGER |
Принадлежность программы к производителю |
|
TID |
INTEGER |
Принадлежность программы к типу |
|
NAME |
VARCHAR |
Название программы |
|
URL1 |
VARCHAR |
URL на страничку программы |
|
URL2 |
VARCHAR |
URL для загрузки программы |
|
URL3 |
VARCHAR |
URL на screenshot программы |
|
INFO |
VARCHAR |
Описание программы |
|
VER |
VARCHAR |
Версия программы |
|
OS |
VARCHAR |
Операционная система, для которой предназначена программа |
|
DATE |
VARCHAR |
Дата последнего обновления программы |
|
COST |
INTEGER |
Стоимость программы |
|
PERS |
SMALLINT |
Комиссионные проценты от продажи программы производителя |
|
WOW |
INTEGER |
Количество загрузок программы |
|
HIDE |
TINYINT |
Флаг вывода программы в список |
Таблица 3.3 Поля таблицы BUYERS
BUYERS — Активные покупатели |
|||
ID |
INTEGER |
Идентификатор покупателя |
|
LOGIN |
VARCHAR |
Логин покупателя |
|
PASSWORD |
VARCHAR |
Пароль покупателя |
|
NAME |
VARCHAR |
Ф.И.О. покупателя |
|
ADDRESS |
VARCHAR |
Адрес покупателя |
|
CITY |
VARCHAR |
Город покупателя |
|
INDEX |
VARCHAR |
Почтовый индекс покупателя |
|
COUNTRY |
VARCHAR |
Страна покупателя |
|
PHONE |
VARCHAR |
Контактный телефон покупателя |
|
FAX |
VARCHAR |
FAX номер покупателя |
|
|
VARCHAR |
E-Mail покупателя |
|
DATE |
VARCHAR |
Дата регистрации покупателя |
|
BCOUNT |
INTEGER |
Количество сделанных покупок |
|
MONEY |
INTEGER |
Сумма, на которую сделаны покупки |
|
KID |
INTEGER |
Идентификатор корзины покупателя |
|
CARD |
VARCHAR |
Название кредитной карточки |
|
CNUMBER |
INTEGER |
Номер кредитной карточки |
|
EXPIRE |
VARCHAR |
Дата годности кредитной карты |
Таблица 3.4 Поля таблицы KORZINA
KORZINA — Список программ купленных покупателем |
|||
ID |
INTEGER |
Идентификатор корзины покупателя |
|
SID |
INTEGER |
Идентификатор купленной программы |
|
COST |
INTEGER |
Цена купленной программы |
|
DATE |
INTEGER |
Дата покупки |
|
THANKS |
SMALLINT |
Процентная скидка на все покупки |
Структура базы данных разработана с использованием SQL запросов при помощи средства mysql-admin входящего в поставку MySQL. Описания таблиц базы данных даны в таблице 3.5.
Таблица 3.5 — Описание таблиц
Название таблицы |
Назначение |
Примечание |
|
PROGRAMERS |
Список производителей программ |
Для этой таблицы создан генератор и триггер для получения уникального идентификатора |
|
SOFT |
Список продаваемых программ |
Для этой таблицы создан генератор и триггер для получения уникального идентификатора |
|
BUYERS |
Активные покупатели |
Для этой таблицы создан генератор и триггер для получения уникального идентификатора |
|
KORZINA |
Список программ купленных покупателем |
Для этой таблицы создан генератор и триггер для получения уникального идентификатора |
Контроль над ссылочной целостностью данных осуществляется при помощи первичных ключей (primary key), внешних ключей (foreign key) и триггеров.
3.4 РАЗРАБОТКА МОДУЛЕЙ РАБОТЫ С ФОРМАМИ
В ходе выполнения дипломной работы были разработаны модули для работы с формами WEB сайта организации. Задачей этих модулей является прием, обработка и передача информации при работе с WEB сайтом, тем самым, освобождая пользователя web сайта от большей части ручной работы. Web сайт имеет модули:
— Модуль языковой настройки;
— Модуль поиска информации на сайте организации;
— Модуль авторизации производителей;
— Модуль авторизации покупателей;
— Модуль для вывода списков программ для покупателей по категориям;
В связи с этим в модули вошли следующие четыре таблицы базы данных MySQL:
— Список производителей программ (PROGRAMERS)
— Список продаваемых программ (SOFT)
— Активные покупатели (BUYERS)
— Список программ купленных покупателем (KORZINA)
Первый модуль языковой настройки отвечает за языковую поддержку сайта. Такой модуль дает возможность пользователю динамически менять меня, описание действий и т.п. в соответствии с выбранным языком. Этот модуль не связан с базой данных, и берет все языковые настройки из файлов настроек, хранящихся в специальной папке на сайте организации(рисунок 3.4).
Рисунок 3.4 — Языковой модуль.
Модуль поиска информации на сайте организации напрямую связан с таблицей SOFT базы данных и нужен для поиска программ имеющих в своем описании искомые сочетания фраз. Результаты выдаются в виде краткого описания с искомой фразой и ссылкой на полное описание, где можно загрузить или купить программу (рисунок 3.5).
Рисунок 3.5 — Модуль поиска информации на сайте организации
Модуль авторизации производителей позволяет производителям самим регистрироваться и добавлять новые программы. При регистрации производителя ему выдается логин и пароль, при помощи которого можно получить доступ к добавлению, изменению, удалению его программ из таблицы SOFT базы данных. При добавлении программы флаг состояния программы всегда устанавливается в “0”, после проверки отделом Интернет проектирования правильности и достоверности введенных данных, и в зависимости от результата проверки решают в какой положение перевести флаг. Флаг отвечает за то, будет ли программа доступна для просмотра в Web магазине. Ноль, если не будет и единица, если будет(рисунок 3.6).
Рисунок 3.6 — Модуль авторизации производителей программ
Модуль авторизации покупателей связан с таблицей BUYERS и нужен для регистрации покупателей. Сама по себе регистрация очень полезна как для покупателей, так и для Web магазина. Покупатель со временем получает процентные скидки на любые покупки через Web магазин. Web магазин в свою очередь получает дополнительных клиентов, так как процентные скидки привлекательны и вынуждают его покупать именно через Web магазин организации, ведь покупатель уже имеет скидку, зачем переплачивать еще где-то. Покупатели также получают удобный механизм учета своих покупок, а web магазин ведет учет и получает статистику хорошо продаваемых программ. За эти механизмы отвечает таблица KORZINA(рисунок 3.7).
Рисунок 3.7 — Модуль авторизации покупателей программ
Модуль вывода списка программ для покупателей по категориям нужен для форматированного вывода списка программ имеющихся в таблице SOFT(рис. 3.8). Это не мало важно, так как бывает очень сложно разобраться в огромном количестве программ, покупатель должен иметь быстрый и удобный механизм поиска программ нужной ему категории. Для этого в таблице SOFT есть поле TID, которое в зависимости от номера, который присваивается для каждой категории свой
0 — Для бизнеса
1 — Игры
2 — Для работы в сети
3 — Для разработчиков программ
4 — Для работы с графикой
5 — Антивирусы
6 — Шифрование
7 — Для работы со звуком
8 — Для работы с видео
Рисунок 3.8 — Модуль вывода списка программ.
3.5 РАЗРАБОТКА ФУНКЦИОНАЛЬНОЙ СХЕМЫ РАБОТЫ ИНТЕРНЕТ МАГАЗИНА
При разработке функциональной схемы Web магазина использовались данные о работе текущего Web сайта организации, пожелания и требования сотрудников и непосредственного руководства организации, а так же наглядный опыт других конкурирующих Web магазинов.
Общий механизм работы Web магазина имеет направленность на упрощение совершения Интернет сделок. Каждый модуль в той или иной степени упрощает сделку. Первое что делает пользователь попадая в Web магазин это пытается найти интересующую его информацию или получить ее на свой компьютер, для того чтобы это сделать нужно понимать в какой раздел зайти и что выбрать. Такой выбор не возможен, если Web магазин будет на не понятном для пользователя языке. Поэтому модуль выбора языка важный момент в работе Web магазина. Следующий шаг быстрый поиск интересующей пользователя информации. Web магазин реализует два варианта такого поиска. Первый вариант это меню по категориям, где пользователь может выбрать программы из нужной категории отсортированные по дате. Второй вариант это поиск программ по ключевому слову или фразе. Такой вариант подходит для случаев когда пользователь с трудом представляет в какой категории может находится интересующая его программа. После того как пользователь нашел интересующую его программу, первое что он делает это читает описание, смотрит screenshot, после чего загружает программу на свой компьютер, чтобы проверить работу программы. Если пользователя программа устраивает и он хочет ее купить, то он заходит в Web магазин и пытается купить программу. Для того чтобы купить ее, необходимо пройти регистрацию, чтобы иметь соотвествие в базе данных и не вводить при каждой покупке свои данные, оставив лишь поля для “Имя на кредитной карте” и “код защиты”. В процессе регистрации покупателя, на его имя заводится персональная корзина в которой будут учтены все его покупки или отказы от покупок. После регистрации пользователь может использовать свой логин и пароль, который высылается на его почтовый ящик, чтобы совершать сделки в Web магазине. При совершении сделки в корзину покупателя заносится информация о том что он купил, когда и за сколько. Далее происходит отсылка электронной почты:
· На почтовый ящик покупателя с уведовлением о покупке, на всякий случай;
· На почтовый ящик производителя с уведомлением о покупке его программы, чтобы дать знать о том что на его счет поступили деньги;
· На почтовый ящик отдела Интернет проектирования, о том кто и какую сделку совершил и том что процентные деньги были перечисленны на счет организации;
Важной частью любого Web магазина является его постоянное пополнение новыми товарами. В данном случае это программы, которые добавляют их производители. Каждый производитель программы, может зарегистрироваться в Web магазине, обязательным условием является наличие банковского валютного счета, чтобы можно было совершать сделки в реальном времени, без особых задержек. Вторым ключевым моментом является, то что производитель сам может удалить или добавить свою программу в Web магазин, единственное что у каждой добавленной или измененной программы есть периуд в 1-2 дня в течении которым отдел Интернет проектирования обязан принять решение о том размешать ли такую программу в Web магазине или нет. Это достигается сменой флага в базе данных таблицы SOFT конкретного продукта.
На схеме которая расположена ниже видна взаимосвязь всех модулей Web магазина с пользователями, покупателями и производителями программ(рисунок 3.9).
автоматизированный система магазин программа
Рисунок 3.9 — Схема взаимосвязи модулей Интернет магазина
3.6 ВЫВОДЫ
В разработанной схеме Интернет магазин имеет модульную систему. Каждый модуль имеет независимую структуру и может быть легко встроен в уже имеющийся сайт организации. Связь с базой данных в режиме реального времени позволяет пользователям быстро находить интересующую их информацию.
Все сделки в Интернет магазине происходят практически без участия отдела Интернет проектирования, что является достаточно выгодно для организации в целом.
4. ОПИСАНИЕ WEB МАГАЗИНА ПО РАСШИРЕНИЮ ФУНКЦИЙ САЙТА ОРГАНИЗАЦИИ
4.1 ОБЩИЕ СВЕДЕНИЯ
В настоящем разделе приведено описание механизма работы с Web магазином, рассмотренным в третьем разделе. Web магазин разработан под операционную систему класса Linux с использованием Web сервера Apache 2.0 плюс Apache Tomcat 4.0, сервера базы данных MySQL версии 3.23, Java компилятора версии 1.4, языков программирования Borland JavaBuilder 6.0, HTML версии 1.1, CSS версии 2.0, JavaScript, модулей для Apache PHP версии 4.0, версии Perl 1.8.
4.2 ФУНКЦИОНАЛЬНОЕ НАЗНАЧЕНИЕ
Web магазин предназначен для автоматизированной Интернет торговли в реальном времени с клиентами из разных стран мира, что позволит увеличить доходы организации и повысить ее статус среди других Интернет организаций. Web магазином выполняются следующие функции:
— Языковая совместимость с иностранными гражданами.
— Автоматизация обновления базы данных программ.
— Автоматизация операции совершения сделки.
— Быстрый поиск интересующей клиента программы.
— Привязка всех операций к базе данных.
— Ведение статистики сделок покупателей программ.
Web магазин производит все операции на основании входных данных из трех основных источников:
— Данные, вводимые пользователями Web магазина;
— Данные, корректируемые отделом Интернет проектирования;
— Данные, приходящие с Интернет ресурса по произведению Интернет транзакций по пластиковым карточкам;
Обмен данными осуществляется посредством Интернета по протоколам MySQL, HTTP и FTP. Данные из отдела проектирования поступают по всем трем протоколам. Для обновления базы используется MySQL, а для обновления непосредственно Web магазина FTP. По протоколу HTTP поступает информация от merchant сервисов, которые проверяют достоверность и “транзакционность” кредитной карточки для оплаты покупок. Основной потом данным идет от посетителей сайта, данные форм проверяются непосредственно из браузера, что удобно для проверки ошибок ввода пользователей, далее пользователь отправляет данные форм, после чего программа на серверной стороне проверяет достоверность данных, через выше описанный сервис для кредитных кард.
Данными оперирует два Web сервиса работающих в паре Apache и Apache Tomcat, после чего данные отправляются серверным приложениям, которые в свою очередь передают другим приложениям, и в конечном итоге все обратно возвращается через Web сервис к пользователю в его браузер. Наглядным примером является модуль поиска ключевых слов в описании программ в базе данных таблицы SOFT. Большинство программ на серверной стороне легко поддаются переконфигурации, могут быть быстро настроены на любой адрес проверки, будь то URL или база данных. Важным моментом является, единовременное количество посетителей Web магазина, чем больше посетителей, тем больше нагрузка сервер, однако можно очень быстро подсчитать количество необходимых ресурсов сервера. Apache по умолчанию поддерживает до 256 одновременно работающих пользователей, придел может быть увеличен, за счет ручной перекомпиляции серверной части, однако это довольно сложный процесс для среднего администратора.
4.3 ОПИСАНИЕ ЛОГИЧЕСКОЙ СТРУКТУРЫ ИНТЕРНЕТ МАГАЗИНА
Алгоритм Web магазина представлен в обобщенном виде на рисунке 4.1. На этом рисунке в качестве блоков указана совокупность связанных по смыслу действий, реализуемых функциями одного или нескольких модулей. При этом имя модуля изображено для каждого блока.
Рисунок 4.1 — Логическая структура Web магазина.
Пользователь попадает в Web магазин, после чего вызывает серверные приложения, которые генерируют страницу Web магазина. В генерируемой странице имеется ссылки со всеми модулями и формами. В любой момент пользователь может через Web магазин, обратится к базе, через формы или ссылки. Пользователь может вносить изменения в базу, читать из нее информации посредством серверных приложений, которые вызываются с Web магазина. Серверные же приложения генерируют формы для заполнения, обращения к базе, страницы Web магазина, отчеты, статистику, обращения в сервисный центр кредитных карт, отправляют электронную почту сторонам договора, в том числе и в отдел Интернет проектирования. Обратная связь так же очень важна, так как от ее результатов, зависит дальнейшее поведение пользователя. Например, будет ли произведено подтверждение об оплате по кредитной карточке пользователя или нет. Вторым по значимости моментом, является обратная связь с базой данных, так как пользователю нужна информация именно об имеющихся программах. Мозгом Web магазина являются серверные приложения, которые и принимают решения на основе данных полученных из различных источников. Стоит обратить внимание на формы, заполняемые пользователями, они являются связующим звеном, через которое форматирует и формализует данные на первом этапе их поступления от пользователей.
Заключающим действием работы пользователя с Web магазином, является получение и отправка требуемой информации и выход. Смысл всего сводится к тому, чтобы пользователь с выгодой для всех сторон участвующих в работе Web магазина, совершил обмен информацией с Web магазином, то есть совершил покупку программы.
4.4 УСТАНОВКА ОПЕРАЦИОННОЙ СИСТЕМЫ LINUX REDHAT 7.1
В условиях выживания Web магазина важным является определиться с операционной системой и настройках, которые необходимо сделать.
На этот раз устанавливал с CD-ROM, сделанного из ISO-образа (RedHat 7.1, ядро 2.4.2-2, gcc 2.96-RH). Возьмем средний компьютер Intel Pentium2 300 с диском 8 GB. Назначение — заготовка под сервер, то есть пустая система, готовая к установке любого серверного софта. Графика не установлена совсем (нет монитора, мышки и звуковой платы).
Этапы установки описаны ниже:
1 — Загружаемся с CD-ROM и вводим: text (есть еще графический режим, lowres, nofb, но для них нужна мышка).
2 — По нажатию Alt-F2 можно сразу попасть в bash.
3 — Язык установки English (хватит приключений с русским).
4 — Клавиатура generic 104-key.
5 — Раскладка us.
6 — Установка — система по выбору (custom).
7 — Разбиение диска вручную с помощью DiskDruid (кстати, нумерация разделов меняется в зависимости от того, задавался ли размер раздела явно или с помощью кнопки «добавить остальное»).
8 — hda1 / 2027MB
9 — hda2 swap
10 — hda3 /work 4217MB
11 — все форматировать без проверки
12 — LILO в MBR (/dev/hda1, linux), linear.
13 — Сеть: eth0 активизировать при загрузке, нет bootp/dhcp, адрес, маска, имя, адрес шлюза, адрес DNS).
14 — Имя хоста.
15 — Firewall: high и разрешить telnet на время настройки.
16 — Мышки нет.
17 — Язык для работы: en_US (по умолчанию) и русский.
18 — Временная зона — Europe/Moscow (время в CMOS хранить в UTC, часы в BIOS перевести вручную).
19 — Установка пароля для root.
20 — Заведение себя и установка пароля.
21 — Конфигурация парольной защиты (shadow, MD5, без NIS, LDAP, kerberos).
22 — Выбираем пакеты (individual package, некоторые пакеты устанавливаются в любом случае).
23 — Серверный софт устанавливаем отдельно из исходников.
24 — Форматируем разделы.
25 — Установка пакетов.
26 — Создание загрузочной дискеты.
27 — Перезагружаемся.
28 — Разрешить запуск telnet в /etc/xinetd.d/telnet.
После того, как ОС настроено можно приступит к настройкам серверного программного обеспечения.
4.5 УСТАНОВКА APACHE 1.3.X
Первым делом надо скачать дистрибутив сервера. Скачиваем версию для Linux. Выбираем последнюю версию сервера. Устанавливаем Apache при помощи утилиты rpm, входящую в поставку Linux RedHat. После чего приступаем к конфигурации сервера.
В версии 1.3.х конфигурационный файл имеет три секции: Global Environment (глобальное окружение), Main server configuration (конфигурация главного сервера) и Virtual Hosts (виртуальные хосты). На локальном хосте настройки глобального окружения имеет смысл оставить без изменений.
Настраиваем главный сервер:
1- В строке DocumentRoot меняем ее значение на путь к тому каталогу, в котором мы будем хранить свои html-файлы (по умолчанию это папка htdocs каталога, в который установлен сервер). Для нашего:
DocumentRoot
2 — Ниже расположен блок <Directory /> … </Directory >. Он содержит минимальные настройки для корня сайта и всех его подкаталогов. То есть по умолчанию это настройки для папки htdocs и всех ее подкаталогов. Имеет смысл оставить данный блок без изменений, а ниже написать настройки для DocumentRoot, то есть в нашем случае для «/work/www»:
Directory
Options Indexes Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Эти настройки обеспечивают возможность автоматической генерации списка содержимого каталога при просмотре его в браузере (опция Indexes), а также поддержку SSI (опция Includes) и разрешение использовать все директивы файла .htaccess для настроек отдельных папок (значение All директивы AllowOverride).
Директивы:
Order allow,deny
Allow from all
на локальном хосте имеют мало значения. Первая строчка указывает серверу, в какой последовательности проверять разрешения и запреты на отдаваемые файлы (в данном случае — allow,deny — сначала разрешения, потом запреты), а вторая (Allow from all) — разрешает брать с сервера файлы всем.
3 — Чтобы в сообщениях об ошибках отображался e-mail администратора, заменим опцию On директивы ServerSignature на опцию EMail:
ServerSignature EMail.
4 — Инициализируем параметр DirectoryIndex (файлы, автоматически возвращаемые сервером при обращении к каталогу, если не указано имя файла):
DirectoryIndex index.html index.htm index.php
5 — Чуть ниже расположены строчки:
ErrorLog logs/error.log
CustomLog logs/access.log common
Первая определяет расположение и имя файла журнала ошибок (путь сервер отсчитывает относительно ServerRoot), вторая — файла журнала обращений к серверу.
6 — Находим строчку ScriptAlias (имя папки, где будут храниться скрипты) и меняем ее на следующую:
ScriptAlias /cgi-bin/ «/work/cgi/»
7 — После этого идет блок <Directory ..> … </Directory > с конфигурацией папки скриптов. Для разрешения исполнения cgi-скриптов установим такие директивы:
<Directory «/work/cgi/»>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Собственно в этом блоке за разрешение исполнения скриптов отвечает только опция ExecCGI директивы Options.
1 — Для того, чтобы Apache нормально понимал русский язык, найдем строчку AddDefaultCharset… (добавить кодировку по умолчанию) и заменим ее на:
AddDefaultCharset WINDOWS-1251
9 — Находим строчку:
#AddHandler cgi-script .cgi
и меняем ее на следущую:
AddHandler cgi-script .cgi .pl
Это говорит Apache о том, что файлы с расширениями .cgi .pl надо рассматривать как CGI-скрипты.
10 — Для установки поддержки SSI найдем и раскомментируем следующие строчки:
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
SSI (Server-Side Include) — директивы, исполняемые на стороне сервера. Они позволяют собирать документ из нескольких файлов, например, для того, чтобы во все страницы вставить одинаковую шапку или блок баннеров. Можете добавить расширения файлов, которые сервер будет просматривать на предмет наличия в них директив SSI:
AddType text/html .shtml .shtm .html .htm
AddOutputFilter INCLUDES .shtml . shtm .html .htm
Остальные настройки сервера можно оставим пока без изменений, таким образом, основное конфигурирование Apache завершено.
Запускаем сервер Apache командой:
httpd start
Проверяем его наличие нашим браузером:
http://localhost:80/
Web сервер Apache работает нормально, однако после каждого добавления модуля или переконфигурации необходимо выполнять команду:
httpd restart
4.6 УСТАНОВКА МОДУЛЯ PHP
Скачиваем последнюю версию PHP с сайта http://www.php.net в разделе linux. Файл должен иметь расширение .rpm. Устанавливаем php утилитой rpm входящей в поставку Linux RedHat 7.1.
Для установки PHP как модуля Apache открываем httpd.conf и добавляем две строчки в секцию конфигурации главного сервера:
LoadModule php4_module /usr/lib/php/libphp4.so
AddType application/x-httpd-php php php3 php4 phtml
Первая строчка загружает модуль (необходимо указать точный путь к нему), вторая — указывает серверу, файлы с каким расширением нужно рассматривать как php-скрипты.
Далее открываем конфигурационный файл php.ini, который обычно находится в /etc/php.ini и находим следующую строку:
safe_mode=Off
Меняем ее на:
safe_mode=On
Это отключает режим запрета доступа к файлам других пользователей, нам это необходимо для обращения к файлам, которые обновляют специалисты из отдела Интернет проектирования.
Далее ищем строку:
;extension=php_mysql.so
Убираем символ “;”, тем подключаем модуль MySQL, что даст нам возможность обращаться к базе MySQL, через внутренние функции PHP.
4.7 УСТАНОВКА MySQL СЕРВЕРА
Установка MySQL сервера не требует особых навыков, достаточно скачать последнюю версию MySQL сервера с сайта http://www.mysql.com, найти в списке версию под Linux RedHat 7.1. Установить полученный архив в формате .rpm утилитой входящей в поставку Linux RedHat 7.1.
После чего добавляем MySQL сервер в автозагрузку, строкой:
chkconfig —add mysql.server
Это даст возможность не загружать MySQL сервер каждый раз в ручную после перезагрузки операционной системы.
В конфигурационный файл MySQL сервера /etc/my.cnf нужно внести изменения, подходящие для нашей системы:
[mysqld]
datadir=/usr/local/mysql/var
socket=/var/tmp/mysql.sock
port=3306
user=mysql
[mysql.server]
basedir=/usr/local/mysql
Затем запускаем MySQL сервер командой:
mysql.server start
Далее утилитой входящей в поставку MySQL сервера mysqladmin, меняем старый пароль на новый:
mysqladmin -u root password <password>
Затем, после авторизации как пользователя MySQL сервера, утилитой mysql из той же можем создавать и конфигурировать базы данных:
4.8 УСТАНОВКА СЕРВЕРА APACHE TOMCAT
Установить Tomcat не сложно — мы просто следуем документации. Собственно, его инсталляция сводится либо к запуску rpm-пакета, либо к простой разархивации в выбранную нами директорию. Установка полностью автоматическая и далее лишь следует выполнять инструкции установки, в нашем случае мы устанавливаем Tomcat в каталог /work/tomcat/
Устанавливаем переменную среды окружения JAVA_HOME (указывающую на корневую директорию, где была установлена JDK) и CATALINA_HOME (указывающую на корневую директорию, которую мы выбрали для установки Tomcat). Это делается командой:
SET JAVA_HOME:/work/jdk/;
SET CATALINA_HOME:/work/tomcat/;
Запускаем Apache Tomcat командой:
jakarta.tomcat start
Теперь проверяем, заработал ли Tomcat, используя наш браузер, перейдем на станицу http://localhost:8080/, должна загрузится страница приветствия.
Теперь останавливаем Apache и Tomcat, прежде чем мы перейдем к следующим секциям:
jakarta.tomcat stop
Пришло время, чтобы начать фактическую интеграцию между Apache и Tomcat. Этот процесс может быть условно разбит в две части: конфигурирование Tomcat и конфигурирование Apache.
Чтобы научить ваш Tomcat понимать Apache, нужно сначала сообщать ему, что он должен начать слушать запросы от Apache. Для этого служит протокол AJP13 — для связи с Tomcat его используют как JK, так и JK2. Для установки этой связи в настройках нужно добавить дополнительный <Connector>-элемент в CATALINA_HOME/server.xml (файл Tomcat). Добаляем следующую секцию к server.xml, убедимся в том, что эта секция находится внутри тега <Service> и следует сразу за любыми определенными до этого <Connector> элементами.
Как правило, эта секция уже определена в server.xml — и во время старта Tomcat начинает прослушивать запросы как от HTTP-клиентов на порту 8080, так и от Apache на порту 8009. Если мы нашли в нашем server.xml что-то подобное, пропустим этот шаг. Проверяем также наличие самого файла класса внутри пакета, и если он называется не так, скорректируем его название в записи. Выглядеть она должна следующим образом:
<Connector className=»org.apache.ajp.tomcat4.Ajp13Connector» port=»8009″ minProcessors=»5″ maxProcessors=»75″ acceptCount=»10″ debug=»0″/>
Атрибут port сообщает Tomcat, что ему нужно открыть новый Connector, который слушает порт 8009 для входящих запросов. Атрибут className сообщает Tomcat, что все запросы, приходящие на этот порт, должны обслуживаться java-классом «org.apache.ajp.tomcat4.Ajp13Connector», который также использует протокол AJP 1.3.
Теперь, когда Tomcat сконфигурирован, чтобы слушать на порту 8009 для обслуживания запросов AJP13, давайте сообщим Apache, что мы хотим, чтобы он поговорил с Tomcat, используя этот порт и протокол. Этот процесс относительно прост — немногим сложнее аналогичного конфигурирования Tomcat.
Начнем конфигурацию Apache с того, что создадим Tomcat worker definition — определение для Tomcat worker. Это определение сообщит Apache, как и когда говорить с Tomcat. Для этого создадим Tomcat-working-файл, содержащий необходимые определения хотя бы для одного такого Tomcat worker’а. Tomcat worker — это процесс, создающий коммуникационный линк между Apache и Tomcat. Процесс-посредник необходим в данном случае для того, чтобы внутри него создать клиентский сокет, который будет посылать запросы к коннектору Tomcat и получать ответы.
В нашем примере назовем файл конфигурации workers.properties и скопируем его в <CATALINA_HOME>/conf-директорию Tomcat. (<CATALINA_HOME> — это базовая директория нашей установки Tomcat.). Теперь добавим туда следующие строчки:
worker.list=myWorker
worker.myWorker.port=8009
worker.myWorker.host=localhost
worker.myWorker.type=ajp13
Эти данные определяют имя посредника — myWorker. Он находится на том же Linux box, что и сервер Apache, localhost, и слушает порт 8009 для клиента, использующего протокол AJP13.
worker.list — определяет список рабочих (перечисляемых через запятую), посредством которых он будет общаться с Apache. Этот список может определять любoe количество рабочих Tomcat.
В данном примере определяем единственного рабочего — myWorker. Как только мы назвали рабочего, можем модифицировать его атрибуты, явно используя следующий синтаксис:
worker.myWorker + Имя атрибута = Значение
Все, что мы модифицировали, это три атрибута нашего рабочего: порт, хост и тип протокола. Все они достаточно понятны, а потому не требуют дополнительного объяснения.
Перейдем к модификации httpd.conf конфигурационного файла Apache. Откроем этот файл для редактирования и добавим в его конец следующие строки:
# загружаем модуль:
# for windows box:
# LoadModule jk_module libexec/mod_jk-1.3.26.dll
# for Linux box:
LoadModule jk_module libexec/mod_jk2-1.3-noeapi.so
AddModule mod_jk.c
#JkWorkersFile C:/Tomcat4_1_12/conf/workers.properties
JkWorkersFile /var/tomcat4/conf/workers.properties
# for windows box:
# JkLogFile C:/Tomcat4_1_12/logs/mod_jk.log
# for Linux box:
JkLogFile /var/tomcat4/logs/mod_jk.log
JkLogLevel debug
# for windows box:
# Alias /examples C:/Tomcat4_1_12/webapps/examples
# for linux box:
Alias /examples /var/tomcat4/webapps/examples
JkMount /examples/servlet/* myWorker
JkMount /examples/*.jsp myWorker
<Location «/examples/WEB-INF/»>
AllowOverride None
deny from all
</Location>
Apache находит запись о том, что ему необходимо загрузить дополнительный модуль. Модуль, загрузившись, сам начинает читать все необходимые ему настройки. Прежде всего, он определяет количество и характеристики рабочих, которых ему надо создать. Далее определяются маски файлов (пути указываются абсолютно — от корня вашего сервера). Рабочие будут переадресовывать Tomcat запросы с соответствующими расширениями и получать ответы, передавая их обратно в Apache. Выглядят эти ответы так:
JkMount /examples/servlet/* myWorker
JkMount /examples/*.jsp myWorker
Для каждой такой маски в соответствие ставится определенный рабочий.
Хотелось бы еще отметить стандартный для Apache тег — он создает виртуальный каталог для Apache (используется терминология Microsoft, но более точного определения не подобрать), для того чтобы обслуживать запросы к страницам, которые не попали в маски файлов для JK,- то есть к статическим файлам или файлам, обрабатываемым другими серверными препроцессорами (например, PHP), минуя при этом сервис рабочих JK.
Теперь запускаем Tomcat и Apache:
jakarta.tomcat restart
httpd restart
4.9 ВЫВОДЫ
Интернет магазин, как и любой, программно аппаратный комплекс имеет свое описание. На рисунках наглядно виден процесс взаимодействия пользователей с магазином. Каждый модуль магазина имеет всплывающие подсказки и каждый шаг сопровождается описанием действий и результатов, которые последуют после этих действий. Простой и популярный Web интерфейс Интернет магазина не дает запутаться пользователю. Одна из причин этого это не писаная аксиома того что Интернет магазин должен иметь минимум этапом на пути совершения покупки, что и было реализовано в данной работе.
5. РАСЧЕТ ТЕХНИКО-ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА
5.1 КРАТКАЯ ХАРАКТЕРИСТИКА ПРОЕКТА
В результате выполнения дипломной работы была разработка Web магазина по расширению функций сайта организации. Целью разработки Web магазина является повышение производительности труда специалистов отдела Интернет проектирования, сокращение затраченного времени на переписку с клиентами и оформление сделок, привлечение иностранных клиентов на сайт организации, улучшение качества обработки входной информации, сокращение сроков совершения сделки, увеличение роста посетителей сайта и как следствие увеличение продаж и сделок. Часть сделок происходит в автоматическом режиме, автоматизация многих процессов снизила вероятность человеческого фактора.
В отделе Интернет проектирования ЗАО «Агропромышленная компания «СТАВХОЛДИНГ» совершение сделок с клиентами происходит через сайт организации. Имеющийся сайт не является универсальным. В нем не реализованы механизмы, без которых большую часть времени специалисты отдела Интернет проектирования проводят в ежедневный обработке, проверке и перенаправлении информации поступающей с сайта и от клиентов организации. Поэтому работники вручную ежедневно обрабатывают массу информации, большинство из которой поддается автоматизации. Такое положение дел невыгодно для предприятия, так как поступающую информацию в виде электронной почты нужно обрабатывать в короткие сроки и приходится привлекать дополнительно сотрудников не имеющих непосредственного отношения к выполнению этих работ. Следствием этого является увеличение затрат на заработную плату для них.
Web магазин, разработанный в ходе выполнения дипломной работы, имеет следующие дополнительные модули:
· Модуль выбора языка для работы с Web магазином;
· Модуль поиска информации в Web магазине;
· Модуль класса “Гостевая книга” для разрешения возникающих у клиентов вопросов связанных с Web магазином;
· Модуль проверки и форматирования форм запросов на покупку программ через Web магазин;
· Модуль проверки и форматирования форм запросов для регистрации новых производителей программ в Web магазине;
· Модуль проверки и форматирования форм запросов для регистрации новых программ в Web магазине;
Web магазин предназначен для автоматизации рабочего места отдела Интернет проектирования ЗАО «Агропромышленная компания «СТАВХОЛДИНГ».
5.2 СУММАРНЫЕ ЗАТРАТЫ НА СОЗДАНИЕ WEB МАГАЗИНА
Специалист из отдела Интернет проектирования работал над комплексом модулей для Web магазина 2 месяца, при этом занимаясь только этим проектом. Месячный оклад программиста ЗАО «Агропромышленная компания «СТАВХОЛДИНГ» равен О1=6000 руб. Определим средний процент премии Пр1, зная фактическую заработную плату за три месяца: ЗП 1=6000, ЗП2=6000, ЗП1=6500руб.
(5.1)
Фактическая заработная плата за разработку Web магазина равна
(5.2)
где П1 — период 2 месяца, в течение которого разрабатывался Web магазин
Определим косвенные затраты в месяц на создание Web магазина по формуле 5.3 :
(5.3)
где Ам — ежемесячные амортизационные отчисления за используемый компьютер (Ам=700 руб.), Э — затраты на электроэнергию за месяц на одного работника с ПЭВМ (Э=80 руб. из расчета 80 кВт на работника в месяц — по данным бухгалтерии ЗАО «Агропромышленная компания «СТАВХОЛДИНГ»),
ПН- подоходный налог. ПН=ФЗП1*0.13=12600*0.13= 1638руб
Фактические затраты на создание Web магазина равны:
ФЗ1=ФЗП1+Ск1*П1 (5.4)
Ф31 =1638 + 2418*2 = 6474руб.
5.3 РАСЧЕТ ТЕХНИКО-ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ОТ ВНЕДРЕНИЯ WEB МАГАЗИНА РАСШИРЕНИЮ ФУНКЦИЙ САЙТА ОРГАНИЗАЦИИ
Определим экономический эффект от внедрения Web сайта, который определяется путем сопоставления затрат труда и себестоимости учетной работы при автоматизации и при выполнении ее ручным способом. Web магазин разработана для автоматизации рабочего места специалиста отдела Интернет проектирования. Определим сумму фактической заработной платы, выплачиваемой специалисту за выполнение работы с использованием старого сайта организации. Результаты представим в таблице 5.1.
В таблице 5.1 средний коэффициент премии (Пр) рассчитывается по формуле (5.5), если известны данные по фактической зарплате за три месяца (ФЗПл1, ФЗШ2, ФЗПлЗ) и оклад (О).
(5.5)
Для специалиста отдела Интернет проектирования известны ФЗПл1=6000руб, ФЗПл2=6000руб, ФЗПл3=6500руб, оклад равен 6000руб. Подставим эти данные в формулу (5) и результаты занесем в таблицу 5.1.
Таблица 5.1 — Расчет фактической зарплаты за выполнение работ вручную
Наименование должности и вида работ |
Должностной оклад, (О) |
Сред. коэфф. премии, %(Пр) |
Среднемес. ставка по должност, Руб. (МЗ) |
Среднечас Ставка по должности руб. (ЧЗ) |
Трудоемкость работы, ч (Т) |
Сумма фактич. Зараб. Платы, руб. (ФЗП) |
|
Инженер-конструктор |
6000 |
5 |
6300 |
36,3 |
48 |
5400 |
Среднемесячная ставка по должности (МЗ) определяется по формуле:
(5.6)
Для специалиста отдела Интернет проектирования:
Среднечасовая ставка по должности (ЧЗ) равна:
(5.7)
где Ч=173,4 -календарный месячный фонд рабочего времени.
Сумма фактической заработной платы (ФЗП) за выполненные работы рассчитывается по формуле (5.8):
ФЗП = Ч3* Т (5.8)
где Т- число часов в месяц, в течение которых выполняется работа с не автоматизированным сайтом организации. Результаты вычислений приведены в таблице 5.1. Сопоставление затрат труда и себестоимости учетной работы при автоматизации и при выполнении ее не автоматизированным способом приведено в таблице 5.2.
Стоимость затрат в месяц при не автоматизированном варианте:
СЗО = ФЗП + Ск (5.9)
В формуле (5.9) ФЗП — фактическая заработная плата за выполненные работы в месяц (таблица 5.1).
Ск — косвенные затраты
Ск = Ам + Э + Р (5.10)
Ам — амортизационные отчисления за время выполнения работ на компьютере. Э — затраты на электроэнергию, Р — расходные материалы.
По Web магазину организации:
Ск=193.7+20+3=216.7руб
С30=1638+216.7=1864.4руб.
Здесь Ам=(700/173.4)*48=193.7руб. из расчета ежемесячных отчислений 700 руб. и времени работы по расчету арматуры — 48 часов. Э=(70/173.4)*48=20руб — из расчета — 70 рублей за месяц на одного человека с ПЭВМ. 193.7 — месячный фонд рабочего времени. Р=96 руб. стоимость трафика за электронную почту за день — 8 часов рабочий день. Стоимость 1 часа — 12 рублей. Результаты занесены в таблицу 5.2.
Рассчитаем стоимость затрат при автоматической обработке:
СЗ1 = ФЗПа + Ска (5.11)
где Ф3Пa находится как произведение среднечасовой ставки по должности (показатель Ч3 в таблице 5.1) и трудоемкости при автоматизации (показатель Т1, в таблице 5.2). Ска косвенные затраты находятся по формулам как при ручной работе, только Р затраты на трафик Web магазина в месяц 500 руб. за один гигабайт трафика. Р=596 руб.
По сайту Web магазина
Ска=18.4+1.6+5=25руб, С31=145.2+25=170.2руб
Здесь Ама=(700/193.7)*8=28.9 из расчета ежемесячных отчислений 700 руб. и времени работы по расчета 8 часа (показатель Т1, в таблице 5.2). Эа=(70/193.7)*8=2.8руб — из расчета — 70 рублей за месяц на одного человека с ПЭВМ. 193.7руб. месячный фонд рабочего времени. Р=596 руб. вычислен выше. ФЗПа=36.3*8=290.4 — фактическая зарплата в месяц, равна произведению среднечасовой зарплаты (таблица 5.1, показатель Ч3) и времени выполнения работ при автоматизации (таблица 5.2, показатель Т1).
Таблица 5.2 — Экономическая эффективность Web магазина
Участок автоматизации |
При ручной обработке |
При автоматиз. обработки |
Результаты расчета эффективности |
||||||
Трудоем. Т0 (ч) |
Стоимос. СЗ0 (руб) |
Трудоем. Т1 (ч) |
СтоимосСЗ1 (руб) |
По трудовым затратам |
По стоимостным затратам |
||||
Абсолютный показат.Тэк (ч) |
Коэф. повыш. опера- твности Топ |
Абсолютный показат.Сэк (руб) |
Индекс Стоимо Сти Затрат Jст зт |
||||||
Расчет арматуры |
48 |
1864.4 |
8 |
315.4 |
44 |
12 |
2086.7 |
0.0054 |
Абсолютный показатель Экономической эффективности равен по трудовым затратам Тэф=То-Т1 (12), по стоимостным затратам
Сэк=С30-СЗ1, (5.13)
Коэффициент повышения оперативности Топ определяется по формуле
Топ=То/Т1 (5.14)
Индекс стоимости затрат равен JCT3T=C31/C3o.
Срок окупаемости затрат определим по формуле
(5.15)
Ф31 -фактические затраты на создание комплекса программ (см формулу (5.4)).
месяцев
5.4 ВЫВОДЫ
Для повышения производительности труда специалистов отдела Интернет проектирования ЗАО «Агропромышленная компания «СТАВХОЛДИНГ», привлечения и повышения продаж программ производителей рекомендуется разработать Web магазин для текущего сайта организации. Этот Web магазин состоит из комплекса программ автоматизирующих процессы покупок, регистрации. Внедрение Web магазина позволяет повысить уровни продаж примерно 14 раз, сэкономить до 1549 рублей в месяц благодаря внедрению Интернет магазина. Срок окупаемости проекта 4.17 месяцев.
6. БЕЗОПАСНОСТЬ И ЭКОЛОГИЧНОСТЬ ПРОЕКТА
6.1 ОБЩИЕ ПОЛОЖЕНИЯ И ОБЛАСТЬ ПРИМЕНЕНИЯ
Санитарные правила и нормы (далее — Санитарные правила) были использованы при проектирование и внедрении локальной сети предприятия и предназначены для предотвращения неблагоприятного воздействия на человека вредных факторов, сопровождающих работы с видео дисплейными терминалами — мониторами (далее — ВДТ) и персональными электронно-вычислительными машинами (далее — ПЭВМ) и определяют санитарно-гигиенические требования.
Ответственность за выполнение санитарных правил возлагается на должностных лиц, специалистов и работников организации, а также лиц занимающихся реконструкцией помещений.
Все закупленное оборудование, а также имеющееся на предприятии для создания локальной сети прошло госконтроль:
— гигиеническая оценка их безопасности для здоровья человека;
— согласование нормативной и технической документации на эти виды данной продукции с органами Госсанэпиднадзора России;
— получен гигиенический сертификат в соответствии с установленными требованиями;
Руководитель организации в порядке обеспечения производственного контроля обязан содержать рабочие места пользователей ВДТ и ПЭВМ в соответствие с требованиями санитарных правил.
Государственный санитарно-эпидемиологический надзор и контроль за выполнением Санитарных правил осуществляется органами и учреждениями Государственной санитарно-эпидемиологической службы Российской Федерации, а ведомственный санитарно-эпидемиологический надзор и контроль — органами и учреждениями санитарно-эпидемиологического профиля соответствующих министерств и ведомств.
Ввод в эксплуатацию помещений, предназначенных для работы с ВДТ и ПЭВМ, был осуществляться при проверке представителей Государственного санитарно-эпидемиологического надзора Российской Федерации.
6.2 ОПИСАНИЕ ВИДЕО ДИСПЛЕЙНОГО ТЕРМИНАЛА И ПЕРСОНАЛЬНЫХ ЭЛЕКТРОННО-ВЫЧИСЛИТЕЛЬНЫХ МАШИН
Визуальные эргономические параметры ВДТ являются параметрами безопасности, и их неправильный выбор приводит к ухудшению здоровья пользователей.
Все ВДТ имеют гигиенический сертификат, включающий, в том числе оценку визуальных параметров. Конструкции ВДТ, их дизайн и совокупность эргономических параметров обеспечивают надежное и комфортное считывание отображаемой информации в условиях эксплуатации, обеспечивают возможность фронтальное наблюдения экрана путем поворота корпуса в горизонтальной плоскости вокруг вертикальной оси в пределах плюс минус 30 градусов и в вертикальной плоскости вокруг горизонтальной оси в пределах плюс-минус 30 градусов с фиксацией в заданном положении.
Корпус ВДТ и ПЭВМ, клавиатура и другие блоки и устройства ПЭВМ имеют матовую поверхность одного белого цвета с коэффициентом отражения 0,4 — 0,6 и не имеют блестящих деталей, способных создавать блики.
На лицевой стороне корпуса ВДТ располагаются органы управления ручек регулировки яркости и контраста, обеспечивающие возможность регулировки этих параметров от минимальных до максимальных значений.
и вспомогательные надписи и обозначения. Но все они утоплены в корпусе.
Мощность экспозиционной дозы рентгеновского излучения используемых мониторов в любой точке на расстоянии 0,05 м от экрана и корпуса при любых положениях регулировочных устройств не превышает 7,74 х 10 А/кг, что соответствует эквивалентной дозе, равной 0,1 мбэр/час (100 мкР/час).
Исполнено в виде отдельного устройства с возможностью свободного перемещения, опорное приспособление, позволяющее изменять угол наклона поверхности клавиатуры в пределах от 5 до 15 градусов. Высота среднего ряда клавиш 15 мм, расположение часто используемых клавиш в центре, внизу и справа, редко используемых — вверху и слева. Расстояние между клавишами 3 мм;
Ход одинаковый для всех клавиш с небольшим сопротивлением нажатию и звуковою обратною связью от клавиш при выставление определенных функций в ПО таких как Windows.
Помещения имеет естественное и искусственное освещение.
Естественное освещение осуществляется через светопроемы, ориентированные северо-восток и обеспечивающие коэффициент естественной освещенности рассчитывается (КЕО) и равняется 0.48 %.
Указанные значения КЕО нормируются для зданий, расположенных в 5 световом климатическом поясе. Расчет КЕО для других поясов светового климата проводится по общепринятой методике согласно СНиП «Естественное и искусственное освещение».
1. Освещённость при работе с экраном дисплея — 200 лк, напряженность электромагнитного поля в 50 сантиметрах вокруг дисплея по электрической составляющей равна 2.5 В/м.
2. Площадь на одно рабочее место с ВДТ и ПЭВМ во всех кабинетах учреждениях не менее 2,0 кв. м, а объем не менее 12,0 куб. м.
3. Кабинеты с ВДТ и ПЭВМ оборудованы системами отопления, кондиционирования воздуха, где источником шума является вентилятор и радиатор — высокочастотный шум. Расчет воздухообмена проводился по тепло избыткам от машин, людей, солнечной радиации и искусственного освещения.
4. Для внутренней отделки интерьера помещений с ВДТ и ПЭВМ были использованы полимерные материалы, используемые для внутренней отделки интерьера которые разрешены для применения органами и учреждениями Государственного санитарно-эпидемиологического надзора.
Это: — виниловые стеновые панели, подвесной потолок тип (Армстронг), пол покрыт линолеумом.
5. В производственных помещениях, температура, относительная влажность и скорость движения воздуха на рабочих местах соответствует действующим санитарным нормам микроклимата производственных помещений и занесены в таблицу 6.1.
Таблица 6.1 — Нормы микроклимата производственных помещений
Период года |
Категория работ |
Температура С |
Относительная Влажность % |
Скорость движения воздуха ха м /с |
|
Теплый |
легкая |
20-23 |
60-40 |
0.2 |
|
Холодный и переходной |
легкая |
22-25 |
60-40 |
0.2 |
В помещениях также находятся ионизаторы воздуха.
Содержание вредных химических веществ в воздухе предприятия отсутствует.
6. В помещениях, в которых работа на ВДТ и ПЭВМ является вспомогательной, уровни шума на рабочих местах не превышает значений, установленных для данных видов работ «Санитарными нормами допустимых уровней шума на рабочих местах» Уровень шума на рабочем месте не превышает 60 дБА В помещениях, где работают инженерно-технические работники — программисты, уровень шума не превышает 75 дБА.
При выполнении работ с ВДТ и ПЭВМ в производственных помещениях уровень вибрации не превышает допустимых значений согласно Санитарным нормам вибрации рабочих мест» (категория 3, тип «в», приложения 8 и 19, п.2.8).
Шумящее оборудование (принтеры и т.п.), уровни шума которого превышают нормированные, находятся вместе в помещении с ВДТ и ПЭВМ.
Дополнительным звукопоглощением служат однотонные занавеси из плотной ткани, гармонирующие с окраской стен и подвешенные в складку на расстоянии 15-20 см от ограждения. Ширина занавеси в 2 раза больше ширины окна.
6.3 ОСВЕЩЕНИЕ ПОМЕЩЕНИЙ И РАБОЧИХ МЕСТ С ВДТ И ПЭВМ
1. Искусственное освещение в помещениях эксплуатации ВДТ и ПЭВМ должно осуществляться системой общего равномерного освещения. В помещениях, с преимущественной работой с документами, применяются системы комбинированного освещения (к общему освещению дополнительно устанавливаются светильники местного освещения, предназначенные для освещения зоны расположения документов).
2. Освещенность на поверхности стола в зоне размещения рабочего документа 350 лк. Устанавливаются светильники местного освещения для подсветки документов. Местное освещение не создает бликов на поверхности экрана, и увеличивать освещенность экрана.
Блесткость от источников освещения, при этом яркость светящихся поверхностей (окна, светильники и др.), находящихся в поле зрения, 100 кд/ кв.м.
3. В качестве источников света при искусственном освещении в помещениях применяются люминесцентные лампы типа ЛБ они издают низкочастотный шум с частотой колебаний равной частоте питающей сети — 50 Гц. Светильники располагаются локализованною над рабочим столом ближе к его переднему краю, обращенному к оператору преимущественно прямого света — Н. Яркость светильников общего освещения в зоне углов излучения 70 защитный угол светильников местного освещения 40 градусов.
Коэффициент пульсации 4 %, что обеспечивается применением газоразрядных ламп в светильниках общего и местного освещения с высокочастотными пускорегулирующими аппаратами.
6.4 ОРГАНИЗАЦИИ И ОБОРУДОВАНИЕ РАБОЧИХ МЕСТ С ВДТ И ПЭВМ
1. Рабочие места с ВДТ и ПЭВМ по отношению к световым проемам расположены так что естественный свет падает сбоку, преимущественно слева.
расстояния между рабочими столами с видеомониторами (в направлении тыла поверхности одного видеомонитора и экрана другого видеомонитора), менее 4 м, а расстояние между боковыми поверхностями видеомониторов — 2 м.
Оконные проемы в помещениях использования ВДТ и ПЭВМ оборудованы регулируемыми устройствами жалюзи.
2. Шкафы, стеллажи для хранения дисков, дискет, комплектующих деталей, располагаются в том же помещении.
3. Конструкции рабочего стола обеспечивают оптимальное размещение на рабочей поверхности используемого оборудования с учетом его количества и конструктивных особенностей (размер ВДТ и ПЭВМ, клавиатуры, колонок принтера и др.) При этом рабочие столы различных конструкций, отвечающих современным требованиям эргономики. Высота рабочей поверхности — 725 мм
4. Конструкция рабочего стула (кресла) обеспечивает поддержание рациональной рабочей позы при работе на PC позволять изменять позу с целью снижения статического напряжения мышц шейно-плечевой области и спины для предупреждения развития утомления.
Тип рабочего кресла выбираться с учетом роста пользователя, которое имеет такие функциональные возможности как: подъемно-поворотным и регулируемым по высоте и углам наклона сиденья и спинки, а также расстояние спинки от переднего края сиденья, при этом регулировка каждого параметра независима, легко осуществляема и имеет надежную фиксацию. Высота сидения 420мм
Размеры пространства для ног — 725 х 500 х 600
Помещения оснащены аптечкой первой помощи и углекислотными огнетушителями.
ПЭВМ можно отнести к тем средствам, имеющим рабочую изоляцию и элемент заземления.
6.5 РАСЧЕТ ИСКУСТВЕННОГО ОСВЕЩЕНИЯ ДЛЯ ПОМЕЩЕНИЯ ОТДЕЛА ИНТЕРНЕТ ПРОЕКТИРОВАНИЯ
Для помещения Интернет проектирования используется система общего освещения. Для освещения выбираем люминесцентные лампы типа ЛБ80-1, световой поток которых F = 5400 Лм. Лампы ЛБ-80-1 можно свободно приобрести в магазинах города.
Нормами для данных работ установлена необходимая освещенность рабочего места Ен=400 лк.
Расчет системы освещения производится методом коэффициента использования потока, который выражается отношением светового потока, падающего на расчетную поверхность, к суммарному потоку всех ламп. Общий световой поток определяется по формуле
где Ен— необходимая освещённость рабочего места по норме;
S — площадь помещения, м2;
к коэффициент запаса освещенности, который учитывает износ и загрязнение светильников. к=1.49 при люминесцентных лампах и для помещения с малым выделением пыли.
z- коэффициент неравномерности освещения (z=l.2);
— коэффициент использования светового потока. Выбирается из таблиц в зависимости от типа светильника, размеров помещения, коэффициентов отражения стен и потолка помещения.
Определим площадь помещения, если его длина составляет Lд=10 м, а ширина Lш=8 м: S = LД * Lш =10*8=80м2
Выберем из таблицы коэффициент использования светового потока по следующим данным:
коэффициент отражения побелённого потолка Rn=70%;
коэффициент отражения от стен, окрашенных в светлую краску
RCT=50% ;
Индекс помещения определим по формуле.
I=(Lд*Lш)/ hП *( Lд+Lш)= 2,1
где hП — расчетная высота подвеса светильника hП = Н-Н1 =2.8-0.7=2.1 м. Здесь Н — высота помещения, H1 — высота рабочей поверхности (высота стола). Тогда по табл. 7 находим для люминесцентных ламп i=2.1, =0.54.
Определяем общий световой поток
Fооб — необходимая освещенность для помещения, рассчитаем количество ламп. Число необходимых ламп ЛБ-40-1 можно определить по формуле подставим значения, полученные выше
Таким образом, необходимо установить 34 ламп ЛБ-80-1.
Рисунок 6.1 — Схема расположения светильников.
При выборе осветительных приборов используем светильники типа ОД. Каждый светильник комплектуется двумя лампами. Размещаются светильники двумя рядами, по четыре в каждом ряду.
6.6 ВЫВОДЫ
В этой части дипломной работы были изложены требования к рабочему месту инженера — программиста. Созданные условия должны обеспечивать комфортную работу. На основании изученной литературы по данной проблеме, был произведен расчет оптимального освещения производственного помещения, а также расчет вентиляции. Соблюдение условий, определяющих оптимальную организацию рабочего места инженера — программиста, позволит сохранить хорошую работоспособность в течение всего рабочего дня, повысит в количественном, и в качественном отношениях производительность труда, что в свою очередь будет способствовать быстрейшей разработке и последующему внедрению новой технологии производства.
ЗАКЛЮЧЕНИЕ
На сегодняшний день в мире существует более 130 миллионов компьютеров и более 80 % из них объединены в различные информационно вычислительные сети от малых локальных сетей в офисах до глобальных сетей типа Internet. Всемирная тенденция к объединению компьютеров в сети обусловлена рядом важных причин, таких как ускорение передачи информационных сообщений, возможность быстрого обмена информацией между пользователями, получение и передача сообщений ( факсов, E — Mail писем и прочего ) не отходя от рабочего места, возможность мгновенного получения любой информации из любой точки земного шара, а так же обмен информацией между компьютерами разных фирм производителей работающих под разным программным обеспечением.
Такие огромные потенциальные возможности которые несет в себе вычислительная сеть и тот новый потенциальный подъем который при этом испытывает информационный комплекс, а так же значительное ускорение производственного процесса не дают нам право не принимать это к разработке и не применять их на практике.
Основным выводом из проделанной работы является то, что с бурным развитием глобальных компьютерных сетей, маркетинговые мероприятия, такие как шоппинг и реклама выходят на принципиально новый уровень. Большое количество пользователей Интернет дает возможность продавать и рекламировать различные товары различному кругу потребителей. Доказана высокая эффективность продаж программ через Интернет на примере Интернет магазина для ЗАО «Агропромышленная компания «СТАВХОЛДИНГ» как по охвату аудитории, так и по стоимости размещения программ.
Поэтому в настоящее время все больше крупнейших фирм — производителей широко используют глобальную сеть Интернет для распространения своей продукции.
СПИСОК ЛИТЕРАТУРЫ
1. Академия рынка: Маркетинг: Пер. с фр./ Арман Дайан и др. — М.: Экономика, 1993. — 574 с.
2. Алексеев А. А. «Внешние» факторы маркетинга в сети М.: //Мир Интернет. 1998. — № 2(17).
3. Алексеев А. А. Комплексная реализация задач маркетинга в системе глобальной сети Internet Доклад: Международный конгресс «Маркетинг и проблемы информатизациии предпринимательства» СПб: Из-во СПУЭиФ, 1997″.
4. Алексеев А. А. Формирование регионально-отраслевых информационных BBS// Доклад: Международный конгресс «Маркетинг и проблемы информатизациии предпринимательства» СПб: Из-во СПУЭиФ, 1997″.
5. Алексеев А. А. Web promotion или как предпринимателю понять, что он рекламирует в Интернет М. //Мир Интернет, № 6, 1997.
6. Алексеев А. А. Как сделать рекламу Вашей фирмы в сети Интернет: Пошаговое руководство для фирм желающих сделать рекламу своей продукции в сети Интернет. Dux comp, 1997.
7. Алексеев А. А. Маркетинговые решения: дифференцированный подход М.: Мир Интернет, № 4, 1997.
8. Анастасия С. Касатонова Локальные сети и их маркетинговая интеграция в глобальные сети СПб: ДуксНет, 1998.
9. Анна Гласман Маркетинговые принципы построения виртуальных страниц Internet СПб: ДуксНет, 1998.
10. Белкин, Александр Введение в маркетинг. — Таллинн; Казань: Пако: Гамма, Б. г. [1992]. -93с.: табл., диагр.
11. Введение в рыночную экономику: Под ред. А.Я.Лившица, И.Н. Никулиной. — М.: Высш. шк., 1994. — 447 с.
12. Все о маркетинге: Сборник материалов для руководителей предприятий, экономических и коммерческих служб. — М.: Азимут-Центр. 1992. — 367 с.
13. Голубков Е.П. Маркетинг: стратегии, планы, структурыю. — М.: Дело, 1995. — 192 с.
14. Дихтль Е., Хершген Х. Практический маркетинг: Учеб. пособие / Пер. с нем. А.М.Макарова; Под ред. И.С.Минько. — М.: Высш. шк. 1995. — 255 с.: ил.
15. Завьялов П.С., Демидов В.Е. Формула успеха: маркетинг /сто вопросов — сто ответов о том, как эффективно действовать на внешнем рынке/. — М.: МО. 1995.
16. Котлер Ф. Основы маркетинга. Санкт-Петербург: АО «КОРУНА», АОЗТ «Литера плюс». 1994. — 699 с.
17. Маркетинг: стратегии, планы, структуры. / Е.П. Голубков — М., «Издательство «Дело» — 1995.
18. Нижегородцева Наталия Использование Internet приформировании имиджевых коммуникаций СПб: ДуксНет, 1998.
19. Портер М. Международная конкуренция: конкурентные преимущества стран: Пер. с англ. — М., 1993.
20. Ноздрева Р.Б., Цыгичко Л.И. Маркетинг: Как побеждать на рынке. — М.: ФиС, 1991. — 304 с.
21. Правила рынка / Под ред. проф. В.Д.Щетинина. — М.: Междунар. отношения. 1994. — 352 с.
22. Речмен Д.Дж., Мескон М.Х., Боуви К.Л., Тилл Д.В. Современный бизнес: Учебник в 2-х томах: Пер. с англ. — М.: Республика. 1995. Т. 1. — 431 с.: ил. Т. 2. — 478 с.: ил.
23. Рогов В. Реклама в сети-новое направление в бизнесе // Экономика и жизнь. -1997. -N21. -С. 35.
24. Сакс Д ж. Рыночная экономика и Россия: Пер. с англ. — М.: Экономика. 1994. — 333 с.
25. Эванс Дж., Берман Б. Маркетинг: Сокр. пер. с англ. / Авт. предисл. и науч. ред. А.А.Горячев — М.: Экономика. 1993 — 335 с.
ПРИЛОЖЕНИЕ
ОСНОВНОЙ ИНДЕКСНЫЙ ФАЙЛ ИНТЕРНЕТ МАГАЗИНА INDEX.HTML
<html>
<head>
<?php GLOBAL $lang=strstr(include(‘config.inc’),$refer);?>
<title>.:: <?php include($lang.»head»);?> ::.</title>
<body text=»#000000″ link=»#CC0000″ alink=»#00FF00″ vlink=»#990033″ bgcolor=»#FFFFFF»>
<table width=»100%» border=»1″ cellspacing=»0″ cellpadding=»0″ bordercolor=»#FFFF00″>
<tr>
<td width=»20%» background=»top-left.gif»>
<table width=»186″ border=»0″ cellspacing=»0″ cellpadding=»0″>
<tr>
<td><b><font color=»#FFFFFF»>OnLine</font></b></td>
</tr>
<tr>
<td>
<div align=»center»><b><font color=»#FFFFFF»>SoftWare</font></b></div>
</td>
</tr>
<tr>
<td>
<div align=»right»><b><font color=»#FFFFFF»>Shop</font></b></div>
</td>
</tr>
</table>
<div align=»center»></div>
</td>
<td width=»80%» valign=»middle» align=»center» bgcolor=»#003366″ background=»table_bg.gif»>
<img src=»focalimage.gif» width=»468″ height=»60″></td>
</tr>
<tr>
<td width=»20%» rowspan=»2″ valign=»top»>
<table width=»100%» border=»0″ cellspacing=»0″ cellpadding=»0″ bgcolor=»#FFFFFF»>
<?php
$FdD=file(include($lang.»menu»));
If ($FdD != null) {
while(list($NuMbA, $LInE)=each ($FdD)) {
echo «<tr><td><b><a href=\»m=»,$i++,»\»><font color=\»#000099\»>»,$LInE,»</font></a></b></td></tr>»
?>
<tr>
<td><font color=»#000099″></font></td>
</tr>
</table>
</td>
<td width=»80%» align=»center» height=»19″>
<div align=»center»>
<table width=»99%» border=»1″ cellspacing=»0″ cellpadding=»0″>
<tr>
<?php
$F=file(include($lang.»up_select»));
If ($F != null) {
while(list($NuM, $LIn)=each ($F)) {
echo «<td width=\»119\»><a href=\»up=»,$i++,»\»>»,$LIn,»</a></td>»;
?>
<td width=»253″>
<input name=»search2″ type=»text» size=20 value=»<?php include($lang.»search»);?>»>
<input type=image tppabs=»go.jpg» height=22 width=22 border=0 name=»search_inactive»
alt=»
<?php include($lang.»search_help»);?>
«>
</td>
</tr>
</table>
<?php
if ($m!=NULL) include(«menu.jsp?m=».$m);
if ($POST!=NULL) include(«search.jsp?POST=».$POST);
if ($up!=NULL) include(«upmenu.jsp?up=».$m);
?>
</body>
</html>
МОДУЛЬ ГЕНЕРАЦИИ СПИСКА ПРОГРАММ ПО КАТЕГОРИЯМ MENU.JSP
<%@ page import=»java.*» %>
<%
int pages;
mm = request.getParameter(«m»);
Connection ocon = null;
Class.forName(«org.gjt.mm.mysql.Driver»);
ocon =
DriverManager.getConnection(«jdbc:mysql:///».Line(Include(‘config.inc’),1), Line(Include(‘config.inc’),2), Line(include(‘config.inc’),3));
Statement stmtt = ocon.createStatement();
ResultSet rc = stmtt.executeQuery(«Select count(*) from SOFT where TID in ‘»+mm+»‘»);
rc.next();
pages = rc.getInt(1);
//out.println(«Count of Records : » + pages + «<br>»);
out.println(«Count of Records : » + pages + «<br>»);
int cPage;
cPage = (pages / 10) + 1;
if ((cPage * 10) + 1 >= pages)
cPage++;
out.println(«Count of Pages : » + (cPage — 1) + «<br><p><p>»);
int p;
for(p = 1; p < cPage ; p++)
out.println(«<a href=menu.jsp?m1&mv=» + p + «>»+ p +»</a> | »);
out.println(«<hr>»);
// paging
int cpage;
int currentRs;
String pt;
pt = request.getParameter(«mv»);
lang = referes.getGlobals(«lang»);
if (pt == null)
currentRs = 0;
else
cpage = Integer.parseInt((String)pt);
currentRs = 10 * (cpage — 1);
out.println(cpage + «<br>»);
Connection con = null;
Class.forName(«com.mysql.jdbc.Driver»).newInstance();
con =
DriverManager.getConnection(«jdbc:mysql:///».Line(include(‘config.inc’),1), Line(include(‘config.inc’),2), Line(include(‘config.inc’),3));
Statement stmt = con.createStatement();
String sql;
sql = «Select count(*) from SOFT where TID in ‘»+mm+»‘ LIMIT «+ currentRs +»,10″;
ResultSet rs = stmt.executeQuery(sql);
//rs.absolute(10);
while (rs.next())
string PodMenu = printTableData(«TID», rs, 4048, true);
if(mm!=PodMenu) continue;
out.println(«
<table width=\»99%\» border=\»0\» cellspacing=\»0\» cellpadding=\»0\»>
<tr>
<td colspan=\»2\» height=\»10\» bgcolor=\»#CCCCCC\»>»
+ Line(include(lang+’menu’),mm) +
</td>
</tr> </table> <br> <div align=\»center\»>
<table width=\»99%\» border=\»1\» cellspacing=\»0\» cellpadding=\»0\»>
<tr bgcolor=\»#CCCCCC\»>
<td width=\»461\»><a href=\»#\»>»
+ printTableData(«NAME», rs, 4048, true) +
</a></td>
<td width=\»219\»>»
+ printTableData(«DATA», rs, 4048, true) +
«</td> <td width=\»306\»>»
+ printTableData(«WOW», rs, 4048, true) +
«</td> </tr> <tr>
<td colspan=\»3\»>»
+ printTableData(«INFO», rs, 4048, true) +
«</td>
</tr> <tr>
<td colspan=\»2\»>
<div align=\»center\»><a href=\»»
+ printTableData(«URL1», rs, 4048, true) +
«\»>»
+ Line(include(lang+’download’),mm) +
+ printTableData(«NAME», rs, 4048, true) +
«</a></div>
</td>
<td width=\»306\»>
<div align=\»center\»><a href=\»»
+ Line(include(lang+’sale’),mm) +
«&bid=»+printTableData(«ID», rs, 4048, true) +
«\»>»
+ printTableData(«COST», rs, 4048, true) +
«</a></div>
</td>
</tr></table><br>»);}%>
МОДУЛЬ ПОИСКА ПРОГРАММ ПО КЛЮЧЕВОЙ ФРАЗЕ SEARCH.JSP
<%@ page import=»java.*» %>
<%
int pages;
Connection ocon = null;
POST = request.getParameter(«POST»);
Class.forName(«org.gjt.mm.mysql.Driver»);
ocon = DriverManager.getConnection(«jdbc:mysql:///».String Line(Include(‘config.inc’),1), String Line(Include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmtt = ocon.createStatement();
ResultSet rc = stmtt.executeQuery(«Select count(*) from SOFT where INFO IN ‘»+POST+»‘»);
rc.next();
pages = rc.getInt(1);
//out.println(«Count of Records : » + pages + «<br>»);
out.println(«Count of Records : » + pages + «<br>»);
int cPage;
cPage = (pages / 10) + 1;
if ((cPage * 10) + 1 >= pages)
cPage++;
out.println(«Count of Pages : » + (cPage — 1) + «<br><p><p>»);
int p;
for(p = 1; p < cPage ; p++)
out.println(«<a href=search.jsp?m1&POST=»+POST+»&mv=» + p + «>»+ p +»</a> | »);
out.println(«<hr>»);
// paging
int cpage;
int currentRs;
String pt;
pt = request.getParameter(«mv»);
mm = request.getParameter(«m»);
lang = referes.getGlobals(«lang»);
if (pt == null)
currentRs = 0;
else
cpage = Integer.parseInt((String)pt);
currentRs = 10 * (cpage — 1);
out.println(cpage + «<br>»);
Connection con = null;
Class.forName(«com.mysql.jdbc.Driver»).newInstance();
con = DriverManager.getConnection(«jdbc:mysql:///».String Line(include(‘config.inc’),1), String Line(include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmt = con.createStatement();
String sql;
sql = «Select * from SOFT LIMIT «+ currentRs +»,10″;
ResultSet rs = stmt.executeQuery(sql);
//rs.absolute(10);
while (rs.next())
if (POST=! null) {
string SS = printTableData(«NAME», rs, 4048, true)
if (!strstr(SS,POST)) continue;
out.println(«
<table width=\»99%\» border=\»0\» cellspacing=\»0\» cellpadding=\»0\»>
<tr>
<td colspan=\»2\» height=\»10\» bgcolor=\»#CCCCCC\»>»
+ String Line(include(lang+’menu’),mm) +
«</td>
</tr>
</table>
<br>
<div align=\»center\»>
<table width=\»99%\» border=\»1\» cellspacing=\»0\» cellpadding=\»0\»>
<tr bgcolor=\»#CCCCCC\»>
<td width=\»461\»><a href=\»#\»>»
+ printTableData(«NAME», rs, 4048, true) +
«</a></td>
<td width=\»219\»>»
+ printTableData(«DATA», rs, 4048, true) +
«</td>
<td width=\»306\»>»
+ printTableData(«WOW», rs, 4048, true) +
«</td></tr><tr> <td colspan=\»3\»>»
+ printTableData(«INFO», rs, 4048, true) +
«</td></tr><tr><td colspan=\»2\»><div align=\»center\»><a href=\»»
+ printTableData(«URL1″, rs, 4048, true) +»\»>»
+ String Line(include(lang+’download’),mm) +» «
+ printTableData(«NAME», rs, 4048, true) +
“</a></div></td><td width=\»306\»><div align=\»center\»><a href=\»»
+ String Line(include(lang+’sale’),mm) +
«&bid=»+printTableData(«ID», rs, 4048, true) +»\»>»
+ printTableData(«COST», rs, 4048, true) +
«</a></div></td></tr></table><br>»);
%>
МОДУЛЬ ГЕНЕРАЦИИ СПИСКА ПРОГРАММ ПО ДАТЕ DATE.JSP
<%@ page import=»java.*» %>
<%
int pages;
Connection ocon = null;
Class.forName(«org.gjt.mm.mysql.Driver»);
ocon = DriverManager.getConnection(«jdbc:mysql:///».String Line(Include(‘config.inc’),1), String Line(Include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmtt = ocon.createStatement();
ResultSet rc = stmtt.executeQuery(«Select count(*) from SOFT where DATA between ‘»+Date getDate()+»‘ and ‘01012004’»);
round(SOFT,date)=’15.12.2003′
rc.next();
pages = rc.getInt(1);
//out.println(«Count of Records : » + pages + «<br>»);
out.println(«Count of Records : » + pages + «<br>»);
int cPage;
cPage = (pages / 10) + 1;
if ((cPage * 10) + 1 >= pages)
cPage++;
out.println(«Count of Pages : » + (cPage — 1) + «<br><p><p>»);
int p;
for(p = 1; p < cPage ; p++)
out.println(«<a href=date.jsp?m1&mv=» + p + «>»+ p
+»</a> | »);
out.println(«<hr>»);
// paging
int cpage;
int currentRs;
String pt;
pt = request.getParameter(«mv»);
mm = request.getParameter(«m»);
lang = referes.getGlobals(«lang»);
if (pt == null)
currentRs = 0;
else
cpage = Integer.parseInt((String)pt);
currentRs = 10 * (cpage — 1);
out.println(cpage + «<br>»);
Connection con = null;
Class.forName(«com.mysql.jdbc.Driver»).newInstance();
con = DriverManager.getConnection(«jdbc:mysql:///».String Line(include(‘config.inc’),1), String Line(include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmt = con.createStatement();
String sql;
sql = «Select * from SOFT where DATA between ‘»+Date getDate()+»‘ and ‘01012004’ LIMIT «+ currentRs +»,10″;
ResultSet rs = stmt.executeQuery(sql);
//rs.absolute(10);
while (rs.next())
string PodMenu = printTableData(«TID», rs, 4048, true);
if(mm!=PodMenu) continue;
out.println(«
<table width=\»99%\» border=\»0\» cellspacing=\»0\» cellpadding=\»0\»>
<tr>
<td colspan=\»2\» height=\»10\» bgcolor=\»#CCCCCC\»>»
+ String Line(include(lang+’menu’),mm) +
«</td>
</tr>
</table>
<br>
<div align=\»center\»>
<table width=\»99%\» border=\»1\» cellspacing=\»0\» cellpadding=\»0\»>
<tr bgcolor=\»#CCCCCC\»>
<td width=\»461\»><a href=\»#\»>»
+ printTableData(«NAME», rs, 4048, true) +
«</a></td>
<td width=\»219\»>»
+ printTableData(«DATA», rs, 4048, true) +
«</td>
<td width=\»306\»>»
+ printTableData(«WOW», rs, 4048, true) +
«</td></tr><tr><td colspan=\»3\»>»
+ printTableData(«INFO», rs, 4048, true) +
«</td></tr><tr> <td colspan=\»2\»> <div align=\»center\»><a href=\»»
+ printTableData(«URL1″, rs, 4048, true) +»\»>»
+ String Line(include(lang+’download’),mm) +
+ printTableData(«NAME», rs, 4048, true) +
«</a></div></td><td width=\»306\»><div align=\»center\»><a href=\»»
+ String Line(include(lang+’sale’),mm) +
«&bid=»+printTableData(«ID», rs, 4048, true) +»\»>»
+ printTableData(«COST», rs, 4048, true) +
“</a></div></td></tr></table><br>»);}%>
МОДУЛЬ АВТОРИЗАЦИИ АВТОРОВ ПРОГРАММ AVTOR.JSP
<%@ page import=»java.*» %>
<%
int pages;
Connection ocon = null;
lang = referes.getGlobals(«lang»);
mm = request.getParameter(«m»);
LOGIN = request.getParameter(«LOGIN»);
PASSWORD = request.getParameter(«PASSWORD»);
if (LOGIN == null) out.println(«
<form name=\»form1\» method=\»post\» action=\»avtor.jsp\»>
<p>
<input type=\»text\» name=\»LOGIN\»>
«+ String Line(include(lang+’login’),mm) +»
<input type=\»text\» name=\»PASSWORD\»>
«+ String Line(include(lang+’password’),mm) +»
<input type=\»submit\» name=\»Submit\» value=\»Submit\»>
</p>
</form>
<hr>
<form name=\»form2\» method=\»post\» action=\»avtor.jsp\»>
<p>
<input type=\»text\» name=\»LOGIN\»>
«+ String Line(include(lang+’login’),mm) +»<br>
<input type=\»text\» name=\»PASSWORD1\»>
«+ String Line(include(lang+’pass2′),mm) +» <br>
<input type=\»text\» name=\»PASSWORD1\»>
«+ String Line(include(lang+’pass1′),mm) +» <br>
<input type=\»text\» name=\»P_NAME\»>
«+ String Line(include(lang+’name’),mm) +» <br>
<input type=\»text\» name=\»ADDRES\»>
«+ String Line(include(lang+’address’),mm) +»<br>
<input type=\»text\» name=\»gorod\»>
«+ String Line(include(lang+’gorod’),mm) +» <br>
<input type=\»text\» name=\»STRANA\»>
«+ String Line(include(lang+’strana’),mm) +» <br>
<input type=\»text\» name=\»TELFON\»>
«+ String Line(include(lang+’telefon’),mm) +»<br>
<input type=\»text\» name=\»FAX\»>
«+ String Line(include(lang+’fax’),mm) +» <br>
<input type=\»text\» name=\»INEMAIL\»>
«+ String Line(include(lang+’in_email’),mm) +» <br>
<input type=\»text\» name=\»OUTEMAIL\»>
«+ String Line(include(lang+’out_email’),mm) +»</p>
<input type=\»text\» name=\»CIN\»>
«+ String Line(include(lang+’cin’),mm) +»</p>
</form>
PASSWORD1 = request.getParameter(«PASSWORD1»);
Class.forName(«org.gjt.mm.mysql.Driver»);
ocon = DriverManager.getConnection(«jdbc:mysql:///».String Line(Include(‘config.inc’),1), String Line(Include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmtt = ocon.createStatement();
if ((LOGIN != null) && (PASSWORD1 == null) ) {
ResultSet rc = stmtt.executeQuery(«Select * from PROGRAMERS where LOGIN = ‘»+LOGIN+»‘»);
if(!rs){
out.println(String Line(include(lang+’login_error’),mm));
out.println(«
<form name=\»form1\» method=\»post\» action=\»avtor.jsp\»>
<p>
<input type=\»text\» name=\»LOGIN\»>
«+ String Line(include(lang+’login’),mm) +»
<input type=\»text\» name=\»PASSWORD\»>
«+ String Line(include(lang+’password’),mm) +»
<input type=\»submit\» name=\»Submit\» value=\»Submit\»>
</p>
</form>
String P=printTableData(«PASSWORD», rc, 4048, true)
if(!stristr(P,PASSWORD)) {
out.println(String Line(include(lang+’login_error’),mm));
out.println(«
<form name=\»form1\» method=\»post\» action=\»avtor.jsp\»>
<p>
<input type=\»text\» name=\»LOGIN\»>
«+ String Line(include(lang+’login’),mm) +»
<input type=\»text\» name=\»PASSWORD\»>
«+ String Line(include(lang+’password’),mm) +»
<input type=\»submit\» name=\»Submit\» value=\»Submit\»>
</p>
</form>
String ID=printTableData(«ID», rc, 4048, true)
include(‘avtor_menu.jsp?GID=’+ID);
//new avtor
if (LOGIN = request.getParameter(«LOGIN») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (PASSWORD1 = request.getParameter(«PASSWORD1») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (PASSWORD2 = request.getParameter(«PASSWORD2») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (P_NAME = request.getParameter(«P_NAME») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (ADDRES = request.getParameter(«ADDRES») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (GOROD = request.getParameter(«STRANA») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (STRANA = request.getParameter(«STRANA») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (TELEFON = request.getParameter(«TELEFON») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (FAX = request.getParameter(«FAX») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (INEMAIL = request.getParameter(«INEMAIL») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (OUTEMAIL = request.getParameter(«OUTEMAIL») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (CNUM = request.getParameter(«CNUM») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if(!stristr(PASSWORD1,PASSWORD2))out.printLn(String Line(include(lang+’reg_error’),mm));
Connection con = null;
Class.forName(«com.mysql.jdbc.Driver»).newInstance();
con = DriverManager.getConnection(«jdbc:mysql:///».String Line(include(‘config.inc’),1), String Line(include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmt = con.createStatement();
ResultSet rc = stmtt.executeQuery(«Select * from PROGRAMERS where LOGIN = ‘»+LOGIN+»‘»);
if(rc) out.printLn(String Line(include(lang+’user_exists’),mm));
String sql;
sql = «insert into PROGRAMERS (LOGIN,PASSWORD,P_NAME,ADDRES,GOROD,STRANA,TELEFON,FAX,INEMAIL,OUTEMAIL,CNUM) VALUES (‘»+LOGIN+»‘,'»+PASSWORD+»‘,'»+P_NAME+»‘,'»+ADDRES+»‘,'»+GOROD+»‘,'»+STRANA+»‘,'»+TELEFON+»‘,'»+FAX+»‘,'»+INEMAIL+»‘,'»+OUTEMAIL+»‘,'»+CNUM+»‘»;
ResultSet rs = stmt.executeQuery(sql);
if(!rs) out.printLn(String Line(include(lang+’add_error’),mm));
ResultSet rq = stmtt.executeQuery(«Select * from PROGRAMERS where LOGIN = ‘»+LOGIN+»‘»);
String ID=printTableData(«ID», rc, 4048, true)
include(‘avtor_menu.jsp?GID=’+ID);
%>
МОДУЛЬ РЕДАКТИРОВАНИЯ АВТОРСКОЙ ИНФОРМАЦИИ AVTOR_EDIT.JSP
<%@ page import=»java.*» %>
<%
Connection ocon = null;
lang = referes.getGlobals(«lang»);
mm = request.getParameter(«m»);
ID = request.getParameter(«ID»);
con = DriverManager.getConnection(«jdbc:mysql:///».String Line(include(‘config.inc’),1), String Line(include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmt = con.createStatement();
String sql;
sql = «Select * from SOFT where ID ='»+ID+»‘»;
ResultSet rs = stmt.executeQuery(sql);
//rs.absolute(10);
<form name=\»form2\» method=\»post\» action=\»save_avtor.jsp\»>
<input type=\»text\» name=\»LOGIN\»
value=»
«+String LOGIN=printTableData(«LOGIN», rs, 4048, true)+»
>
«+ String Line(include(lang+’avtor_edit1′),mm) +» <br>
<br>
<input type=\»text\» name=\»PASSWORD\» value=»
«+String PASSWORD=printTableData(«PASSWORD», rs, 4048, true)+»
>
«+ String Line(include(lang+’avtor_edit2′),mm) +» <br>
<input type=\»text\» name=\»P_NAME\» value=»
«+String P_NAME=printTableData(«P_NAME», rs, 4048, true)+»
>
«+ String Line(include(lang+’avtor_edit3′),mm) +» <br>
<input type=\»text\» name=\»ADDRES\»
value=»
«+String ADDRES=printTableData(«ADDRES», rs, 4048, true)+»
>
«+ String Line(include(lang+’avtor_edit4′),mm) +» <br>
<input type=\»text\» name=\»GOROD\»value=»
«+String GOROD=printTableData(«GOROD», rs, 4048, true)+»
>
«+ String Line(include(lang+’avtor_edit5′),mm) +» <br>
<input type=\»text\» name=\»STRANA\»value=»
«+String STRANA=printTableData(«STRANA», rs, 4048, true)+»
>
«+ String Line(include(lang+’avtor_edit6′),mm) +» <br>
<input type=\»text\» name=\»TELEFON\»value=»
«+String TELEFON=printTableData(«TELEFON», rs, 4048, true)+»
>»+ String Line(include(lang+’avtor_edit7′),mm) +» <br>
<input type=\»text\» name=\»FAX\»value=»
«+String FAX=printTableData(«FAX», rs, 4048, true)+»
>»+ String Line(include(lang+’avtor_edit8′),mm) +» <br>
<input type=\»text\» name=\»INEMAIL\»value=»
«+String INEMAIL=printTableData(«INEMAIL», rs, 4048, true)+»
>»+ String Line(include(lang+’avtor_edit9′),mm) +» <br>
<input type=\»text\» name=\»OUTEMAIL\»value=»
«+String OUTEMAIL=printTableData(«OUTEMAIL», rs, 4048, true)+»
>»+ String Line(include(lang+’avtor_edit10′),mm) +» <br>
<input type=\»text\» name=\»CNUM\»value=»
«+String CNUM=printTableData(«CNUM», rs, 4048, true)+»
>»+ String Line(include(lang+’avtor_edit11′),mm) +» <br>
<input type=\»submit\» name=\»
«+ String Line(include(lang+’avtor_pipe’),mm) +»
\» value=\»Submit\»>
<br>
</form>
«);%>
МОДУЛЬ ОСНОВНОГО МЕНЮ АВТОРА ПРОГРАММ AVTOR_MENU.JSP
<%@ page import=»java.*» %>
<%
Connection ocon = null;
lang = referes.getGlobals(«lang»);
mm = request.getParameter(«m»);
ID = request.getParameter(«ID»);
con = DriverManager.getConnection(«jdbc:mysql:///».String Line(include(‘config.inc’),1), String Line(include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmt = con.createStatement();
String sql;
sql = «Select * from SOFT where GID ='»+ID+»‘»;
ResultSet rc = stmt.executeQuery(«Select * from PROGRAMERS where ID ='»+ID+»‘»);
ResultSet rs = stmt.executeQuery(sql);
//rs.absolute(10);
while (rs.next())
out.println(«
<script language=\»JavaScript\»>
<!—
function MM_findObj(n, d) { //v4.0
var p,i,x; if(!d) d=document; if((p=n.indexOf(\»?\»))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && document.getElementById) x=document.getElementById(n); return x;
function MM_changeProp(objName,x,theProp,theValue) { //v3.0
var obj = MM_findObj(objName);
if (obj && (theProp.indexOf(\»style.\»)==-1 || obj.style)) eval(\»obj.\»+theProp+\»=’\»+theValue+\»‘\»);
//—>
</script>
<link rel=\»stylesheet\» href=\»main.css\» type=\»text/css\»>
<table width=\»100%\» border=\»1\» cellspacing=\»0\» cellpadding=\»0\»>
<tr>
<td>
«+ String Line(include(lang+’edit_me’),mm) +»
<a href=\»editme.jsp?ID=
«+String ID=printTableData(«ID», rc, 4048, true)+»
\»>
«+String LOGIN=printTableData(«LOGIN», rc, 4048, true)+»
</a></td>
</tr>
</table>
<br>
<form name=\»form1\» method=\»post\» action=\»JAVA_SCRIPT\» id=\»0\»>
<table width=\»100%\» border=\»1\» cellspacing=\»0\» cellpadding=\»0\»>
<tr>
<td>#</td>
<td>»+ String Line(include(lang+’avformsoft1′),mm) +»</td>
<td>»+ String Line(include(lang+’avformsoft2′),mm) +»</td>
<td>»+ String Line(include(lang+’avformsoft3′),mm) +»</td>
<td>»+ String Line(include(lang+’avformsoft4′),mm) +»</td>
<td>»+ String Line(include(lang+’avformsoft5′),mm) +»</td>
<td>»+ String Line(include(lang+’avformsoft6′),mm) +»</td>
</tr>
<tr>
<td>»+rs.count()+»</td>
<td>»+String NAME=printTableData(«NAME», rs, 4048, true)+»</td>
<td>»+String DATE=printTableData(«DATE», rs, 4048, true)+»</td>
<td>»+String COST=printTableData(«COST», rs, 4048, true)+»</td>
<td>»+String FLAG=printTableData(«FLAG», rs, 4048, true)+»</td>
<td>»+String PERS=printTableData(«PERS», rs, 4048, true)+»</td>
<td>
<input type=\»radio\» name=\»radiobutton\» value=\»radiobutton\» checked onClick=\»MM_changeProp(‘form1′,»,’id’,’
«+String ID=printTableData(«ID», rs, 4048, true)+»
‘,’FORM’)\»>
</td>
</tr>
</table>
<input type=\»submit\» name=\»
«+ String Line(include(lang+’delete_buton’),mm) +»
\» value=\»delete\»
onClick=\»MM_changeProp(‘0′,»,’action’,’soft_del.jsp?id=’+’id’,’FORM’)\» class=\»e\»>
<input type=\»submit\» name=\»
«+ String Line(include(lang+’edit_buton’),mm) +»
\» value=\»edit\»
onClick=\»MM_changeProp(‘0′,»,’action’,’soft_edit.jsp?id=’+’id’,’FORM’)\»class=\»e\»>
</form>
<form name=\»form2\» method=\»post\» action=\»\»>
<input type=\»text\» name=\»NAME\»>
«+ String Line(include(lang+’soft_add1′),mm) +» <br>
<br>
<input type=\»hidden\» name=\»hiddenField\» value=\»GID\»>
<br>
<br>
<select name=\»TID\»>
<option value=\»0\»>»+ String Line(include(lang+’soft_addT1′),mm)
+»</option>
<option value=\»1\» selected>»+ String
Line(include(lang+’soft_addT2′),mm) +»</option>
<option value=\»2\»>»+ String Line(include(lang+’soft_addT3′),mm)
+»</option>
<option value=\»3\»>»+ String Line(include(lang+’soft_addT4′),mm)
+»</option>
<option value=\»4\»>»+ String Line(include(lang+’soft_addT5′),mm)
+»</option>
<option value=\»5\»>»+ String Line(include(lang+’soft_addT6′),mm)
+»</option>
<option value=\»6\»>»+ String Line(include(lang+’soft_addT7′),mm)
+»</option>
<option value=\»7\»>»+ String Line(include(lang+’soft_addT8′),mm)
+»</option>
<option value=\»8\»>»+ String Line(include(lang+’soft_addT9′),mm)
+»</option>
</select>
«+ String Line(include(lang+’soft_add2′),mm) +»<br>
<input type=\»text\» name=\»URL1\»>
«+ String Line(include(lang+’soft_add3′),mm) +» <br>
<input type=\»text\» name=\»URL2\»>
«+ String Line(include(lang+’soft_add4′),mm) +» <br>
<input type=\»text\» name=\»URL3\»>
«+ String Line(include(lang+’soft_add5′),mm) +» <br>
<input type=\»text\» name=\»INFO\»>
«+ String Line(include(lang+’soft_add6′),mm) +» <br>
<input type=\»text\» name=\»VER\»>
«+ String Line(include(lang+’soft_add7′),mm) +» <br>
<select name=\»OS\»>
<option value=\»Windows NT\» selected>Windows NT</option>
<option value=\»Windows ME\»>Windows ME</option>
<option value=\»Windows 95\»>Windows 95</option>
<option value=\»Windows ME\»>Windows ME</option>
<option value=\»Windows 98\»>Windows 98</option>
<option value=\»Windows XP\»>Windows XP</option>
<option value=\»Windows 2000\»>Windows 2000</option>
<option value=\»Windows 2003\»>Windows 2003</option>
<option value=\»Linux\»>Linux</option>
<option value=\»Unix\»>Unix</option>
<option value=\»OS/2\»>OS/2</option>
<option value=\»Macintosh\»>Macintosh</option>
<option value=\»Palm\»>Palm</option>
</select>
«+ String Line(include(lang+’soft_add8′),mm) +» <br>
<br>
<input type=\»hidden\» name=\»DATE\» value=\»
«+String TTT=Get.Date()+»
\»>
<br>
<input type=\»text\» name=\»COST\»>
«+ String Line(include(lang+’soft_add9′),mm) +»<br>
<input type=\»text\» name=\»PERS\»>
«+ String Line(include(lang+’soft_add10′),mm) +» <br>
<input type=\»hidden\» name=\»wow\» value=\»0\»>
<br>
<input type=\»hidden\» name=\»HIDE\» value=\»1\»>
<br>
<input type=\»submit\» name=\»
«+ String Line(include(lang+’soft_add11B’),mm) +»
\» value=\»Submit\»>
<br>
</form>
<table width=\»100%\» border=\»1\» cellspacing=\»0\» cellpadding=\»0\»>
<tr>
<td>
<div align=\»center\»><a href=\»index.phtml\»>
«+ String Line(include(lang+’soft_menu_down1′),mm) +»
</a></div>
</td>
<td>
<div align=\»center\»><a href=\»save.jsp?con=»+con+»\»>
«+ String Line(include(lang+’soft_menu_down2′),mm) +»
</a></div>
</td>
<td>
<div align=\»center\»><a href=\»undo.jsp?con=»+con+»\»>
«+ String Line(include(lang+’soft_menu_down3′),mm) +»
</a></div>
</td>
<td>
<div align=\»center\»><a href=\»help.html\»>
«+ String Line(include(lang+’soft_menu_down4′),mm) +»
</a></div>
</td>
</tr>
</table>
%>
МОДУЛЬ РЕДАКТИРОВАНИЯ ОПИСАНИЯ ПРОГРАММ АВТОРА EDIT_ME.JSP
<%@ page import=»java.*» %>
<%
Connection ocon = null;
lang = referes.getGlobals(«lang»);
mm = request.getParameter(«m»);
ID = request.getParameter(«ID»);
con = DriverManager.getConnection(«jdbc:mysql:///».String Line(include(‘config.inc’),1), String Line(include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmt = con.createStatement();
String sql;
sql = «Select * from SOFT where ID ='»+ID+»‘»;
ResultSet rs = stmt.executeQuery(sql);
//rs.absolute(10);
<form name=\»form2\» method=\»post\» action=\»save_me.jsp\»>
<input type=\»text\» name=\»NAME\»
value=»
«+String NAME=printTableData(«NAME», rs, 4048, true)+»
>
«+ String Line(include(lang+’soft_add1′),mm) +» <br>
<br>
<input type=\»hidden\» name=\»GID\» value=\»
«+String GID=printTableData(«GID», rs, 4048, true)+»
\»>
<br>
<br>
<select name=\»TID\»>
<option value=\»»
+String TID=printTableData(«TID», rs, 4048, true)+
«\» selected>default</option>
<option value=\»0\»>»+ String Line(include(lang+’soft_addT1′),mm) +»</option>
<option value=\»1\»>»+ String Line(include(lang+’soft_addT2′),mm) +»</option>
<option value=\»2\»>»+ String Line(include(lang+’soft_addT3′),mm) +»</option>
<option value=\»3\»>»+ String Line(include(lang+’soft_addT4′),mm) +»</option>
<option value=\»4\»>»+ String Line(include(lang+’soft_addT5′),mm) +»</option>
<option value=\»5\»>»+ String Line(include(lang+’soft_addT6′),mm) +»</option>
<option value=\»6\»>»+ String Line(include(lang+’soft_addT7′),mm) +»</option>
<option value=\»7\»>»+ String Line(include(lang+’soft_addT8′),mm) +»</option>
<option value=\»8\»>»+ String Line(include(lang+’soft_addT9′),mm) +»</option>
</select>
«+ String Line(include(lang+’soft_add2′),mm) +»<br>
<input type=\»text\» name=\»URL1\» value=»
«+String URL1=printTableData(«URL1″, rs, 4048, true)+»
>
«+ String Line(include(lang+’soft_add3′),mm) +» <br>
<input type=\»text\» name=\»URL2\» value=»
«+String URL2=printTableData(«URL2″, rs, 4048, true)+»
>
«+ String Line(include(lang+’soft_add4′),mm) +» <br>
<input type=\»text\» name=\»URL3\»
value=»
«+String URL3=printTableData(«URL3″, rs, 4048, true)+»
>
«+ String Line(include(lang+’soft_add5′),mm) +» <br>
<input type=\»text\» name=\»INFO\»value=»
«+String INFO=printTableData(«INFO», rs, 4048, true)+»
>
«+ String Line(include(lang+’soft_add6′),mm) +» <br>
<input type=\»text\» name=\»VER\»value=»
«+String VER=printTableData(«VER», rs, 4048, true)+»
>
«+ String Line(include(lang+’soft_add7′),mm) +» <br>
<select name=\»OS\»>
value=»
«+String INFO=printTableData(«INFO», rs, 4048, true)+»
<option value=\»»+String OS=printTableData(«OS», rs, 4048, true)+»\» selected>»+String OS=printTableData(«OS», rs, 4048, true)+»</option>
<option value=\»Windows NT\»>Windows NT</option>
<option value=\»Windows ME\»>Windows ME</option>
<option value=\»Windows 95\»>Windows 95</option>
<option value=\»Windows ME\»>Windows ME</option>
<option value=\»Windows 98\»>Windows 98</option>
<option value=\»Windows XP\»>Windows XP</option>
<option value=\»Windows 2000\»>Windows 2000</option>
<option value=\»Windows 2003\»>Windows 2003</option>
<option value=\»Linux\»>Linux</option>
<option value=\»Unix\»>Unix</option>
<option value=\»OS/2\»>OS/2</option>
<option value=\»Macintosh\»>Macintosh</option>
<option value=\»Palm\»>Palm</option>
</select>
«+ String Line(include(lang+’soft_add8′),mm) +» <br>
<br>
<input type=\»hidden\» name=\»DATE\» value=\»
«+String TTT=Get.Date()+»
\»>
<br>
<input type=\»text\» name=\»COST\»>
«+ String Line(include(lang+’soft_add9′),mm) +»<br>
<input type=\»text\» name=\»PERS\»>
«+ String Line(include(lang+’soft_add10′),mm) +» <br>
<input type=\»hidden\» name=\»wow\» value=\»»+String WOW=printTableData(«WOW», rs, 4048, true)+»\»>
<br>
<input type=\»hidden\» name=\»HIDE\» value=\»1\»>
<br>
<input type=\»submit\» name=\»
«+ String Line(include(lang+’soft_pipe’),mm) +»
\» value=\»Submit\»>
<br></form>»);%>
МОДУЛЬ ЗАПИСИ ИЗМЕНЕНИЙ РЕДАКТОРА ОПИСАНИЯ ПРОГРАММ АВТОРА SAVE_ME.JSP
<%@ page import=»java.*» %>
<%Connection ocon = null;
lang = referes.getGlobals(«lang»);
mm = request.getParameter(«m»);
ID = request.getParameter(«ID»);
GID = request.getParameter(«GID»);
TID = request.getParameter(«TID»);
NAME = request.getParameter(«NAME»);
URL1 = request.getParameter(«URL1»);
URL2 = request.getParameter(«URL2»);
URL3 = request.getParameter(«URL3»);
INFO = request.getParameter(«INFO»);
VER = request.getParameter(«VER»);
OS = request.getParameter(«OS»);
DATE = request.getParameter(«DATE»);
COST = request.getParameter(«COST»);
PERS = request.getParameter(«PERS»);
WOW = request.getParameter(«WOW»);
con = DriverManager.getConnection(«jdbc:mysql:///».String Line(include(‘config.inc’),1), String Line(include(‘config.inc’),2), String Line(include(‘config.inc’),3)); Statement stmt = con.createStatement(); String sql;
sql = «update into PROGRAMERS (GID,TID,NAME,URL1,URL2,URL3,INFO,VER,OS,DATE,COST,PERS,WOW,HIDE) VALUES (‘GID»++»‘,'»+TID+»‘,'»+NAME+»‘,'»+URL1+»‘,'»+URL2+»‘,'»+URL3+»‘,'»+INFO+»‘,'»+VER+»‘,'»+OS+»‘,'»+DATE+»‘,'»+COST+»‘»,'»+PERS+»‘»,'»+WOW+»‘»,’1′»;
ResultSet rs = stmt.executeQuery(sql);%>
МОДУЛЬ ЗАПИСИ ИЗМЕНЕНИЙ РЕДАКТОРА ДАННЫХ АВТОРА SAVE_AVTOR.JSP
<%@ page import=»java.*» %>
<%
Connection ocon = null;
lang = referes.getGlobals(«lang»);
mm = request.getParameter(«m»);
ID = request.getParameter(«ID»);
LOGIN = request.getParameter(«LOGIN»);
PASSWORD = request.getParameter(«PASSWORD»);
P_NAME = request.getParameter(«P_NAME»);
ADDRES = request.getParameter(«ADDRES»);
GOROD = request.getParameter(«GOROD»);
STRANA = request.getParameter(«STRANA»);
TELEFON = request.getParameter(«TELEFON»);
FAX = request.getParameter(«FAX»);
INEMAIL = request.getParameter(«INEMAIL»);
OUTEMAIL = request.getParameter(«OUTEMAIL»);
CNUM = request.getParameter(«CNUM»);
con = DriverManager.getConnection(«jdbc:mysql:///».String Line(include(‘config.inc’),1), String Line(include(‘config.inc’),2), String Line(include(‘config.inc’),3)); Statement stmt = con.createStatement(); String sql;
sql = «update into PROGRAMERS (LOGIN,PASSWORD,P_NAME,ADDRES,GOROD,STRANA,TELEFON,FAX,INEMAIL,OUTMAIL,CNUM) VALUES (‘LOGIN»++»‘,'»+PASSWORD+»‘,'»+P_NAME+»‘,'»+ADDRES+»‘,'»+GOROD+»‘,'»+STRANA+»‘,'»+TELEFON+»‘,'»+FAX+»‘,'»+INEMAIL+»‘,'»+OUTMAIL+»‘,'»+CNUM+»‘»;
ResultSet rs = stmt.executeQuery(sql);%>
МОДУЛЬ АВТОРИЗАЦИИ ПОКУПАТЕЛЯ BUYER.JSP
<%@ page import=»java.*» %>
<%
int pages;
Connection ocon = null;
lang = referes.getGlobals(«lang»);
mm = request.getParameter(«m»);
LOGIN = request.getParameter(«LOGIN»);
PASSWORD = request.getParameter(«PASSWORD»);
if (LOGIN == null) out.println(«
<form name=\»form1\» method=\»post\» action=\»buyer.jsp\»>
<p>
<input type=\»text\» name=\»LOGIN\»>
«+ String Line(include(lang+’login’),mm) +»
<input type=\»text\» name=\»PASSWORD\»>
«+ String Line(include(lang+’password’),mm) +»
<input type=\»submit\» name=\»Submit\» value=\»Submit\»>
</p>
</form>
<hr>
<form name=\»form2\» method=\»post\» action=\»buyer.jsp\»>
<p>
<input type=\»text\» name=\»LOGIN\»>
«+ String Line(include(lang+’login’),mm) +»<br>
<input type=\»text\» name=\»PASSWORD1\»>
«+ String Line(include(lang+’pass2′),mm) +» <br>
<input type=\»text\» name=\»PASSWORD1\»>
«+ String Line(include(lang+’pass1′),mm) +» <br>
<input type=\»text\» name=\»NAME\»>
«+ String Line(include(lang+’name’),mm) +» <br>
<input type=\»text\» name=\»ADDRES\»>
«+ String Line(include(lang+’address’),mm) +»<br>
<input type=\»text\» name=\»CITY\»>
«+ String Line(include(lang+’gorod’),mm) +» <br>
<input type=\»text\» name=\»INDEX\»>
«+ String Line(include(lang+’index’),mm) +» <br>
<input type=\»text\» name=\»PHONE\»>
«+ String Line(include(lang+’telefon’),mm) +»<br>
<input type=\»text\» name=\»COUNTRY\»>
«+ String Line(include(lang+’strana’),mm) +» <br>
<input type=\»text\» name=\»FAX\»>
«+ String Line(include(lang+’fax’),mm) +» <br>
<input type=\»text\» name=\»EMAIL\»>
«+ String Line(include(lang+’email’),mm) +»</p>
<input type=\»text\» name=\»CARD\»>
«+ String Line(include(lang+’card’),mm) +»</p>
<input type=\»text\» name=\»CNUMBER\»>
«+ String Line(include(lang+’cnumber’),mm) +»</p>
<input type=\»text\» name=\»EXPIRE\»>
«+ String Line(include(lang+’expire’),mm) +»</p>
</form>
PASSWORD1 = request.getParameter(«PASSWORD1»);
Class.forName(«org.gjt.mm.mysql.Driver»);
ocon = DriverManager.getConnection(«jdbc:mysql:///».String Line(Include(‘config.inc’),1), String Line(Include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmtt = ocon.createStatement();
if ((LOGIN != null) && (PASSWORD1 == null) ) {
ResultSet rc = stmtt.executeQuery(«Select * from BUYERS where LOGIN = ‘»+LOGIN+»‘»);
if(!rs){
out.println(String Line(include(lang+’login_error’),mm));
out.println(«
<form name=\»form1\» method=\»post\» action=\»buyer.jsp\»>
<p>
<input type=\»text\» name=\»LOGIN\»>
«+ String Line(include(lang+’login’),mm) +»
<input type=\»text\» name=\»PASSWORD\»>
«+ String Line(include(lang+’password’),mm) +»
<input type=\»submit\» name=\»Submit\» value=\»Submit\»>
</p>
</form>
String P=printTableData(«PASSWORD», rc, 4048, true)
if(!stristr(P,PASSWORD)) {
out.println(String Line(include(lang+’login_error’),mm));
out.println(«
<form name=\»form1\» method=\»post\» action=\»buyer.jsp\»>
<p>
<input type=\»text\» name=\»LOGIN\»>
«+ String Line(include(lang+’login’),mm) +»
<input type=\»text\» name=\»PASSWORD\»>
«+ String Line(include(lang+’password’),mm) +»
<input type=\»submit\» name=\»Submit\» value=\»Submit\»>
</p>
</form>
String ID=printTableData(«KID», rc, 4048, true)
include(‘buyer_menu.jsp?KID=’+KID);
//new avtor
if (LOGIN = request.getParameter(«LOGIN») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (PASSWORD1 = request.getParameter(«PASSWORD1») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (PASSWORD2 = request.getParameter(«PASSWORD2») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (NAME = request.getParameter(«NAME») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (ADDRESS = request.getParameter(«ADDRESS») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (CITY = request.getParameter(«CITY») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (INDEX = request.getParameter(«INDEX») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (COUNTRY = request.getParameter(«COUNTRY») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (PHONE = request.getParameter(«PHONE») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (FAX = request.getParameter(«FAX») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (EMAIL = request.getParameter(«EMAIL») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (CARD = request.getParameter(«CARD») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (CNUMBER = request.getParameter(«CNUMBER») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if (EXPIRE = request.getParameter(«EXPIRE») == null) out.printLn(String Line(include(lang+’reg_error’),mm));
if(!stristr(PASSWORD1,PASSWORD2))out.printLn(String Line(include(lang+’reg_error’),mm));
String DATE=Get.Date();
Int BCOUNT=0;
Int MONEY=0;
Connection con = null;
Class.forName(«com.mysql.jdbc.Driver»).newInstance();
con = DriverManager.getConnection(«jdbc:mysql:///».String Line(include(‘config.inc’),1), String Line(include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmt = con.createStatement();
Int KID = stmtt.executeQuery(«Select count(*) from KORZINA»);
ResultSet rs = stmtt.executeQuery(«insert into KORZINA (SID,COST,DATE,THANKS) values (‘»+KID+»‘,’0′,’0′,’0’)»);
ResultSet rc = stmtt.executeQuery(«Select * from BUYERS where LOGIN = ‘»+LOGIN+»‘»);
if(rc) out.printLn(String Line(include(lang+’user_exists’),mm));
String sql;
sql = «insert into BUYERS
(LOGIN,PASSWORD,NAME,ADDRESS,CITY,COUNTRY,PHONE,FAX,EMAIL,DATE,BCOUNT,MONEY,KID,CARD,CNUMBER,EXPIRE) VALUES (‘»+LOGIN+»‘,'»+PASSWORD1+»‘,'»+NAME+»‘,'»+ADDRESS+»‘,'»+CITY+»‘,'»+COUNTRY+»‘,'»+PHONE+»‘,'»+FAX+»‘,'»+EMAIL+»‘,'»+DATE+»‘,'»+BCOUNT+»‘,'»+MONEY+»‘»,'»+KID+»‘»,'»+CARD+»‘»,'»+CNUMBER+»‘»,'»+EXPIRE+»‘»;
ResultSet rs = stmt.executeQuery(sql);
if(!rs) out.printLn(String Line(include(lang+’add_error’),mm));
ResultSet rq = stmtt.executeQuery(«Select * from BUYERS where LOGIN = ‘»+LOGIN+»‘»);
String ID=printTableData(«KID», rc, 4048, true)
include(‘buyer_menu.jsp?KID=’+KID);
%>
МОДУЛЬ ГЕНЕРАЦИИ МЕНЮ ДЛЯ ПОКУПАТЕЛЯ BUYER_MENU.JSP
<%@ page import=»java.*» %>
<%
Connection ocon = null;
lang = referes.getGlobals(«lang»);
mm = request.getParameter(«m»);
KID = request.getParameter(«KID»);
con = DriverManager.getConnection(«jdbc:mysql:///».String Line(include(‘config.inc’),1), String Line(include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmt = con.createStatement();
String sql;
ResultSet rs = stmt.executeQuery(«Select * from KORZINA where SID ='»+KID+»‘»);
ResultSet rc = stmt.executeQuery(«Select * from BUYERS where KID ='»+KID+»‘»);
GLOBALS String GENID=String ID=printTableData(«ID», rc, 4048, true);
out.println(«<table width=\»100%\» border=\»1\»>
<tr>
<td>#</td>
<td>»+ String Line(include(lang+’soft_name’),mm) +»</td>
<td>»+ String Line(include(lang+’buy_date’),mm) +»</td>
<td>»+ String Line(include(lang+’soft_cost’),mm) +»</td>
<td>»+ String Line(include(lang+’buy_status’),mm) +»</td>
<td>»+ String Line(include(lang+’discont’),mm) +»</td>
</tr>»);
Int ic=0;
while (rs.next())
ic++;
out.println(«
<tr>
<td>»+ic+»</td>
<td>»+String NAME=printTableData(«NAME», rs, 4048, true)+»</td>
<td>»+String DATE=printTableData(«DATE», rs, 4048, true)+»</td>
<td>»+String COST=printTableData(«COST», rs, 4048, true)+»</td>
<td><a href=\»buy.jsp?KID=»+String ID=printTableData(«ID», rs, 4048, true)+»&ID=»+String ID=printTableData(«ID», rc, 4048, true)+»\»></td>
<td>»+String THANKS=printTableData(«THANKS», rs, 4048, true)+»</td>
</tr>
out.println(«
<table width=\»100%\» border=\»1\» cellspacing=\»0\» cellpadding=\»0\»>
<tr>
<td>
<div align=\»center\»><a href=\»index.phtml\»>
«+ String Line(include(lang+’soft_menu_down1′),mm) +»
</a></div>
</td>
<td>
<div align=\»center\»><a href=\»save.jsp?con=»+con+»\»>
«+ String Line(include(lang+’soft_menu_down2′),mm) +»
</a></div>
</td>
<td>
<div align=\»center\»><a href=\»undo.jsp?con=»+con+»\»>
«+ String Line(include(lang+’soft_menu_down3′),mm) +»
</a></div>
</td>
<td>
<div align=\»center\»><a href=\»help.html\»>
«+ String Line(include(lang+’soft_menu_down4′),mm) +»
</a></div>
</td>
</tr>
</table>
%>
МОДУЛЬ СОХРАНЕНИЯ ИЗМЕНЕНИЙ АВТОРОМ ПРОГРАММ И ПОКУПАТЕЛЕМ SAVE.JSP
<%@ page import=»java.*» %>
<%
Connection con = request.getParameter(«con»);
lang = referes.getGlobals(«lang»);
mm = request.getParameter(«m»);
Statement stmt = con.close();
if(stmt){
out.println(«<hr>»+ String Line(include(lang+’save_base’),mm) +»»);
} else {
out.println(«<hr>»+ String Line(include(lang+’err_save_base’),mm) +»»);
%>
МОДУЛЬ ОТМЕНЫ ИЗМЕНЕНИЙ СДЕЛАННЫХ АВТОРОМ ПРОГРАММ И ПОКУПАТЕЛЕМ UNDO.JSP
<%@ page import=»java.*» %>
<%
Connection con = request.getParameter(«con»);
lang = referes.getGlobals(«lang»);
mm = request.getParameter(«m»);
Statement stmt = con.UndoconChanges();
if(stmt){
out.println(«<hr>»+ String Line(include(lang+’undo_base’),mm) +»»);
} else {
out.println(«<hr>»+ String Line(include(lang+’err_undo_base’),mm) +»»);
%>
МОДУЛЬ РЕАЛИЗАЦИИ ПОКУПКИ ПРОГРАММЫ И ОТМЕНЫ ПОКУПКИ BUY.JSP
<%@ page import=»java.*» %>
<%
Connection ocon = null;
lang = referes.getGlobals(«lang»);
mm = request.getParameter(«m»);
KID = request.getParameter(«KID»);
ID = request.getParameter(«ID»);
BID = request.getParameter(«BID»);
if((KID!=null)&&(ID!=null)){
String ST =
include(«http://mystats.ebay.com/?SHOP=A8721781&KID=»+KID+»&ID=»+ID+»»);
} esle {
con = DriverManager.getConnection(«jdbc:mysql:///».String Line(include(‘config.inc’),1), String Line(include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(«Select * from KORZINA where SID ='»+KID+»‘»);
ResultSet rc = stmt.executeQuery(«Select * from BUYERS where KID ='»+KID+»‘»);
COOK =
request.putParameter(«SHOP=A8721781»,»»+printTableData(«ID», rc, 4048, true)+»»,»»+printTableData(«NAME», rc, 4048, true)+»»,»»+printTableData(«ADDRESS», rc, 4048, true)+»»,»»+printTableData(«CITY», rc, 4048, true)+»»,»»+printTableData(«COUNTRY», rc, 4048, true)+»»,»»+printTableData(«INDEX», rc, 4048, true)+»»,»»+printTableData(«PHONE», rc, 4048, true)+»»,»»+printTableData(«EMAIL», rc, 4048, true)+»»,»»+printTableData(«BCOUNT», rc, 4048, true),+»»,»»+printTableData(«MONEY», rc, 4048, true)+»»,»»+printTableData(«KID», rc, 4048, true),+»»,»»+printTableData(«CARD», rc, 4048, true)+»»,»»+printTableData(«CNUMBER», rc, 4048, true)+»»,»»+printTableData(«EXPIRE», rc, 4048, true)+»»,»»+BID»»);
Open.Url(«http://www.ebay.com/buyers_shops/»,»COOK»);
if(stristr(request.Referer.Parameter(«thankyou»),»thanksyou»)){
con = DriverManager.getConnection(«jdbc:mysql:///».String Line(include(‘config.inc’),1), String Line(include(‘config.inc’),2), String Line(include(‘config.inc’),3));
Statement stmt = con.createStatement();
ResultSet rc = stmt.executeQuery(«Select * from BUYERS where KID ='»+KID+»‘»);
Int J=printTableData(«BCOUNT», rc, 4048, true)+1;
ResultSet rd = stmt.executeQuery(«Select * from SOFT where BID ='»+BID+»‘»);
ResultSet rk = stmt.executeQuery(«Select * from KORZINA where SID ='»+KID+»‘»);
Int M=printTableData(«COST», rd, 4048, true);
Int S=printTableData(«THANKS», rk, 4048, true)+1;
Int z=m-(m%s);
String sql1;
String sql2;
sql1 = «insert into BUYERS (BCOUNT,MONEY) VALUES («‘»+J+»‘,'»+z+»‘»);
ResultSet rs = stmt.executeQuery(sql1);
String DATE=Get.Date();
sql2 = «insert into KORZINA (SID,COST,DATE,THANKS) VALUES («‘»+KID+»‘,»‘»+m+»‘,»‘»+DATE+»‘,'»+z+»‘»);
out.println(«<hr>»+ String Line(include(lang+’thanks_2buyer’),mm) +»»);
} else {
out.println(«<hr>»+ String Line(include(lang+’bad_credit’),mm) +»»);
}}%>
ГЛАВНЫЙ КОНФИГУРАЦИОННЫЙ ФАЙЛ МОДУЛЕЙ ИНТЕРНЕТ МАГАЗИНА CONFIG.INC
localhost:3306
admin
XXPASSXX
lang_rus
lang_eng
Размещено на