Разновидность JavaBeans-компонент: композиция типов из агрегации инстансов
https://doi.org/10.15514/ISPRAS-2025-37(6)-2
Аннотация
Представлен подход к реализации компонент JavaBeans, который обеспечивает создание определяемых пользователем компонент без их компиляции, путем манипуляций с существующими компонентами. Компонентная модель JavaBeans содержит принципиальные ограничения. Компоненты в ней являются классами, определенными для манипулирования их инстансами в предназначенной для этого среде манипулирования. Цель манипуляций – достичь требуемых состояний инстансов компонент и поведения их агрегации в целом; готовая агрегация может быть сериализована и десериализована позже в аналогичной среде. Тут скрыто противоречие: начиная с использования набора инстанциируемых классов, мы в итоге приходим к копированию агрегации из их инстансов. Чтобы использовать определяемую пользователем агрегацию для получения нового составного компонента, требуется сгенерировать его класс, подменяющий парадигму программирования (с инстанциирования на копирование). Предложено расширение компонентной модели JavaBeans, позволяющее динамически создавать определяемые пользователем компоненты без их кодогенерации и копирования агрегации инстансов.
Ключевые слова
Об авторе
Ефим Михайлович ГРИНКРУГРоссия
Кандидат технических наук, старший научный сотрудник Института системного программирования им. В.П. Иванникова РАН c 2024 года. Сфера научных интересов: операционные системы, компонентно-ориентированное программирование, компьютерная графика, беспроводные сенсорные сети.
Список литературы
1. Douglas McIlroy. Mass-produced software components. Электронный ресурс. https://www.cs.dartmouth.edu/~doug/components.txt (дата обращения 22.08.2025).
2. A.J.A.Wang, K.Qian, Component-oriented programming, John Wiley & Sons, Inc., 2005.
3. Kung-Kiu-Lau, Zheng Wang (2006) A Survey of Software Component Models (second edition), School of Computer Science, The University of Manchester, Preprint Series, CSPP-38.
4. JavaBeans(TM) Specification. Электронный ресурс. https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
5. Архивировано: https://web.archive.org/web/20210416231451/https://www.oracle.com/java/technologies/javase/javabeans-spec.html (дата обращения 22.08.2025).
6. VRML – The Virtual Reality Modeling Language. Электронный ресурс. https://www.web3d.org/documents/specifications/14772/V2.0/ (дата обращения 22.08.2025).
7. Проект Babylon. Электронный ресурс. https://openjdk.org/projects/babylon/ (дата обращения 22.08.2025).
8. E.Grinkrug. A Framework for Dynamical Construction of Software Components. A.K.Petrenko and A.Voronkov (Eds.): PSI 2017, LNCS 10742, pp. 163-178, 2018. https://doi.org/10.1007/978-3-319-74313-4_13.
9. N. Frankel. Monkey-Patching in Java. Электронный ресурс. https://dzone.com/articles/monkey-patching-in-java. (дата обращения 22.08.2025).
10. Enterprise JavaBeans Technology. Электронный ресурс. https://www.oracle.com/java/technologies/enterprise-javabeans-technology.html (дата обращения 22.08.2025).
11. Spring Framework. Электронный ресурс. https://spring.io/projects/spring-framework (дата обращения 22.08.2025).
12. JavaFX Documentation. Электронный ресурс. https://openjfx.io (дата обращения 22.08.2025).
Рецензия
Для цитирования:
ГРИНКРУГ Е.М. Разновидность JavaBeans-компонент: композиция типов из агрегации инстансов. Труды Института системного программирования РАН. 2025;37(6):21-42. https://doi.org/10.15514/ISPRAS-2025-37(6)-2
For citation:
GRINKRUG E.M. Yet Another Kind of JavaBeans: Composed Types from Aggregated Instances. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2025;37(6):21-42. (In Russ.) https://doi.org/10.15514/ISPRAS-2025-37(6)-2






