- •Структуризация моделей программ (продолжение) Структуризация алгоритмических моделей
- •Вопрос 1.
- •Структуризация функциональной модульной структуры
- •Командный язык ос
- •Отступление 1: понятие интерфейса
- •Вопрос 10. Поуровневая структуризация распределенных систем:
- •Отступление 2: Стандартизация в программной индустрии
- •Вопросы для обсуждения
Вопрос 10. Поуровневая структуризация распределенных систем:
Уровень
N
Уровень
1
Уровень
0
Уровень
0
Уровень
1
Уровень
N
. . .
. . .
Протоколы одноименных уровней
Канал связи
Межуровневые интерфейсы
Рис.6-8
Некоторые виды программно-реализуемых протоколов:
RPC – Remote Procedure Call – удаленный вызов процедур
FTP – File Transfer Protocol - протокол пересылки файлов
TCP/IP - стек протоколов передачи по Интернету
Отступление 2: Стандартизация в программной индустрии
Стандартизуются языки программирования, форматы данных (файлов, сообщений), интерфейсы операционных систем и системных ПП и протоколы компьютерных сетей.
Виды стандартов: де-факто (стандарт лидирующего производителя, напр. DXF), стандарты консорциумов производителей (OSF,..), общественных (IEEE, W3,...), государственных (ANSI,…) и международных (ISO, MKTT) организаций.
Наиболее болезненный - процесс стандартизации различных API. Чтобы сделать его более упорядоченным, появилось движение Открытых Систем - в основном для Unix-платформ. Термин "Открытая" понимается в нескольких смыслах:
Открытая для подключения, стыкуемости и переносимости приложений
Общедоступная: открытые, публикуемые спецификации
Открытый, демократический согласительный процесс стандартизации
(не путать с движением Открытых Исходных Текстов - на базе Linux.)
Примеры открытых стандартов:
OSI (Open Systems Interconnection) - 7-уровневая модель протоколов вычислительных сетей (ISO, 1980 г.)
POSIX (Portable Operating System Interfaces) - стандартный Unix (IEEE, 1992 г.)
Примеры эксплуатации термина "открытый": Open GL (SGI, 1993), ODBC (Open Database Connectivity; Microsoft, 1991).
Вопросы 11-12.
Вопросы для обсуждения
Предложите идею алгоритма преобразования любой блок-схемы в структурную, т.е. решающего ту же задачу, что и метод Ашкрофта-Манна.
Почему язык ассемблера не структурен в принципе ? Каким образом возможно (и делается) его превращение в структурный язык?
Каковы функции современной системы программирования, например, MS C++ ?
Каков наилучший русский эквивалент термина interface ?
Почему язык программирования нельзя считать интерфейсом, а входной язык системы программирования - можно ?
Перечислите стандартные элементы (свойства, правила) интерфейса мыши в Windows-подобных продуктах.
Интерфейс командной строки в последние годы повсеместно сменился на графический UI. Назовите другие современные продвинутые формы UI.
Почему излишнее знание сторон интерфейса друг о друге вредно ?
В чем польза лаконичности И ? Какие черты современных UI ей способствуют ?
В чем, по-вашему, заключается этимология (происхождение слова) термина «протокол» ?
Почему стандарты считаются одновременно двигателем и тормозом прогресса?
Приведите примеры известных вам стандартов в области Software.