Взаимодействие программ в информационных системах
Сказанное выше относилось к технологиям разработки отдельных программ. Но в настоящее время программы, как правило, должны являться частью некоторой информационной системы (ИС),т.е. функционировать не сами по себе, а во взаимодействие с большим количеством других программ.
Также программы должны уметь «использовать» другие программы и системы, разработанные сторонними организациями. Например, ваша программа может подготовить некоторый отчетный документ в формате Microsoft Word, и этот документ будет доступен на всех компьютерах, на которых установлен Word (но на которых может не быть вашей программы).
Аналогично, можно из прикладной программы создать итоговые чертежи в формате распространенных графических систем (например, в формате AutoCAD или Corel Draw). В этом случае один из основных вопросов — организация взаимного общения программ друг с другом и с источником данных. В качестве последнего в ИС выступают базы данных (БД), вместе с системой управления базами данных (СУБД).
Видеолекция Назначение, возможности и функции операционных систем
Программы, работающие в составе ИС, получают информацию из БД, к которым имеют доступ и другие программы. В этом случае естественным образом создается возможность взаимосвязи приложений через данные. Например, одна программа записывает результаты своей работы, а другая использует их как начальные данные для своей работы. Этот простейший уровень взаимосвязи требует одного — унификацию данных и форматов их хранения. Для целей унифицированного доступа к данным используются специальные языки, например SQL (Structured Query Language — язык структурированных запросов).
Но во многих случаях этого простейшего механизма общения недостаточно для современной ИС — например, программа не должна ожидать, когда кем-то будет запущена другая программа — поставщик данных. Необходимо иметь возможность запускать из одной программы другую, передавая при этом ей управляющую информацию. Запуск основного приложения порождает в среде операционной системы процесс, для которого операционная система выделяет необходимые ресурсы компьютера (память и время процессора). Дочерняя программа может выполняться как в адресном пространстве вызвавшей ее программы, так и в собственном адресном пространстве и в другом потоке.
Однако часто требуется обмен информацией между программами, выполняющимися одновременно (параллельно). Желательно, чтобы этот обмен не зависел от языка программирования, на котором написаны разные программы, а в сетевых системах не зависел и от операционных систем, установленных на разных компьютерах. Яркий пример подобной организации взаимосвязи — Интернет, в глобальную сеть соединены компьютеры с различными операционными системами (Windows, Unix, Solaris, сотовые телефоны и др.).
Простейшими средствами параллельного общения вначале были файлы совместного доступа, или разделяемые файлы (файлы, к которым могут иметь одновременный доступ несколько программ), которые появились еще на заре Windows. Также ранним средством является буфер обмена ClipBoard, доступный практически всем приложениям Windows, в котором можно временно хранить для передачи другим программам информацию различного формата — текстовую, графическую и т.п. Несколько позже для межпрограммного взаимодействия использовалась технология DDE — динамический обмен данными. Сегодня актуальность DDE ниже из-за появления новых технологий, а использование БД, буфера обмена и разделяемых файлов как простейшего варианта межпрограммного взаимодействия остается актуальным.
Сетевое взаимодействие и сетевые программы: как правильно и эффективно наладить работу?
Позднее появилась технология связывания и внедрения объектов OLE1 (Object Linking and Embedding). Благодаря OLE1 появилась возможность создавать составные документы (например, в документ Word вставлять таблицу Exel, при ее редактировании из Word используются возможности Exel). На смену ей пришла технология OLE2, позволяющая различным программам предоставлять друг другу свои функции (сервис). Программа, предоставляющая свои функции, называется сервером, а программа, их использующая — клиентом. В этой технологии одна программа может не просто вызвать другую, но использовать ее отдельные функции.
Следующим шагом на пути совершенствования межпрограммного обмена явилась технология компонентной модели объектов (СОМ — Component Object Model). Эта технология заключается в стандартизированном описании служб программы, к которым она дает доступ другим программам. В технологии СОМ неважно, на каких языках написаны программы и где они выполняются: в одном потоке, в разных потоках, на разных компьютерах. Расширение этих возможностей дает технология DCOM — распределенная модификация СОМ. Отметим, что СОМ подразумевает взаимосвязь на уровне специальных объектов, структура которых во многом схожа с рассмотренными ранее объектами внутри одной программы.
Необходимо сказать о еще одной стремительно развивающейся технологии — Интернет. В Интернете располагаются и базы данных, и серверы, с которыми общаются приложения пользователя.
Источник: studopedia.ru
Взаимодействие программных систем
В этой статье я поговорю об связях между программами. Связи между программами или, выражаясь иначе, взаимодействие программ друг с другом в подавляющем большинстве случаев заключается в получении данных одной программой от другой. Например, программа электронных торгов может запрашивать у какой-то другой программы курс валют.
Или текстовому редактору может передавать введенный пользователем текст операционная система, используя драйвер клавиатуры. Программы могут предоставлять набор функций для взаимодействия – API. Или даже иметь целые механизмы взаимодействия, называемые протоколами, когда используется множество последовательных вызовов функций, например, для сложного согласования каких-либо параметров. Большим шагом вперед является создание универсальных структур – XML и Json. Программы могут взаимодействовать с другими программами и «невежливым» способом — без протоколов и открытых API: парся данные страницы в случае грабберов, внедряясь в исполняемые файлы как вирусы или, наоборот, убивая их в случае антивирусов.
В информационных технологиях, подобно экосистемам живой природы, наблюдается очень сильное взаимное влияние программных систем друг на друга и, вообще говоря, оно может быть двух видов:
- Во-первых, система может использовать нижележащий слой по уровню иерархии (при этом, как правило, слои, расположенные выше не влияют на нижележащие).
- Во-вторых, система может взаимодействовать с другой системой на том же уровне иерархии, используя различные интерфейсы.
Кроме этого, по характеру взаимодействующих программ взаимодействие может быть двух видов: взаимодействуют разные части или одинаковые. Наблюдения показывают, что в первом случае, их количество может быть относительно небольшим – например, с десяток органов в организме или несколько составляющих компьютера, а если слагаемые одинаковые, то обычно их очень много: клеток в органе, транзисторов в процессоре, людей в цивилизации, программы тоже состоят из миллионов машинных команд нескольких десятков видов. При этом каждая машинная команда, клетка, каждый транзистор или каждый нейрон в нейронной сети выполняет очень простую функцию. Можно предположить, что в основе любой вещи, любой системы в самом основании лежат именно такие простые базовые составляющие.
Отличие от живой природы в том, что системы на разных уровнях достаточно независимы и могут продолжать работать при смене нижележащего слоя на другой: так, веб-сайт будет продолжать открываться если Вы смените витую пару Ethernet на Wifi.
В общем случае, взаимодействие программных систем может быть нескольких видов:
-
Построена на «инфрастурктуре» (например, на операционной системе или на какой-либо платформе – например, IBM Notes, или внутри социальной сети).
Часто программы позволяют расширять свою функциональность: текстовые редакторы и электронные таблицы позволяют создавать макросы, браузеры – добавлять расширения, все CMS – дополнять их сторонними компонентами и плагинами. Некоторые программы идут дальше по этому пути и по сути являются платформами для запуска других приложений: например, браузеры или ibm lotus notes.
Сама операционная система – это программа, единственное назначение которой — существование других программ. Она упрощает их существование, изолирует от железа, предоставляет возможность использования графического интерфейса и даёт доступ к сети, её цель – обеспечить работу другим программам.
При этом и операционные системы, и платформы, и даже CMS, которые ставят из-за единственного компонента, во многих случаях гораздо сложнее той программы, ради которой их используют, они могут включать множество самых различных обеспечивающих работу функций: разделять ресурсы, предоставлять механизм авторизации, упрощать обращение к базе данных. Это происходит и за счёт своей универсальности (например, операционная система Windows содержит несколько подсистем Win32, OS/2) для обеспечения работы для всех возможных программ.
Универсальность всегда приводит к дополнительной сложности. Это касается и тех компонент, которые программисты используют при написании программы, они гораздо сложнее и обладают гораздо большим набором функций, многие из которых не требуются и не используются. Программы часто вынуждены обеспечивать обратную совместимость – так, в Windows можно было запускать DOS-приложения. При взаимодействии систем, возможно возникновение нескольких интересных эффектов.
Первый из них называется синергия и его идея в том, что слагаемое больше, чем просто сумма слагаемых. То есть если Вы к одной технологии добавите какую-то другую, то при синергии получившаяся технология будет превосходить как первую, так и вторую. И это может быть качественно другой продукт.
То есть, если Вы к компьютеру с программой добавите железный скелет, то получите робота, который больше и чем железка, и чем компьютер. Взаимодействие большого количества простых вещей может приводить к каким-то сложным взаимодействиям. Сумма простых вещей даёт сложную – набор транзисторов создаёт компьютер, набор атомов создаёт предмет, клетки в организме создают органы. Сумма людей – цивилизация – это не просто семь млрд. человек, это что-то большее.
Вторую мысль озвучил Питер Норвиг в докладе Everything is Miscellaneous. Она показалась мне удивительной: если Вы посмотрите на отдельно взятого шимпанзе и отдельно взятого человека, то увидите, что между ними много общего.
Ну, то есть понятно, что шимпанзе немного сильнее, человек немного умнее, но в целом, их внешний вид немного похож, их физические и даже пусть с большой натяжкой интеллектуальные возможности сопоставимы. Но теперь если Вы взглянете на культуру шимпанзе и культуру человечества, то увидите колоссальную разницу. Цивилизацию людей даже нельзя сопоставить с цивилизацией шимпанзе. Почему-то это напомнило мне о том, что 0.99 и 1.01 вроде бы не сильно отличаются, но при возведении в какую-нибудь большую степень одно число будет стремиться к нулю, а другое – к бесконечности.
Для тех, кто просто пролистал до конца: взаимодействие программ может быть различных типов и его результат может приводить к принципиально новому уровню программной системы. Целое не всегда отражает то, что происходит в составных частях. Спасибо за внимание!
Источник: habr.com
Средства взаимодействия в информатике принято называть интерфейсом
Информатика — наука об информации и технических средствах ее сбора, хранения, обработки, передачи.
Кратко можно сказать, что информатика = информация + автоматика.
Термин «информатика» происходит от французского слова Informatique и образован из двух слов: информация и автоматика. Этот термин введен во Франции в середине 60-х лет XX ст., когда началось широкое использование вычислительной техники. Тогда в англоязычных странах вошел в употребление термин «Computer Science» для обозначения науки о преобразовании информации, которая базируется на использовании вычислительной техники. Теперь эти термины являются синонимами.
Информатика молодая наука, ей нет еще и 100 лет. И зарождение теоретических основ информатики, и появление первых ЭВМ относятся к середине XX века.
Информатика также многогранна, как и одна из древнейших наук математика. Математика объединяет в себе такие достаточно разнящиеся разделы, как: алгебра, геометрия, теория множеств, интегральное и дифференциальное исчисление и т.д. Структура современной информатики может быть схематично представлена так:
Рис. 1. Основные разделы информатики.
Появление информатики обусловлено возникновением и распространением новой технологии сбора, обработки и передачи информации, связанной с фиксацией данных на машинных носителях.
Информатика — это комплексная, техническая наука, которая систематизирует приемы создания, сохранения, воспроизведения, обработки и передачи данных средствами вычислительной техники, а также принципы функционирования этих средств и методы управления ними.
Предмет информатики как науки составляют:
- аппаратное обеспечение средств вычислительной техники;
- программное обеспечение средств вычислительной техники;
- средства взаимодействия аппаратного и программного обеспечения;
- средства взаимодействия человека с аппаратными и программными средствами.
Средства взаимодействия в информатике принято называть интерфейсом.
Поэтому средства взаимодействия аппаратного и программного обеспечения иногда называют также программно-аппаратным интерфейсом, а средства взаимодействия человека с аппаратными и программными средствами — интерфейсом пользователя.
Основной задачей информатики как науки — это систематизация приемов и методов работы с аппаратными и программными средствами вычислительной техники. Цель систематизации состоит в том, чтобы выделять, внедрять и развивать передовые, более эффективные технологии автоматизации этапов работы с данными, а также методически обеспечивать новые технологические исследования.
Информатика — практическая наука. Ее достижения должны проходить проверку на практике и приниматься в тех случаях, если они отвечают критерию повышения эффективности.
На всех этапах технического обеспечения информационных процессов для информатики ключевым вопросом есть эффективность. Для аппаратных средств под эффективностью понимают соотношение производительности оснащение к его стоимости. Для программного обеспечения под эффективностью принято понимать производительность работающих с ним пользователей.
В программировании под эффективностью понимают объем программного кода, созданного программистами за единицу времени. В информатике всю жестко ориентированное на эффективность. Вопрос как осуществить ту или другую операцию, для информатики важный, но не основной. Основным есть вопрос как совершить данную операцию эффективно.
Российский академик А.А. Дородницин выделяет в информатике три неразрывно и существенно связанные части — технические средства, программные и алгоритмические.
Технические средства, или аппаратура компьютеров, в английском языке обозначаются словом Hardware, которое буквально переводится как «твердые изделия».
Для обозначения программных средств, под которыми понимается совокупность всех программ, используемых компьютерами, и область деятельности по их созданию и применению, используется слово Software (буквально — «мягкие изделия»), которое подчеркивает равнозначность самой машины и программного обеспечения, а также способность программного обеспечения модифицироваться, приспосабливаться и развиваться.
Программированию задачи всегда предшествует разработка способа ее решения в виде последовательности действий, ведущих от исходных данных к искомому результату, иными словами, разработка алгоритма решения задачи. Для обозначения части информатики, связанной с разработкой алгоритмов и изучением методов и приемов их построения, применяют термин Brainware (англ. brain — интеллект).
В настоящее время информатика и ее практические результаты становятся важнейшим двигателем научно-технического прогресса и развития человеческого общества. Скорость развития средства обработки и передачи информации поразительна, в истории человечества этому бурно развивающемуся процессу нет аналога. Сведения, касающиеся прикладной области быстро устаревают.
На смену одним технологиям приходят другие, более совершенные и более сложные. Специалисты в области информационных технологий должны непрерывно обучаться и повышать свою квалификацию. Однако, иметь теоретические и практические знания в области информатики в наше время стало необходимостью для всех, потому что общество, в котором мы живем, является информационным обществом.
Тип общества определяется по тому, в какой сфере занята большая часть населения. Человеческое общество в своем эволюционном развитии прошло следующие стадии:
— первобытное (охота и собирательство);
— аграрное (земледелие и скотоводство);
— индустриальное (промышленное производство);
— информационное (информационное производство).
Сегодня налицо все признаки информационного общества:
— информационная и сетевая грамотность населения;
— превращение информации в товар;
— доступность населению баз данных и знаний (в том числе сети Интернет);
— информатизация основных систем общества.
Источник: mydocx.ru
Введение
Взаимодействие оператора с вычислительной машиной является важным звеном вычислительного процесса при решении различных прикладных задач как научного, так и производственного плана. Создание программ в области организации рыночных отношений при создании информационных сайтов различных организаций и предприятий, при создании программ управления производственными процессами, учета выпускаемой продукции и ее реализации, управления качеством и даже при такой задаче, как сортировка электронной почты секретарем, требуется разработка удобного для пользователя взаимодействия с ЭВМ.
Определение интерфейса.
В общем, интерфейс (interface) – это совокупность логических и физических принципов взаимодействия компонентов технических средств вычислительной системы (ВС), т. е. совокупность правил алгоритмов и временных соглашений по обмену данными между компонентами ВС (логический интерфейс), а также совокупность физических, механических и функциональных характеристик средств подключения, реализующих такое взаимодействие (физический интерфейс).
Интерфейс нередко называют также технические и программные средства, реализующие сопряжение между устройствами и узлами ВС.
Интерфейс распространяется на все логические и физические средства взаимодействия вычислительной системы с внешней средой, например с операционной системой, с оператором и т.п.
Виды интерфейсов
Интерфейсы различают по таким характеристикам, как структура связей, способ подключения и передачи данных, принципы управления и синхронизации.
- Внутримашинный интерфейс – система связи и средств сопряжения узлов и блоков ЭВМ между собой. Внутримашинный интерфейс представляет собой совокупность электрических линий связи (проводов), схем сопряжения с компонентами компьютера, протоколов (алгоритмов) передачи и преобразования сигналов.
Различают два варианта организации внутри машинного интерфейса: — многосвязный интерфейс, при котором каждый блок ПК связан с другими блоками своими локальными проводами; — односвязный интерфейс, в результате которого все блоки ПК связаны друг с другом через общую или системную шину. 2. Внешний интерфейс – система связи системного блока с периферийными устройствами ЭВМ или с другими ЭВМ Здесь можно выделить также несколько типов внешнего интерфейса: — интерфейс периферийных устройств, подключаемых с помощью шин ввода-вывода (ISA, EISA, VLB, PCI, AGP, USB IEEE 1384 SCSI и др.); — сетевой интерфейс, типа одноранговой сети или сети клиент-сервер с топологиями типа звезда, кольцевая или шинная. 3.Интерфейс «человек-машина» или интерфейс «человек-компьютер» или пользовательский интерфейс– это способ, которым вы выполняете какую-либо задачу с помощью каких-либо средств (какой-либо программы), а именно совершаемые вами действия и то, что вы получаете в ответ. Интерфейс является ориентированным на человека, если он отвечает нуждам человека и учитывает его слабости. Машинная часть интерфейса – часть интерфейса, реализованная в машине (аппаратно-программной ее части) с использованием возможностей вычислительной техники. Человеческая часть интерфейса – это часть интерфейса, реализуемая человеком с учетом его возможностей, слабостей, привычек, способности к обучению и других факторов. Наиболее распространенные интерфейсы определены государственными и международными стандартами. В дальнейшем изложении будет рассматриваться только интерфейс пользователя. Классификация интерфейсов пользователя Как было указано выше интерфейс – это, прежде всего набор правил, которые можно объединить по схожести способов взаимодействия человека с компьютером. Различают три вида интерфейсов пользователя: командный, WIMP и SILK – интерфейсы. Взаимодействие перечисленных интерфейсов с операционными системами и технологиями показано на рис.1: Рис. 1. Взаимодействие интерфейсов пользователя их технологий и операционных систем. 1. Командный интерфейс, при котором взаимодействие человека с компьютером осуществляется путем подачи компьютеру команд, которые он выполняет и выдает результат пользователю. Командный интерфейс может быть реализован в виде пакетной технологии и технологии командной строки. В настоящее время пакетная технология практически не используется, а технология командной строки можно встретить в виде резервного способа общения человека с компьютером. Пакетная технология. Исторически этот вид технологии появился первым на электромеханических вычислительных машинах К. Цюзе, Г. Айкина, а затем на электронных вычислительных машинах Эккерта и Моучли, на отечественных ЭВМ Лебедева, Брусенцова, на ЭВМ IBM-360, на ЕС ЭВМ и так далее. Идея его проста и состоит в том, что на вход компьютера подается последовательность программ, набитых, например, на перфокартах и последовательность символов, определяющих порядок выполнения этих программ. Человек здесь имеет малое влияние на работу машины. Он может лишь приостановить работу машины, сменить программу и снова запустить ЭВМ.
Источник: studfile.net