Перспективи застосування.
Програмування web-сторінки
Як вже згадувалось, Java дозволяє створювати незалежні від платформи програми шляхом компіляції в проміжне представлення, яке називається байткодом. Багато попередніх спроб знати розв’язок проблеми незалежності від платформи були зроблені за рахунок продуктивності. Інтерпретуючі системи, подібні до BASIC, Perl, страждають на майже неподоланний дефіцит продуктивності. Це було враховано при… Читати ще >
Перспективи застосування. Програмування web-сторінки (реферат, курсова, диплом, контрольна)
Java розроблялася з орієнтацією на вимоги до створення інтерактивних програм, які працюють з мережею. З цією метою Java підтримує поточне програмування, яке дозволяє легко розробляти програми, що виконують багато процесів одночасно. Виконання Java-програми засновано на елегантному, але в той самий час високоорганізованому рішенні синхронізації, яке дозволяє вам створювати високоефективні інтерактивні системи.
Основним питанням для розробників Java стало питання довго тривалості. Одна з головних проблем, із якою зустрілися програмісти, полягала в відсутності гарантій того, що написана сьогодні програма завтра працюватиме з тим же успіхом, причому на тій самій машині. Оновлення операційної системи, модернізація процесора та зміна об'єму оперативної пам’яті можуть призвести до збою програми. Розробники Java, прагнули змінити цю ситуацію і прийняли декілька важких рішень відносно мови Java та процесу виконання Java-програми. Їх мета полягала в тому, щоб «одного разу написане працювало всюди, в любий час і завжди». Внаслідок цього Java є системою, яка легко розширюється за рахунок створення нових стандартних класів та бібліотек.
Як вже згадувалось, Java дозволяє створювати незалежні від платформи програми шляхом компіляції в проміжне представлення, яке називається байткодом. Багато попередніх спроб знати розв’язок проблеми незалежності від платформи були зроблені за рахунок продуктивності. Інтерпретуючі системи, подібні до BASIC, Perl, страждають на майже неподоланний дефіцит продуктивності. Це було враховано при створенні Java. Незважаючи на те, що Java є інтерпретованою мовою, генерація байткодів була ретельно оптимізована в такий спосіб, щоб одержуваний байткод можна було легко перекладати в машинний код, який працює з дуже високою продуктивністю. Виконуючі системи такого роду не втрачають жодних переваг такому коду.
Мова Java призначена для створення програм, які працюють в розподіленому середовищі Internet на базі протоколів TCP/IP. Насправді доступ до ресурсів за допомогою URL відрізняється від доступу к файлу. Крім того в Java наявний засіб передачі повідомлень в межах внутрішнього адресного простору. Це дозволяє забезпечити віддалене виконання процедур. Ці інтерфейси включені у пакет RMI (remote metod invocation). Цей засіб привносить високий рівень абстракції в програмування для середовища клієнт/сервер.
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 — до клієнтської.