|
|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Constantin Svintsoff 2:5020/400 28 Mar 2001 13:18:51 To : All Subject : Re: Cache and WWW -------------------------------------------------------------------------------- Hi, there! On Mon, 26 Mar 2001, Serguei Tarassov wrote: > Доброго дня! [skipped a lot] > > > > > Для чего используется XML - я в курсе. Это, безусловно, просто > > офигительная вещь, настолько простое и удобное средство для > > создания собственных языков описания нужной тебе в данной предметной > > области данных. Вообще-то - за ним большое будущее. Hо то применение ему, > > про которое Вы написали - это, безусловно, извращение. > Hикакая это не "офигительная вещь", ничего принципиально нового в XML нет > (десятки лет существуют другие простые средства создания собственных > проблемно-ориентированных формальных языков и их анализаторов) и никакого > смысла он сам по себе не имеет. XML стал нужен именно с появлением > распределенных приложений, как средство обмена СТРУКТУРИРОВАHHОЙ информацией > между ними. И в этом его настоящее и будущее. > Возможно Вы под CORBA-объектом понимаете нечто другое. Достаточно того, что > это будет объект, позволяющий взаимодействовать с ним по спецификации CORBA. > А уже потом возникают интерфейсы, контексты, физическо размещение на > сервантах и т.д. > Я приведу Вам простой и типичный пример, когда это, как Вы говорите > "извращение" таковым не является. > Пусть у Вас есть хранилище атрибутов для persistent objects, есть > CORBA-сервис, который по запросу, например по ObjectID, извлекает значения > атрибутов из хранилища и куда-то их возвращает. Куда - сервис не знает, так > как пользоваться им может любой другой объект, знающий его интерфейс. > interface ObjectStore > { > string GetObjectAttributes(int ObjectID); > } interface ObjectStore { enum ValueType { VT_INTEGER, VT_STRING, // Add here whatever you want. }; union TypedValue switch(ValueType) { case VT_INTEGER: long int_val; case VT_STRING: string string_val; // etc... }; struct Attribute { string name; TypedValue value; }; typedef sequence<Attribute> AttributeList; AttributeList getObjectAttributes(int obj_id); }; Или я как-то неправильно понимаю что такое атрибуты? > Если бы не было XML, пришлось бы делать собственный формат возвращаемой > структуры и анализаторы ее корректности. С применением средств XML эта > задача решается на порядок быстрее. > И как Вы понимаете, возвращать struct здесь невозможно, так как объекты не > принадлежат одному классу. Хммм... DTD описывающее язык описания этих объектов - один? Если так - то на самом деле точно можно построить тип из union'ов, struct'ов и sequence'ов, которая будет вполне эквивалентна тому что этот DTD описывает, и это будет какбы проще и понятнее. Да, и никаких анализаторов корректности не надо. Другое дело, ежели там внутрях есть какая-нить прослойка между ДБ и реализацией объекта(от которой правда, тогда вроде как мало чего остается:)), которая тебе и генерит этот XML - тогда это другое дело, но и сама по себе CORBA тут не причем. Я не утверждаю, что использование и XML, и CORBA - всегда извращение, я просто хочу сказать что ежели они и появляются вместе в одной системе, то они появляются вовсе не из-за друг друга. > Типичный пример такого подхода используется в Web-приложениях с динамическим > контентом, когда по запросу идентификатора объекта на сервер "приезжает" его > содержание. /Constantin --- ifmail v.2.15dev5 * Origin: A poorly-installed InterNetNews site (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/6530192b89f6.html, оценка из 5, голосов 10
|