Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Фирсов.docx
Скачиваний:
0
Добавлен:
25.01.2020
Размер:
1.95 Mб
Скачать

Платформа JAVA

- пакет программ, которые позволяют разрабатывать и запускать программы, написанные на языке программирования Java:

- Виртуальная машина Java

- Компилятор я языка Java в байтй код

- Библиотеки классов

При создании Java ставили следующие задачи: Создать язык программирования который бы был:

- Простым, объектно-ориентированным и знакомым

- Надёржным и безопасным

- Независимым от архитектуры и переносимым

- Высокопроизводительность

Платформы Java

Редакции платформы Java

- Java Card

- Java EE (Enterprise Edition) – нам понадобится

Пакет распространения:

JRE – Java Runtime Environment

*виртуальная машина Java

* библиотеки классов

- JDK – Java development Kit = JRE + компилятор Java (нам понадобится Джава девелопмент Ентерпрайс эдишн)

Рекомендует: NetBeans

На след. пару установить Джаву

Hello, world!

public class TestJava

{

public static void main (Stringp[args)

}

Компиляция и запуск Hello, world!

!Добавить к переменной окружения PATH путь к компилятору и виртуальной машине Java (…)

  • javac TestJava.java

  • java TestJava

Главное отличае от СИ – компиляция в байт код.

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

Указатели

Формально все переменные (за исключением перемнный примитивный типов) в Java являются иказателями на объекты. С их помощью можно работать с объектами, но нельзя получить адрес.

Следствия:

- Автоматическая обработка мусора

- Проверка совместимости типов при присваивании

- Меньше ошибок при работе с памятью

- Простая сериализация объектов

Другие отличия Java от C/C++

- Чистый объектно-ориентированный язык. Object – всеобщий предок.

- Нет глобальных переменных

- Нет препроцессорной обработки

- Нет ненадёжных структур (struct, union)

- Нет разделения на заголовочные файлы и файлы с реализацией

- Не воддерживает множественное наследование

- Интерфейсы

import вместо #include, пакеты вместо библиотек

import java.math.*;

import java.until.Date;

Аннотации

- используются дл добавления метаданных в программу

@Resource (lookup = “jms/ConnectionFactory”)

Создание документации из комментариев

package testJava;

public class TestJava

{

/**

* закомментированная строка

*/

Оптимизация

- Just-In-Time компеляция, этот компилятор при мервом проховде какого то участка кода – кмпелирует в машинный код конкретной архитектуры, поэтому то, что пытается его выполнить – делает это быстрее.

- HotSpot – поиск и оптимизация горячих точек (некоторые части программ выполняются чаще остальных, HS находит такие места и производит их оптимизацию)

- Динамическая перекомпиляция

- Анализ многопоточных приложений и определение необходимости захвата разделяемых объектов

- Оптимизация GarbageCollector (уменьшение дефрагментации)

- Совместное использование классов

07.03.2013

Формальная модель распределённых систем.

Выполнение системы

- Выполнением системы S называется макесимальная последовательность E = (c0,c1,c2,…), где c0Эl и для каждого I, выполняется отношение ci->c(i+1).

-Заключённой конфигурацией называется такая конфигурация сi для которой не сущетсвует cj, такой, что ci->cj.

- Конфигурация d называетмся достижимой из конфигурации c, если сущ последовтельность конфигураций c0,c1…,ck

Локальный алгоритм

- Локальным алгоритмом называется пятёрка (Z,I, |-I - переход связанный с внутренним событием, |-s – события связанные с изменением состояния и одновременной отправкой сообщений,|-r – множество событий связанных с получением сообщения), в которой Z – множество состояний, I – начальные состояния (подмножество множества Z).

Распределённый алгоритмы – совокупность локальных алгоритмов.

Система переходов для асинхронного распределённого алгоритма

Пусть задано семейство процессов P = {p1,p2,…,pn} локальных процессов и локальный алгоритм каждого процесса представлен пятёркой (Zpi,Ipi, |-Ipi, |-spi, |-rpi). Тогда говорят, что система переходов S = (C, -> m I) порождена распределённым алгоритмом для семейства асинхронно связанных процессов, если: C={…} ,

I={…} – началльно сост распред системы представляет собой совокупность всех начальных состояних локальных алгоритмов, плюс пустое множество сообщений.

3) Система переходов представляет собой множество всех пар вида:

-> = (UpэP -> p), где ->

(cp1, cp2 ,…, cpi, , … cpn, m), (cp1, cp2 ,…, c’pi, , … cpn, m’)

Смысл: множество переходов – множество эл шагов, которые могу твыполнятся в распределённой системе, каждый шаг – изменение состояния в системе. Оно может быть изменение либо только внутренноего состояния, либо процесс мог отправить сообщение и тогда множество сообщений пополнилость множеством сообщений. Либо принято сообщение изменение состояния. Асинхронный алгоритм.

Система переходов для синхронного распределенного алгоритма

Отличается тем, что сообщения отправляются и получаются одновременно, т.е. представляют из себя одно действие, синхронные система – системы, в которых время доставки сообщения ограничены только константной.

  1. C={cp1,cp2,…cpn}: ApЭP

  2. тоже что и асинх*

  3. -> = (UpэP->p) U (Up,qэP=/=q -> pq­)

Свойства системы переходов:

Типы свойств системы переходов:

- Свойство безопасности – каждая достижимая конфигурация в любом выполнении системы обладает свойством (конкретно -…)

- Свойство живости – хотя бы одна достижимая конфигурация в либом выполнении системы обладает свойством …

Теорема: любое свойство множества выполнений может быть предсталвено в виде конъюнкции свойств безопасности и живости.

Пример: алгоритм забияки для выбора лидера

Обнаружив недоступность предыдущенр лидера, процессор P посылает всем процесса с большими номерами сообщение ГОЛОСОВАНИЕ

- Если никто не отвечает, то P выигрывает голосование координатором

- Если один из процессов с большим номером отвечает, то он становится координотором, а Р на этом выполнении алгоритма заканчивает.

- Если ему приходит сообщение от какого то другого процесса, То он должен ответить, что он готов быть лидером.

Свойство безопасности: в каждый момент времени во время конфигурации в системе присутствует не более одного лидера.

Свойство живости: всегда должна быть достижима конфигурация, когда лидер найден.

  1. Недоступен

  2. Лидер

  3. Не лидер

  4. Начальное состояние

  5. Итерации i

Практика:

написать сермлет, это аналог CJI в джава, т.е. сермлет получает запрос, производит какие то действия и формирует HTML стриачку с результатом своей работы, в отличае от CJI, (джава, даже не джава, а - ) вебконтейнер, она за нас произведёт … разберёт HTTP запрос и сформирует объект класса HTTP реквест и передаст его нашему СЕРМЛЕТУ, наш сермлет должен наследоваться от класса HTTP сермлет (HttpServlet), класс http абстрактный, нам надо будет переопределить его – doGet, он в качестве параметров берёт (httpRequest reg, HttpResponce resp) в этом методе мы можем реализовать логику работы своего приложения.

Говорят что распределённая система построена по арх клиент сервер, если все процессы в этой системе состоят из 2х возможно пересекающахися множест (клиенты и сервера).

Серверы – процессы, которые предоставляют какие нибудь ресурсы или службы.

Клиенты – процессы, которые эти ресурсы или службы используют.

Архитектура клиент-сервер самая простая и распространённая архитектура.

Приемущества:

- отсутствие дублирование кома программы – сервера программами клиентами

- Ниже требования к компьютерам-клиентам

- Безопасность

Недостатки:

- Сервер – узкое место по Надёжности и Масштабируемости.

- Стоимость оборудования сервера

Разделение приложений по уровням:

- Уровень пользовательского интерфейса

- Уровень обработки

- Уровень данных

Различные формы организации архитектуры клиент-сервер:

Тонкий клиент – клиент выполняющий минимум функций по представлению данных (пользвательскйи интерфейс) как правило в роли тонкого клиента выступает веб браузер.

Толстый клиент – выполняет обработку, разделение, хранение данных (много функций, много кода)

Трехзвенная архитектура (3 звена):