Распределенные вычисления
Исторически, программирование для нескольких машин было трудоемким, сложным и полным ошибок.
Программист должен знать множество деталей о сети, а иногда, также об аппаратном обеспечении. Вам нужно было разбираться с различными “слоями” сетевых протоколов, и, кроме того, существовало множество функций в сетевых библиотеках для соединения, распаковки, упаковки блоков информации; передачи этих блоков туда и обратно; и подтверждения связи. Это была тяжелая задача.
Однако, основная идея распределенного программирования не так сложна, и легко резюмируется в библиотеках Java. Вы хотите:
Получать информацию с одной машины и переместить на другую машину, либо наоборот. Это выполняется с помощью простейшего сетевого программирования. Подключаться к базе данных, находящейся в сети. Это реализуется с помощью библиотеки Java DataBase Connectivity (JDBC), которая абстрагируется от связанных с платформой деталей SQL (the structured query language - структурированный язык запросов - используемый в большинстве транзакций баз данных). Предоставлять услуги через Web сервер. Достигается с помощью Java сервлетов и Java Server Pages (JSPs). Выполнять прозрачный запуск методов объектов Java, которые расположены на удаленных машинах, как будто они располагаются на локальных машинах. Выполняется с помощью Remote Method Invocation (RMI). Использовать код, написанный на других языках, работающий в других архитектурах. Это выполняется с помощью Common Object Request Broker Architecture (CORBA), технологии, которая напрямую поддерживается языком Java. Изолировать бизнес правила от соединения, особенно, соединения с базами данных, включающего обработку транзакций и безопасность. Это выполняется с помощью Enterprise JavaBeans (EJBs). EJBs на самом деле не является распределенной архитектурой, но конечные приложения обычно используются в сетевых клиент-серверных системах. Простое, динамическое добавление и удаление устройств из сетевого представления локальной системы. Это выполняется с помощью Jini из Java.
Для каждого пункта будет дано небольшое введение в этой главе. Обратите внимание, что каждая тема довольно объемная и сама по себе может занимать отдельную книгу, так что эта глава предназначена для ознакомления с этими разделами. Это, конечно, не сделает Вас экспертами по данным вопросам (хотя, Вы можете довольно далеко пройти с помощью информации представленной здесь по сетевому программированию, сервлетам и JSPs).
Содержание раздела