НОВОЕ: OS/2 GURU - Вопросы и ответы

Reviews / articles about OS/2

Operating systems:
ArcaOS, eComStation, IBM OS/2 Warp
Мифы о eComStation 

Unsorted

 

 

ArcaOS 5.0 Русская версия
Пакет русификации ArcaOS 5.0 OS/2 давно доступен. Поддерживается любая версия: 5.0, 5.0.1, 5.0.2.

eCo Software может выпустить и другие пакеты (Немецкий, Голландский, Бразильский Португальский, Испанский, Шведский и т.д.)

Мы еще не исчерпали возможности того, что уже имеем


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?

Есть. Вот некоторые из них:

  1. Оболочка пользователя WPS в операционной системе OS/2 представляет собой набор двоичных библиотек объектов, свойствами которых можно пользоваться при создании своих собственных объектов WPS.
    OS/2 Desktop
    Картинка 1: Кусочек десктопа OS/2
    Весь интерфейс операционных систем OS/2 построен на основе объектной модели SOM. Все программы, фолдеры на десктопе - это объекты.
  2. В данный момент развитие WPS происходит в рамках проекта XWorkPlace (в будущем - eWorkPlace). Этот расширитель поставляется в составе eComStation.
  3. Весьма полезный продукт AWGET использует методы WPS для взаимодействия с пользователем.
  4. Среда разработчика VAC++ 3 является расширением WPS на основе технологии SOM;
    Project
    Картинка 2: Папка проекта

    Список модулей, из которых состоит проект - это 'обычная' папка на десктопе.
  5. Для описания различного оборудования и объединения его в сценарий моделирования скважины в тренажере для буровиков, был разработан объект WPS самодокументируемых и редактируемых конфигураций XObject.
    Scenario
    Картинка 3: Рабочий экран тренажера

    Выбор сценария, список учебной группы;

    Setup
    Картинка 4: Настройка параметров оборудования


    Print
    Картинка 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


Попробуй программу:

Есть вопросы по eComStation? Обращайтесь в Службу поддержки eCo Software.

Комментарии:

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 что-то не работает (USB глючит / сеть медленно / только 1 процессор / программы часто падают) - это не повод удалять ОС. Надо ее настроить. Вопросы и ответы eCSFAQ

 


 

(C) OS2.GURU 2001-2021