Software architecture
Typical architectures Client-server n-tier Peer-to-Peer Distributed application
Client-Server: a classical approach
Client-Server: increase extensibility
N-tier architectures
Peer-to-Peer
Distributed applications Elements of both N-tier and Peer-to-Peer architectures Facilities for transaction management
Distributed transaction
Персистентность Персистентность (от англ. persistence) или сохраняемость – свойство данных и объектов сохраняться в памяти между сессиями работы с программой ( ComputerUser.com High-Tech dictionary )
Методы достижения персистентности объектов Сериализация – простой метод с ограниченными возможностями (Java, MFC). Объектно-реляционные базы данных – расширения реляционной модели, упрощающие сохранение объектов (Oracle, DB2, PostgreSQL) Системы-шлюзы ( Gateway-based object persistence ) – поддержка объектно-ориентированного интерфейса поверх традиционных (РСУБД, файлы) хранилищ данных (WebGain TopLink, Visual Age Persistence Builder). Объектно-ориентированные СУБД – прямое сохранение объектов объектно-ориентированного языка (Versant enJin, POET FastObjects, Objectivity DB).
Сохранение объекта самим себя
Выделение интерфейса персистентного объекта
Отделение контракта сущности от реализации
Распределенные приложения: необходимость DTO
Выделение менеджера персистентности
Прозрачная персистентность Для упрощения процесса разработки ПО используется прозрачная персистентность Прозрачная персистентность – метод обеспечения персистентности, в котором затраты разработчика на преобразование данных из формата хранилища данных в формат языка программирования и обратно - отсутствуют. Прозрачная персистентность поддерживается системами-шлюзами и ОО СУБД, в отличии от ОРСУБД