Tools & Methods of Program Analysis (TMPA-2013)
Tsytelov, D., Trifanov, V., Devexperts LLC, St. Petersburg State University
Search of Race Conditions in Java Programs Based on Synchronization Contracts
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentIosif Itkin
Multi-Module Application Tracing in z/OS Environment
Rostislav Efremov, Saint Petersburg State University, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
TMPA-2015: The dynamic Analysis of Executable Code in ELF Format Based on Sta...Iosif Itkin
The dynamic analysis of executable code in ELF format based on static binary instrumentation
Mikhail Yermakov,ISP RAS
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Tools & Methods of Program Analysis (TMPA-2013)
Tsytelov, D., Trifanov, V., Devexperts LLC, St. Petersburg State University
Search of Race Conditions in Java Programs Based on Synchronization Contracts
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentIosif Itkin
Multi-Module Application Tracing in z/OS Environment
Rostislav Efremov, Saint Petersburg State University, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
TMPA-2015: The dynamic Analysis of Executable Code in ELF Format Based on Sta...Iosif Itkin
The dynamic analysis of executable code in ELF format based on static binary instrumentation
Mikhail Yermakov,ISP RAS
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...Iosif Itkin
Automated Testing of Multi-thread Data Structures Solutions Linerializability
Anton Evdokimov, Dmitry Tsitelov, Roman Elizarov, Vitaly Trifanov, Saint Petersburg State University of Information Technologies, Mechanics and Optics, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Tools & Methods of Program Analysis (TMPA-2031)
Buyanova О., Bulda А, Zverev, А., Innovative Trading Systems, LLC, Kostroma State Technological University, Exactpro Systems, LLC
The Application of Exchange Simulators for Ticker Plant Testing
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...Iosif Itkin
Standards and Standartization in Program Engineering. Why Would You Care?
Nikolay Pakulin, ISP RAS, Moscow
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...Iosif Itkin
The Application of Static Analysis to Optimize the Dynamic Detection of Race Conditions
Yakov Roskoshnyy, Dmitry Tsitelov, Vitaly Trifanov, Roman Elizarov,Saint Petersburg State University of Information Technologies, Mechanics and Optics, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
TMPA-2013 Itsykson: Java Program AnalysisIosif Itkin
Tools & Methods of Program Analysis (TMPA-2013)
Andrianova, А., Itsykson, V., St. Petersburg State Polytechnic University
Automated Test Synthesis for Java Programs Based on Program Analysis and Contract Inventory
КГТУ Лекция 2: Обеспечение Качества Программного ОбеспеченияIosif Itkin
КГТУ - Костромской Государственный Технологический Университет
Курс Лекций:
Обеспечение Качества Программного Обеспечения
Лекция 2: Жизненный цикл ПО и технологические основы биржевой торговли
Максим Рудовский, Инновационные Трейдинговые Системы
Иосиф Иткин, Exactpro Systems
Tools & Methods of Program Analysis Conference (TMPA-2013)
Alexeenko, А., Protsenko, P., Matveeva, А., Itkin, I., Sharov D., Innovative Trading Systems, LLC, Exactpro Systems LLC
Compatibility Testing of Protocol Connections of Exchange and Broker Systems Clients
TMPA-2013 Senov: Applying OLAP and MapReduce Technologies for Performance Tes...Iosif Itkin
Tools & Methods of Program Analysis TMPA-2013
Senov, А , Kostroma State Technological University
Applying OLAP and MapReduce Technologies for Performance Testing Results Processing
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...Iosif Itkin
Tools & Methods of Program Analysis (TMPA-2014)
Conference in Kostroma, November 14-15
Рассмотрена задача автоматизации тестирования программного комплекса с двухуровневым резервированием. Предложен подход на основе описания комплекса как системы конечных автоматов, тогда тестовые сценарии есть пути на графе переходов конечного автомата. На основе этого подхода создано инструментальное средство, позволяющее находить всевозможные пути графа (возможные сценарии осуществления переходов, порождающие управляющие bash-скрипты в операционной системе Linux). Предусмотрено исполнение порожденных скриптов в рамках инфраструктуры автоматизированного тестирования. Инструментальное средство позволяет проверить исправность работы системы резервирования
TMPA-2015: Lexical analysis of dynamically formed string expressionsIosif Itkin
Lexical analysis of dynamically formed string expressions
Marina Polubelova, Semyon Grigorev, Saint Petersburg State University, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Formal Methods in Robotics
Dmitry Mordvinov, Yury Litvinov, Saint Petersburg State University, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Detecting logged in user's abnormal activityArvids Godjuks
Detection of abnormal user's activity is currently not performed in most popular Intrusion Detection Systems (IDS). However, it's not so rare when one user credentials are used by another user (for example, when password was stolen or watched). Also there are more and more sensitive data available through Internet.
To prevent this type of attacks we've developed an algorithm of building preferences based user behavior model.
It is using Markov chains to represent user behavioral information. For the time being, an experimental system that allows to analyze such method efficiency and detect irregular access to medical data is under development.
Since systems protected are a set of webservices, popular open source tools such as PHP, MySQL, GraphML, and Flare were used to implent it.
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...Iosif Itkin
Expanding the Meta-Generation of Correctness Conditions by Means of Semantic Markup
Dmitry Kondratyev, A.P. Ershov Institute of Informatics Systems, Novosibirsk
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Слайды доклада на конференции C++ Corehard Winter 2017 (г.Минск).
Автор доклада давно и успешно использует Модель Акторов при разработке приложений на C++. В основном это был положительный опыт. Но есть некоторые неочевидные моменты, про которые было бы хорошо узнать заранее. О том, где использование Модели Акторов уместно, а где нет, на какие грабли довелось наступить, какие шишки были набиты, как можно упростить себе жизнь и пойдет речь в докладе.
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...Iosif Itkin
Automated Testing of Multi-thread Data Structures Solutions Linerializability
Anton Evdokimov, Dmitry Tsitelov, Roman Elizarov, Vitaly Trifanov, Saint Petersburg State University of Information Technologies, Mechanics and Optics, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Tools & Methods of Program Analysis (TMPA-2031)
Buyanova О., Bulda А, Zverev, А., Innovative Trading Systems, LLC, Kostroma State Technological University, Exactpro Systems, LLC
The Application of Exchange Simulators for Ticker Plant Testing
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...Iosif Itkin
Standards and Standartization in Program Engineering. Why Would You Care?
Nikolay Pakulin, ISP RAS, Moscow
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
TMPA-2015: The Application of Static Analysis to Optimize the Dynamic Detecti...Iosif Itkin
The Application of Static Analysis to Optimize the Dynamic Detection of Race Conditions
Yakov Roskoshnyy, Dmitry Tsitelov, Vitaly Trifanov, Roman Elizarov,Saint Petersburg State University of Information Technologies, Mechanics and Optics, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
TMPA-2013 Itsykson: Java Program AnalysisIosif Itkin
Tools & Methods of Program Analysis (TMPA-2013)
Andrianova, А., Itsykson, V., St. Petersburg State Polytechnic University
Automated Test Synthesis for Java Programs Based on Program Analysis and Contract Inventory
КГТУ Лекция 2: Обеспечение Качества Программного ОбеспеченияIosif Itkin
КГТУ - Костромской Государственный Технологический Университет
Курс Лекций:
Обеспечение Качества Программного Обеспечения
Лекция 2: Жизненный цикл ПО и технологические основы биржевой торговли
Максим Рудовский, Инновационные Трейдинговые Системы
Иосиф Иткин, Exactpro Systems
Tools & Methods of Program Analysis Conference (TMPA-2013)
Alexeenko, А., Protsenko, P., Matveeva, А., Itkin, I., Sharov D., Innovative Trading Systems, LLC, Exactpro Systems LLC
Compatibility Testing of Protocol Connections of Exchange and Broker Systems Clients
TMPA-2013 Senov: Applying OLAP and MapReduce Technologies for Performance Tes...Iosif Itkin
Tools & Methods of Program Analysis TMPA-2013
Senov, А , Kostroma State Technological University
Applying OLAP and MapReduce Technologies for Performance Testing Results Processing
Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Syst...Iosif Itkin
Tools & Methods of Program Analysis (TMPA-2014)
Conference in Kostroma, November 14-15
Рассмотрена задача автоматизации тестирования программного комплекса с двухуровневым резервированием. Предложен подход на основе описания комплекса как системы конечных автоматов, тогда тестовые сценарии есть пути на графе переходов конечного автомата. На основе этого подхода создано инструментальное средство, позволяющее находить всевозможные пути графа (возможные сценарии осуществления переходов, порождающие управляющие bash-скрипты в операционной системе Linux). Предусмотрено исполнение порожденных скриптов в рамках инфраструктуры автоматизированного тестирования. Инструментальное средство позволяет проверить исправность работы системы резервирования
TMPA-2015: Lexical analysis of dynamically formed string expressionsIosif Itkin
Lexical analysis of dynamically formed string expressions
Marina Polubelova, Semyon Grigorev, Saint Petersburg State University, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Formal Methods in Robotics
Dmitry Mordvinov, Yury Litvinov, Saint Petersburg State University, Saint Petersburg
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Detecting logged in user's abnormal activityArvids Godjuks
Detection of abnormal user's activity is currently not performed in most popular Intrusion Detection Systems (IDS). However, it's not so rare when one user credentials are used by another user (for example, when password was stolen or watched). Also there are more and more sensitive data available through Internet.
To prevent this type of attacks we've developed an algorithm of building preferences based user behavior model.
It is using Markov chains to represent user behavioral information. For the time being, an experimental system that allows to analyze such method efficiency and detect irregular access to medical data is under development.
Since systems protected are a set of webservices, popular open source tools such as PHP, MySQL, GraphML, and Flare were used to implent it.
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...Iosif Itkin
Expanding the Meta-Generation of Correctness Conditions by Means of Semantic Markup
Dmitry Kondratyev, A.P. Ershov Institute of Informatics Systems, Novosibirsk
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
Слайды доклада на конференции C++ Corehard Winter 2017 (г.Минск).
Автор доклада давно и успешно использует Модель Акторов при разработке приложений на C++. В основном это был положительный опыт. Но есть некоторые неочевидные моменты, про которые было бы хорошо узнать заранее. О том, где использование Модели Акторов уместно, а где нет, на какие грабли довелось наступить, какие шишки были набиты, как можно упростить себе жизнь и пойдет речь в докладе.
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...Ontico
HighLoad++ 2017
Зал «Кейптаун», 7 ноября, 16:00
Тезисы:
http://www.highload.ru/2017/abstracts/2901.html
Все знают, что длинные транзакции - это плохо, но не все могут объяснить - почему. Что в них такого, что заставляет PostgreSQL работать медленнее?
На примере одного из наших процессов я покажу, насколько сильно могут влиять друг на друга, казалось бы, несвязанные активности. А чтобы разобраться в причинах, мы подробно рассмотрим такие темы, как уровни изоляции транзакций, правила определения видимости строк, хинт биты и "минивакуум".
Доклад является обобщением моего опыт по работе с системами мониторинга серверных приложений в Qiwi.
Цель доклада:
- Получить общее представление о подходах к мониторингу серверных приложений
- Разобраться с популярными средствами для мониторинга серверных приложений
Оглавление:
- Мотивация
- Теория
---- Определение
---- Модель системы с точки зрения мониторинга
---- Классификация систем мониторинга
---- Уровни мониторинга
---- Инструменты мониторинга
- Практика
---- Системы мониторинга и сбора логов
---- Интерфейсы мониторинга
---- Инструменты мониторинга в JVM-based приложениях
Современный статический анализ кода: что умеет он, чего не умели линтерыcorehard_by
Статический анализ появился почти 40 лет назад. В своём докладе мы хотим показать, чему за это время научились статические анализаторы. Мы рассмотрим различные методики анализа, как они появлялись и какие ошибки можно найти с помощью них. Посмотрим на примеры ошибок, найденных PVS-Studio в Open Source проектах. Поговорим о том, чем статический анализатор отличается от "линтеров" и некоторых других инструментов, а также какие проблемы решает современный статический анализатор C++ кода, помимо собственно анализа кода.
Павел Беликов
@PVS-Studio, Тула, Россия
Why do we need ORM? The difference between ActiveRecord and DataMapper patterns. The practical appliance of Iterative deepening depth-first search algo for topological sort of ORM relations.
Review of Cycle ORM and it features.
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения Iosif Itkin
КГТУ - Костромской Государственный Технологический Университет
Курс Лекций:
Обеспечение Качества Программного Обеспечения
Лекция 6: Обзор методов создания тестовых сценариев
Максим Рудовский, Инновационные Трейдинговые Системы
Иосиф Иткин, Exactpro Systems
Техники пентеста для активной защиты - Николай ОвчарукHackIT Ukraine
Презентация с форума http://hackit-ukraine.com/
Николай Овчарук
Служба IT безопасности, Воля
Техники пентеста для активной защиты
О спикере: Занимается техническим аудитом, расследованием инцидентов, разработкой и внедрением средств защиты. Играет в CTF.
Foundations of Software Testing Lecture 4Iosif Itkin
This lecture is a part of the online course on Software Testing for Complex Intelligent Systems and Autonomous Vehicles. The course lectures provide the theoretical basics of testing autonomous systems based on artificial intelligence.
The fourth lecture of the course entitled Foundations of Software Testing reviews the ‘absence-of-errors fallacy’ and other principles of software testing, as well as the types and levels of software testing. The lecture also provides a fuller picture of the understanding of test objectives and methodologies by different schools of thought within the software testing domain.
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...Iosif Itkin
Speaker: Iosif Itkin, co-CEO & co-founder, Exactpro Systems
9th November 2021
Hilton Canary Wharf
Exactpro is an independent software testing business focused on mission-critical financial market infrastructures, primarily exchanges and clearing houses. In his presentation, Iosif will give a brief overview of research on the concept of model-based testing and the principal challenges of its application while testing complex distributed systems. He will also outline the broader context of interaction between humans and complex computer models.
Exactpro FinTech Webinar - Global Exchanges Test OraclesIosif Itkin
The document discusses test oracles, which are mechanisms for determining whether a test has passed or failed. It describes how oracles work by comparing the actual output of a system under test to the expected output determined by the oracle. Several types of oracles are discussed, including hand-crafted oracles, specification-based oracles, and independent implementation oracles. The document emphasizes that all oracles are partial, as it is impossible to create a perfect oracle that evaluates all possible outputs of a system.
Exactpro FinTech Webinar - Global Exchanges FIX ProtocolIosif Itkin
Exactpro’s Global Exchanges Division training session on FIX Trading Protocol.
The essence of the FIX protocol and its place in the overall structure of network protocols, FIX message attributes and the internal data types of the protocol.
Operational Resilience in Financial Market InfrastructuresIosif Itkin
A4Q World Congress 13-16 April 2021
Iosif Itkin
Exactpro provides independent software testing services for mission critical technology that underpins global financial markets – exchanges and clearing houses. Half of the top 20 global exchange groups on all continents around the globe rely on processes, platforms and people from Exactpro to improve their quality and reliability. The company has spent the last 11 years studying operational resilience in this crucial sector. The presentation will outline the key principles for software testing of the systems that process hundreds of millions of orders per day with roundtrip latencies below one hundred microseconds.
20 Simple Questions from Exactpro for Your Enjoyment This Holiday SeasonIosif Itkin
Warmest wishes for a happy holiday season and a wonderful New Year!
We look forward to our continued collaboration in 2020. Thank you for your support.
QA-Financial Forum 2019 in New York
13 November
Iosif Itkin, CEO and co-founder
Elena Treshcheva, Business Development Manager and Researcher
An October 2019 survey by BoE and FCA found that ML in financial organizations has already passed an initial development phase, and the usage of live ML applications is about to dramatically increase over the next three years. Artificial Intelligence systems are used in market surveillance, they are providing intellectual analysis of news feeds, and they are an important part of the conversational agents facing users and helping them with their business needs from identity verification to trading and portfolio management. How to ensure that an AI-powered system is up to its task? And what would that mean from the software testing perspective?
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresIosif Itkin
On Complex Software Systems Testing — Alexey Zverev, co-CEO & co-founder, Exactpro
Software Testing and Machine Learning
Mind the Gap. Applying Process Mining
Learning from Failure is not just for Humans
Dancing with Whales. Adaptive Log Classification System
On Traceability and the Illusion of Control
Building Partnerships
Demystifying DLT Testing One Network at a Time
Get the MOST from FIX
Georgia on My Mind
Build Software to Test Software — Iosif Itkin, co-CEO & co-founder, Exactpro
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...Iosif Itkin
Synchronize Europe
18th June 2019
Iosif Itkin, co-CEO and co-founder, Exactpro
Using the ISDA CDM Swaps application, simultaneously execute multiple end-to-end scenarios for DAML applications in capital markets - validate with actual contract data on ledger.
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan ShamraiIosif Itkin
Ivan Shamray, Senior NFT Analyst, Exactpro
20 April 2019 EXTENT Talks, Tbilisi, Georgia
Tbilisi QA Community
EXTENT Talks is a meeting place for IT specialists working in various industries and seeking professional growth, practitioners from IT firms, as well as Quality Assurance enthusiasts of all backgrounds interested in actively participating in local IT events.
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference OpenIosif Itkin
The document summarizes the agenda for the QA Community Tbilisi event on April 20, 2019 in Tbilisi, Georgia. The agenda included presentations on topics like principles of deep testing, quality in space, behavior driven development, test automation, and obstacles of software testing in Georgia. There was also information provided about Exactpro and their history, tools and methods for testing financial systems, and test automation for distributed ledger technology. The document encouraged participants to provide feedback and announced an upcoming prize drawing for those who engaged on the event's Facebook page.
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...Iosif Itkin
The First IEEE International Conference On Artificial Intelligence Testing (2019 IEEE AITest)
Iosif Itkin, Anna Gromova, Anton Sitnikov, Elena Treshcheva, Rostislav Yavorskiy, Evgenii Tsymbalov, Andrey Novikov and Kirill Rudakov
1 Exactpro, UK, Georgia, USA, Russia
2 Skolkovo Institute of Science and Technology, Russia
3 Higher School of Economics, Russia
Speakers: Iosif Itkin, CEO and Co-Founder and Elena Treshcheva, Business Development Manager and Researcher - Exactpro
Exactpro provides software testing services for mission-critical technology that underpins global financial markets. Exactpro clients are regulated by FCA, Bank of England and their counterparts from other countries. During this session, Elena and Iosif will talk about end-to-end software testing for post-trade systems in financial market infrastructures. What are the key challenges in quality assurance at this scale? What kind of cognitive biases affect SDLC? How precise is the knowledge about the systems under test? What constitutes good test evidence? How to deal with complexity in regulated environments?
Behaviour Driven Development: Oltre i limiti del possibileIosif Itkin
The QA Financial Forum: Milan 2019
23 January at the Excelsior Hotel Gallia.
Anna-Maria Lukina, Exactpro Business Development Director
The QA Financial Forum: Milan is one of the leading fintech conferences in Italy. The event focuses on the latest achievements in software risk management and automation of software testing. The predominant theme of the Milan event will be Quality Assurance for the entire Software Development Life Cycle (SDLC).
The topics under discussion will feature:
- Technologies for Automation & AI
- DevOps & CI/CD
- Value Stream Management
- Test Data Management
- Regulatory Compliance
- App Security & DevSecOps
- Testing and quality assurance of Blockchain platforms
The official language of the event is Italian.
On 17th January 2018 Exactpro successfully completed a management buyout from London Stock Exchange Group (LSEG), signed a new multi-year master services agreement with LSEG, and opened its head office in London.
What else has happened in 2018?
I wanted to take the opportunity to reflect on what has been an unusual year for Exactpro.
Integration front to back - Mr. Custodian tear down that wall
The scope of the application level has been continuous extended over the years, albeit with a focus on the area of pre-trade and trade.
Recently, there has been an increased interest to move further into the area of post-trade which is predominantly driven by the ISO 20022 standard. Is there really a need for new FIX messages in areas such as payments and
what are the integration problems needing a resolution?
Panellists
- Iosif Itkin, CEO, Exactpro
- Jim Northey, Co-Chair Global Technical Committee, Americas Region, FIX Trading Community, Chair Elect, ISO TC68 Financial
Services Technical Committee, and Consultant and Industry Standards Liaison, Itiviti
- Barry Young, Director, Aladdin Product Manager, BlackRock
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)Iosif Itkin
Exactpro is supporting the 3rd annual IT-conference YouCon to take place on 14th October in Saratov, Russia. Over 900 programmers, systems engineers and architects, software QA engineers, and marketing specialists will gather to discuss the latest trends in programming technology. It is the largest IT industry event in Saratov.
Iosif Itkin, CEO of Exactpro, part of London Stock Exchange Group, will deliver a "BDD. The Outer Limits" presentation named after Iosif's favorite Sci-Fi series.
The topics to be covered are:
Behavior Driven Development concepts
Applying BDD in trading and clearing systems
Specification by Example and using production data
Combining Model-based testing and BDD
The Outer Limits
There will be an opportunity to ask questions, share thoughts and expertise in BDD, or just chat with a representative at the Exactpro stand at any time during the event.
Don't miss out, stop by and ask how you can get your Exactpro souvenir :)
We look forward to meeting you there!
#Exactpro #Youconsaratov
2. 2
Управление транзакциями на
платформе Java EE (EJB-компоненты)
• Декларативное
> Транзакционный атрибут
> Запрещено программное
управление, в т.ч. на
уровне менеджера
ресурсов
• Программное
> javax.transaction.
UserTransaction
> Запрещено управление на
уровне менеджера
ресурсов
Значение транзакционного
атрибута
Клиентская транзакция Транзакция, связанная с
методом компонента
NOT_SUPPORTED Нет нет
Т1 нет
REQUIRED Нет Т1
Т1 Т1
SUPPORTS Нет нет
Т1 Т1
REQUIRES_NEW Нет Т1
Т1 Т2
MANDATORY Нет ошибка
Т1 Т1
NEVER Нет нет
Т1 ошибка
№
п/п
Транзакция клиента Транзакции, связанная с
экземпляром компонента
Транзакция, связанная с
вызванным методом
1 Нет Нет Нет
2 Т1 Нет Нет
3 Нет Т2 Т2
4 Т1 Т2 Т2
3. 3
Сложности в понимании управления
транзакциями → потенциальные ошибки в коде
• Дисциплина «Распределенные программные системы»
• Задание на анализ декларативного управления транзакциями
> 1) В рамках каких транзакций
будут выполняться
бизнес-методы компонентов?
> 2) Как и почему завершатся
транзакции?
• Распределенная транзакция в курсовом проекте
4. 4
Накладные расходы на
управление транзакциями
• Результаты бенчмарка:
Сценарий Ø → Ø Ø → T1 T1 → T1 T1 → T2 T1 → Ø
Среднее время
прогона, с. 0,339 0,787 0,441 0,793 0,350
Доверительный
интервал, с. ±0,035 ±0,057 ±0,035 ±0,054 ±0,031
> Ø → T1 медленнее Ø → Ø на 132%
> T1 → T1 медленнее Ø → Ø на 23%
5. 5
Цель
• Улучшение качества программных систем (ПС) на базе
платформы Java EE путем выявления ошибочного и
неэффективного управления транзакциями
• Динамический анализ
> Сбор данных с работающей системы
> Инструментация, JMX, JVMPI/JVMTI, готовые решения
> Сложно обнаружить все возможные варианты поведения
• Статический анализ
> Изучение исходного и байт-кода
> Можно применять на ранних этапах разработки
> Не требуется развертывание ПС
6. 6
Существующие исследования и
решения
• Статический анализ
> Trofin 2007
> Исключение избыточных обращений из EJB View к контейнеру
> «Открытый мир» → вероятностные решения
> Krebs 2012
> Плагин VERA для Eclipse, выполняющий анализ Java Enterprise App
• Динамический анализ
> HP OpenView Transaction Analyzer, dynaTrace, …
• Комбинированный подход
> eoSense основан на методике Derived Model Analysis
> Статический анализ формирует абстрактную модель компонентов ПС
> В runtime в модель добавляются службы платформы J2EE и ресурсы
> Триггеры на последовательности событий в модели
7. 7
Результаты анализа управления
транзакциями
• Решения по методам компонентов:
Decisions = {ERROR, WARNING, REDUNDANCY},
– ERROR – фрагмент ведет к аварийному завершению
– WARNING – требуется внимание разработчика
– REDUNDANCY – избыточное управление транзакциями
• Модель транзакционных контекстов
– И ее визуализация
8. Анализ управления транзакциями (1)
• Этап 1 - построение графа вызовов Java-кода
> Ребра, исходящие из одной вершины-метода, упорядочены
> Условные и циклические операторы не учитываются
• Этап 2 - модификация графа вызовов
8
> Полиморфные вызовы
→ конкретные
реализации
> Вершины без
входящих дуг
являются
точками входа
9. Анализ управления транзакциями (2)
• Этап 3 - построение модели транзакционных
9
контекстов
> Развернутый граф вызовов
> Множество обнаруженных в нем транзакционных контекстов
> Порядковый номер, тип управления (программное либо декларативное),
флаги завершенности и неопределенного поведения, множество вершин-
методов, множество решений по контексту
> Множество решений по методам ПС
> Рекурсивный обход вершин-методов графа вызовов,
начиная с точек входа в ПС
> Обработка исходящих дуг: симуляция действий сервера
приложений Java EE по управлению транзакциями
> Рекурсивные вызовы метода обрабатываются, пока не
повторяется поведение по переключению транзакционного
контекста → алгоритм является конечным
12. 12
Направления развития
• Расширение поддерживаемых возможностей
платформы Java EE 7
• MDB как точки входа, обработка сообщений в JMS,
@Transactional для CDI-компонентов
• Верификация свойств атомарности и
согласованности транзакций ПС
– Вывод утверждений о совместной либо раздельной
обработке сущностей в транзакциях ПС
– Сопоставление с заданными инвариантами
• Например, запись в журнал — всегда в отдельной
транзакции
• Гарантия распределенной транзакции
14. Анализ управления транзакциями (1)
• Этап 1 - построение графа вызовов
14
– Исходные данные:
• Абстрактное синтаксическое дерево Java-кода (формируется
MoDisco)
• Установочные XML-дескрипторы
– С вершиной графа вызовов связаны:
• сигнатура метода
• тип данных, для которого определен данный метод
• набор метаданных, связанных с методом (аннотации и
настройки из XML-дескрипторов)
– Ребра, исходящие из одной вершины-метода,
упорядочены
– Условные и циклические операторы не учитываются
15. Анализ управления транзакциями (2)
• Этап 2 - модификация графа вызовов
15
– В результирующем графе вызовов
• Вызовы методов, полиморфные в рамках анализируемой
ПС, заменены на конкретные реализации
– Определяются в результате анализа
метаданных и исходного кода
• Все вершины-методы без входящих дуг являются
точками входа
– Точка входа — метод, с которого Java EE-
приложение по запросу клиента начинает
выполняться в управляемом контейнером
режиме
17. 17
Анализ управления транзакциями
(4)
• Этап 3 - построение модели транзакционных
контекстов
> Развернутый граф вызовов
G
G’
> Множество обнаруженных в нем транзакционных контекстов
> Порядковый номер, тип управления (программное либо
декларативное), флаги завершенности и неопределенного
поведения, множество вершин-методов, множество решений по
контексту
> Множество решений по методам ПС
18. 18
Анализ управления транзакциями
(5)
• Этап 3 — построение модели транзакционных
контекстов
> Рекурсивный обход вершин-методов графа вызовов,
начиная с точек входа в ПС
> Обработка исходящих дуг (симуляция действий сервера
приложений Java EE по управлению транзакциями):
> Проверка запрета вызываемого метода;
> Определение поведения по переключению транзакционного
контекста
– Распространение текущего контекста, создание
нового контекста, приостановка текущего контекста,
приостановка текущего контекста и создание
нового, отсутствие каких-либо действий
> Определение транзакционного контекста для вызываемого
метода
19. 19
Анализ управления транзакциями
(6)
• Этап 3 — обработка циклов в графе вызовов при
построении модели транзакционных контекстов
> Рекурсивные вызовы метода обрабатываются до тех
пор, пока не повторяется поведение по переключению
транзакционного контекста
> Ведется история вызовов
> Количество анализируемых уровней рекурсии
ограничено сверху количеством типов поведения по
переключению транзакционного контекста (5)
> Алгоритм является конечным
> Для найденного цикла в развернутый граф вызовов
добавляется фиктивная дуга
20. 20
Прототип анализатора
• Область применения – Java EE 6, сессионные
компоненты EJB 3.1
• Подключаемый модуль для IDE Eclipse
• Описание графа модели транзакционных
контекстов на языке Dot, визуализация с
помощью GEF4 DOT
21. 21
Выбор средства статического
анализа
Средство анализа
кода
Байт-код Исходный код Аннотации
Soot + + +/–
(неполная
поддержка)
MoDisco + + +
Java APIs − + +
Apache BCEL + − −
24. 24
Недостатки
• Большой объем модели MoDisco
• Неудобная визуализация полного исходного
кода ПС
> Решение: Вывод транзакционных контекстов для
выбранного метода
• Нет поддержки инкрементальных изменений
• Отсутствие результатов по реальным
приложениям