Java технологія. Основні риси та перспективи застосування
Java-програми несуть у собі значний обсяг інформації про типи часу виконання (run-time type information), яка використовується для дозволу доступу до об’єктів під час роботи програми. Це дозволяє забезпечити безпечну та оптимальну динамічну компоновку. В такий спосіб досягається захищеність середовища виконання аплетів.
Доступність інструментарію та ефективність розробок.Зазначена вище простота програмування на Java є причиною того, що розробки на Java коштуватимуть дешевше аналогічних на більш потужніх мовах програмування. Цьому ж сприяє і переносимість програм на Java, оскільки ліквідуються витрати пов’язані з адаптацією програми на конкретній платформі. До того ж інтегровані програми-оболонки для розробки Java програм коштують набагато дешевше ( 70-100$ ) ніж аналогічні продукти C++, Delphi ( ~1000$). А набір інструментарію для пакетної компіляції Java програм JDK (Java Development Kit) є взагалі freeware. Тому платформу Java можна рекомендувати як ідеальну для створення некомерційних програмних продуктів, зокрема для галузі освіти.
Перспективи застосування.
Програми на Java можуть знайти різне застосування в навчальному процесі: інтерактивні навчаючі програми (HTML в поєднанні з Java), програми-тести і особливо ділові ігри. Додаткові переваги можна отримати, якщо пистати ці програми у вигляді аплетів, які ініціалізуються з Web сервера внутрішньої мережі Intranet. В такий спосіб можна уникнути інсталяції програми на багатьох комп’ютерах - користувач просто запускає Web-броузер і загружає потрібну сторінку. Для тестових програм, написаних на Java з викориситанням архітектури клієнт/сервер можна підвищити ступінь конфіденційності. База даних тестових запитань знаходиться на сервері в каталозі з обмеженим доступом. Коли користувач загружає аплет, він автоматично підключається до програми-сервера, яка виконується на сервері і може видавати запитання з бази даних у відповідь на запит користувача. В такий спосіб унеможливлюється викрадення бази даних, за умови відсутності фізичного доступу до серверу у користувачів.
Окреме питання - навчальні ділові ігри. Під такою грою розумітимем гру, за участю кількох користувачів, в якій мається на увазі динамічний обмін інформацією між ними. Система безпеки Java накладає обмеження, внаслідок якого аплет може встановлювати з’єднання лише з хостом, з якого він був загружений і ні з яким більше. Але це обмеження легко обходиться: на сервері виконується програма-сервер, з якою з’єднуються усі клієнти і через яку здійснюється обмін інформацією. Таким чином така програма повинна мати архітектуру клієнт/сервер. В якості приклада наведу спрощену chat-програму. В ній реалізовані базові засоби для створення ділової гри.
Серверна частина програми взята з книги Нотон П. Шилдт Г. «Полный справочник по Java»:-Киев, «Диалектика», 1997 і є практично універсальною для програм такого класу. Можливе легке доопрацювання цієї програми в бік розширення кількості протокольних команд. Клієнтська частина була написана мною. Програма працює наступним чином: користувач запускає аплет із сервера, вводить свій ідентифікатор і бачить перелік ідентифікаторів користувачів, які під’єднані до сервера. Після чого користувач має змогу обмінюватись повідомленнями з іншими. Користувач одержує повідомлення в разі під’єднання або від’єднання користувачів.
Програма складається з 4 класів: Server, ClientConnection, Client та ServerConnection. Перші 2 класи відносяться до серверної частини, другі 2 - до клієнтської.
Клас Server:
import java.net.*;
import java.io.*;
import java.util.*;
public class Server implements Runnable {
private int port = 6564;
private Hashtable idcon = new Hashtable();