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% бросков из тех, которые вы не стремитесь отбить." Сделайте свой выстрел, он не сможет не попасть в цель.

Майк Куигли, начальник отдела ПО, Java Industry Solutions, IBM
Перевод Анжела Чернухо (СП IBA)


Компьютерная газета. Статья была опубликована в номере 43 за 1998 год в рубрике программирование :: java

©1997-2024 Компьютерная газета