Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Кроссплатформенные технологии

11
22 апреля 2010 года
oxotnik333
2.9K / / 03.08.2007
Имеется задумка сделать ядро кроссплатформенного (win/linux) ядра приложения.
В кратце суть ядра:
1. Одним каналом оно цепляется к удаленному серверу и по своему протоколу отсылает/принимает данные.
2. Другим каналом оно эти данные складывает в некую условно локальную БД и производит обработку данных из этой БД.
3. Третий канал предоставляет некий программный интерфейс (по типу COM) для управления самим ядром. (в дальнейшем будет к нему привязан UI)
Вопросы:
1. Какими кроссплатформенными технологиями можно организовать 3-й канал?
2. Исходя из моих знаний С++ и шарпа (немного) на чем это лучше реализовывать?
3. Если через шарп делать, в Mono/.NET есть кросплатформенность объектов по работе с сетью и БД?
4. Как осуществлять кросплатформенную связь с БД ?
PS: оптимальней конечно всего для этого джава подходит, но чего не знаю, того не знаю.
16K
27 апреля 2010 года
lxx
24 / / 27.02.2007
Цитата:
для этого джава подходит, но чего не знаю, того не знаю


Если знаете шарп, то и с Явой довольно быстро подружитесь.
А если нет, то Qt. Прослойки для работы с БД присутствуют.

87
27 апреля 2010 года
Kogrom
2.7K / / 02.02.2008
Цитата: oxotnik333
PS: оптимальней конечно всего для этого джава подходит, но чего не знаю, того не знаю.



Вот это ты зря сказал :) Почему же оптимальнее?

А вообще, чтобы не сомневаться - лучше использовать C++ и Qt. Иначе можешь больше просомневаться, чем дело делать.

5
27 апреля 2010 года
hardcase
4.5K / / 09.08.2005
Я использовал бы Mono так как сильно подсел на управляемые среды. Трахаться с ручным управлением памятью в C++ уж очень не хочется, для меня это сильнейший минус.
Java отличный вариант, куча фреймворков есть, Zorkus придет и покажет :)
А в Mono все практически также как в .NET. Вот интерфейсы для работы с БД. А гуя практически аналогично WinForms собирается в GTK#.

П.С. Бинарники как правило будут кроссплатформенными (это если не юзать PInvoke).
11
27 апреля 2010 года
oxotnik333
2.9K / / 03.08.2007
Собственно, главный вопрос - какой технологией сделать интерфейс этого ядра, так что бы потом можно было управлять ядром. Советовали в сторону CORBA посмотреть, но чет не впечатлило для данной задачи. Думал на пайпах сделать, но тут затык с кроссплатформенностью.
Работа с сетью и БД в QT реализована, так что эти вопросы вроде как отпадают.
5
27 апреля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: oxotnik333
Собственно, главный вопрос - какой технологией сделать интерфейс этого ядра, так что бы потом можно было управлять ядром.

Гугл подсказывает что в Mono должен работать стандартный механизм удаленного взаимодействия - Remoting.

11
28 апреля 2010 года
oxotnik333
2.9K / / 03.08.2007
Цитата: hardcase
Гугл подсказывает что в Mono должен работать стандартный механизм удаленного взаимодействия - Remoting.


Насколько я понимаю, это фича Моно/Дотнета, т.е. вне рамок этих платформ я не смогу заюзать этот интерфейс?
В самом начале я упомянул СОМ, если бы она была кроссплатформенна, то это был бы идеальный вариант. Не так давно я делал что то подобное тому что хочу реализовать, но оно было чисто под винду и предоставляло СОМ-овский интерфейс. Работало с 1С, САПом, делал демонстрашки в экселе, подключал к Солиду, т.е. в рамках винды СОМ это универсальный интерфейс и с ним не умеет работать только ленивый (софт в смысле).
Вот хотелось бы найти подобную технологию и в межплатформенном пространстве.
PS: можно в принципе заюзать сокеты под это дело, но это какой то костыль на мой взгляд получается.

5
28 апреля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: oxotnik333

PS: можно в принципе заюзать сокеты под это дело, но это какой то костыль на мой взгляд получается.


Вообще там зависит от синка, ремотинг можно завести как поверх обычного TCP, так и поверх HTTP (SOAP), правда я не знаю как с этим обстоят дела в Моно.

63
28 апреля 2010 года
Zorkus
2.6K / / 04.11.2006
А вот он я.

Итак, про Java.
Под линуксом действительно работать будет, и библиотеки все вам нужные есть (я гарантирую это). Для любого известного дистрибутива линукса должна JDK (java development toolkit) присутствовать в репозитариях и ставиться одной командой.
Далее, строго рекомендую использовать под все операционки сановскую версию JDK, и не использовать под линукс дерьмо под названием GCJ. Возможно, сейчас оно стало лучше, однако два года назад было убогим.

Про управление.
Под Java рекомендуют использовать JMX, который специально для этой цели предназначен. Т.е. по сути иметь внутри своего ядра т.н. MBeanServer, и регистрировать в нем MBean-ы (управляемые бины) для конкретных операций. Подробней гуглите.

Под .net очевидно, аналогом является NetMX. Hardcase, что скажешь? WMI-то уж точно не подойдет автору...
5
28 апреля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Zorkus

Под .net очевидно, аналогом является NetMX. Hardcase, что скажешь? WMI-то уж точно не подойдет автору...


Хз, впервые слышу про NetMX :)
Я вообще этими вещами не занимался.

11
28 апреля 2010 года
oxotnik333
2.9K / / 03.08.2007
Zorkus, поделись хорошими ссылками по теме MBeanServer и как к нему клиента присобачить, а то интернет большой и можно влезть не туда.
502
28 апреля 2010 года
Jail
550 / / 30.01.2007
Хорошим примером реализации MXBean является MySQL Connector /MXJ
Так называемый кроссплатформенный коннектор для MySQL. ПО сути, просто грузит для каждой платформы свой скомпиленный бинарник. Данный конектор предназначается в основном для работы с MBean контейнерами типа JBoss. Да и в основном JMX используется для JavaEE, что по сути отяготит легкий кросплатформенный перенос ядра.
Одна полезность - доступны исходники.
63
02 мая 2010 года
Zorkus
2.6K / / 04.11.2006
Нет, JMX не связан сам по себе с Java EE. Другое дело, что вендоры AS обычно предоставляют через него расширенные возможности управления контейнером и приложениями в нем.
502
02 мая 2010 года
Jail
550 / / 30.01.2007
А я и не говорил, что JMX свяязан с JavaEE. JMX спецификация входит в JavaSE. Но вот только используется в основном в JavaEE. К примеру на десктопе могу припомнить минимум приложений пользующих JMX (хотя вещь и очень удобная) - jvisualvm. Большо особо не припомню. А как я понял, автору необходимо создать ядро приложения все же больше ориентированное на десктоп.
63
03 мая 2010 года
Zorkus
2.6K / / 04.11.2006
Ну jvisualvm - это стандартный инструмент из поставки JDK, который предназначен собственно для мониторинга и управления приложением (в широком смысле). Т.е. узкоспециальный инструмент.

В целом, ничто не мешает использовать JMX в десктопном приложении, он и используется, только это может быть не видно на "глаз" :).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог