Runtime Repair of Software Faults using Event-Driven Monitoring
|
|
|
- Dorthy Holly Hart
- 10 years ago
- Views:
Transcription
1 Runtime Repair of Software Faults using Event-Driven Monitoring Chris Lewis, Jim Whitehead University of California, Santa Cruz 1156 High St, Santa Cruz, California, USA ABSTRACT In software with emergent properties, despite the best efforts to remove faults before execution, there is a high likelihood that faults will occur during runtime. These faults can lead to unacceptable program behavior during execution, even leading to the program terminating unexpectedly. Using a distributed event-driven runtime software-fault monitor to repair faulty states creates an enforceable runtime specification. Using such an architecture would ensure that emergent systems operate within specification, increasing the reliability of such software. Categories and Subject Descriptors D.2.1 [Software Engineering]: Requirements/Specifications; D.2.4 [Software Engineering]: Software/Program Verification; D.2.5 [Software Engineering]: Testing and Debugging Keywords temporal invariants, runtime software-fault monitoring, eventdriven systems, specifications, message broker, rule engine, video games 1. INTRODUCTION The scope and complexity of modern software development has led to the development of many processes to verify the quality of software. Techniques such as model checking, static code analysis and unit testing are all employed for this task. However, much of today s software has such complex state possibilities that such techniques cannot explore and exercise the entire state tree. This is particularly pronounced in software that has emergent behaviors, creating a complex system from simpler interactions, where user exploration of the interaction space is a key focus. In software with emergent properties, despite the best efforts to remove faults before execution, there is a high likelihood that faults will occur during runtime. We propose the Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ICSE 2010 Cape Town, South Africa Copyright 2010 ACM X-XXXXX-XX-X/XX/XX...$ detection and repair of these faults in systems by utilizing an easy-to-use declarative rule engine as part of a runtime software-fault monitor, analyzing events emitted from the system under test (SUT). In contrast to many other monitors that only observe execution and log errors, we allow programmers to specify a desired repair when an invariant violation in the SUT is detected. This dynamic enforcement of a documented, human-readable specification creates a powerful, reliable, fault-tolerant system. By monitoring events, rather than logical transitions, we have developed an architecture that is both languageindependent and machine-independent from the SUT. This architecture is being developed as part of a larger tool called Zenet. This demonstration shows the viability of the technique using human-authored rules. We apply the architecture to a Java implementation of Super Mario World creating a program we call Lakitu. We show how bugs in the code can lead to faults, and how the action taken by the rule engine enforces the game s integrity. 2. RELATED WORK Delgado et al. [4] provides an excellent summary of influential monitors and offers a common language with which to describe and categorize them. Two of the monitors covered by Delgado et al. have strong correlations to our approach: MaC and DB-Rover. The MaC system is a project at the University of Pennsylvania that allows a user to specify requirements of a target program, which MaC will then appropriately instrument and verify whether the execution history meets the original specification [8]. Of particular interest is RT-MEDL, an extension of their event definition language that allows for real-time constraints to be placed on event rules [14]. Our architecture also allows for the specification of real-time constraints, but instead of compiling specifications into a formal logical language, we employ a user-friendly syntax with our rule engine which is then parsed into a Rete tree [5]. DBRover, like MaC, is a monitor that uses a temporal logic with real-time constraints to verify runtime correctness. However, DBRover encourages a stronger decoupling of the SUT and the verification process than MaC. It operates on a separate validation server, monitoring a database for execution integrity, and can capture data for analysis at a later date. Inspired by this decoupling, we use a message broker to pass events to our runtime monitor, providing a language-independent and machine-independent communi-
2 System Under Test System events Message Broker Repair events Rule Engine Figure 2: Architecture of our tool s communication with the system under test. Events flow through the message broker, allowing the rule engine to run synchronously or asynchronously. Figure 1: A screenshot from Lakitu. The menu bar allows the user to enable or disable the rule engine, and switch the game version between the correct code and the buggy code. cation mechanism. The value of repairing software at runtime with manuallyspecified repairs has been previously illustrated with the success of the error detection and handling created as part of the IBM MVS/XA operating system [10]. By manually inspecting and repairing inconsistent data structures, the reliability of the system was increased by an order of magnitude [6]. More recently, there has been research that combines specifications with runtime repairs, of which the most notable is ClearView [11]. ClearView is able to infer the invariants of a program by monitoring x86 instructions from normal executions. If ClearView detects an invariant violation, it halts the program and begins to generate candidate patches to repair the binary. Once a repair has been found, the program is restarted. Unlike ClearView, we apply repairs while the program is still executing, much like the MVS/XA system, and in-line with Rinard s Acceptability-Oriented Computing approach [13]. In contrast with ClearView s generated specifications, Lakitu operates at a much higher-level, using events to describe the high-level operation of the SUT. This means the specification communicates a SUT s operation, rather than a specific implementation. Lakitu can be seen as a combination of the real-time temporal specifications provided by RT-MaC, the decoupling ethos of DBRover, and the repairs of ClearView. We combine these technologies with a rule-based specification to verify and enforce the correct high-level operation of the SUT. This novel approach creates a powerful, yet user-friendly, architecture. 3. LAKITU Lakitu is a clone of Super Mario World built on an opensource Java project called Infinite Mario Bros. [12]. Super Mario World is a game where a character called Mario moves through a 2D level. He can jump up onto platforms and across gaps, collecting coins and jumping onto enemies. A screenshot of Lakitu can be seen in Figure 1. Video games are an excellent domain to investigate monitoring and repairing event-based systems. Their core functionality hinges on providing emergent systems that offer players choice. Many players will choose to perform actions that the programmers never intended, which can lead to undesirable states. Video games also offer tight technical and temporal restrictions, rigorously exercising the efficiency of any architecture. We believe that if our architecture is successful in the video game domain, it will be robust enough to be applied to many others. Lakitu has two modes of operation: one where the game is correct (ie. the code is unchanged from Infinite Mario Bros.) and one where the game is buggy, where we intentionally introduce bugs in the code base. Examples of bugs include Mario jumping too high, too many enemies being spawned and Mario receiving two points for every coin, rather than one. The rule engine can be enabled or disabled, and users can see the results of the rule engine s involvement on the buggy code. A console window can be displayed, showing textual logs that allow users to see the internal operation of Lakitu. To decide which bugs to introduce into Lakitu, we have been working on a taxonomy of video game bugs (not yet published). While a lengthy discussion of the taxonomy is outside the scope of this paper, it is divided into two main groups, implementation errors and design errors. Lakitu focuses on implementation errors. Implementation errors are split between bugs that have no temporal aspect (such as an object being in an invalid position), and bugs that can only be expressed as a temporal issue (such as an object being in a valid position, but moving incorrectly over time). Where applicable, we chose to introduce a bug from each category of the taxonomy. For the position categories, we allowed Mario to jump too high, and also allow Mario to hover in the air at a height that is otherwise permissible. We will revisit these specific bugs later in the paper. 4. TECHNICAL FOUNDATIONS 4.1 Overview Our tool monitors events emitted from Infinite Mario Bros. Events are an abstraction of input, output and state. In our example, such events include Mario jumping, landing, or collecting a coin. Events, and the possible transitions between them, can be represented as an event scene graph (ESG) [3]. Event sequences are a specific walk through an ESG. Monitoring these event sequences allows us to view the operation of the SUT from a high, abstracted level, separated from the implementation and architecture of the software. Our high-level architecture can be seen in Figure 2. The
3 instrumented SUT sends event messages to a message broker, which in turn directs messages to the rule engine. These events are added to the rule engine s knowledge base, and then evaluated against a human-authored specification to see if any rules are matched. Matching a rule indicates that there has been an invariant violation. With a fault detected, the programmer can choose a repair action to take, specified as an event to be enacted, which is then sent to the SUT via the message broker. 4.2 Event Instrumentation The first step in our workflow is to instrument the SUT to emit important events to the message broker. We use events so that we can see the important aspects of the SUT s operation. In Lakitu, those events could be Mario jumping or landing, in an program they could be starting a network connection or receiving an , and in a music player they could be starting a song or adding album artwork. These events characterize the operation of the software, not the implementation. We use events so that the specifications created by the human-authored rules communicate useful, high-level documentation about the SUT s operation. In many scenarios, non-programmer knowledge experts, such as game designers, dictate the specification of the program. However, they have no way of knowing how well the program s implementation matches their original intent. Using high-level events allows the specification to be handed to non-programmer knowledge experts to verify its correctness. Additionally, instrumenting events in such a way makes the specification resistant to refactoring of the SUT s codebase, allowing the rule file to be used as an aid to the development process, rather than a verification of correctness at the end of the development cycle. The drawback of monitoring high-level events is that they must be instrumented manually, as there is no way of knowing which parts of a computer program represent the important aspects. Other approaches, such as that taken by MaC, instrument function calls directly. This methodology is common, and is proven to work successfully, but it is too low-level for our purposes. 4.3 Message Broker Emitted events are sent to a message broker. In our current implementation, messages are sent via the Java Messaging Service to an instance of ActiveMQ [1] that runs on the same machine as the Lakitu client. The broker can then send on events to a consuming program to be processed and delivered to a rule engine. Neither the broker, nor the rule engine, needs to operate on the same client machine as the SUT. This allows for processing to occur across multiple networked machines. ActiveMQ offers language adapters for a number of common languages such as Java, C and Ruby. By separating the communication channel to a message queue, we achieve language-independence, allowing us to process messages in the Java-based Drools rule engine from a SUT written in any of the ActiveMQ supported languages. Research has shown that ActiveMQ can handle over 30,000 messages being passed every second to a single consuming program, far greater than Lakitu requires [7]. In Lakitu, we send events asynchronously to the broker, and check if there are any waiting messages from the broker 1 rule "mariojumptoolong" 2 duration(2s) 3 when 4 $jump : Jump() 5 not(landing(this after[0s,2s] $jump)) 6 then 7 System.err.println("Mario jumped too long"); 8 broker.send(session.createobjectmessage(new MarioMovement(...))); 9 end Figure 3: A rule that detects if Mario has been in the air for too long. every frame. One can easily change this policy to send a message and synchronously wait for a reply (which could be a no action message) from the rule engine before continuing execution. 4.4 Rule Engine Once event messages are received, they are passed to the rule engine. As with the message broker, the rule engine runs on the Lakitu client machine. The rule engine fires after every event is inserted into the working memory. Lakitu uses an open-source Java engine called Drools [2]. We chose Drools for its declarative, easily-readable syntax and its support for Complex Event Processing (CEP) [9]. CEP allows us to easily write rules that are dependent on real-time constraints. Programmers write rules as characterizations of faulty states or event sequences. These are a specification of invariant violations. In emergent systems, the number of correct states is typically larger than the number of faulty ones, so it is more concise to encode invariant violations rather than the invariants that indicate correctness. An example rule from our rules file can be seen in Figure 3. The first line begins the definition of the rule. The second line provides a duration on the rule, telling Drools that this rule should be checked to be true in two seconds; this allows time for a landing event to come in after the rule is activated when a jump event is found. Lines 3 5 specify the condition on which the rule will be successfully matched. The condition specifies what characterizes the fault we wish to detect. Here, we search the working memory for a jump event. If one is found, the rule engine waits to see if there isn t a landing event timestamped within two seconds of the jump event. Thus, this rule detects if Mario doesn t come down within two seconds, meaning he has been in flight for too long. Line 8 sends a message back to the broker indicating that Mario s movement should be altered, moving him towards the ground (the details of the implementation has been excluded for brevity). A common concern of this approach is that bugs are just as likely to appear in the rule file as they are in the implementation itself. Our experience hints that this is not the case. The rule file is orders of magnitude more compact than the implementation, making any logic bugs far shallower than the original system. This is combined with an easily-readable, yet powerful syntax that can express complicated ideas such as temporal limitations. This means nonprogrammer knowledge experts can verify the rule file to be correct. Given these benefits, we believe the rule file, while
4 not impervious to error, has a far greater chance of correctly expressing the software specification than the original code base. 4.5 Repairs Repairs are sent back to the game as repair events, which are events that should be enacted, rather than emitted. In Figure 3, we see a MarioMovement event, which affects the Mario object s acceleration. Other events request the translation, creation or deletion of objects; as well as the modification to internal counters such as the score. These repairs do not change the state of objects directly, but rather express an intent that the SUT must handle. This removes the need for large amounts of implementationdependent logic in the rule engine, as well as providing the SUT an opportunity to appropriately schedule the fix, or even ignore it if need be. In Lakitu, events are sent to the rule engine asynchronously every frame. This most accurately represents the deployment of such an architecture in a commercial video game; games are too computationally expensive to afford any processing time to wait on a network connection. However, continuing processing means that some bugs that are particularly time-dependent can create visible faults to the user. An example of such a bug could be specifying Mario s jump height to be too high: the acceleration required to reach that height within the correct time moves Mario fast enough to be a user-visible fault. Lakitu runs at 24 frames per second, and we typically observe a lag of one to two frames of a fault occurring before a repair is enacted. In contrast, if we run Lakitu synchronously, the bug can be repaired within one frame, but runs the risk of the rule engine response time stalling the drawing of the game. Lakitu is designed to be reactive, repairing faults after they occur, but working in a synchronous manner opens the possibility of ascertaining whether the state is correct before drawing to screen, and changing the incorrect behavior before it is ever enacted. In other software domains, where the small wait required for a response from the rule engine is acceptable, designing repairs for synchronous operation would be preferable, preventing failures being made apparent to the user. 5. CONCLUSION In this paper, we have presented Lakitu, a video game demonstrating the benefits of repairing software at runtime. We employ an event-driven architecture, that is both languageindependent and machine-independent, which allows programmers to easily specify human-readable specifications that are enforced when the program is executed. This ensures the reliability of emergent systems at runtime. We believe employing such a verification system dramatically increases the reliability of the emergent properties of complex software, and will allow programmers to experiment with even more expansive, inventive and creative systems, assured that the system will operate within requirements. [3] Belli, F., Budnik, C. J., and White, L. Event-based modelling, analysis and testing of user interactions: approach and case study. Software Testing, Verification and Reliability 16, 1 (2006). [4] Delgado, N., Gates, A. Q., and Roach, S. A taxonomy and catalog of runtime software-fault monitoring tools. IEEE Transactions on Software Engineering 30, 12 (2004), [5] Forgy, C. Rete: A fast algorithm for the many pattern/many object pattern match problem. Artifical Intelligence 1 (1982), [6] Gray, J., and Reuter, A. Transaction Processing: Concepts and Techniques (The Morgan Kaufmann Series in Data Management Systems), 1st ed. Morgan Kaufmann, September [7] Henjes, R., Schlosser, D., Menth, M., and Himmler, V. Throughput performance of the ActiveMQ JMS Server. In Kommunikation in Verteilten Systemen (KiVS), Informatik aktuell. 2007, ch. 10, pp [8] Kim, M., Viswanathan, M., Kannan, S., Lee, I., and Sokolsky, O. Java-MaC: A run-time assurance approach for Java programs. Formal Methods in System Design 24, 2 (March 2004), [9] Luckham, D. The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise Systems. Addison-Wesley Professional, May [10] Mourad, S., and Andrews, D. On the reliability of the IBM MVS/XA operating system. Software Engineering, IEEE Transactions on SE-13, 10 (September 2006), [11] Perkins, J. H., Kim, S., Larsen, S., Amarasinghe, S., Bachrach, J., Carbin, M., Pacheco, C., Sherwood, F., Sidiroglou, S., Sullivan, G., Wong, W. F., Zibin, Y., Ernst, M. D., and Rinard, M. Automatically patching errors in deployed software. In SOSP 09: Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles (New York, NY, USA, 2009), ACM, pp [12] Persson, M. Infinite Mario Bros. Available from World Wide Web: [13] Rinard, M. Acceptability-oriented computing. In OOPSLA 03: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (New York, NY, USA, 2003), ACM, pp [14] Sammapun, U., Lee, I., and Sokolsky, O. RT-MaC: runtime monitoring and checking of quantitative and probabilistic properties. pp REFERENCES [1] Apache ActiveMQ. Available from World Wide Web: [2] Drools. Available from World Wide Web:
5 7. DEMONSTRATION 7.1 Setup Lakitu will be set up to run on a laptop, with one window showing the game, and one showing the output from the rule engine. Session attendees will be able to play through the game, turning on and off the rule engine and switching between the correct and the buggy code. The game can be restarted at will, setting the game back to Level 1 and clearing the rule engine s knowledge base. We will stand next to the demonstration and help users to start the game, discuss with interested parties how Lakitu works, and bring a poster for others to read. 7.2 Interaction with Lakitu Figures 5 10 show the interaction options for Lakitu. We would recommend the following play-through to interested parties: Load the game, with a console window running sideby-side, so players can see the event passing and rule engine evaluation in operation. Figure 4 shows an example of this output. Start the game with the good code, and the rule engine on. Begin playing a level, noticing the events being created through play. Turn off the rule engine, and change the code to the buggy code. Continue playing, noticing flaws in the game. Enable the rule engine, and evaluate how the rule engine sends repair events back. Note the similarities to the correct code again. We anticipate that players will be able to see the benefits of Lakitu in around two minutes, with a five minute play session fully satisfying curiosity. MarioComponent 15:02:57 Sending fact: edu.ucsc.eis.mario.events.jump@1d MarioComponent 15:02:57 Inserting event: edu.ucsc. eis.mario.events.jump@5b7fd935 Rule_marioJumpTooLong_0 15:02:59 Mario jumped too long MarioComponent 15:02:59 Handling repair: edu.ucsc. eis.mario.repairs.mariomovement@f78d7c3 Figure 4: Sample output showing a jump failure (no landing is detected within two seconds). The jump fact is sent from the SUT to the rule engine, that then inserts it. The rule engine doesn t get a landing, so fires a repair event which is handled back at the SUT. Figure 5: The title screen for Lakitu. This is the first screen users see when they start the game. Figure 6: This screenshot shows the version menu. This allows users to switch between the good code and the buggy code. This change can also happen dynamically in-game.
6 Figure 7: This screenshot shows the rule engine menu. This allows users to enable or disable the rule engine. This change can also happen dynamically in-game. When the buggy code is running, enabling or disabling the rule engine illustrates how the repairs effect the game. Figure 9: A screenshot from Lakitu in-game. This is a screenshot of Lakitu in normal operation. Figure 8: This is the map screen from where players can move to the next level, which is dynamically generated by the Infinite Mario Bros. codebase. If the buggy code is enabled, if a pit is generated in the new level, it is generated to be impossible to jump across. If the rule engine is also enabled, it requests the gap to be filled in with blocks to enable the player to jump across. Figure 10: A screenshot from Lakitu in-game. This is a screenshot of Lakitu in buggy operation, with the rule engine disabled. Notice how high Mario has jumped: a jump of such height should not be possible. Re-enabling the rule engine will prevent Mario jumping so high again.
Automatically Patching Errors in Deployed Software
Automatically Patching Errors in Deployed Software Jeff H. Perkins α, Sunghun Kim β, Sam Larsen γ, Saman Amarasinghe α, Jonathan Bachrach α, Michael Carbin α, Carlos Pacheco δ, Frank Sherwood, Stelios
Database Application Developer Tools Using Static Analysis and Dynamic Profiling
Database Application Developer Tools Using Static Analysis and Dynamic Profiling Surajit Chaudhuri, Vivek Narasayya, Manoj Syamala Microsoft Research {surajitc,viveknar,manojsy}@microsoft.com Abstract
A Scala DSL for Rete-based Runtime Verification
A Scala DSL for Rete-based Runtime Verification Klaus Havelund Jet Propulsion Laboratory California Institute of Technology, California, USA Abstract. Runtime verification (RV) consists in part of checking
DM810 Computer Game Programming II: AI. Lecture 11. Decision Making. Marco Chiarandini
DM810 Computer Game Programming II: AI Lecture 11 Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark Resume Decision trees State Machines Behavior trees Fuzzy
A Thread Monitoring System for Multithreaded Java Programs
A Thread Monitoring System for Multithreaded Java Programs Sewon Moon and Byeong-Mo Chang Department of Computer Science Sookmyung Women s University, Seoul 140-742, Korea [email protected], [email protected]
Specification and Analysis of Contracts Lecture 1 Introduction
Specification and Analysis of Contracts Lecture 1 Introduction Gerardo Schneider [email protected] http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo SEFM School, Oct. 27 - Nov.
1 File Processing Systems
COMP 378 Database Systems Notes for Chapter 1 of Database System Concepts Introduction A database management system (DBMS) is a collection of data and an integrated set of programs that access that data.
Two Flavors in Automated Software Repair: Rigid Repair and Plastic Repair
Two Flavors in Automated Software Repair: Rigid Repair and Plastic Repair Martin Monperrus, Benoit Baudry Dagstuhl Preprint, Seminar #13061, 2013. Link to the latest version Abstract In this paper, we
IBM RATIONAL PERFORMANCE TESTER
IBM RATIONAL PERFORMANCE TESTER Today, a major portion of newly developed enterprise applications is based on Internet connectivity of a geographically distributed work force that all need on-line access
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General
A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus
A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus Karim M. Mahmoud 1,2 1 IBM, Egypt Branch Pyramids Heights Office Park, Giza, Egypt [email protected] 2 Computer
Trigger-to-Image Reliability (T2IR)
sensors cameras frame grabbers processors software vision solutions TECHNOLOGY PRIMER Trigger-to-Image Reliability (T2IR) Learn more about: What is Trigger-to-Image Reliability (T2IR)? Understanding T2IR
Interactive Game Design with Greenfoot YEAR 1 Greenfoot Single-player Interactive Game
MESA VIRTUAL COMPUTER SCIENCE COMPETITION CYBER RULES 2016 Interactive Game Design with Greenfoot YEAR 1 Greenfoot Single-player Interactive Game Level: Type of Contest: Composition of Team: Number of
E-mail Listeners. E-mail Formats. Free Form. Formatted
E-mail Listeners 6 E-mail Formats You use the E-mail Listeners application to receive and process Service Requests and other types of tickets through e-mail in the form of e-mail messages. Using E- mail
Introduction to Automated Testing
Introduction to Automated Testing What is Software testing? Examination of a software unit, several integrated software units or an entire software package by running it. execution based on test cases
Business Application Services Testing
Business Application Services Testing Curriculum Structure Course name Duration(days) Express 2 Testing Concept and methodologies 3 Introduction to Performance Testing 3 Web Testing 2 QTP 5 SQL 5 Load
Replication on Virtual Machines
Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism
WebSphere Business Monitor
WebSphere Business Monitor Debugger 2010 IBM Corporation This presentation provides an overview of the monitor model debugger in WebSphere Business Monitor. WBPM_Monitor_Debugger.ppt Page 1 of 23 Goals
Novel Data Extraction Language for Structured Log Analysis
Novel Data Extraction Language for Structured Log Analysis P.W.D.C. Jayathilake 99X Technology, Sri Lanka. ABSTRACT This paper presents the implementation of a new log data extraction language. Theoretical
IBM WebSphere Operational Decision Management Improve business outcomes with real-time, intelligent decision automation
Solution Brief IBM WebSphere Operational Decision Management Improve business outcomes with real-time, intelligent decision automation Highlights Simplify decision governance and visibility with a unified
Test Specification. Introduction
Test Specification Introduction Goals and Objectives GameForge is a graphical tool used to aid in the design and creation of video games. A user with little or no experience with Microsoft DirectX and/or
Manual. Ticket Center Manual. Ticket Center 2: 1.0 1.1. May 17, 2013. AdNovum Informatik AG. Released. AdNovum Informatik AG. All rights reserved.
DESCRIPTION: Ticket Center RELEASE: Ticket Center 2: 1.0 DOCUMENT VERSION: 1.1 DATE: May 17, 2013 AUTHORS: AdNovum Informatik AG STATUS: Released AdNovum Informatik AG. All rights reserved. Contents 1
WebSphere Business Monitor
WebSphere Business Monitor Administration This presentation will show you the functions in the administrative console for WebSphere Business Monitor. WBPM_Monitor_Administration.ppt Page 1 of 21 Goals
Pattern Insight Clone Detection
Pattern Insight Clone Detection TM The fastest, most effective way to discover all similar code segments What is Clone Detection? Pattern Insight Clone Detection is a powerful pattern discovery technology
A standards-based approach to application integration
A standards-based approach to application integration An introduction to IBM s WebSphere ESB product Jim MacNair Senior Consulting IT Specialist [email protected] Copyright IBM Corporation 2005. All rights
Test Driven Development of Embedded Systems Using Existing Software Test Infrastructure
Test Driven Development of Embedded Systems Using Existing Software Test Infrastructure Micah Dowty University of Colorado at Boulder [email protected] March 26, 2004 Abstract Traditional software development
Ikasan ESB Reference Architecture Review
Ikasan ESB Reference Architecture Review EXECUTIVE SUMMARY This paper reviews the Ikasan Enterprise Integration Platform within the construct of a typical ESB Reference Architecture model showing Ikasan
BUSINESS RULES CONCEPTS... 2 BUSINESS RULE ENGINE ARCHITECTURE... 4. By using the RETE Algorithm... 5. Benefits of RETE Algorithm...
1 Table of Contents BUSINESS RULES CONCEPTS... 2 BUSINESS RULES... 2 RULE INFERENCE CONCEPT... 2 BASIC BUSINESS RULES CONCEPT... 3 BUSINESS RULE ENGINE ARCHITECTURE... 4 BUSINESS RULE ENGINE ARCHITECTURE...
Apache Web Server Execution Tracing Using Third Eye
Apache Web Server Execution Tracing Using Third Eye Raimondas Lencevicius Alexander Ran Rahav Yairi Nokia Research Center, 5 Wayside Road, Burlington, MA 01803, USA [email protected] [email protected]
Open source business rules management system
JBoss Enterprise BRMS Open source business rules management system What is it? JBoss Enterprise BRMS is an open source business rules management system that enables easy business policy and rules development,
Component visualization methods for large legacy software in C/C++
Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University [email protected]
Open Source Business Rules Management System Enables Active Decisions
JBoss Enterprise BRMS Open Source Business Rules Management System Enables Active Decisions What is it? JBoss Enterprise BRMS provides an open source business rules management system that enables active
MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS
MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS Tao Yu Department of Computer Science, University of California at Irvine, USA Email: [email protected] Jun-Jang Jeng IBM T.J. Watson
Integration of an open source rule engine to enhance the IHTSDO Workbench testing
Integration of an open source rule engine to enhance the IHTSDO Workbench testing Dr. Guillermo Reynoso Dr. Alejandro Lopez Osornio termmed IT Buenos Aires, Argentina 2009 termmed SA Terminology maintenance
Analyzing the Expressive Range of a Level Generator
Analyzing the Expressive Range of a Level Generator ABSTRACT This paper explores a method for analyzing the expressive range of a procedural level generator, and applies this method to Launchpad, a level
Teamstudio USER GUIDE
Teamstudio Software Engineering Tools for IBM Lotus Notes and Domino USER GUIDE Edition 30 Copyright Notice This User Guide documents the entire Teamstudio product suite, including: Teamstudio Analyzer
Finding Execution Faults in Dynamic Web Application
International Journal of Information and Computation Technology. ISSN 0974-2239 Volume 4, Number 5 (2014), pp. 445-452 International Research Publications House http://www. irphouse.com /ijict.htm Finding
A common interface for multi-rule-engine distributed systems
A common interface for multi-rule-engine distributed systems Pierre de Leusse, Bartosz Kwolek and Krzysztof Zieliński Distributed System Research Group, AGH University of Science and Technology Krakow,
Workflows and Decision Tables for Flexible Early Warning Systems
Workflows and Decision Tables for Flexible Early Warning Systems Felix Riedel Fraunhofer IOSB [email protected] Fernando Chaves Fraunhofer IOSB [email protected]
THE WINDOWS AZURE PROGRAMMING MODEL
THE WINDOWS AZURE PROGRAMMING MODEL DAVID CHAPPELL OCTOBER 2010 SPONSORED BY MICROSOFT CORPORATION CONTENTS Why Create a New Programming Model?... 3 The Three Rules of the Windows Azure Programming Model...
Utilizing Domain-Specific Modelling for Software Testing
Utilizing Domain-Specific Modelling for Software Testing Olli-Pekka Puolitaival, Teemu Kanstrén VTT Technical Research Centre of Finland Oulu, Finland {olli-pekka.puolitaival, teemu.kanstren}@vtt.fi Abstract
Enterprise Integration: operational models of business processes and workflow systems *
Enterprise Integration: operational models of business processes and workflow systems. 1 Enterprise Integration: operational models of business processes and workflow systems * G.Bruno 1, C.Reyneri 2 and
Verifying Business Processes Extracted from E-Commerce Systems Using Dynamic Analysis
Verifying Business Processes Extracted from E-Commerce Systems Using Dynamic Analysis Derek Foo 1, Jin Guo 2 and Ying Zou 1 Department of Electrical and Computer Engineering 1 School of Computing 2 Queen
Verification and Validation of Software Components and Component Based Software Systems
Chapter 5 29 Verification and Validation of Software Components and Component Based Christina Wallin Industrial Information Technology Software Engineering Processes ABB Corporate Research [email protected]
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,
Web Application Regression Testing: A Session Based Test Case Prioritization Approach
Web Application Regression Testing: A Session Based Test Case Prioritization Approach Mojtaba Raeisi Nejad Dobuneh 1, Dayang Norhayati Abang Jawawi 2, Mohammad V. Malakooti 3 Faculty and Head of Department
VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR
VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR Andrey V.Lyamin, State University of IT, Mechanics and Optics St. Petersburg, Russia Oleg E.Vashenkov, State University of IT, Mechanics and Optics, St.Petersburg,
Getting Started with Oracle
Getting Started with Oracle Data Integrator 11g: A Hands-On Tutorial Combine high volume data movement, complex transformations and real-time data integration with the robust capabilities of ODI in this
Rational Application Developer Performance Tips Introduction
Rational Application Developer Performance Tips Introduction This article contains a series of hints and tips that you can use to improve the performance of the Rational Application Developer. This article
MD Link Integration. 2013 2015 MDI Solutions Limited
MD Link Integration 2013 2015 MDI Solutions Limited Table of Contents THE MD LINK INTEGRATION STRATEGY...3 JAVA TECHNOLOGY FOR PORTABILITY, COMPATIBILITY AND SECURITY...3 LEVERAGE XML TECHNOLOGY FOR INDUSTRY
Basic Testing Concepts and Terminology
T-76.5613 Software Testing and Quality Assurance Lecture 2, 13.9.2006 Basic Testing Concepts and Terminology Juha Itkonen SoberIT Contents Realities and principles of Testing terminology and basic concepts
Realizing Enterprise Integration Patterns in WebSphere
Universität Stuttgart Fakultät Informatik, Elektrotechnik und Informationstechnik Realizing Enterprise Integration Patterns in WebSphere Thorsten Scheibler, Frank Leymann Report 2005/09 October 20, 2005
Siebel Application Deployment Manager Guide. Siebel Innovation Pack 2013 Version 8.1/8.2 September 2013
Siebel Application Deployment Manager Guide Siebel Innovation Pack 2013 Version 8.1/8.2 September 2013 Copyright 2005, 2013 Oracle and/or its affiliates. All rights reserved. This software and related
IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules
IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This
System Migrations Without Business Downtime. An Executive Overview
System Migrations Without Business Downtime An Executive Overview Businesses grow. Technologies evolve. System migrations may be inevitable, but business downtime isn t. All businesses strive for growth.
Cedalion A Language Oriented Programming Language (Extended Abstract)
Cedalion A Language Oriented Programming Language (Extended Abstract) David H. Lorenz Boaz Rosenan The Open University of Israel Abstract Implementations of language oriented programming (LOP) are typically
Mission-Critical Java. An Oracle White Paper Updated October 2008
Mission-Critical Java An Oracle White Paper Updated October 2008 Mission-Critical Java The Oracle JRockit family of products is a comprehensive portfolio of Java runtime solutions that leverages the base
ODEX Enterprise. Introduction to ODEX Enterprise 3 for users of ODEX Enterprise 2
ODEX Enterprise Introduction to ODEX Enterprise 3 for users of ODEX Enterprise 2 Copyright Data Interchange Plc Peterborough, England, 2013. All rights reserved. No part of this document may be disclosed
Modular Communication Infrastructure Design with Quality of Service
Modular Communication Infrastructure Design with Quality of Service Pawel Wojciechowski and Péter Urbán Distributed Systems Laboratory School of Computer and Communication Sciences Swiss Federal Institute
Fundamentals of LoadRunner 9.0 (2 Days)
Fundamentals of LoadRunner 9.0 (2 Days) Quality assurance engineers New users of LoadRunner who need to load test their applications and/or executives who will be involved in any part of load testing.
TZWorks Windows Event Log Viewer (evtx_view) Users Guide
TZWorks Windows Event Log Viewer (evtx_view) Users Guide Abstract evtx_view is a standalone, GUI tool used to extract and parse Event Logs and display their internals. The tool allows one to export all
The Service Availability Forum Specification for High Availability Middleware
The Availability Forum Specification for High Availability Middleware Timo Jokiaho, Fred Herrmann, Dave Penkler, Manfred Reitenspiess, Louise Moser Availability Forum [email protected], [email protected],
Real-Time Analytics on Large Datasets: Predictive Models for Online Targeted Advertising
Real-Time Analytics on Large Datasets: Predictive Models for Online Targeted Advertising Open Data Partners and AdReady April 2012 1 Executive Summary AdReady is working to develop and deploy sophisticated
Migration Scenario: Migrating Batch Processes to the AWS Cloud
Migration Scenario: Migrating Batch Processes to the AWS Cloud Produce Ingest Process Store Manage Distribute Asset Creation Data Ingestor Metadata Ingestor (Manual) Transcoder Encoder Asset Store Catalog
CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014)
CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014) CSTA Website Oracle Website Oracle Contact http://csta.acm.org/curriculum/sub/k12standards.html https://academy.oracle.com/oa-web-introcs-curriculum.html
How To Write A Rulebook In Anib Websphere Jrules
Jerome Boyer Hafedh Mili Agile Business Rule Development Process, Architecture, and JRules Examples 4y Springer Contents Part I Introduction 1 Introduction to Business Rules 3 1.1 What Are Business Rules?
TECHNICAL REFERENCE GUIDE
TECHNICAL REFERENCE GUIDE SOURCE TARGET Kerio Microsoft Exchange/Outlook (PST) (versions 2010, 2007) Copyright 2014 by Transend Corporation EXECUTIVE SUMMARY This White Paper provides detailed information
Resource Utilization of Middleware Components in Embedded Systems
Resource Utilization of Middleware Components in Embedded Systems 3 Introduction System memory, CPU, and network resources are critical to the operation and performance of any software system. These system
50 Computer Science MI-SG-FLD050-02
50 Computer Science MI-SG-FLD050-02 TABLE OF CONTENTS PART 1: General Information About the MTTC Program and Test Preparation OVERVIEW OF THE TESTING PROGRAM... 1-1 Contact Information Test Development
How To Use The Dcml Framework
DCML Framework Use Cases Introduction Use Case 1: Monitoring Newly Provisioned Servers Use Case 2: Ensuring Accurate Asset Inventory Across Multiple Management Systems Use Case 3: Providing Standard Application
Run-Time Monitoring of Goal-Oriented Requirements Specifications
Department of Computer Science University College London University of London Run-Time Monitoring of Goal-Oriented Requirements Specifications Andrew Ross Dingwall-Smith Submitted for the degree of Doctor
How To Compare Real Time Scheduling To A Scheduled Scheduler On Linux On A Computer System With A Visualization System
MS project proposal: A comparison of real-time scheduling algorithms using visualization of tasks and evaluation of real-time extensions to Linux Kevin Churnetski Computer Science-RIT 8/21/2003 Abstract:
DIGITAL RIGHTS MANAGEMENT SYSTEM FOR MULTIMEDIA FILES
DIGITAL RIGHTS MANAGEMENT SYSTEM FOR MULTIMEDIA FILES Saiprasad Dhumal * Prof. K.K. Joshi Prof Sowmiya Raksha VJTI, Mumbai. VJTI, Mumbai VJTI, Mumbai. Abstract piracy of digital content is a one of the
Delivering a platform-independent based ESB for universal connectivity and transformation in heterogeneous IT environments.
IBM WebSphere Message Broker To support your IT objectives Delivering a platform-independent based ESB for universal connectivity and transformation in heterogeneous IT environments. The evolution of application
Manage Software Development in LabVIEW with Professional Tools
Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition
Position Aware Firewall
Position Aware Firewall ELEC 499 - Progress Report #2 University of Victoria March 3, 2008 Students Adam Verigin - [email protected] Sean Boyd - [email protected] Steve Gillan - [email protected] Tyler
Intelligent Log Analyzer. André Restivo <[email protected]>
Intelligent Log Analyzer André Restivo 9th January 2003 Abstract Server Administrators often have to analyze server logs to find if something is wrong with their machines.
Code Review Best Practices. With Adam Kolawa, Ph.D.
Code Review Best Practices With Adam Kolawa, Ph.D. This paper is part of a series of interviews in which Adam Kolawa Parasoft CEO and Automated Defect Prevention: Best Practices in Software Management
Steps to Migrating to a Private Cloud
Deploying and Managing Private Clouds The Essentials Series Steps to Migrating to a Private Cloud sponsored by Introduction to Realtime Publishers by Don Jones, Series Editor For several years now, Realtime
Operating System Structures
COP 4610: Introduction to Operating Systems (Spring 2015) Operating System Structures Zhi Wang Florida State University Content Operating system services User interface System calls System programs Operating
Rules and Business Rules
OCEB White Paper on Business Rules, Decisions, and PRR Version 1.1, December 2008 Paul Vincent, co-chair OMG PRR FTF TIBCO Software Abstract The Object Management Group s work on standards for business
L1: Introduction to Hadoop
L1: Introduction to Hadoop Feng Li [email protected] School of Statistics and Mathematics Central University of Finance and Economics Revision: December 1, 2014 Today we are going to learn... 1 General
Keywords: Regression testing, database applications, and impact analysis. Abstract. 1 Introduction
Regression Testing of Database Applications Bassel Daou, Ramzi A. Haraty, Nash at Mansour Lebanese American University P.O. Box 13-5053 Beirut, Lebanon Email: rharaty, [email protected] Keywords: Regression
Universal Event Monitor for SOA 5.2.0 Reference Guide
Universal Event Monitor for SOA 5.2.0 Reference Guide 2015 by Stonebranch, Inc. All Rights Reserved. 1. Universal Event Monitor for SOA 5.2.0 Reference Guide.............................................................
Before you can use the Duke Ambient environment to start working on your projects or
Using Ambient by Duke Curious 2004 preparing the environment Before you can use the Duke Ambient environment to start working on your projects or labs, you need to make sure that all configuration settings
Computers: Tools for an Information Age
Computers: Tools for an Information Age Chapter 3 Operating Systems: Software in the Background Objectives of Chapter 3 Describe the functions of an Operating System Explain the basics of a personal computer
GAZETRACKERrM: SOFTWARE DESIGNED TO FACILITATE EYE MOVEMENT ANALYSIS
GAZETRACKERrM: SOFTWARE DESIGNED TO FACILITATE EYE MOVEMENT ANALYSIS Chris kankford Dept. of Systems Engineering Olsson Hall, University of Virginia Charlottesville, VA 22903 804-296-3846 [email protected]
Establishing How Many VoIP Calls a Wireless LAN Can Support Without Performance Degradation
Establishing How Many VoIP Calls a Wireless LAN Can Support Without Performance Degradation ABSTRACT Ángel Cuevas Rumín Universidad Carlos III de Madrid Department of Telematic Engineering Ph.D Student
BIG DATA ANALYTICS For REAL TIME SYSTEM
BIG DATA ANALYTICS For REAL TIME SYSTEM Where does big data come from? Big Data is often boiled down to three main varieties: Transactional data these include data from invoices, payment orders, storage
