Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Причины успеха Интернета





Почему же Интернет приобрел столь широкую популярность? Почему его не постигла участь, например, промежуточного программного обеспечения? Данному феномену видится несколько причин.

Во-первых, инфраструктура типа Интернет оказалась востребованной широчайшим кругом пользователей.

Во-вторых, в Интернет заложены «генетически» правильные технические решения, позволяющие интегрировать различные информационные ресурсы, развивать, наращивать и переконфигурировать систему (открытую систему) мирового масштаба. В этом смысле следует особо выделить протоколы TCP/IP, в частности, IP-протокол и его IP-адрес. Принципиальное свойство Интернета заключается в его децентрализованости, обеспечивающей живучесть и устойчивость.

В-третьих, предоставляемая пользователям инфраструктура, базовые технологии и инструментарий доступны и просты в использовании. Пользователи (коммерческие и некоммерческие) сами наполняют Сеть ресурсами, наращивают и конфигурируют ее (привлечение сторонних разработчиков).

В-четвертых, все базовые стандарты Интернет, в частности, протоколы, полностью открыты и бесплатны. Гарантируется, что ни коммерческий, ни государственный, ни какой другой субъект не будет владеть правами на эти стандарты.

В-пятых, базовые технологии Интернета успели созреть до того момента, когда коммерческие организации начали проявлять к нему интерес. Технологии изначально развивались в военном ведомстве США, затем в университетах, т.е. в достаточно узкой, высококвалифицированной среде, сконцентрированной на достижении именно технического результата, а не коммерческого (т.е. в атмосфере доверия и сотрудничества). Когда Интернет был открыт для всеобщего использования, его базовые технологии были восприняты, как данность, а противостояние коммерческих компаний происходило уже на другом уровне[32], например, на рынке браузеров (известном, как война браузеров). Вполне вероятно, что если бы базовые технологии разрабатывались конкурирующими коммерческими организациями, то мы до сих пор не имели бы единой, столь эффективной и успешной инфраструктуры.

Последний тезис неочевидный и неоднозначный. Можно привести немало примеров, когда при всех благоприятных условиях, в отсутствии конкуренции проекты не оправдывали полагавшихся на них надежд. В то же время аналогичные проекты, развивавшиеся в условиях жесткой конкуренции и при недостатке средств, показывали лучшие результаты.

Выводы

Беглый и поверхностный обзор технологий проектирования не может передать всего многообразия идей и решений, использовавшихся и используемых при разработках сложных систем. Тем не менее, самые эффективные решения прошли жесткий эволюционный фильтр и стали общепринятыми. В данной работе проводилась попытка выделить именно такие общепринятые решения и принципы. Еще раз кратко перечислим наиболее значимые из них.

Основополагающее правило – максимальное использование накопленного опыта. Данное правило проявляется в разных формах: непосредственное или косвенное привлечение к разработке специалистов, автоматизация, многократное повторное использование собственных и сторонних удачных решений, прототипов, компонент, технологий, инструментария, документации, обучении и пр.

Многообразие используемых в проекте сложной системы средств, компонент и технологий порождает одну из самых сложных проблем – проблему их увязки в единое целое. Ключевую роль здесь играют: разделение труда, декомпозиция, агрегирование, структура, инфраструктура и архитектура системы, общесистемные ресурсы, интерфейсы и стандарты. Наиболее ярко разделение технологий проявляется в многослойных архитектурах.

Система серьезного масштаба не может родиться в одночасье. Соответственно, грамотно спроектированная система продолжает развиваться и после сдачи в эксплуатацию посредством наращивания, переконфигураций, модификаций, модернизаций и т. д. Как показывает мировая практика, наиболее эффективными в этом смысле оказываются открытые системы со слабой связностью компонент, в частности, сервис-ориентированные архитектуры (яркий пример открытой системы – Интернет).

Организация процесса разработки также играет важную роль в успехе проекта. В зависимости от конкретных условий и решаемой задачи подходящий процесс разработки может варьироваться от предельно формализованного до минимально контролируемого. Поскольку ключевыми участниками процесса являются разработчики, т.е. люди, то немаловажную роль играют человеческие отношения, сплоченность команды, мотивация разработчиков, выражающаяся не только в денежном вознаграждении. Какими бы совершенными ни были используемые технологии, самым главным ресурсом любого проекта и любой проектной фирмы являются ее специалисты.

Литература

1. Александреску А. Современное проектирование на С++. – М.: Вильямс, 2008. 336 с.

2. Басс Л., Клементс П., Кацман Р. Архитектура программного обеспечения на практике. 2‑е издение. – СПб.: Питер, 2006. 575 с.

3. Брукс Ф. Мифический человеко-месяц, или как создаются программные системы. – СПб.: Символ-Плюс, 2010. 304 с.

4. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. – СПб.: Питер, 2008. 366 с.

5. Гома Х. UML. Проектирование систем реального времени, параллельных и распределенных приложений. – М.: ДМК Пресс, 2011. 704 с.

6. Гринфилд Дж., Шорт К. и др. Фабрики разработки программ. Потоковая сборка типовых приложений, моделирование, структуры и инструменты.
– М.: Диалектика-Вильямс, 2007. 592 с.

7. Коплиен Дж. Программирование на C++. – СПб.: Питер, 2005. 408 с.

8. Макконнелл C. Совершенный код. – СПб.: Питер, 2005. 896 с.

9. Таненбаум Э., Стеен М. Распределенные системы. Принципы и парадигмы.
– СПб.: Питер, 2003. 877 с.

10. Фаулер М. Рефакторинг. Улучшение существующего кода. – СПб.: Символ-Плюс, 2003. 432 с.

11. Шмидт Д., Хьюстон С. Программирование сетевых приложений на С++. Том 1. Профессиональный подход к проблеме сложности: АСЕ и паттерны.
– М.: ООО «Бином-Пресс», 2007. 304 с.

12. Шмидт Д., Хьюстон С. Программирование сетевых приложений на С++. Том 2. Систематическое повторное использование: АСЕ и каркасы.
– М.: ООО «Бином-Пресс», 2007. 400 с.

13. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. – СПб.: Питер, 2002. 496 с.

14. Boehm B. Software Engineering. Englewood Cliffs, N.J.: Prentice Hall, 1981.

15. Brooks F. No Silver Bullet – Essence and Accidents of Software Engineering. Proceedings of the IFIP 10-th World Computing Conference, pp. 1069-1076, 1986 (издана на русском языке в сборнике [3]).

16. Henning M. The Rise and Fall of CORBA, ACM Queue, Volume 4, Number 5, June 2006 (перевод: С. Кузнецова на http://citforum.ru/SE/middleware/corba_history).

17. Schmidt D. et al, Pattern Oriented Software Architecture: Patterns for Concurrent and Networked Objects, Volume 2. Wiley, 2000.

 


[1] В полном виде стандарт OSI не нашел широкого применения. Наибольшее распространение получил стек протоколов TCP/IP, который стал стандартом de facto. В данном контексте важнее то, что TCP/IP имеет подобную многослойную структуру.

[2] Первым объектно-ориентированным языком считается Simula. В нем реализованы почти все идеи ООП. Однако эти идеи не были оценены по достоинству в то время (конец 60х годов прошлого столетия).

[3] Незначительные улучшения языка программирования, повышающие его выразительность, называют иногда синтаксическим сахаром.

[4] Тот факт, что объектно-ориентированный подход годится не только для моделирования программных продуктов, но и для социальных, организационных, физических и др. приложений, подтверждает правильность заложенных в него идей.

[5] Часто в данном контексте слово pattern переводят с английского, как шаблон. Такой перевод представляется не совсем удачным, поскольку слово шаблон ассоциируется с автоматической генерацией кода, точно соответствующей данному шаблону. Однако сами авторы книги говорят, что паттерны – это всего лишь примеры, приближенные образцы решений типовых проблем. В конкретных приложениях используется только идея образца, а не точная его копия.

[6] Питер Илес. Что такое архитектура программного обеспечения? http://www.ibm.com/developerworks/ru/library/eeles/

[7] В среде программистов распространена шутка, которая имеет значительную долю правды: «Любая проблема в программировании решается введением дополнительного уровня косвенности, кроме проблем слишком большого числа уровней».

[8] Байт-код называется так потому, что длина каждого кода операции – один байт. Код команды может иметь большую длину, т.к. кроме кода операции включает дополнительные параметры: регистры, адреса памяти.

[9] Имеется ввиду реализация конкретной версии компилятора, например, текущей версии.

[10] Впервые виртуальная машина и байт-код были использованы в языке Smalltalk, как и другие идеи, которые впоследствии завоевали популярность: шаблоны проектирования, рефакторинг, CRC-карты, экстремальное программирование, динамическая типизация, сборка мусора, JIT-компиляция и пр. Несмотря на то, что Smalltalk так и остался экспериментальным языком, его идеи внесли огромный вклад в развитие программной индустрии.

[11] Байт-код оказался столь удачной абстракцией, что его в явном или неявном виде используют практически все современные интерпретируемые языки программирования: Perl, Ruby, Python, PHP. Многие компилируемые языки также могут компилироваться в байт-код.

[12] Хотя существуют реализации.NET для ОС, отличных от Windows (Mono, DotGNU), пока эти реализации не нашли широкого применения, кроме того, имеются юридические проблемы их распространения. Пользователи.NET оказываются тесно привязанными к платформе Windows. Такая ситуация, когда производитель стороннего ПО может диктовать покупателю практически любые условия на поддержку внедренного проекта, называется vendor-locking.

[13] Транза́кция – группа последовательных операций, которая может быть выполнена либо целиком и успешно, либо не выполнена вообще (если некоторые операции не выполнились, то для остальных производится «откат»).

[14] Волшебное средство – единственный вид пуль эффективный против нечистой силы (ведьм, вампиров, монстров).

[15] Мобильным группам разрешается кооперировать свою работу не только с группами из той же корпорации, но наравне и с внешними организациями. Такой подход расширяет конкурентную среду за пределы предприятия и стимулирует команды в смысле качественного и эффективного исполнения своих задач.

[16] Фраза взята из одноименной статьи сборника [4]. В свою очередь название статьи навеяно известным эссе «Собор и Базар» (The Cathedral and the Bazaar) Эрика Рэймонда на тему открытого процесса разработки ядра Linux.

[17] Такое часто происходит, когда система разрабатывается без единого системного архитектора.

[18] Клиент-серверным взаимодействием связано между собой большое число (если не большинство) программных компонент. По своей сути «клиент» и «сервер» – это роли, которые закреплены за компонентами. Сервер предоставляет свои услуги во всеобщее пользование. Клиенты обращаются к серверу за услугами, тот обрабатывает их в порядке очереди. С этой точки зрения сервер не обязательно должен находиться на другом компьютере и т.п. Однако термин «клиент-сервер» закрепился именно за сетевыми системами.

[19] Schneider S. What Is Real-Time SOA? http://www.rti.com/docs/RTI_WP_RealTimeSOA.pdf

[20] БИУС «Иджис» позволяет одновременно решать задачи противовоздушной и противолодочной обороны, а также наносить удары по кораблям противника. Она способна осуществлять автоматический поиск, обнаружение, сопровождение нескольких сотен целей, и наведение по наиболее угрожающим из них до 18 ЗУР одновременно. Решение на поражение угрожающих кораблю целей может приниматься автоматически. На испытаниях система поражала за пределами атмосферы групповые баллистические головки, а также отслуживший свой срок спутник.

[21] Демьянов А.В. Связующее ПО стандарта DDS на земле, на воде и в воздухе. АВД Системы. http://www.uav.ru/articles/dds-uav4.pdf

[22] На момент написания данной работы стандарт реализован многими поставщиками, в том числе и с открытым исходным кодом. В частности, реализация DDS фирмы RTI работает в поверх операционных систем VxWorks, Integrity, LynxOS, QNX, Windows, Linux, Solaris и может использовать в качестве транспортной среды IPv4, IPv6, WAN, разделяемую память (shared memory), шину и коммутируемую структуру (switched fabric). Имеются адаптации под множество языков программирования: C, C++, Java, C#, Ada и др.

[23] Schneider S. What Is Real-Time SOA? http://www.rti.com/docs/RTI_WP_RealTimeSOA.pdf

[24] Подобный дизайн известен также под названием «Классная доска» [2]

[25] Schneider S. The Data-Centric Future. http://www.rti.com/whitepapers/Data-Centric_Future_Pt1.pdf

[26] Данный протокол предусматривает разбиение потока данных на пакеты. Каждый пакет имеет заголовок определенного формата, в котором указываются IP-адреса получателя и отправителя.

[27] Решаемая задача неоднозначна из-за возможности существования альтернативных маршрутов в сетях со сложной конфигурацией.

[28] Здесь уместнее говорить не о модели OSI, а о модели сетевого взаимодействия DOD (Department of Defense – Министерство обороны США), в соответствии с которой реализован Интернет.

[29] На момент разработки IP вряд ли кто-нибудь мог себе представить, какую популярность завоюет Интернет. Поэтому 32‑х разрядов, выделенных для IP-адреса и обеспечивающих подключение около 4 млрд компьютеров, казалось на тот момент вполне достаточным. Однако совсем скоро стал очевидным недостаток длины IP-адреса. Новая версия IPv6 предусматривает 128 разрядов под IP-адрес.

[30] Иногда, вместо названия Интернет используют слово Сеть (с большой буквы).

[31] Для передачи по сети HTML-документов используется протокол прикладного уровня HTTP (Hyper Text Transfer Protocol – протокол передачи гипертекста). Данный протокол является одним из самых распространенных в Интернете протоколов прикладного уровня.

[32] После открытия Интернета для всеобщего доступа коммерческие организации не сразу оценили его значимость. Взрыв популярности Интернета произошел при появлении Веб, точнее HTML/HTTP и браузера Mosaic. Всего лишь за два года с момента их появления Интернет получил распространение по всему миру, хотя до этого был известен только узкому кругу специалистов. Возможно, из-за такого стремительного распространения Интернета коммерческие организации не успели сориентироваться и фрагментировать рынок на уровне базовых стандартов.

Date: 2015-09-24; view: 471; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию