Всё о Java из первоисточников.
Java: разумное программирование для современных компаний, работа которых построена на использовании сети

Статья (http://jbaw.iba.com.by/ibm_mirror/benefits/commonsense.html)
Англоязычный источник www.ibm.com


     Краткое содержание

     Пора отказаться от традиционной политики информационных технологий (ИТ), когда компании разрабатывают решения под конкретные платформы, что влечёт за собой рост затрат и вызывает ненужную головную боль при внедрении этих решений, при этом не предлагая существенных преимуществ взамен. Только после того как мы сможем остановить эту тенденцию, заказчики признают достоинства современных технологий. Производителям следовало бы сконцентрировать своё внимание на том, чтобы их технологии могли применяться в производстве, а не на умении навешивать на свои запатентованные продукты или платформы "навороченные примочки". Java впервые за многие годы предоставляет нам возможность сконцентрировать наши способности на разработке надёжной среды многократного использования, способной выполняться на различных платформах. Надо прекратить дискуссии о том, что подой дёт и что не подойдёт для рынка, и прислушаться к голосу разума.

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

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

     Раньше компьютерные компании фокусировали своё внимание, в основном, на расширении возможностей собственных технологий. Данный подход вызвал появление большого количества разного рода дополнительных средств и какого-то числа довольно-таки "впечатляюших" инструментов; и породил тенденцию постоянного соперничества компаний за то, чьё программное средство лучше. Это, в значительной степени, поглотило всё внимание производителей, отвлекая их от того, каким образом данные технологии могут помочь производству; что, в свою очередь, вызвало дополнительные затраты и неудобства практически на каждой стадии разработки и применения решений. А вот чего не было создано -- так это технологической среды, позволяющей получать максимальный результат от вложенных в ИТ средств.

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

     Данная статья рассматривает взаимоотношения между производством и ИТ и предоставляет нам редкую возможность попробовать улучшить эти отношения и прекратить тратить впустую миллиарды долларов и рабочих часов программистов. Объединяя усилия и фокусируя внимание на развитии и совершенствовании Java, мы можем избавиться от многих проблем, с которыми нам приходится сталкиваться изо дня в день. Мы должны осознать это как свершившийся факт, укреплять позиции Java и сделать, в конечном итоге, её средством для всех, а не для одной-двух, компаний.

     Производство сегодня

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

     Современные продукты разрабатываются, реализуются и выпускаются на рынок самостоятельными группами. Эти группы часто образуют "виртуальные компании", объединяющие в единое целое собственные подразделения и внешних поставщиков. Предприятия осознают, что эти структуры должны работать сообща как единый слаженный механизм, чтобы добиться максимальных результатов; и в этом случае надёжная и своевременная связь особенно важна. Всего, что выходит за рамки этого сотрудничества, мешает им быстро реагировать на изменения, происходящие на рынке, или требует дополнительных неоправданных затрат -- следует избегать.

     Мы можем привести примеры из нашей повседневной жизни. Ваш дом, наверняка, в чём-то уникален, но так как он был построен в соответствии с общепринятыми стандартами, вы имеете возможность приобрести его по вполне приемлемой для вас цене. Сколько бы стоил ваш дом, если бы каждый поставщик стройматериалов оценивал свой продукт не по качеству, а по размерам или какому-либо другому критерию? Во сколько бы обошлась покупка и установка, к примеру, лампы, если бы у каждого производителя была своя собственная электрическая вилка и розетка? Значительное увеличение стоимости, которое не сопровождается улучшением качества - - не очень удачное уравнение. Речь идёт не о космических технологиях; это основы товарно-денежных отношений и здравый смысл. Разве не пришло время применить ту же логику и к индустрии ИТ?

     Информационные технологии сегодня

     Применяемый нами подход в области ИТ сильно отличается. Здесь принято оценивать компании с точки зрения разрабатываемых ими технологий. Среди компаний преобладает тенденция "раздувать" и преувеличивать свои способности, выставлять на показ свои "деловые" качества и подчёркивать превосходства своих "платформ" перед другими. Остановитесь на минуту и задумайтесь об этом. Современному рынку требуются технологии, которые позволяют бизнес-приложениям общаться с оборудованием и сетью; но чем больше типов оборудования, тем сложнее и дороже эти приложения.

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

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

     Разумное решение

     Ответ прост: Хватит "пускать на ветер" деньги и трудовые ресурсы, разрабатывая собственные технологии. Надо направить их на создание общей технологической инфраструктуры, с помощью которой мы сможем создавать бизнес-приложения ХХI века. Здравый смысл подсказывает нам, что если мы возьмём хотя бы часть тех ресурсов, которые мы тратим на разработку собственных операционных систем и ПО промежуточного уровня, и направим их на создание этой структуры, мы легко сможем удовлетворить наши запросы, сэкономить миллиарды долларов и рабочих часов и стать более конкурентноспособными на нашем рынке. Практически каждая отрасль осознала этот факт и начала переход к этой модели. Не пора ли и компьютерной отрасли поступить также? И это возможно только с Java.

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

     Как мы добились того, что мы имеем сегодня?

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

     Зарождение промышленного программирования

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

     Постепенно системы становились более надёжными и доступными. Однако, у них по- прежнему были свои недостки. Данная технология не была достаточно гибкой и не позволяла делать в ней существенные изменения. Цикл разработки новых приложений, как правило, длился один, а то и два года, поэтому у многих компаний накапливались невыполненные заказы на много лет вперёд. Чтобы положение изменилось к лучшему, потребовались годы и значительные усилия. В то же время перед рынком и производством встали новые перспективы, потребовавшие от них изменения модели производства. Существовавшая тогда технология не соответствовала предъявляемым ей требованиям.

     Новые концепции предполагали создание автономных производственных подразделений, укрепление связей между партнёрами и поставщиками и сокращение времени производственного цикла. Производственным подразделениям внутри одной компании часто приходилось отстаивать друг у друга или внешних фирмам право на владение ту сферу производства, которая когда-то считалась их. Одновременно с этим, в области ИТ всё чаще начали применяться новые подходы. Появляющиеся технологии предлагали большую гибкость, более короткие сроки разработки и независимость от централизованных ИТ. Персональные компьютеры и компьютеры среднего уровня "вызвали мощный прилив" производительности. Данный процесс сместил центр тяжести с централизованной структуры ИТ на переход к структуре интегрированных отделов, когда задача ставится индивидуальному пользователю или отделу, а не всей компании.

     Архаичный терминал

     Переход к самостоятельным подразделениям внутри компании ускорялся, а внедрение персональных компьютеров обещало улучшить производительность каждого сотрудника и приложения. Бюджет производственных подразделений, ранее рассчитанный на поддержку централизованных ИТ, теперь позволял им приобретать новое оборудование и приложения для своих нужд. Модель "клиент-сервер" стала очевидной альтернативой устаревшим монстрам под названием mainframes (большие ЭВМ). Теперь на разработку продукта уходили не годы, а месяцы, а необходимая вам информация хранилась у вас на рабочем месте. Зачем теперь выбрасывать миллионы долларов на расширение возможностей центрального компьютера, когда тысяча пользователей, а то и больше, могут иметь собственные компьтеры?

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

     Ещё одним удручающим фактором является довольно короткий жизненный цикл ПК. Кто из нас не потратил несколько тысяч долларов на покупку самой последней модели ПК, чтобы через пару месяцев увидеть более дешёвую и более мощную модель? Лично вам это просто обидно, а для предприятия же -- это почти катастрофа, и не только с точки зрения затрат.

     Новые технологии часто сами становятся источником идей для новых приложений. Приложения же, как правило, отбираются "крупными пользователями,"т.е. работодателями, а не отдельными служащими, которых гораздо больше, но из которых не всем приходится пользоваться этими приложениями. Скольким служащим вашей компании действительно необходимо использовать все приложения, находящиеся в распоряжении компании? Речь идёт не только о том, что мы тратим деньги на неиспользующиеся функции; данное положение дел может вызвать эффект "снежного кома", когда новая функция требует обновления технологии и оборудования. Подобный цикл повторяется каждые несколько месяцев. Сколько времени и денег требуется вашей компании на распространение новых версий ПО для ПК своих сотрудников? Сколько версий одного и того же программного продукта вы должны поддерживать одновременно? Оправдываются ли затраты вашей компании? Как компании удержаться в такой ситуации на плаву и с финансовой и с деловой точки зрения?

     В начале 90х годов мы занялись серьёзным анализом взаимоотношениий между ИТ и структурой производства. Консультанты "выдавали на гора" тома с отчётами, в которых они утверждали, что содержание одного ПК обходится в среднем от $8,000 до $15,000 в год. Производители предлагали схемы совершенствования оборудования ПК, а производители ПО перешли на шести- или даже трёхмесячный циклы выпуска программ. С точки зрения дальнейшего развития отрасли всё выглядит прекрасно, но насколько быстро ваша компания может приспосабливаться к этим переменам?

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

     Попытки что-нибудь изменить

     В то время как стандартизация является вполне разумной мерой, компьютерная индустрия не смогла оценить все преимущества данного подхода по достоинству. Мы попытались стандартизировать модели данных, сетевые протоколы и операционные системы. На сегодняшний день существует свыше 1500 реестров стандартов ИТ. Хотя производители на словах придерживаются каких-то стандартов, всё же они по-прежнему испытывают потребность в собственной трактовке реализации стандарта, включая в него своё "особое видение". Вместо того чтобы различать разные направления производства, данный подход привёл к созданию мира, битком набитого патентованными системами, которые не способны понимать друг друга, требуют значительных вложений в их интеграцию и поддержку и которые делают заказчика практически полностью зависимым от производителя. Это также вынуждует компании тратить средства и время, зачастую зря.

     Сетевое программирование

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

     Что обещает сетевое программирование

     За эти годы мы приобрели ценный опыт и знания. Мы должны как можно скорее взять всё то, чему мы научились, чтобы применить это в новой модели распределённых вычислений. Современные предприятия нуждаются в вычислительной среде, которая бы смогла использовать все наши знания и опыт и оправдать возложенные на неё надежды. Компьютерная индустрия должна отказаться от индивидуалистских подходов и действительно направить свои усилия на то, чтобы вернуть вложенные в неё средства.

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

     Достоинства Java

     Именно Java предоставляет нам такую возможность. Java не является решением для всех проблем, однако, она может решить одну из основных проблем и помочь нам организовать по-новому работу целой отрасти. В настоящее время большая часть предприятий данной индустрии направили свои усилия на Java. Компании вкладывают миллионы долларов в интеллектуальную собственность - Java Developers Kit и Java Virtual Machine, собственность, владея которой можно занять лидирующие позиции на рынке. Задумайтесь о бескрайних возможностях, которые вам предоставляются. Десятки тысяч разработчиков, которым раньше приходилось мыкаться в поисках возможных решений реализации единственной функции на различных платформах, теперь работают на основе общепринятой системы кодирования. National Language Support (поддержка государственного языка), нужная, но трудная область, теперь доступна всем. Сегодня небольшие компании разрабатывают приложения, к которым можно получить доступ в любой части света. Это позволяет распространить данную технологию и сделать её доступной для всех, а также значительно сократить затраты на создание новых приложений или возможностей. Специалисты, занимавшиеся ранее переносом кода, теперь высвобождаются и могут заниматься разработкой приложений.

     Преимущества производителей

     Так случилось, что проекты по разработке ПО поглотили миллионы долларов и человекочасов не на разработку и написание логики для улучшения работы приложений, а на перенос, тестирование и поддержку приложений на разных платформах. Подобное положение совсем не радовало разработчиков и оттягивало сроки поставки продукта заказчику. Появление Java Virtual Machine для большинства типов компьютеров и платформ или технологий означает, что нам больше не придётся больше включать в бюджет расходы на перенос приложений или их версий с одной платформы на другую или заставлять высококвалифицированных программистов заниматься этой скучной и неинтересной работой.

     Кроме того, важно понять разницу между традиционным подходом, основанным на создании патентованных средств, и подходом Java. Традиционный подход предполагает возможность поддержки огромного количества API для конкретных платформ. Java и её подход "создавать один раз, применять везде" требует поддержки одного единственного набора API, который работает на любой платформе.

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

     Преимущества для заказчика

     Заказчики либо тратят значительные средства на проекты по интеграции ПО, либо вынуждены отказываться на время от реализации производственных решений в связи с тем, что расходы на интеграцию непомерно велики. Прогон и поддержка новой функции требует тщательного планирования. При использовании собственных разработчиков вы сталкиваетесь с теми же трудностями и препятствиями, что и производители. Java разрешает большую часть этих проблем. Чем больше функций вы можете легко реализовать, тем больше гарантия вернуть инвестиции в ИТ. A одинаковые условия игры для производителей сказываются на снижении стоимости приложений и их конкурентноспособности. Ещё одна ощутимая выгода для заказчика.

     Сильные стороны JavaBeans

     Одно из обещаний прошлого -- возможность многократного использования кода; применяя Java, вы можете этого добиться с помощью JavaBeans. Вам нужна функция, которая может отслеживать имя и адрес? Создайте её как JavaBean. Когда продукт создан, его можно "разбить" на части, продать или повторно использовать. Вся идея JavaBeans обещает поставлять огромные многократно используемые библиотеки функций, которые могут легко собираться в новые приложения,отвечающие новым запросам производства. Согласно спецификации JavaBeans теперь средства разработки приложений (соответствующие данной спецификации) могут свободно обмениваться бинами, что в значительной степени увеличивает ваши возможности при выборе средства разработки приложений, которое больше других отвечает вашим нуждам. При этом, вам не придётся модифицировать код для работы на 27 различных платформах, которые ваша компания установила.

     Кроме того, спецификация JavaBean также является отличным примером того, что мы можем получить, если прекратим борьбу за то, чья технология лучше, и начнём сотрудничать. Данная спецификация была разработана с привлечением сотрудников из 14 компаний менее, чем за 60 дней. Видите, что данная индустрия может дать при желании!

     Созданное один раз, работает Везде

     Переносимость и гибкость -- два обещания ИТ прошлого теперь становятся с помощью Java реальностью. Раньше мы пользовались языками, которые поддерживали переносимость,но ни один из них не обеспечивал ничего, что хотя бы отдалённо напоминало переносимость. Разработанный с нуля как объектно-ориентированный и переносимый, этот язык уже с честью выполнил свой долг. Теперь компании могут позволить своим отделам или подразделениям приобретать платформу для технологий по своему усмотрению, не задумываясь о возможных проблемах и не беспокоясь о предстоящих затратах на интеграцию и переносимость.

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

     Быстрая разработка приложений

     Объектно-ориентированные JavaBeans и способность средств разработки приложений легко взаимодействовать друг с другом значительно упрощают и ускоряют процесс разработки приложений. Java ставит своей целью добиться того, чтобы компании во всём мире могли создавать настоящий качественный товар в краткие сроки: в течение нескольких недель и месяцев, а не лет. Это даст возможность компаниям использовать существующие системы и данные, проникать на новые рынки и даже создавать новые предприятия и виды услуг в рекордно короткие сроки.

     Обогнать всех

     Оставим в стороне рекламные лозунги и обещания. Давайте воспользуемся представившейся возможностью, чтобы серьёзно проанализировать все потенциальные возможности, предлагаемые ИТ. Некоторых пугает широкий диапазон этих возможностей, и они сразу тыкают пальцем в сторону недостатков Java. Безусловно, и у Java есть недостатки. Противники, вероятно, обнаружат и слабые места в безопасности или сбои в их системах. Но то, что Java набирает силу с небывалой до селе в этой индустрии скоростью, на до принять как факт. Также как предприятия значительно сократили сроки производственного цикла благодаря сотрудничеству и стандартизации, индустрия ИТ меняет наш подход к производству благодаря сотрудничеству в области разработки на Java. Мы можем намного ускорить данный процесс, прекратив тратить время и деньги на рекламу того, чего ещё нет, и сфокусировав свои ресурсы на совершенствовании того, что есть. Небольшой сборник цитат из книги Джона М. Капоцци "Если Вам нужна Радуга, Вы Должны Мириться с Дождём" содержит следующую мысль: " Ничего так красноречиво не говорит как тот факт, когда вы наблюдаете за кем-то, кто говорит, что это невозможно сделать, а его перебивает кто-то другой, показывая как это делается." Пора нам, как индустрии, оставить все эти разговоры о том, почему это нельзя сделать, а поставить перед собой задачу и выполнить её.

     Действуйте сейчас

     Компании по всему миру начинают применять Java-решения, но этого не достаточно. Мы должны настойчиво продвигать Java дальше, расширять его возможности и даже разбивать на составляющие. Если мы не будем этого делать, ничего не изменится. Мы должны поддерживать производителей и заказчиков, которые вносят свой вклад в данную технологию и придерживаются соответствующих требований для того, чтобы Java всегда была открытой, вездесущей и переносимой. Не следует рассматривать стандарт 100% Pure Java как рекламный трюк; на это следует смотреть как на логический, разумный подход - единственный подход, который способен двигать индустрию вперёд и использовать весь тот потенциал, который держался где-то в тени столько долгих лет.

     Некоторые представители этой индустрии продолжают критиковать эту инициативу, но, опять же, это просто отголоски устаревшего рекламного подхода, который был нацелен на защиту собственных программных средств и ограничения свободы выбора заказчика. Цель данной кампании, и одновременно её сильная сторона -- убедить в том, что приложения могут "создаваться один раз и применяться повсеместно." Не следует придавать значение высказываниям тех, кто постоянно твердит нам о том, что мы не должны прислушиваться к голосу разума.

     Не время устроиться поудобнее на обочине и ждать, наблюдая, преуспеет Java или нет. У нас в руках небывалая возможность сделать революцию в этой индустрии. Единственный способ снизить расходы, увеличить наши доходы от сделанных вложений и на полную катушку использовать потенциал ИТ -- это вовлечься в данный процесс. Вносите свой вклад, разрабатывайте или анализируйте, но ни в коем случае не продолжайте традиций расточительного прошлого. Легенда хоккея Уэйн Грецки как-то сказал: "Вы пропускаете 100% бросков из тех, которые вы не стремитесь отбить." Сделайте свой выстрел; он не сможет не попасть в цель.


<< На список статей

© 2003 Акименко Е., e-mail: jenyusik@hotbox.ru