Системы клиент-сервер. Часть 1 Варианты построения информационных приложений и этапы компьютеризации управления в промышленности Первые автоматизированные системы организационного управления появились в промышленности еще в 70-ые годы. Компьютеризация промышленных предприятий у нас проделала огромный путь прежде, чем появилась архитектура клиент-сервер. Аппаратной базой самых первых АСУП являлись ламповые и полупроводниковые ЭВМ “Урал”, “Минск”, БЭСМ. В 80-ые годы аппаратной основой систем управления стали ЭВМ серии ЕС, мини-ЭВМ VAX и СМ. В 90-ые годы основой компьютеризации управления стали персональные ЭВМ и их локальные сети. Каждому этапу развития автоматизированных систем управления предприятию соответствовали своя господствующая архитектура приложений, свои технологии. Первой появилась централизованная архитектура, зачем архитектура локальных ПЭВМ, а потом и архитектура файл-сервер. Все варианты построения информационных приложений в той или иной степени до сих пор активно используются на практике. Поскольку все эти технологии не прошлое, а настоящее компьютеризации в промышленности, прежде чем перейти к архитектуре клиент-сервер, давайте рассмотрим их чуть подробнее. Централизованная архитектура приложений Исторически первыми появились компьютерные системы с централизованной архитектурой приложений. При использовании этой архитектуры все программное обеспечение автоматизированной системы выполняется централизованно на одном компьютере, выполняющем одновременно много задач и поддерживающем большое количество пользователей. На этом компьютере полностью осуществляется процесс ввода/ вывода информации, а также ее прикладная обработка. В качестве центрального компьютера для такой системы может применяться либо большая ЭВМ (называемая также майнфреймом) либо так называемая мини-ЭВМ. К подобному комплексу подключаются периферийные устройства для ввода/вывода информации от каждого пользователя. Вначале единственным способом общения пользователя с подобной техникой являлся так называемый пакетный режим - ввод информации осуществлялся, к примеру, с помощью пачки перфокарт. Обработав полученное задание, машина выдавала распечатку результатов работы. Во второй половине 70-ых появились устройства для диалогового взаимодействия с компьютером - терминалы. Однако, они не выполняли никаких функций, кроме вывода символов, полученных от компьютера на дисплей и передачи введенных с клавиатуры символов в компьютер. Поэтому подобное устройство получило название “dumb terminal” - дословно “тупой терминал”. Чаще всего у нас в подобных системах на предприятиях (на Западе это встречается заметно реже) взаимодействие между сотрудниками предприятия и ЭВМ осуществлялось не напрямую, а через операторов ЭВМ, которые получали исходную информацию в бумажном виде, заносили ее в компьютер, а затем передавали пользователям результаты работы программы виде распечаток. Естественно, что подобный цикл обработки информации требовал многочисленного обслуживающего персонала, занимал длительное время, порождал большое число ошибок и был очень негибким и весьма дорогостоящим. Кроме того, работа в централизованной архитектуре требовала специализированных знаний. А это создавало дополнительный барьер между управленцем и системой автоматизации и усложняло процесс ее адаптации к нуждам пользователей. Поэтому с помощью подобных систем было целесообразно автоматизировать только отдельные процессы в управлении предприятием с очень высокой трудоемкостью ручной обработки информации. К ним относились, как правило, задачи бухгалтерии, не слишком требовательные к оперативности обработки, с очень большим объемом рутинных вычислений и подготовки выходных форм. Сюда могли входить расчет заработной платы, бухгалтерский учет материальных ценностей, отгруженной продукции. Пользователи могли также осуществлять ввод информации и получение результатов обработки самостоятельно, с использованием алфавитно-цифровых терминалов. В таком варианте централизованные системы существуют и успешно функционируют до сих пор. В крупных зарубежных компаниях на майнфреймах до сих пор ведется значительная часть задач, связанных с компьютеризацией управления, прежде всего учетных. В СССР же подобные системы никогда не были широко распространены из-за малого количества и низкой надежности отечественных больших ЭВМ. Успешно работающих по сей день отечественных систем с централизованной архитектурой вообще единицы. Самая крупная из них, это всем известная глобальная система “Экспресс” для продажи железнодорожных билетов через кассы. Есть две главные причины того что системы на больших ЭВМ эксплуатируются до сих пор, несмотря на большие затраты на специализированную аппаратуру и информационные каналы для поддержания надежной связи между каждым терминалом и компьютером. Во-первых, централизованная архитектура при необходимом качестве аппаратуры и программного обеспечения очень надежна (осщбенно в плане целостности данных). Абсолютная производительность майнфреймов не уступает самым большим комплексам в архитектуре клиент-сервер. Большая ЭВМ достаточной мощности может обеспечивать устойчивую работу огромного количества пользователей одновременно. Работоспособность подобных систем проверена многолетним опытом работы. Тот же “Экспресс” одновременно обслуживает тысячи пользователей, расположенных по всей России. Доведение любой новой системы до такого же уровня потребует не один год.Во-вторых, затраты на замену подобной системы, включая прямые затраты - на замену аппаратуры и программного обеспечения и непрямые затраты - на переподготовку пользователей, перестройку инфраструктуры и изменение технологии обработки информации составляют сумму, огромную даже для крупной западной компании. Исходный текст таких систем составляет сотни тысяч и даже миллионы строк, причем эти строки писались в течение десятилетий. Для разработки приложений в подобных системах часто используется язык COBOL ( COmmon Business Oriented Language , Язык общего назначения, ориентированный на бизнес). Этот язык был разработан по заказу Пентагона еще в начале 60-ых, и был изначально предназначен для решения информационных задач, связанных с коммерческой деятельности. В течение двух десятков лет на Западе (прежде всего, в США) он являлся основным инструментом разработки систем управления производством. На нем было разработано множество информационных систем для крупных компаний, которые эксплуатируются и поныне. Поэтому в Америке программисты на COBOL'е - до сих пор одни из самых дефицитных и высокооплачиваемых специалистов по информационным технологиям. Справедливости ради, стоит заметить, что использование больших ЭВМ само по себе еще не обязательно означает использование устаревшего программного обеспечения для разработки. С одной стороны, многие системы, используемые в приложениях клиент-сервер, существуют и для централизованных платформ. Например, самая известная и распространенная у нас система управления базами данных масштаба предприятия - Oracle изначально появилась для мини-ЭВМ и майнфреймов. Программное обеспечение для этих платформ до сих пор занимают очень значительную долю среди общего числа эксплуатирующихся систем компании Oracle.С другой стороны, по мере распространения архитектуры клиент-сервер появились возможности для ее интеграции с централизованной архитектуры. Сейчас большинство фирм, выпускающих большие ЭВМ, стали предлагать решения, позволяющие использовать их в качестве серверов в архитектуре клиент-сервер. Подобные гетерогенные (разнородные) комплексы позволяют, во-первых, совместно эксплуатировать централизованные приложения и системы клиент-сервер, а во-вторых, соединяют преимущества распределенной архитектуры с надежностью майнфреймов. Персональные ЭВМ - локальные задачи Следующим значительным этапом развития компьютеризации организационного управления стали персональные ЭВМ. Появившись на Западе в начале, а у нас в конце 80-ых, этот инструмент привел к революционному расширению сферы компьютеризации управления. Компьютер из дорогостоящего и сложного в эксплуатации устройства, применяющегося в промышленности крайне редко, для решения отдельных задач, превратился в массовый инструмент для автоматизации повседневных задач конторской деятельности. По своему определению, персональный компьютер предназначен для автоматизации решения задач конкретного сотрудника. При этом между работником и инструментом автоматизации не стоит никаких посредников, а это сильно облегчает использование компьютера в текущей работе. Пользовательский интерфейс (способ взаимодействия с пользователем) для ПЭВМ намного удобней, богаче и, что самое главное, проще в освоении, чем интерфейс любой централизованной системы. Еще одним важным преимуществом персональной ЭВМ является то, что приемы взаимодействия с различным программным обеспечением однотипны или уж в любом случае похожи. Как правило, каждая их прикладных систем, разработанных в централизованной архитектуре, обладает своим уникальным интерфейсом. В то же время, при освоении новой программы для ПЭВМ можно использовать, по меньшей мере, часть знаний, полученных ранее при работе с другим программным обеспечением. ПЭВМ можно освоить самостоятельно (или почти самостоятельно), и он всегда находится под рукой, непосредственно на рабочем месте. Поэтому персональные компьютере и у нас, и на Западе, стали повсеместно применяться прежде всего для решения пользователями своих собственных, локальных задач. Наиболее активно используемыми приложениями стали электронные таблицы и текстовые редакторы. Не будет преувеличением сказать, что эти приложения используются на ПЭВМ, а том числе и в промышленности, больше всех остальных, вместе взятых. Компьютеризация подготовки документов, несомненно, снимает с конкретных исполнителей большой объем рутинной работы, создает у них понимание возможностей применения ПЭВМ как полезного и очень удобного инструмента автоматизации управления. Однако, при этом рано или поздно выясняется, что само по себе появление у сотрудников персональных ЭВМ, даже в большом количестве, еще не приводит к заметным качественным изменениям в управлении. Особенно сильно это заметно на средних и больших предприятиях. Этому есть несколько объективных причин. Одна из них в том, что настольные приложения, такие как Word и Excel, не предназначены для работы с большим объемом структурированной информации, в них достаточно трудно отображать сложные взаимосвязи между данными. Поэтому персональный компьютер может очень быстро превратиться в хранилище большого количества слабо связанных между собой разрозненных документов. При этом в них может содержаться огромное количество информации, но быстро найти нужные данные, а уж тем более, получить полную картину на основе этой информации зачастую не способен даже ее хозяин. К тому же, хранение информации в виде отдельных, не связанных друг с другом документов, может привести к появлению противоречий между ними. Например, отсутствуют надежные способы гарантировать, что итоговая сумма в одном документе соответствует расшифровке этой же суммы в другом. Конечно, для решения этой проблемы можно использовать еще один класс настольных приложений. Это специализированные системы управления базами данных для персональных ЭВМ, так называемые “настольные” СУБД. Они лучше приспособлены для работы с большими объемами структурированной информации, ее поиска, сортировки, осуществления выборок, подготовки отчетов. Еще одна проблема рассматриваемой архитектуры состоит в том, что наличие большого числа не связанных между собой ПЭВМ на отдельных рабочих местах часто вызывает такой же локальный взгляд на автоматизацию. На каждом рабочем месте решаются узкие задачи компьютеризации деятельности конкретного исполнителя. При этом часто не учитывается даже необходимость информационного взаимодействия между рабочими местами, не говоря уже о компьютеризации задач в рамках единой автоматизированной системы управления производством. Автоматизированная система управления, построенная с использованием локальных ПЭВМ, не слишком эффективно использует вычислительные ресурсы. Персональный компьютер по своей архитектуре напоминает маленький отдельно стоящий майнфрейм. Все операции полностью выполняются на одном отдельно взятом компьютере, отсутствует какое-либо разделение ресурсов между ПЭВМ. При увеличении объемов информации, обрабатываемой в системе, для того, чтобы поддерживать приемлемую производительность, приходится наращивать мощность компьютера, причем если возрастает нагрузка на несколько ПЭВМ, то необходимо модернизировать каждый из них по отдельности, а это значительные затраты. Можно, конечно, использовать персональные компьютеры для автоматизации локальных задач, для которых достаточно отдельного рабочего места. Однако, большинство задач не являются изолированными друг от друга, поскольку в системе управления предприятием всегда существует тесные связи между отдельными звеньями, горизонтальные и вертикальные. Каждый сотрудник обменивается той или иной информацией с сотрудниками своего подразделения, с другими подразделениями, с руководством и с подчиненными. При наличии изолированных друг от друга ПЭВМ, обмен данными между ними либо будет осуществляться в бумажном виде, либо на дискетах. Оба этих варианта не слишком удобны - первый вариант приведет к повторному вводу информации в компьютер. Второй, как мы уже отмечали, неудобен и неэффективен. По мере увеличения числа ПЭВМ и повышения квалификации пользователей, на предприятии все сильней осознается потребность в быстром, надежном и удобном способе оперативного обмена большими объемами данных между компьютерами, а главное, между пользователями. Это позволил бы, как минимум, передавать информацию между отдельными рабочими местами, а как максимум, решать задачи более высокого уровня, объединяя отдельные автоматизированные места в интегрированные комплексы. И, естественно, спрос породил предложение - были созданы локальные вычислительные сети и архитектура файл-сервер.Локальные вычислительные сети и архитектура файл-сервер Локальные вычислительные сети (ЛВС) предназначены для объединения отдельных вычислительных устройств. Они включают в себя ту или иную среду (чаще всего, проводную), обеспечивающую высокую скорость передачи данных, приемо-передающие устройства, осуществляющие связь между компьютером и средой, а также набор протоколов, определяющих порядок взаимодействия в сети. Расстояние между устройствами в локальных сетях, как правило, составляет десятки-сотни метров, то есть, эти технологии применяются в пределах одного здания. ЛВС обеспечивают высокую скорость информационного обмена, но само понятие “высокой скорости” сильно изменилось. Если в начале 90-ых высокой считалась скорость в 1 мегабит в секунду, то сейчас обычным считается 100 мегабит в секунду, а на подходе и 1000 мегабит/с(1 гигабит/с), что в тысячу раз больше.Чаще всего, когда в организации появляется хотя бы несколько компьютеров, возникает потребность наладить оперативный обмен информацией между ними. Поэтому вскоре после появления персональных компьютеров для их объединения были созданы локальные вычислительные сети. Этому способствовали два фактора. Во-первых, количество ПЭВМ во многих организациях и на предприятиях стало значительным, и задача высокопроизводительного оперативного обмена информацией между рабочими стала особенно актуальной. Вторым немаловажным фактором стало постоянное снижение стоимости оборудования для сетей. Это привело к тому, что создание локальной сети перестало быть непозволительной роскошью, которая была по карману не только самым богатым организациям. Вообще, развитие сетевых технологий с одновременным снижением стоимости шло ошеломляющими темпами. Наиболее легкий, дешевый и простой вариант использования программных технологий соединения компьютеров при помощи ЛВС - это одноранговая сеть. В такой сети все компьютеры равноправны друг с другом. Каждый компьютер при этом может делать свои ресурсы доступными для остальных. В качестве таких ресурсов выступают прежде всего дисковое пространство и печатающие устройства. При этом не предполагается наличие специализированного компьютера - сервера, выделенного исключительно для совместного использования. Одноранговая сеть позволяет решить проблемы передачи файлов между отдельными персональными компьютерами, а также разделения дефицитных ресурсов между несколькими пользователями. Однако, она не может быть использована для создания приложений, в которых необходим одновременный доступ к данным с нескольких ПЭВМ. Кроме того, надежность и производительность подобной сети крайне ограничена. Развитие информационных систем потребовало создания аппаратных и программных технологий для одновременного доступа к ресурсам большого числа пользователей. Для решения этой проблемы была предложена и успешно реализована, архитектура файл-сервер. На определенном этапе компьютеризации предприятия эта архитектура соответствует потребностям управления и позволяет создавать приложения, выполняющие задачи масштаба отдела. Архитектура файл-сервер предполагает наличие трех основных компонент: файлового сервера, файлового клиента и набора локальной сети для общения между ними. Файловый сервер - это комплекс аппаратных и программных средств, обеспечивающий совместный доступ к файловым ресурсам (а также к принтерам) через локальную сеть многим пользователям одновременно. Как правило, при построении файлового сервера используется специализированная аппаратура (с большим объемом оперативной памяти, быстродействующими и более надежными внешними устройствами). Файловый сервер функционирует под управлением специализированного программного обеспечения - сетевой операционной системы. В качестве стандарта де-факто на промышленных предприятиях применяется серверная операционная система Netware фирмы Novell. Файловый клиент - это набор программного обеспечения, обеспечивающий доступ к файловым ресурсам сервера (или серверов) с персонального компьютера. Клиент устанавливается на каждом рабочем месте, с которого должен осуществляться доступ к серверу. Как правило, доступ к ресурсам осуществляется прозрачно для прикладных программ, то есть для пользователя они представляются аналогичными локальным ресурсам его персонального компьютера. И наконец, для нормального функционирования файл-серверных приложений, естественно, необходима собственно локальная сеть, соединяющая между собой клиент и сервер. Работоспособность файл-серверного приложения напрямую зависит от надежности и производительности локальной сети. Как следует из самого термина файл-сервер, весь обмен между клиентскими рабочими местами и сервером осуществляется на уровне файлов. Типовые команды, которые передаются серверу в этой архитектуре - это открыть файл, прочитать определенное число байт их файла, записать в файл определенное число байт, закрыть файл. При этом сервер не обладает никакой информацией о содержимом файлов, поэтому всю обработку данных производит клиент. Это негативно на производительность системы. Использование архитектуры файл-сервер для любого предприятия является большим шагом вперед по сравнению с отдельными локальными ПЭВМ. Прежде всего, файл-сервер дает саму принципиальную возможность создания многопользовательских приложений, в которых доступ к одним и тем же данным осуществляется одновременно более чем с одного рабочего места. Во-вторых, поскольку улучшение сервера повышает производительность работы с любого клиентского места, эта архитектура более эффективна с точки зрения модернизации системы. Как правило, файл-сервер обладает специальными средствами, повышающими надежность хранения данных на сервере и уменьшающими вероятность потери информации после программного или аппаратного сбоя. И наконец, в архитектуре файл-сервер повышается безопасность системы, поскольку, как правило, сервер позволяет предоставлять различный уровень доступа к системе для разных пользователей. Как правило, при подключении клиента к серверу запрашивается имя и пароль, в зависимости от этого предоставляется соответствующий набор доступных ресурсов. Стоит заметить, что, поскольку в архитектуре файл-сервер впервые появляются клиент и сервер, то, строго говоря, в ней тоже используются клиент-серверные технологии, если брать самое широкое значение этого термина ( об этом мы будем говорить чуть позже). Однако, из-за того, что взаимодействие клиента и сервера осуществляется на слишком низком уровне - уровне файлов, в информационных приложениях, созданных в этой архитектуре, вся обработка данных ведется на клиенте. Для создания файл-серверных приложений, как правило, используются те же инструменты, что и для создания локальных приложений. На определенном этапе развития информационной системы предприятия архитектура файл-сервер является наиболее естественной. Она позволяет создать на предприятии автоматизированные комплексы масштаба отдела. Эти комплексы состоят из рабочих мест. Данные задач хранятся на сервере, как набор файлов, к которым осуществляется доступ со всех рабочих мест отдела. В архитектуре файл-сервер можно частично автоматизировать и обмен данными между различными отделами посредством передачи файлов. Однако, архитектура файл-сервер обладает целым рядом принципиальных ограничений. Это ограничения по числу одновременно работающих приложений - с их ростом резко возрастает нагрузка на сеть. Это потенциальные проблемы с сохранностью данных при одновременном внесении изменений с разных мест. Это ограничения по сложности операций по обработке данных, поскольку вся она осуществляется на клиенте. Это, наконец, принципиальная невозможность гарантировать со стороны сервера целостность информации в базе данных, поскольку их обработка осуществляется каждым клиентом по отдельности. На определенном этапе развития информационной системы предприятия все эти ограничения становятся принципиально важными. Как правило, этот скачок происходит при переходе к решению в рамках автоматизированной системы задач масштаба предприятия. При этом встает задача перехода к архитектуре клиент-сервер. Архитектура клиент-сервер Подробно о том, что такое технологии и архитектура клиент-сервер, и почему они способны помочь при росте информационных систем на предприятии, мы поговорим ниже. Здесь же мы кратко опишем принципиальные архитектурные различия этой системы с файл-серверной, которая на сегодняшний день наиболее распространена в промышленности. Как и для файл-серверной архитектуры, составными компонентами клиент-серверной архитектуры являются сервер, клиентские места и сетевая инфраструктура. Однако, в отличие от предыдущего случая, сервер здесь является уже не сервером файлов, а сервером баз данных или даже сервером приложений. Таким образом, на сервер ложится не просто хранение файлов, а поддержание базы данных в целостном состоянии или, в случае сервера приложений, даже выполнение той или иной части прикладной задачи. Естественно, что требования к серверу при этом могут возрастать в разы. С другой стороны, то, что сервер обладает информацией о характере хранимой базы данных, позволяет намного увеличить эффективность обработки. Поэтому для многих задач автоматизации нагрузка на сервер за счет более оптимального выполнения операций над данными по сравнению с аналогичными файл-серверными приложениями может даже уменьшиться. Соответственно, общение между клиентом и сервером происходит не на уровне файлов, а на уровне обмена запросами. Клиент передает серверу высокоуровневые запросы на получение той или иной информации либо на ее изменение, а сервер возвращает клиенту результаты выполнения запросов. При этом, в отличие от файл-серверной архитектуры, доступ к данным не является прозрачным для пользовательской программы. Поэтому, технология разработки таких приложений принципиально отлична от локальных и файл-серверных систем. На современном этапе сетевое обеспечение для архитектуры клиент-сервер аналогично файл-серверной. Клиент-серверные системы могут строиться с использованием тех же сетевых технологий и на той же сетевой инфраструктуре. Более того, как правило, на предприятии мирно сосуществуют обе эти архитектуры. Это вызвано двумя основными причинами. Во-первых, что на любом предприятии много задач, связанных с хранением и обменом документами, которые представляют собой отдельные файлы, а для них архитектура файл-сервер оптимальна. Во-вторых, файл-серверные задачи в том или ином объеме почти всегда сохраняются в том или ином объеме и эксплуатируются наряду с создаваемыми клиент-серверными приложениями. С точки зрения сетевого взаимодействия принципиально новым в приложениях клиент-сервер является возможность перехода к использованию глобальной сети. Скорость обмена в такой сети может быть на порядок ниже, а расстояния между рабочими местами могут достигать километров и даже десятков километров. Это осуществимо, поскольку в приложениях клиент-сервер объем передаваемой информации может быть радикально сокращен за счет использования высокоуровневых запросов к данным. Но главным изменение, которое может быть осуществлено промышленным предприятием при переходе к клиент-серверной архитектуре - это качественный скачок в масштабах задач, решаемых при компьютеризации, в том, насколько комплексно автоматизируется управление производством, в уровне целостности и достоверности данных, хранимых в информационной системе. Следует отметить, что появление клиент-серверных приложений на предприятии - процесс трудный и часто болезненный. Причем, помимо решения технических и финансовых проблем, при этом переходе очень важно осуществить изменение самого уровня управления, что влечет за собой огромную организационную работу. |