Ada_Ru форум

Обсуждение языка Ада

Толстый клиент

Оставить новое сообщение

Сообщения

Olleg Samoylov
Толстый клиент
2006-08-03 08:39:55

Есть большое желание написать новую систему взамен уже мной созданной. Там есть демоны работающие на серверах круглосуточно, есть интерфейс пользователя, есть SQL база данных между ними. На текущий момент разные компоненты написаны на разных языках (C++ для демонов, java для клиента, plsql на sql сервере). Работают они в принципе с одними и теми же данными, но программый код для каждого языка приходится писать параллельно, что мне сильно не нравится. Хочется все сделать на одном языке с единой библиотекой типов данных.

 

Интерфейс пользователя может быть тонким (работа через веб броузер, типа ajax) и толстым (полноценное приложение). Как писать тонкий я еще смутно представляю. Например на аде (это же идеальный язык :) ) + aws + javascript.

 

Вопросы встают при желании написать толстый клиент. С одной стороны, для толстого идеально java + java webstart. Но java плохо подходит для написания демонов, хотя можно попытаться её компилить в испольняемый код с помощью gcj.

 

Для демонов и прочей серверной инфраструктуры хорошо подойдет ада. И даже вроде существуют компиляторы ада в java bytecode, увы не gnat. А клиент должен работать под виндами, линуксом и может быть под макинтошами.

 

Я думаю я далеко не первопроходец. Хочу узнать, как эту проблему решают старые и опытные товарищи.

-- Olleg Samoylov

On Thu, Aug 03, 2006 at 12:39:55PM +0400, Olleg wrote:

Вопросы встают при желании написать толстый клиент. С одной стороны, для толстого идеально java + java webstart. Но java плохо подходит для написания демонов, хотя можно попытаться её компилить в испольняемый код с помощью gcj.

 

Для демонов и прочей серверной инфраструктуры хорошо подойдет ада. И даже вроде существуют компиляторы ада в java bytecode, увы не gnat. А

 

Не понятна логика: тебе в Java мешает байткод, а в Аде его не хватает! :-)

 

Для java bytecode

jgnat есть, он даже работает. Только, если не ошибаюсь, многозадачность на новых jvm не работает. Я недавно пробовал скомпилять свой проект, почти весь скомпилялся, кроме файла сгенеренного ayacc, там огромный case который стал у jgnat поперек горла. Я не смог разобраться

как jgnat исправить. (Вот бы кто помог?)

 

 

клиент должен работать под виндами, линуксом и может быть под макинтошами.

Я думаю я далеко не первопроходец. Хочу узнать, как эту проблему решают старые и опытные товарищи.

 

Я написал одного толстого клиента на GtkAda. Учет данных о

землепользователях для нашего Центра Земельного Кадастра.

Не скажу, что на GtkAda писать одно удовольствие, но работает.

Писал и отлаживал под Линуксом, но в Центре используют под

Виндой. База данных Oracle (или Firebird). К нему еще есть

маленький демон, для получения отчетов в PDF.

 

Могу поделиться наработками или рассказать подробнее.

Есть свой драйвер доступа к БД с кешем, TreeModel для

использования GTK TreeView - это вместо гридов.

 

Если бы писал сейчас - делал бы тонкого клиента. Думаю

над тем, чтоб переписать когда-нибудь. Сейчас на каждую

машину копируется Gtk + сам клиент, хоть и автоматом,

но все равно как-то не красиво.

 

 

--

Olleg Samoylov

 

--

Maxim Reznik

Maxim Reznik wrote:

Не понятна логика: тебе в Java мешает байткод, а в Аде его не хватает!

:-)

 

А что тут в этом то и вся заковыка. Для толстого клиента идеален java webstart. Автоматическая инсталяция, обновление, кроссплатформенность. Сказка. Похуже варианты - flash и java applets. И еще хуже варианты держать несколько бинарников инсталяторов на все виды операционок/архитектур с которыми придется работать. В большинстве своем это винды. Но у меня стоит линукс, не могу же я себя обидеть. :)

 

Ну а запускать демоны в jvm это зло. К тому же задачи бывают очень специфические, типа подсчет трафика с одновременной агрегацией.

 

В принципе тонкий клиент по технологии ajax должен избежать многих косяков, которые мне не нравились в тонких клиентах. Но завязываться на javascript очень не хочется, какой-то он на разных броузерах разный.

 

Для java bytecode

jgnat есть, он даже работает. Только, если не ошибаюсь, многозадачность

на новых jvm не работает. Я недавно пробовал скомпилять свой проект,

почти весь скомпилялся, кроме файла сгенеренного ayacc, там огромный

case который стал у jgnat поперек горла. Я не смог разобраться

как jgnat исправить. (Вот бы кто помог?)

 

Интерестно, о чем то подобном я и ожидал услышать в этой рассылке, когда создавал тему. Не слышал о таком раньше. Хотя есть скептицизм, что он будет поддерживать Ада 2005 в далеком будущем.

 

Если бы писал сейчас - делал бы тонкого клиента. Думаю

над тем, чтоб переписать когда-нибудь. Сейчас на каждую

машину копируется Gtk + сам клиент, хоть и автоматом,

но все равно как-то не красиво.

 

А автоматическое копирование как реализовано? Сделал програмку по аналогии с JWS или есть какие-то готовые решения, библиотеки?

 

-- Olleg Samoylov

On Thu, Aug 03, 2006 at 05:32:01PM +0400, Olleg wrote:

 

Интерестно, о чем то подобном я и ожидал услышать в этой рассылке, когда создавал тему. Не слышал о таком раньше. Хотя есть скептицизм, что он будет поддерживать Ада 2005 в далеком будущем.

 

 

У меня такое впечатление, что АдаКоре забросило этот проект. Думаю не будет больше новых версий jgnat. На его текстах вырос A#, Ада

для .Net-а. Может этим путем пойти? Там скорее будет Ада 2005.

Может есть .net -> .class транслятор?

Хотя IMHO это уж слишком изврат.

Если бы писал сейчас - делал бы тонкого клиента. Думаю

над тем, чтоб переписать когда-нибудь. Сейчас на каждую

машину копируется Gtk + сам клиент, хоть и автоматом,

но все равно как-то не красиво.

 

А автоматическое копирование как реализовано? Сделал програмку по аналогии с JWS или есть какие-то готовые решения, библиотеки?

 

Да как, сделал батник в котором wget запускается и синкает с сервера каталожку, но ребята потом переделали на xcopy с сетевого диска :)

 

--

Olleg Samoylov

 

--

Maxim Reznik

--- In ada_ru@yahoogroups.com, Maxim Reznik <yeo@...> wrote:

У меня такое впечатление, что АдаКоре забросило этот проект. Думаю не будет больше новых версий jgnat.

Я тоже так думаю.

 

На его текстах вырос A#, Ада

для .Net-а. Может этим путем пойти? Там скорее будет Ада 2005.

Может есть .net -> .class транслятор?

Хотя IMHO это уж слишком изврат.

 

Есть, и это не изврат - транслировать из одной VM в другую -

оптимизировать всё равно нет необходимости. Был поток данных/методов записан одним байткодом - стал другим.

 

http://dev.mainsoft.com/Default.aspx?tabid=32&src=Overview.html

 

Связка A# + VS2k5.NET + Grasshopper, не исключено, будет даже отлично работать.

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти