|
Обновите ArcaOS до уровня NeoWPS
- Установите набор PNG иконок, нарисованных дизайнером, специализирующемся на оформлении OS/2
- Установите eSchemes 2018, чтобы менять цвета и кнопки на рабочем столе
|
Мы еще не исчерпали возможности того, что уже имеем |
TITLE: Мы еще не исчерпали возможности того, что уже имеем
DATE: 2002-01-16 22:30:25
AUTHOR: Joseph Shrago
Интерфейс операционных систем семейства OS/2 построен
на основе индустриального стандарта SOM. Что это такое и какие преимущества
получают пользователи и программисты, вы узнаете, прочитав это интервью.
Что же такое SOM?
Если говорить простыми словами, то SOM - это системно-объектная модель,
на основе которой создан интерфейс пользователя в операционной системе OS/2.
Т.е. за всеми объектами на десктопе OS/2 и за интерфейсом пользователя стоит
мощная модель: это не просто набор картинок и меню, это - объектно-ориентированный
комплекс, который делает пользователя OS/2 властелином своего компьютера
и заметно облегчает ему жизнь.
Если же говорить формальным языком, то SOM - это решение от IBM, позволяющее
объединить различные двоичные библиотеки общеупотребительных ресурсов в единый
программный продукт, независимо от языка и среды разработки, которые использовались
для их создания. IBM предложила и поддержала создание архива таких объектных
модулей, которые могли бы быть включены в любой другой продукт. Это ответ
IBM на несовместимость различных языков и сред разработки, которые усложняют
жизнь разработчикам и заставляют их либо изобретать по - новой, либо переделывать
вполне работающий велосипед. Иначе говоря, SOM предоставляет совместимость
с любой платформой и любым языком программирования.
В рамках этой технологии разработчики описывают имена методов, типы возвращаемых
значений и передаваемых параметров и прочее на языке описания интерфейсов
IDL (Interface Definition Language). По синтаксису, язык IDL похож на C.
В toolkit'e есть примеры исходников на IDL - см. файлы
с расширением .idl. Затем эти методы можно реализовать в предпочтительной языковой
среде, причем не обязательно объектно - ориентированной.
При изменениях внутренности библиотек SOM, которые не затрагивают интерфейс,
клиентские программы не нуждаются в перекомпиляции. Эта технология позволяет
не замечать такие изменения в двоичной библиотеке, как
- добавление новых методов;
- изменение размеров объектов при добавлении новых переменных;
- изменение иерархии объектов за счет добавления новых родительских
объектов;
- перенос методов вверх по иерархии классов.
SOM удовлетворяет спецификациям OMG (Object Management Group) и CORBA
(Common Object Request Broker Architecture - Архитектура посредника стандартного
объектного запроса).
Другими словами, кроме стандартного API, IBM снабдила OS/2 еще одним
API, имеющим доступ к объектной модели? Мы имеем готовую модель, готовые
классы и инструменты для их наращивания? Это необычно и, я думаю, не каждая
ОС имеет такие возможности.
Ничего необычного. Это - нормально. Надо понимать, что WPS это не часть
системы, а предлагаемая удобная, с массой достоинств оболочка, от которой
ты можешь отказаться. Но сама IBM ей и ее возможностями пользуется.
Когда может возникнуть задача написать/заказать программу для WPS?
Простой пример - ты хочешь, чтобы в твой фолдер на десктопе никто не мог
заглянуть, кроме тебя - значит тебе нужен фолдер с парольным открытием. Это
легко реализуется средствами программирования для WPS, наследованием существующего
объекта 'Фолдер'.
(Подобных примеров можно привести сколько угодно, и критика их целесообразности,
или, например, криптостойкости или глюковатости, как в ftp-фолдере - не важна.
Можно сделать и без ошибок).
SOMObject
*-- WPObject
*-- WPFileSystem
*-- WPFolder
*-- WSFOLDER
Схема 1: Класс приватного фолдера WSFOLDER в иерархии
классов SOM и WPS
Какие программы имеет смысл разрабатывать на базе модели SOM? Какова
область применения этой модели?
SOM - это технология формирования библиотек и доступа к ним, поэтому
писать или не писать в данной технологии зависит от того:
- есть ли такие библиотеки для вашего клиента или
- есть ли развитие вашего проекта за счет добавления новых клиентов,
пользующихся ранее разработанными библиотеками классов с их методами.
По поводу области применения - это технология
могучих, на всю жизнь ориентированных программных продуктов.
IBM обслуживает гигантское разнообразие пользователей. В моем случае я воспользовался
возможностями WPS, чтобы интегрировать части своего продукта в привычную
пользовательскую среду. В результате, эти части (классы) не отличаются от
системных по виду и методам работы.
Какую пользу несет SOM обычным пользователям? Все равно прикладную
программу они не будут собирать из модулей.
Если под обычным пользователем понимается человек, купивший компьютер
себе домой, то никакой пользы он не получит. Если речь идет о корпоративном
клиенте, то ситуация другая. При необходимости интегрировать в его среду
новые современные возможности, ему не нужно будет мигрировать на новую операционку
и переписывать программный продукт - все изменения доработают и встроят в
существующий продукт. Политика бимеров (ibm), предлагающих пересесть на Windows,
т.е. сделать все в точности наоборот моим словам, объясняется примитивным
маркетингом и структурой рынка - здравого смысла, кроме желания сшибить 'бабки'
в этом нет. Но и рассчитан этот ход на мелкоту. Толстый клиент получает то,
что ему нужно именно интеграцией.
Есть ли удачные примеры использования SOM?
Есть. Вот некоторые из них:
- Оболочка пользователя WPS в операционной системе OS/2 представляет
собой набор двоичных библиотек объектов, свойствами которых можно пользоваться
при создании своих собственных объектов WPS.
Картинка 1: Кусочек десктопа OS/2
Весь интерфейс операционных систем OS/2 построен на основе объектной
модели SOM. Все программы, фолдеры на десктопе - это объекты.
- В данный момент развитие WPS происходит в рамках
проекта XWorkPlace (в будущем - eWorkPlace).
Этот расширитель поставляется в составе eComStation.
- Весьма полезный продукт AWGET использует методы WPS для взаимодействия с пользователем.
- Среда разработчика VAC++ 3 является расширением WPS на основе технологии SOM;
Картинка 2: Папка проекта
Список модулей, из которых состоит проект - это 'обычная' папка на десктопе.
- Для описания различного оборудования и объединения его в сценарий
моделирования скважины
в тренажере для
буровиков, был разработан объект WPS самодокументируемых и редактируемых
конфигураций XObject.
Картинка 3: Рабочий экран тренажера
Выбор сценария, список учебной группы;
Картинка 4: Настройка параметров оборудования
Картинка 5: Печать объекта
Можно поподробнее, что такое XObject?
XObject - это саморедактируемый и самопечатающийся файл настроек чего
угодно. Скачать XObject.rar
Мне надо было иметь механизм работы с объектами настроек тренажеров с
помощью 'мышевождения' - мне сделали объект WPS, который обладает нужными
свойствами. Подробности -
в журнале RDM/2.
Как можно решать твою задачу обычным методом? Насколько решение задачи
упростилось от использования SOM?
Во-первых, разработкой XObject занимался Greg. По моему заданию он разработал
и реализовал XObject, предварительно 'переварив' необходимую документацию.
Если бы он этого не сделал, то по специфике задачи я должен был бы написать
какой-то шелл к какой-то убогой базе оборудования, как-то склеивать объекты
этой базы в описание моделей и каждый раз исправлять и переписывать новый
код, при появлении нового объекта моделирования или новой модели. И много
прочих недостатков.
Хочу написать программу с использованием SOM. С чего начать, где
какие документы нужно скачать?
Toolkit от IBM имеет как User Guide, так и Programming Reference для
использования технологии SOM и работы с WPS. Там же, в каталоге Samples
достаточно примеров, чтобы освоить технологию на практике.
Наиболее простые примеры:
На начало января 2002-го года, известно, что фирма Serenity Systems
занимается расширением и обновлением объектов WPS. Как ты считаешь, какие
классы имело бы смысл создать, Что могут противопоставить (в хорошем смысле
:) ) этому отечественные разработчики?
Ну, я-то считаю, что XObject, возможно доработанный (но не знаю кем),
мог бы быть полезен. (Но этот класс уже существует, к тому же, народ не проявил
особого энтузиазма по его оценке. :\ )
Я считаю, что козырем для Serenity Systems могло бы быть встраивание
в WPS своих наработок (а их не мало) по IP-телефонии и VoIP. Тогда eComStation
стала бы системой, готовой для корпоративного клиента.
Я как-то не думал, каких WPS объектов мне еще не хватает. Есть объекты,
которые можно было бы переписать: например, сетевые папки (они очень грубо
написаны и могут залочить WPS, хотя это результат именно тупого программирования,
а не проблемы API).
Наступает 2002-ой год. Нужно ли рекламировать eComStation как ОС,
поддерживающую SOM модель?
Рекламировать - запросто. (Еще можно вспомнить про DSOM - distributed
SOM). Есть и большие проекты, и к CORBA близко. И хотя IBM разворачивает
всех на Java, нативные решения всегда будут эффективнее. Кроме того, в рамках
корпоративной модели не так легко меняют старую технику - это сотни миллионов,
а SOM позволяет распределять нагрузку между компьютерами. Java бимерам нужна
только потому, что они девелоперы - сделано раз, работает везде. Это удобно
им, но не пользователям со сложившейся инфраструктурой, ресурсами и задачами.
Писать новое - иногда просто не нужно - все зависит от места приложения
- если твой унитаз чистый и целый, то что тебе даст его замена?
На вопросы отвечал: Joseph Shrago, http://www.fcn.ru/~joseph
Вопросы задавал: Eugene Gorbunoff
Редактор: Marat Utyaganoff
Попробуй программу:
|
T&V HappyPlayer - управление телеприемниками Brooktree 848/878
|
Комментарии: Timur Kazimirov 2002-01-17 03:33:06 | Здоровско! | Sergey Posokhov 2002-01-17 12:48:23 | Решения на Яве не требуют вызывать WatchCat после того, как SOM-объект не смог обработать нажатие клавиши или *любое* другое системное сообщение. Решения на Яве не заставляют вас нажимать Ctrl+Alt+Del при ошибке в обработке Drag-n-Drop.
Технологии OLE в Оси как не было так и нет. Пример только один - PolarBar для Java. Он способен встраивать классы из других приложений внутрь себя. Еще был OpenOffice, но он мог работать только со своими объектами. | Василий А. Сидоров 2002-01-17 20:00:04 | 2Сергей
Не надо мешать в одну кучу SOM, PM и WPS.
Первое - *модель*, третье - реализация оболочки над вторым с помощью первого;)
Реализация (IMHO) весьма компромиссная.
Кстати, та же JRE вполне могла бы быть иерархией *и* SOM-классов. | Eugene Gorbunoff 2002-01-18 02:39:14 | Какие классы WPS нам еще нужны? (кроме Person). Вспоминайте до субботы. | Andrei Porodko 2002-01-18 06:43:17 | Согласен с Василием Сидоровым,
Если бы java стала рсширением WPS это была бы
фишка от которой трудно было бы оправится MS.
Это был бы действительно универсальный декстоп.
Сколько бы проблем сналось, нужда в IDE-java во многом бы отпала,
потому как десктоп сам себе IDE был, бы.
Резюме - надо реализовать базовые классы Java в виде нативных методов
в SOM.
| Sergey Posokhov 2002-01-18 12:26:07 | Да... тогда любое переполнение стека в Яве приводило бы к разрушению WPS. В Авроре, между прочим, WPS второй раз уже не запускался... воистину мастдай! | Sergey Posokhov 2002-01-18 14:03:20 | Вавилонская башня! | Eugene 2002-01-18 14:51:10 | >В Авроре, между прочим, WPS второй раз уже не запускался... воистину мастдай!
Пофиксено в CP1 FP1.
| Василий А. Сидоров 2002-01-18 15:36:41 | Ешё раз SOM <> WPS. | Sergey Posokhov 2002-01-18 16:19:54 | SOM не равно WPS, а что толку... зачем нужна эта модель, если она: закрытая, давно не развивается, сделана только под OS/2, и сделана так, что любое приложение для нее способно при малейшей ошибке угробить всю операционную систему. И гробит, между прочим - в каком там фиксе пофиксили "Netscape hangs a system after N+X+Delta restartes"? А сколько еще можно ругать ни в чем не повинный XWorkplace, который просто-напросто был написан под WPS, потому и вешает постоянно всю систему. А еще ему неплохо PM помогает :-) | Sergey Posokhov 2002-01-18 18:10:41 | Java лучше, мне так кажется. Модель похожая, но ее исполнение лучше. Вот отличия от Башен Вавилона: собирает забытые объекты, показывает ошибки, есть блокировки объектов (синхронизация данных), есть поддержка TCP, JDBC, наконец есть Swing. Очень сильно тормозит, но не виснет. А главное - позволяет использовать объекты из других ОС. | Василий А. Сидоров 2002-01-18 23:40:32 | Аналог SOM - Java'ские bean'ы.
Так понятно? | MadInt 2002-01-19 16:26:00 | JAVA - язык
SOM - модель
Давайте не будем по ламерски мешать холодильники и чипсы? | MadInt 2002-01-19 16:30:46 | Что касается WPS, и классов под него - да, базовые классы написаны довольно криво. Ядро (то бишь SOM) сделано превосходно - у меня претений нет. Кроме всего прочего, SOM это уникальная модель, в которой можно наследовать классы написанные на разных языках (!!!). К сожалению, мне известны SOM-препроцессоры только для C, C++ и Basic. Да да, именно Basic (это видимо бимеры сделали чтобы мало не показалось) | Василий А. Сидоров 2002-01-19 22:49:37 | Плюс ORexx умеет импортировать SOM-классы. | Alexei Nasekin 2002-01-25 15:18:51 | По-поводу
"SOM закрытая, давно не развивается, сделана только под OS/2"
Все с точностью до наоброт. SOM открытая (CORBA совместимая), реализована как минимум еще под AIX и WINDOWS ;-) . Аналог OLE в оси есть -- OpenDOC, действительно почти не развивается ж-(, но тоже CORBA в отличие от. Я бы не стал противопоставлять JAva и SOM. Я думаю, надо развиваться в сторону реализации другий спец CORBA -- это все могло бы хорошо интегрироваться и с SOM и JAVA (ejb) | Yuri Prokushev 2002-02-07 19:49:32 | Кстати, под OpenDoc валяется тулкит. Можно, кому интересно, попробовать развить идею дальше. | GPV&KGB 2002-08-01 10:03:12 | 2Yuri Prokushev: где валаяется? описание к ней есть? что еще есть про опендок? УРЛы/ссылки кинуть можешь? | Ян Злобин 2004-07-22 08:46:59 | //...закрытая, давно не развивается, сделана только под OS/2, и сделана так, что любое приложение для нее способно при малейшей ошибке угробить всю операционную систему...//
Извините, бред. WPS не может убить всю систему - только консоль. У меня были примеры, когда на машине с BBS кривая программа вешала консоль намертво. При этом, юзверы спокойненько коннектились на BBS, работали и уходили, BBS инициализировала модем для следующего юзверя и все повторялось. Более того, если зайти телнетом на эту машину и убить каким-нибудь киллером висящий процесс, то система оживает.
Суть такова - ядро исключительно надежно и, убивая WPS или что-то еще, его не повесишь. |
Прокомментируйте эту статью (напоминаем, автор работал над текстом несколько недель, уважайте мнение других).
|
В состав eComStation 2.0 включен офисный пакет OpenOffice.org 3.x с поддержкой формата Microsoft Office Open XML (.docx и т.п.) |
|
|
|
Готовая eComStation на SSD диске
Последний активный опрос: Какая высота барьера RPM?
[Google]
|
IBM OS/2 Warp
|