Настольное приложение Java плюс база данных плюс интернет - PullRequest
2 голосов
/ 11 декабря 2010

Я должен написать небольшое приложение базы данных Java с несколькими таблицами. С этим у меня есть некоторый опыт, и я могу это сделать. Это было бы на одной машине.

Где-то в сети, с другой машины должна быть возможность подключения и проверки некоторых запросов к базе данных в графическом интерфейсе SWING. Эта часть сети с тем, что у меня нет опыта. Как лучше всего выполнить эту задачу? Мне нужны некоторые общие указания здесь и, возможно, несколько хороших ссылок с примерами для изучения. Проблема в том, что мне не хватает времени здесь.

Из моего просмотра я обнаружил, что самое простое решение - это прямое соединение с удаленной машины напрямую с JDBC через ip: port way. Как 111.111.111.111:55 Но это оставляет БД действительно небезопасным.

Я читал о сокетах, но не понимаю, как это помогает.

Теперь я видел, как люди упоминают Hibernate и VPN, но я думаю, что это большая работа. И другие упоминают веб-серверы, но я абсолютно не знаю, как это работает.

Итак, каково оптимальное решение по вашему мнению? Идеи, предложения, рекомендации?

Заранее спасибо, Мартин.

Ответы [ 4 ]

2 голосов
/ 11 декабря 2010

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

2 голосов
/ 11 декабря 2010

Драйверы JDBC могут иметь разные аргументы для своего источника данных, в зависимости от того, используете ли вы шифрование для соединения.

Например, MySQL позволяет использовать соединение SSL и даже имеет раздел в своем руководстве к нему.Другие базы данных могут отличаться.

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

1 голос
/ 11 декабря 2010

У вас есть несколько параметров.

  • RMI это позволяет объекту, запущенному на одной виртуальной машине Java, вызывать методы на объекте, запущенном на другой виртуальной машине Java.
  • CORBA Common Object Request Broker Architecture - стандартная архитектура для распределенных объектных систем.Он позволяет распределенной гетерогенной коллекции объектов взаимодействовать.
  • Сокеты
  • HTTP-сервер.Вы можете использовать сервлеты или некоторые фреймворки, такие как Struts, Spring и т. Д. Для серверной стороны, и просто вызывать сервлет из своего клиента, используя Apache HttpClient

Поскольку у вас малораз я бы отказался от RMI и CORBA и сосредоточился бы на Sockets или решении http-сервера.

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

С javaвы можете очень легко создать сервер и клиент, используя сокеты здесь - базовый пример, а Here - очень хороший учебник, использующий Swing.

1 голос
/ 11 декабря 2010

Возможно, вы захотите написать веб-сервис для предоставления ваших данных вместо того, чтобы позволить пользователю подключаться напрямую к БД через Интернет.В идеале этот веб-сервис находится на физически отделенном компьютере от базы данных, чтобы база данных не была напрямую подключена к Интернету.

Person <-> internet <-> Web Service <-> database

Это действительно зависит от того, что вы считаете оптимальным .

У вас нет проблем с безопасностью?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...