будущее уже сегодня ПАЛАГИН АНТОН AKA TONY Спецвыпуск: Хакер, номер #065, стр. 065-018-1 (TONY@EYKONTECH.COM) СОВРЕМЕННОЕ ПРОГРАММИРОВАНИЕ ИДЕТ РАННИЙ ЭТАП РАЗРАБОТКИ ИНФОРМАЦИОННЫХ СИСТЕМ, МЕЖДУ ЗАКАЗЧИКОМ И ИСПОЛНИТЕЛЕМ ТОЛЬКО УТРЯСАЮТСЯ ПУНКТЫ ТЕХНИЧЕСКОГО ЗАДАНИЯ. КАК РАЗ В ЭТО ВРЕМЯ ОБНАРУЖИВАЕТСЯ ПРОБЛЕМА ВЫБОРА СРЕДСТВ ИНТЕГРАЦИИ КОМПОНЕНТОВ РАЗРАБАТЫВАЕМОЙ СИСТЕМЫ требования к современному прикладному программному обеспечению основаны на возможностях глобальной интеграции информационных технологий, возникшей благодаря развитию мировой паутины. Если программа варится в собственном соку и находится на одиноком «пентиуме», закопанном под землю, ей никто не заинтересуется. Сегодня человек, который, например, возвращается на электричке из загородной поездки, может заказать на дом мороженое к ужину, а все благодаря мобильному телефону. Если ты современный водитель-дальнобойщик, за твоим вояжем наблюдают из центра управления поездками, и только попробуй слить бензин — твоя зарплата уменьшится на сумму слитого горючего. Как же выглядит современная информационная система? Банальная схема «клиент — сервер» здесь не подойдет. Ближе к правде будет схема «много клиентов — много серверов». Объем современных потоков данных давно перестал быть таким, чтобы было возможно перевести их в простые схемы. Так что любая деятельность предприятия дифференцируется на процессы, процессы разбиваются на подпроцессы, или сервисы, которые в свою очередь делятся на логические операции. Если ты, к примеру, рядовой программист в аутсорсинговой конторе, то тебе хорошо знакомы процессы реализации программного кода, написания тестов, документирования, работы с багтреком и контроля версий. Менеджер твоего проекта оперирует процессами управления проектом. Заказчик программы знаком с процессом мониторинга состояния проекта, а отдел качества — с процессами контроля качества продукции. Каждый знает свою роль в ежедневной деятельности организма компании. Подобная дифференциация позволяет четко выделить частную функциональность в огромной кипе, которая образуется общей функциональностью информационной системы предприятия. Разработать такие системы на одном языке программирования невозможно. Целевая система всегда получается гетерогенной с широким спектром программных и аппаратных платформ. Для интеграции компонентов системы используются компонентные технологии DCOM, CORBA, Enterprise JavaBeans и web-сервисы. решения на базе технологий DCOM и CORBA в 90-х годах пользовались большой популярностью. Эти монстры программной инженерии пытались предоставить разработчику серебряную пулю — универсальный инструмент, решающий любые проблемы. В чем заключается суть этих технологий? На серверной стороне реализуются методы объектов взаимодействия, абстрактные интерфейсы этих объектов описываются на специальном языке определения интерфейсов IDL. Клиент, который пытается обратиться к серверному объекту, должен компилироваться с учетом IDL-кода интерфейса. Взаимодействие по сети происходит с помощью специальной надстройки над протоколом TCP/IP — RPC (Remote Procedure Calling) в случае с DCOM или собственным аналогом RPC в случае CORBA. Клиент такой модели вызывает на своей стороне методы заглушки (stub), которая обращается к ядру DCOM/CORBA. Ядро запаковывает данные вызова в бинарные пакеты и отсылает их на сервер по TCP/IP. Сервер принимает эти пакеты, выбирает вызываемый метод в заглушке указанного объекта, выполняет его и возвращает результат выполнения клиенту, в результате у клиента возникает иллюзия того, что код на сервере выполнен. И все идет хорошо, пока клиентский и серверный код пишутся на одном языке и запускаются на одной платформе. |