MD – Object Model Domain eSales Checker Presentation Régis Elling 26 th October 2005.

Slides:



Advertisements
Similar presentations
Composition CMSC 202. Code Reuse Effective software development relies on reusing existing code. Code reuse must be more than just copying code and changing.
Advertisements

MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 3 Memory Management Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall,
The Web Warrior Guide to Web Design Technologies
Programming Types of Testing.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
Chapter 14: Overloading and Templates C++ Programming: Program Design Including Data Structures, Fifth Edition.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Tutorial 6 & 7 Symbol Table
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
Run time vs. Compile time
Chapter 2: Input, Processing, and Output
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
The Quiet Revolution in Building Design and Construction: BIM.
1 Run time vs. Compile time The compiler must generate code to handle issues that arise at run time Representation of various data types Procedure linkage.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
WebDynpro for ABAP Short introduction.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Chapter 15: Operator Overloading
Cs164 Prof. Bodik, Fall Symbol Tables and Static Checks Lecture 14.
C++ fundamentals.
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
Workflow API and workflow services A case study of biodiversity analysis using Windows Workflow Foundation Boris Milašinović Faculty of Electrical Engineering.
Using Data Active Server Pages Objectives In this chapter, you will: Learn about variables and constants Explore application and session variables Learn.
 2003 Prentice Hall, Inc. All rights reserved. 1 Introduction to Classes and Objects Outline Introduction Classes, Objects, Member Functions and Data.
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
Chapter 2 The process Process, Methods, and Tools
Spreadsheet-Based Decision Support Systems Chapter 22:
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
ALLIANCE Administration 20 Oct 2009 (Based on Release 2.2) Michaël Petit.
Programming in Java Unit 2. Class and variable declaration A class is best thought of as a template from which objects are created. You can create many.
An Introduction to Java Chapter 11 Object-Oriented Application Development: Part I.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
Chapter 06 (Part I) Functions and an Introduction to Recursion.
Memory Management 3 Tanenbaum Ch. 3 Silberschatz Ch. 8,9.
Lecture Set 11 Creating and Using Classes Part B – Class Features – Constructors, Methods, Fields, Properties, Shared Data.
Knowledge Modeling, use of information sources in the study of domains and inter-domain relationships - A Learning Paradigm by Sanjeev Thacker.
SE: CHAPTER 7 Writing The Program
Fundamentals of Python: First Programs
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
File Storage Organization The majority of space on a device is reserved for the storage of files. When files are created and modified physical blocks are.
Prog. techniques. Standard prog. techniques Complex programs can be broken down into simpler parts called “Modules” These come in 2 types,“Procedures”
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition1  Wiley and the.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 122 – Data Structures Templates.
Chapter 2: Variables, Functions, Objects, and Events JavaScript - Introductory.
Chapter 3 Syntax, Errors, and Debugging Fundamentals of Java.
PROGRAMMING IN VISUAL BASIC.NET VISUAL BASIC PROGRAMMING FUNDAMENTALS Bilal Munir Mughal 1 Chapter-8.
Lecture 5 Page 1 CS 111 Online Processes CS 111 On-Line MS Program Operating Systems Peter Reiher.
Instructions. Portability In addition to making hardware backward compatible, we have also made software portable. In describing software, “portable”
Issues in Ontology-based Information integration By Zhan Cui, Dean Jones and Paul O’Brien.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
Java™ How to Program, 9/e © Copyright by Pearson Education, Inc. All Rights Reserved.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
BI Practice March-2006 COGNOS 8BI TOOLS COGNOS 8 Framework Manager TATA CONSULTANCY SERVICES SEEPZ, Mumbai.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Chapter Topics 2.1 Designing a Program 2.2 Output, Input, and Variables 2.3 Variable Assignment and Calculations 2.4 Variable Declarations and Data Types.
Chapter 10: Classes and Data Abstraction. Classes Object-oriented design (OOD): a problem solving methodology Objects: components of a solution Class:
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
 Description of Inheritance  Base Class Object  Subclass, Subtype, and Substitutability  Forms of Inheritance  Modifiers and Inheritance  The Benefits.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Code Generation Instruction Selection Higher level instruction -> Low level instruction Register Allocation Which register to assign to hold which items?
Visit for more Learning Resources
Component 1.6.
About the Presentations
TIM 58 Chapter 8: Class and Method Design
Phil Tayco Slide version 1.0 Created Oct 2, 2017
Presentation transcript:

MD – Object Model Domain eSales Checker Presentation Régis Elling 26 th October 2005

MD-Object Model Domain / eSales Checker Presentation —Page 2 All rights reserved © 2005, Alcatel Summary  Objectives  Solution Description  Application - eSales Checker  Conclusion  Question & Answers

MD-Object Model Domain / eSales Checker Presentation —Page 3 All rights reserved © 2005, Alcatel Objectives > Functional needs Evolutive execution engine capable of performing actions (comparisons, assigments, provide execution results) on eSales structures (PO, Frame Agreement). Have a engine that can be parameterized with low costs. > Technical needs The engine must be fast in rule execution. It has to able to support a large quantity of rules and data.

MD-Object Model Domain / eSales Checker Presentation —Page 4 All rights reserved © 2005, Alcatel Solution Description - Packages > Separation of the functional needs into multiple packages The Rule Engine (called) package: – Executes rules, – Provide an execution result, – No functional knowledge. The checker (calling) package: – Prepares the rules to be executed, – Feeds the Rule Engine with the necessary data for the execution, – Interprets the results depending on the context, – Contains the functional knowledge.

MD-Object Model Domain / eSales Checker Presentation —Page 5 All rights reserved © 2005, Alcatel Solution Description – Rule Engine > Overview of the solution Entries provided: – The execution context (Object Pool), a set of objects on which the rules are to be executed. – The rule to be executed, an XML structure describing a set of actions to perform on objects. – The C# reflection API executing the actions using the Object Pool. Exits resulting: – A C# object resulting of the action of the rule (Boolean, String….) Rule Engine package (C# reflection API) Object Pool XML Rule Result object

MD-Object Model Domain / eSales Checker Presentation —Page 6 All rights reserved © 2005, Alcatel Solution Description – XML – Path 1/3 > The Path structure One Member structure representing the method, property to execute or variable to fetch, One or no Object structure representing the execution procedure to obtain an object described in the Member structure, One, many or no Argument structure representing the execution procedure to obtain the arguments necessary to execute the Member structure. > Both Object and Argument structures can contain a Path structure.

MD-Object Model Domain / eSales Checker Presentation —Page 7 All rights reserved © 2005, Alcatel Solution Description – XML – Path 2/3 > A simple Path structure – A variable > A complex Path structure with no argument – a get property Alcatel.Polaris.eSales.FrontEnd.FrameAgreement.Frame.get_Currency

MD-Object Model Domain / eSales Checker Presentation —Page 8 All rights reserved © 2005, Alcatel Solution Description – XML – Path 3/3 > A complex Path structure with a Argument – A method "Alcatel.Polaris.eSales.FE.Bll.Purchase Order.POOrderLine.GetAttribute(System.String) UnitPrice

MD-Object Model Domain / eSales Checker Presentation —Page 9 All rights reserved © 2005, Alcatel Solution Description – Object model

MD-Object Model Domain / eSales Checker Presentation —Page 10 All rights reserved © 2005, Alcatel Solution Description – Object Pool > Definition: The object Pool is a hashtable that contains instantiated objects used by the rules, which are executed by the Rule Engine. Therefore, the business layer calling the project has to initialize this set of object and provide them for execution. These objects represents the execution context. > What objects? All objects defined as variables in the XML rules to be executed. These objects are declared using the MemberType=“var” node extension, in the Member tag. These objects a related to the Business Layer calling the Rule Engine and are therefore not related to the Rule Engine project.

MD-Object Model Domain / eSales Checker Presentation —Page 11 All rights reserved © 2005, Alcatel Solution Description – Reflection API > Definition: The Reflection API allows a C# program to inspect and manipulate itself. It can be used to effectively find all the types in an assembly and/or dynamically invoke methods in an assembly. It can at times even be used to emit Intermediate Language code on the fly so that the generated code can be executed directly.

MD-Object Model Domain / eSales Checker Presentation —Page 12 All rights reserved © 2005, Alcatel Solution Description – Execution process > Initialization The XML rule provided to the Rule Engine Path objects initializes objects and links them for the execution. The Object Pool necessary for the rules execution is provided in the dedicated hashtable. > Execution Resolve Object of the Path Resolve Argument of the Path Execute Member using the Object and Argument results. Provide execution results.

MD-Object Model Domain / eSales Checker Presentation —Page 13 All rights reserved © 2005, Alcatel Application – eSales Checker

MD-Object Model Domain / eSales Checker Presentation —Page 14 All rights reserved © 2005, Alcatel Application – eSales Checker > Checker Project contains Functional aspect of the solution, a Checker rule is a combination of the following aspects: – Comparison rules to detect discrepancies in the Customer Orders (Test, Condition and NextConditions classes). – Result data to provide a summary of the detected discrepancies to the users (Valuation, CheckerResults classes). – Action to correct (if possible) the detected discrepancies (Action class) on objects in the Object Pool. Technical aspect of the solution: – All Checker classes are related to the Rule Engine project using the Path class. – The results are interpreted by the calling classes (e.g: Comparison is a Boolean stating if the test succeeded or not)

MD-Object Model Domain / eSales Checker Presentation —Page 15 All rights reserved © 2005, Alcatel Application – eSales Checker > Parameters All functional attributes (Operand class) and operations (Operator class) are defined with a XML that after execution provides the required results. The combination of Operands and Operators defines a Checker Rule. Each Operand is assigned specific attributes that enable to link it to other operands or operators. > Demo Define a rule. Execute it. Show results.

MD-Object Model Domain / eSales Checker Presentation —Page 16 All rights reserved © 2005, Alcatel Conclusion – Positive aspects > Independent of the context: The clear separation of the functional and technical aspects enables to re-use the engine in totally different contexts (e.g. eSales Enrichment process). > Evolutive: All evolutions in the calling object model can be used by adding/updating the Operands and Operators. XML can be easily used to define an execution process that answers to a specific customer need. > Performance: Though the reflection API is known to be slow, the execution results are concluding in memory cost and speed.

MD-Object Model Domain / eSales Checker Presentation —Page 17 All rights reserved © 2005, Alcatel Conclusion – Negative aspects > Complex parameters The XML (Path, Object, Argument) it not obvious when first seen and very strict in terms of writing (a space character can crash the execution). A modification in the object model has to be reflected in the parameters, they are closely linked each one to another. > Debugging is complicated If an error occurs during the execution, it is not always simple to determine what is the cause by just reading the logs.

MD-Object Model Domain / eSales Checker Presentation —Page 18 All rights reserved © 2005, Alcatel Conclusion – Axes of evolution > Project genericity Extract the ComplexOperators class from the execution process. Remove all notion of Operands and Operators from the project so that is could be used in a totally different way and context. > Improvements Improve the errors returned by the execution engine. This could handle specific cases.

MD-Object Model Domain / eSales Checker Presentation —Page 19 All rights reserved © 2005, Alcatel Conclusion – Limits > Object models are necessary To use the engine, a detailed object model has to be defined in order to create XML execution structures. > Object Pool cannot contain objects of same type The key of the Object Pool being the Type of the object, only one object of each type can be stored in it. > Complex operations have to be coded When a series of complex operations have to be performed the XML structure does not enable to describe it completely. Therefore, an algorithm handling the operation has to be developed and called in the engine.

MD-Object Model Domain / eSales Checker Presentation —Page 20 All rights reserved © 2005, Alcatel Question & Answers