Автор Тема: Кто нибудь пишет клиент-серверные приложения?  (Прочитано 3011 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Fox

  • Гость
#0: 13 Апреля 2003, 15:58:40
Кто нибудь пишет клиент - серверные приложения в Благовещенске? Если да, то для каких реальных задач? Какие Вы используете средства для разработки? Какая среда для передачи данных. Используете ли Интернет для удаленных клиентов?
Спасибо за ответ.

Fox

  • Гость
#1: 14 Апреля 2003, 09:33:11
Сбор и обработка информации какой - кто сколько наговорил/наработал по интеренту?

Сильвер

  • Гость
#2: 14 Апреля 2003, 10:09:19
Пишем, потихоньку.
Как правильно заметил BanZaj, все зависит от задачи.
У меня в данный момент php-MySQL в интернет,
Под Виндой на Delphi немного крутится.

To Fox:
Последнее сообщение не понял - это задача или вопрос?

Fox

  • Гость
#3: 14 Апреля 2003, 12:35:50
To: BanZaj
Спасибо за разъяснения. Получается, что базу данных городит что-то (уже большая готовая программа) а Вы пишете только интерфейс для считывания? Или Вы и сами пишете программу для сервера, которая и городит не нем эти самые данные (и контролирует потоки данных)? И кроме того клиент может вносить изменения на сервере? Данный клиент может находиться в локальной сети или где-то в Интернете?

To: Сильвер
Это было предопложение о чем могут быть клиент-серверные приложения. У меня задача попроще - обмен данными между филиалами и центральным складом. Среда передачи данных - Интернет. Правда все приходится писать самому - и для сервера и для клиента :). Хотелось бы узнать на чем все это делают более опытные и продвинутые разработчики. Если такое в наше время возможно.

ЧУВАК

  • Гость
#4: 14 Апреля 2003, 13:05:41
То FOX.
--- cit ---
Правда все приходится писать самому - и для сервера и для клиента :). Хотелось бы узнать на чем все это делают более опытные и продвинутые разработчики. Если такое в наше время возможно.
--- end ---
Более опытные (или продвинутые) разработчики НЕ ПИШУТ эти механизмы. Они уже ДАВНЫМ-ДАВНО НАПИСАНЫ :-) Называется это дело - РЕПЛИКАЦИЯ, работает по схеме \"ИЗДАТЕЛЬ---ПОДПИСЧИК\". Практически ЛЮБАЯ СУБД имеет реализацию этих механизмов. Только вот н\"юанс - правила репликации нужно ручками создать. Иногда - мышкой :-) Да.

Serge

  • Гость
#5: 14 Апреля 2003, 14:32:06
Было дело, писал я. Но не в Благовещенск. Исопользовал VB: для написания аминистративного ПО VB из Visual Studio, и для доступа через Интернет ASP. Базы данных использовались по выбору MS SQL или Microsoft Access (последнее не совсем клиент сервер :) ). Связь СУБД и программы происходила через ODBC-драйвера (определенно в этом варианте есть свои минусы, например невозможность использовать технологию Rushmore - поиска по нескольким полям для одно таблицы методом ADO Recordset Find). Приходилось извращаться через SQL запросы.

ЧУВАК

  • Гость
#6: 14 Апреля 2003, 15:50:34
Где-то я встречал реализацию одной очень интересной технологии, причем все было описано достаточно детально. Суть вот какая: ORACLE на одну лицензию можно взять БЕСПЛАТНО. С одной стороны городится софтина, которая есть эдакий запросчик-ответчик к СУБД, то есть реально с базой работает только она. Эта-же софтина является DCOM-сервером. С другой стороны городится софтина, которая является клиентом для \"запросчика\". Причем идеологически клиентом может быть хоть Office :-) Запросы к базе (и получение ответов) происходят от имени одного клиента.
Реализована эта вся байда была на Дельфи. Да.

Fox

  • Гость
#7: 15 Апреля 2003, 09:20:07
To: BanZaj
При передачи через Интернет должны быть и другие порты помимо 80? То есть будут проблемы с администраторами?

To: ЧУВАК
Я тоже читал о такой технологии, правдо приминительно к FoxPro и MS SQL Server.
Относительно моей цитаты :) Видимо я плохо разбираюсь в терминологии клиент-сервер. На клиентской части я пишу запрос, а на серверной части я пишу обработчик запроса - то есть, что должен делать сервер на мой клиентский запрос. В принципе систему я уже написал и как такового SQL сервера нет :))) Данные находятся в таблицах FoxPro на сервере Novell, а клиенты работают с ним со своих рабочих станций (толстый клиент) через Интернет. Скоро запущу систему в опытную эксплуатацию :)
А хотел я узнать немного практики и идеологии по клиент-серверной архитектуре. В конце концов я сделал для клиента гибкий выбор - мало информации (быстро), много и в виде привычных таблиц - медленно :) Жизнь покажет, как оправдает себя такой подход :)

Спасибо, что поделились мыслями и идеями.

ЧУВАК

  • Гость
#8: 15 Апреля 2003, 13:10:21
Оба-на ! А файлы с таблицами мы держим на Новеловском серваке :-) Уж не для обеспечения-ли целостности и непротиворечивости ??? С использованием TTS ??? Потому как FAT/32/NTFS не очень-то следят за своим содержимым ???

Другими словами, пахнет GPLib (или NetLib) :-)

Я даже затрудняюсь сходу, как назвать ТАКУЮ модель хранения данных :-) Да.

Сильвер

  • Гость
#9: 15 Апреля 2003, 13:46:46
To ЧУВАК:

В Делфе данная технология называется MIDAS-классная штука, тока дорогая. Ставится специальная утилита на сервер, которая обслуживает доступ к Com - серверу.
Есть еще технология Corba-распределенная система.

To Fox:

А ты говоришь Fox...
DBF-это локальные таблицы, а для клиент - сервера нужен как минимум сервер баз данных.

Малая скорость объясняется тем, что при запросе, на клиент у тебя качается вся таблица, а потом из нее выбираются данные, как в Access.

Что тебе посоветовать...
1. Переход на сервер баз данных и отказ от таблиц DBF вообще.
2. Написание Com-серверов вручную для существующих баз DBF,
но это трудоемко и затратно по времени.

3. Если тебе очень нравится Fox, советую перейти на объектное программирование, и забыть навсегда про формат DBF, и не пытаться писать на нем клиент-серверные приложения. Ибо все что ты будешь для них писать вручную, реализовано на сервере баз данных.

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

Fox

  • Гость
#10: 15 Апреля 2003, 14:21:56
To: ЧУВАК
Все гораздо хуже, чем Вы думаете (таблицы просто хранятся и все - без TTS)

To: Сильвер
У MS технология называется Web services (обеспечивает это все SOAP, обмен через XML)... В принципе я все уже написал (серверная часть всего около 300 строк, а клиент под FoxPro). От DBF пока отказаться нельзя - очень древние кассы - POS терминалы (486 машины). Завтра надеюсь начать опытную эксплуатацию и если через месяц вылезет слишком много косяков, то попробуем одну из указанных Вами или ЧУВАКом технологий. Хотя для такой простой задачи, не хотелось бы городить огород...

Спасибо за помощь и советы, спать прийдется со скрещинными пальцами :)))

Сильвер

  • Гость
#11: 15 Апреля 2003, 15:12:58
Желаю удачи.
Но на будущее лучше поставить настоящий сервер БД

Fox

  • Гость
#12: 17 Апреля 2003, 21:35:27
Прошло первых тестовых двое суток... Пока проблем нет, но только на следующей неделе приложение заработает на полную мощность... Посмотрим, на что способен FoxPro + SOAP + IIS+ W2K...

ЧУВАК

  • Гость
#13: 17 Апреля 2003, 23:06:29
Слышите скрежет ???
Это зубы червей с надписью \"Code RED\" грызут устОи информатизации :-)

Слышите грохот ???
Это падает вышеперечисленная конструкция :-) Да.

Fox

  • Гость
#14: 18 Апреля 2003, 06:04:32
Я очень надеюсь, что данная конструкция не упадет, издав виртуальный скрежет, ибо надо еще завершить оставшиеся три проекта :)

Fox

  • Гость
#15: 19 Апреля 2003, 06:18:41
Пока главная проблема оказалась в людях -(
Для ускорения работы я сделал возможность работы с локальным буфером и кнопку \"переслать изменения на сервер\" так вот последнюю забывают жать и измененный данные просто пропадают, так и не попав на сервер... Даже и не знаю, как справиться с такой неожиданно возникшей проблемой...

ЧУВАК

  • Гость
#16: 19 Апреля 2003, 10:30:14
Фоксу.
Для человека \"далекого от\" фраза \"переслать...\" не более чем пустой звук. Нужно сделать что-то типа \"Провести документ\" :-) Да.

Сильвер

  • Гость
#17: 19 Апреля 2003, 11:54:10
To Fox:
--
Даже и не знаю, как справиться с такой неожиданно возникшей проблемой.
--

Мне бы ваши проблемы...

Решение:

1. Для ввода данных открывай отдельное (модальное окно) тогда и кнопка будет при делах.

2. Можно обновление дополнительно привязать к обработчику закрытия формы.

Удачи!

ЧУВАК

  • Гость
#18: 19 Апреля 2003, 14:40:24
Сильверу.
Ну, это СЛИШКОМ ПРОСТО :-) Да.

Сильвер

  • Гость
#19: 19 Апреля 2003, 19:13:45
Ну если есть желание посложнее,
пишите собственный обработчик ввода, тока зачем?

Fox

  • Гость
#20: 20 Апреля 2003, 20:32:50
To: ЧУВАК и Сильвер
Спасибо за оригинальную мысль. Я сделал клиентам (еще ранее) поле в заголовке бланка заказа - \"ЗАКРЫТЬ ЗАКАЗ\" после которого уже нельзя будет добавлять новые позиции и ценральному офису будет разрешена его обработка, пока последний его снова не закроет как выполненный. Теперь я вставлю функцию - переслать окончательно данные перед окончательным закрытием ЗАКАЗА (единственный недостаток остается, если клиенты решат передать друг другу продолжить бланк заказа... но тут как мне кажется, я пока бессилен перед людской смекалкой :).

Спасибо за помощь.

P.S. не могу я сделать  пересылку данных по закрытию формы - уж больно плохие каналы связи у нас в области :(

Сильвер

  • Гость
#21: 21 Апреля 2003, 00:12:28
To Fox:

Все у тебя как-то мутно...

Трудно для понимания.

--
Я сделал клиентам (еще ранее) поле в заголовке бланка заказа - \"ЗАКРЫТЬ ЗАКАЗ\"
--

Что такое поле в заголовке???

Поле-понимаю.
Заголовок-понимаю.
Поле в заголовке - никак,
может ты имел ввиду кнопку -закрыть заказ-?

--
P.S. не могу я сделать пересылку данных по закрытию формы - уж больно плохие каналы связи у нас в области
--

При чем тут каналы связи?
Просто переслать данные ты можешь, а по закрытию формы-нет?

Стоп, у меня что-то с головой, такое чувство, что мы с тобой на разных языках говорим.

Так, если форма большая, разбей ее на несколько форм или страниц, я так понимаю, при чем тут каналы?

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

Вообще-то есть золотое правило, вначале ты должен четко представить, что ты хочешь запрограммировать, затем изобразить на бумаге и проверить, а только потом вколачивать в компьютер, очень часто это помогает!

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

Всегда рад помочь, удачи!


Fox

  • Гость
#22: 21 Апреля 2003, 05:46:15
To: Сильвер
Вы все правильно поняли. Заказ состоит из двух таблиц - заголовка и непосредственно тела заказа, куда может добавляться неограниченное количество записей. Закрыть заказ - это действительно кнопка, при нажатии на которую на сервер пересылается дата для этого поля в таблице, после чего считается, что заказ закрыт (то есть пересылается не весь заказ, а только одна дата, отсюда и уменьшение трафика). Клиент - толстый, то есть он (пользователь) может несколько раз заходить и работать с заказом, не пересылая его на сервер (все неизменяемые справочники уже находятся на машине клиента), что ускоряет работу. И лишь когда он решит, что заказ завершен, он может переслать его на сервер ОДИН РАЗ (типичная ситуация, когда заказов оформляется много одновременно и не всегда ясно, что должно в них входить).

К сожалению, я очень стар - рисовать на бумаге то, что я хочу получить на компьютере :) воображение уже сразу дает то, что должно быть в формах (удел всех прикладных программистов). Хотя первые пятнадцать лет этот способ я практиковал частенько и он неплохо дисциплинировал мысли.

Спасибо за помощь.

Сильвер

  • Гость
#23: 21 Апреля 2003, 07:51:19
To Fox:

Что первое приходит в голову по сокращению трафика.
Бланк заказа как я понимаю имеет вид шаблона.
Поэтому можно передавать на клиента только список элементов заказа, рядом с которыми ставить галочки (выбран/не выбран), а на сервер передовать массив элементов с отметками (1/0).
И уже на сервере формировать полный текст заказа.

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

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

Количество записей всегда ограничено перечнем товаров и оно конечно!

И еще:

--
Клиент - толстый, то есть он (пользователь) может несколько раз заходить и работать с заказом, не пересылая его на сервер (все неизменяемые справочники уже находятся на машине клиента)
--

При этом каждый раз весь заказ будет перегружаться на клиента..., иначе не понятно, где будут храниться справочники?

--
типичная ситуация, когда заказов оформляется много одновременно и не всегда ясно, что должно в них входить...
--
Как раз, всегда ясно, что входит, (еще раз повторюсь) то, что выбрал юзер из конечного перечня товаров, конечно, если это ни сочинение на вольную тему. Но мы ведь имеем конкретный бланк заказа!

Есть такая хорошая штука - сессии, думаю она бы тебе тут помогла!

--
воображение уже сразу дает то, что должно быть в формах (удел всех прикладных программистов).
--

Я тоже не молод, но часто рисую, главное в программировании-построить правильный полный алгоритм действий.
А то, что должно быть в формах-это удел верстальщика, а программист, как раз и обрабатывает эти формы и выдает результат!

Не желание продумывать алгоритм полностью-это скорее наша лень, а ни старость.

От обезъяньего метода проб и ошибок, который иногда бывает очень длительным процессом, я ушел, когда перешел на ООП.
Сразу все встало на свои места.

Чет много написал, старался, чтоб было понятней.

Желаю удачи в нашем нелегком труде!


Fox

  • Гость
#24: 21 Апреля 2003, 08:00:57
Ok, спасибо, мне надо время, чтобы переварить написанное...

Сильвер

  • Гость
#25: 21 Апреля 2003, 08:23:13
Ты программу пишешь, тебе и выбирать,
набросал, что в голову пришло, может что и пригодится.

Fox

  • Гость
#26: 27 Апреля 2003, 08:13:41
To: Сильвер
Перечитал несколько раз предлагаемые Вами идеи. Все-таки понял, что между большая \"пропасть\" в подходах. В FoxPro уже \"все было\", когда MS нас вывел на создание WEB и Клиент-серверных приложений. Получилось все это фантастически просто и гибко (многие программисты, кто писал на C++, Java и даже VB) оценить смогут это с трудом. Как тут кто-то заметил FoxPro \"портит людей\" - ибо имеет в своем инструментарии все, что нужно прикладному программисту и многие вещи делаются очень просто и быстро.

Прошла уже неделя с момента начала пробной эксплуатации. Пока я склонен оставить все как есть. Техническая проблема пока только одна - W2K странным образом интерпретирует кодовую таблицу 866 в 1252 вместо 1251 внутри webservices (MS так ничего вразумительно на это не ответил, хотя в новом сервере она должна быть решена).

Спасибо за помощь и участие!

Fox

  • Гость
#27: 23 Мая 2003, 18:15:40
Прошло уже больше месяца работы пилотного проект клиент-сервера на FoxPro. Как это не звучит странно, но все пока работает без дорогостоящих SQL серверов...

Сильвер

  • Гость
#28: 23 Мая 2003, 19:07:53
To Fox:

Месяц-ни показатель.
Писать сервер баз данных - изобретение велосипеда.

А что касается dbf  сети - вообще абсурд.

Подожди пока база нагрузится мегов так до 10 хотя бы, потом будет возможность определиться со скоростью обработки.

Если бы мне сейчас предложили писать сервер баз данных руками с нуля, я бы это кинул, не взирая на мифические удобства и поставил настоящий сервер, благо их полно и бесплатных.

CUJIbBEP

  • Гость
#29: 23 Мая 2003, 19:19:49
2 Fox:
Собственно VFP, w2k + IIS -- тоже не шибко дешевое дело :)
Linux+Perl+Apache -- будут заведомо дешевле :)

Ну не любитель ты SQL -- это понятно. Многим же наоборот -- не нравиться \"строчный\" подход. И примеров людей испорченых строковым подходом -- масса.
 А вообще предлагаю обсудить тему \"За что платят деньги при покупке SQL сервера\"

Fox

  • Гость
#30: 24 Мая 2003, 05:47:33
To: Сильвер
В данной задаче непосредственно участвует четыре таблицы из базы данных (FoxPro). Так вот уже самая большая имеет размер 28 Mb. Просто правильно спланированная структура позволяет иметь пока файл заголовков всего 20 Kb а индексы по запрашиваемым полям делают трафик минимальным.

To: CUJIbBEP
Да, Вы правы - сам W2K стоит приличную сумму денег (но для данной технологии количество клиентов не имеет никакого значения и хватит стандартных пяти лицензий на все случаи жизни :).
Относительно бесплатных серверов - ну уж больно не развит там сервис для разработчиков - очень много надо руками работать (при наличие FoxPro) - это просто чистая потеря рабочего времени.
Нельзя любить или не любить SQL СЕРВЕРА (язык SQL что для FoxPro - что для SQL сервера абсолютно одинаков, за исключением отхода от стандарата в некоторых SQL серверах). Просто есть возможность для большинства прикладных (РЕАЛЬНЫХ) задач обойтись без них, то почему бы и нет? Вот о чем вопрос - о способе удешевить разрабротку приложений... В своей работе с клиентами я пока не сталкивался с задачами, которые не смог реализовать на FoxPro. А может у меня всегда были не очень крупные клиенты?

Fox

  • Гость
#31: 26 Мая 2003, 13:06:10
To: BanZaj
Согласен, дело привычки. Но MS \"разбаловал\" нас визуальными средствами разработки, особенно FoxPro, в котором все есть, даже MS SQL Server 2000 Engine :)))
Ну а работа головой сводится к paste and copy или есть что-то более современное, чего не знаю я из инструментов для Linux среды. Хотя мои многие американские знакомые всерьез занимаются разработкой приложений FoxPro под Linux (одна проблема - делают они это нелегально, так как MS в лицензионном соглашении запрещает это делать)...

Наиль Ильбарович

  • ***
  • Сообщений: 7273
    • Просмотр профиля
#32: 26 Мая 2003, 20:07:11
==========================
(одна проблема - делают они это нелегально, так как MS в лицензионном соглашении запрещает это делать)...
=========================
-- Здесь курить можно?
- Нет! Нельзя!
- А откуда тогда окурки?
_ А это набросали те, кто не спрашивает...

:))

Fox

  • Гость
#33: 26 Мая 2003, 21:30:07
To: tang
Кто был там, зарубежом, где соблюдаются авторские права поймут, что я имел в виду. Ну а у нас в России это конечно, звучит как шутка. Особенно, когда SQL сервер стоимостью в 25000 USD устанавливают для пяти бухгалтеров :)

Наиль Ильбарович

  • ***
  • Сообщений: 7273
    • Просмотр профиля
#34: 26 Мая 2003, 22:21:19
To Fox & To ALL
 O...!!!!! 8-O

 

kompas