Сообщения

Universal singleton/namespace pattern for js (node.js or browser)

// File: first.js // first declaration of singletonName (e.g. for abstract interfaces) ( function ( singletonName ) { singletonName . publicProperty = 'public property value of first declaration' ; var privateProperty = 'privat property value of first declaration' ; singletonName . publicMethod = function ( ) { console . log ( 'publicMethod of first declaration to be owerwritten' ) ; } ; singletonName . toBeOverridden = function ( ) { console . log ( 'publicMethod of first declaration to be overridden ' ) ; } ; privateMethod = function ( ) { console . log ( 'privateMethod of first declaration' ) ; } ; } ( global . singletonName = global . singletonName || { } ) ) ; // File: second.js // second declaration of singletonName can extend, override and call inherited finctionality ( function ( singletonName ) { singletonName . publicProperty = 'public property value of second declaration will overwr...

Территориальные государства отомрут сами

Не по профессиональной тематике Для обеспечения приемлемого уровня порядка и справедливости в обществе, состоящем из более чем одного человека, как носителя автономной воли, необходимы институты согласования общего взгляда на реальность и стыковки интересов. Таких механизмов мы знаем много: семья, община, верования и обычаи, государство и юстиция, религия и образование, средства массовой информации и т.д. Все они в определенном смысле являются тоталитарными машинами подавления личности, но свою задачу они исполняют адекватно и сносно для реалий своего контекста. Хоть существуют они параллельно, но удельный вес каждого из этих инструментов разный для различных цивилизаций и их периодов. В современном обществе преобладает дезорганизованное предпринимательство, стремящееся к максимальной прибыли, даже в ущерб потребителю, и уж тем более, в ущерб конкуренту. Для усмирения дикого рынка есть государственная машина, которая добровольно-принудительно отимает часть прибыли для исполнения функ...

Захабрился

Но я сразу себе сказал - не буду вступать в дискуссии, обсуждать, защищать, объяснять, хотя руки чешутся...

Слой ИС с динамической интерпретацией метаданных

Изображение
Слой информационной системы с динамической интерпретацией метаданных

Введение мета-уровеня

Очевидно, что любая информационная система, имеющая слой хранения данных, привязана к структурам хранения и, в случае их изменения, требует реинженеринга слоя приложений и слоя представления. Изменения бизнес-логики приложения требует внесения изменений только в интерфейсную часть, если конечно, изменения не коснулись структур данных. Эта закономерность становится очень заметной, если предметная область динамически изменяется, а так же в задачах со слабо-структурированными данными и там, где требуется интеграция на межкорпоративном уровне. Эти три направления практически блокированы во всех современных парадигмах и архитекторах информационных систем. Тем не менее, глобальная сеть, динамика которой растет все большими и большими темпами, в последнее время активно двигается в сторону интеграции, не отказываясь при этом от слабо-структурированного контента. Проблему эту пока ни кто не формулирует в явном виде, ее обходят, разными способами: ограничивая функционал до фиксированного набора ...

Метамодель в задачах интеграции информационных систем

Изображение
Т.Г. Шемсединов УДК 004.9 Введение В последнее время, в начале разработки любой прикладной информационной системы, вопрос интеграции в уже имеющуюся сложную инфраструктуру предприятия стоит острее, чем даже вопрос функционала и производительности. Интеграция стала одним из основных факторов успеха в любой сфере бизнеса, а разработка превратилась из одноразового явления в постоянный процесс, в естественное состояние системы. Стало очевидно, что информационные системы двигаются от статической модели предметной области к динамической модели, изменяющейся в реальном времени. С другой стороны, распространение сетевых средств коммуникации позволило компаниям обмениваться информацией в цифровой форме с партнерами, клиентами, подрядчиками и даже государственными органами [1,2]. В таких условиях, старые методологии разработки, архитектуры, решения и технологии реализации нуждаются в серьезной модернизации. Постановка задачи Задачу интеграции информационных систем можно разбить на три составляю...

CLEAR

Clear Language for Entity Adequate Representation Short guide Version 7.0 Date: 2008-01-31 1. Overview This language is designed for platform independent entity representation for memory structures, storage and network interactions as well. It is next step in data representation languages evolution after markup languages, so it is based on both, XML experience and binary data encoding. But it is devoid of indeterminacy on the one hand and is human understandable on the other hand. Clear language structures are simple and obvious so do not expect something supernatural here. It is simple and clear... 2. Requirements Compact and efficient Expressive and human-readable High-performance parsing Single-meaning syntax and modeling rules Native hierarchical, table, network and relational structures support Object-oriented and data types support Maps directly to programming-language structures Maps directly to network protocol packets Maps directly to database engi...

Сеть документов, сеть приложений или сеть баз данных?

Часть 2 (продолжение) Очень важным вопросом в интеграции приложений есть фиксация набора стандартов. Для современного интернета характерна война стандартов, причем, концептуально одинаковых, а разных, только по реализации. Например, формальные языки описания объектов расплодились в огромном количестве, а по сути все являются различными синтаксисами одной абстракции. Абстракцию эту можно определить как “сериализация объектов”, а перечисление понятий в нее входящих, может выглядеть так: объект, свойство, значение, иерархия вложенности. Примерно такая же ситуация и с веб-сервисами, разновидностей коих мы наблюдаем великое множество, и каждый раз при создании веб-приложения разработчики стоят перед выбором из нескольких десятков конкурирующих стандартов. Какая же интеграция приложений при таком разнообразии? Большая часть процессорного времени и памяти приходятся на синтаксический разбор, конвертацию, всевозможные преобразования несогласованных форматов. Что же касается СУБД, то реляцион...

Сеть документов, сеть приложений или сеть баз данных?

Часть 1 Человеческий мозг склонен считать временное постоянным, а частные случаи ошибочно принимать за абсолютные истины. Практика использования бумажных документов настолько сильно обосновалась в сознании за многие века применения рукописных и печатных носителей информации, что автоматически была перенесена и в сферу электронных коммуникаций. Таким образом, имитация бумажных документов в цифровом виде, привела к созданию глобальной паутины гипертекстов, которая является не более, чем сетью документов со ссылками. Для поиска в этом массиве информации потребовались средства индексации - поисковые машины, которые породили целую индустрию поисковой оптимизации и контекстной рекламы. Не смотря на то, что поисковые машины выполняют каждый день в сотни раз больше запросов к электронным документам, чем существует веб-страниц во всемирной сети, найти адекватную информацию с каждым днем становится все сложнее. С ростом количества страниц и автоматическим дублированием контента скорость и каче...

Потерянная семантика

Моделирование всегда приводит к упрощению, но нам всегда важно сохранить ключевые моменты моделируемых объектов и событий. Что же чаще всего теряется при отображении в реляционную, объектную и иерархическую модели? Приведу только краткий обзор, а Вы уже сможете для себя оценить, насколько важна потерянная семантика в Вашем случае для решения прикладных задач. Потерянная "сила" и другие атрибуты связей. Как в реляционных СУБД, так и в языках программирования, понятие ссылки сводится к идентификации и не позволяет добавлять дополнительные атрибуты связей. Однако, на практике часто бывает полезно учитывать силу, давность или стойкость связи между объектами. Атрибуты связей можно разделить на параметры и классифицирующие атрибуты связей, но и те и другие очень просто моделируются средствами реляционных СУБД, декларативными языками описания как XML, JSON, CLEAR, или активными языками программирования. Главное, не забыть, о том, что ссылки не равносильны, структурно сложны и не ...

Интеграция на уровне вызовов или мета-данных?

Изображение
Архитектура ИС на основе Web-сервисов позиционируется как поддерживающая динамическое связывание с помощью мета-языков WSDL , UDDI и SSDL , а так же принципы CRUD/REST , однако, это распространенное мнение обманчиво, о чем писал еще в 2002 году Густаво Алонсо в статье " Мифы про веб-сервисы " ( Gustavo Alonso - Myths around Web Services ). К сожалению, сейчас все материалы, на английском языке по этому вопросу в интернете ведут на битые ссылки, а кое-какие даже на страницу 404 на сайте Microsoft Research (о причинах остается догадываться... а для того, чтобы привести тут ссылку, мне пришлось достать копию статьи из своего бекапа и разместить у себя на сервере). Не буду повторять тут пять основных критических тезисов Алонсо, но постараюсь рассмотреть саму теоретическую возможность динамического связывания в разных архитектурах, безотносительно конкретных реализаций, проприетарных технологий и торговыхмарок. Рассмотрим композитную информационную систему, состоящую из неско...

Литература 2

Еще хочу порекомендовать: 1. Д. Тапскотт "Электронно-цифровое общество" (Don Tapscott "The digital economy") 1999. На каждой странице этой книги Вы найдете десяток готовых идей для бизнеса. 2. У. Эшби "Введение в кибернетику" (William Ross Ashby Introduction to Cybernetics) 1962. Классическое произведение по самоорганизующимся системам. 3. Ибн ал-Араби. "Геммы мудрости" и другие работы, особенно что касается теории единства бытия, даже если Вам кажется, что это от информационных систем далеко, но в то время и в тех местах любая наука была богословской дисциплиной, поэтому и лексика и абстракции у ал-Араби такие, что предварительно нужно изучить Торру, Книги пророков, Новый завет, Коран. 4. Н. Винер "Кибернетика, или Управление и связь в животном и машине" (Norbert Wiener "Cybernetics: Or Control and Communication in the Animal and the Machine") 1948. Замечательная книга, которую просто обязан прочитать каждый ИТ архит...

Конец индустриального века

Ни для кого уже не новость, что нам выпало жить во времена информационной революции, однако мало кто задумывается, что индустриальный век, характеризующийся крупносерийным производством подходит к концу. Глобализация, вызванная, прежде всего, появлением новых средств связи, стиранием границ и сокращением расстояний, привела к чрезмерному увеличению масштабов массового производства. Однако, любая система, подходящая к пику своего развития, одновременно, движется и к переломному моменту, после которого следует или распад или перерождение системы. Быстро растущие количественные показатели производства совсем скоро обратятся в качественный скачек. Для этого требуется только, чтобы экспансия системы упёрлась в пределы ресурсов, спроса или технологий. В пределы технологий пока упереться не удастся, т.к. они сейчас переживают стремительный рост и имеют достаточно большой запас жизнеспособности, однако ресурсы и спрос уже не поспевают за производством. Понять, как же изменится отрасль автомати...

REST и CRUD против RPC

Изображение
Развитие сетевых коммуникаций началось со специализированных протоколов, заточенных под прикладные нужды и повторяющих функциональность друг друга во многих случаях. Концепция эта называется RPC (Remote Procedure Call) или вызов удаленных процедур . Характеризуется RPC тем, что функциональность приложения полностью отображена в наборе команд протокола, например: FTP, POP, NNTP, протоколы СУБД, не говоря уже про многочисленные протоколы систем промышленной автоматизации или прикладных систем. Более поздние RPC стали абстрактными, т.е. появился некий стандарт, описывающий протокол, а уже на его основе разрабатывались прикладные службы, обладающие конкретным набором команд, например: SunRPC, DCOM, CORBA, Java RMI, и т.д. Следующий шаг заключался в ограничении набора команд до "универсального минимума" и перенесении всей смысловой нагрузки в параметры вызовов. Подход этот получил название CRUD по первым буквам команд ( create, read, update and delete ), а архитектура информацио...