mate of your wit Case Study www.witmate.com 1



Similar documents
Systems Engineering and Integration for the NSG (SEIN) SharePoint Developer

Developing XML Solutions with JavaServer Pages Technology

Embedded Software development Process and Tools: Lesson-3 Host and Target Machines

IBM Tivoli Workload Scheduler Integration Workbench V8.6.: How to customize your automation environment by creating a custom Job Type plug-in

High-Level Programming Languages. Nell Dale & John Lewis (adaptation by Michael Goldwasser)

Designing an Embedded Electronic-Prescription Application for Home-Based Telemedicine using OSGi Framework Q

PEtALS Quick Start. PEtALS Team Roland NAUDIN - February

Using mobile phones to access Web Services in a secure way. Dan Marinescu

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

CHAPTER 15: Operating Systems: An Overview

Development of Java ME

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

Programmable Logic Controllers Definition. Programmable Logic Controllers History

PDA DRIVEN WAREHOUSE INVENTORY MANAGEMENT SYSTEM Sebastian Albert Master of Science in Technology

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013

AS/400 System Overview

Software: Systems and Application Software

estatistik.core: COLLECTING RAW DATA FROM ERP SYSTEMS

City of Dublin Education & Training Board. Programme Module for. Mobile Technologies. leading to. Level 6 FETAC. Mobile Technologies 6N0734

Grandstream XML Application Guide Three XML Applications

CROSS PLATFORM AUTOMATIC FILE REPLICATION AND SERVER TO SERVER FILE SYNCHRONIZATION

Databases Lesson 04 Client Server Computing and Adaptation

Introduction. Why (GIS) Programming? Streamline routine/repetitive procedures Implement new algorithms Customize user applications

4.1 Introduction 4.2 Explain the purpose of an operating system Describe characteristics of modern operating systems Control Hardware Access

Java ME Clients for XML Web Services

Internet accessible facilities management

Flexible Engineering Process Automation Process: Continuous Integration & Test

Semester Thesis Traffic Monitoring in Sensor Networks

Chapter 1 Basic Introduction to Computers. Discovering Computers Your Interactive Guide to the Digital World

CatDV-StorNext Archive Additions: Installation and Configuration Guide

Vanilla44 New Features

Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest

VIRGINIA DEPARTMENT OF MOTOR VEHICLES SECURITY ARCHITECTURE POLICY. 03/27/09 Version

First Java Programs. V. Paúl Pauca. CSC 111D Fall, Department of Computer Science Wake Forest University. Introduction to Computer Science

PIE. Internal Structure

Test case design techniques II: Blackbox testing CISS

Sage Intergy 6.10 Architecture Guide

Open source business rules management system

Admin. Mobile Software Development Framework: Android Activity, View/ViewGroup, External Resources. Recap: TinyOS. Recap: J2ME Framework

TNC is an open architecture for network access control. If you re not sure what NAC is, we ll cover that in a second. For now, the main point here is

Getting Started Guide

Proof of Concept. A New Data Validation Technique for Microsoft ASP.NET Web Applications. Foundstone Professional Services

Wireless Solutions Beyond

Integration of an open source rule engine to enhance the IHTSDO Workbench testing

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

How To Connect Xbox 360 Game Consoles to the Router by Ethernet cable (RJ45)?

1 Introduction. 2 An Interpreter. 2.1 Handling Source Code

USER PROGRAMMABLE AUTHORIZE USERS AT THE CLICK OF A MOUSE AUDIT TRAIL AND TIME ZONE CONTROL LOCK SYSTEM MANAGEMENT SOFTWARE:

Sybase Unwired Platform 2.0

OVERVIEW HIGHLIGHTS. Exsys Corvid Datasheet 1

Chapter 3. Operating Systems

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language

Assembly Language Programming

Mobile Operating Systems Lesson 03 PalmOS Part 1

Oracle Java Micro Edition Software Development Kit

Embedded Software development Process and Tools:

The Oracle Fusion Development Platform

TRANSIT TRACKING Location Tracking Solutions

Creating a universe on Hive with Hortonworks HDP 2.0

ALTIRIS Deployment Solution 6.8 PXE Overview

How to Configure NetScaler Gateway 10.5 to use with StoreFront 2.6 and XenDesktop 7.6.

InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide

WHITE PAPER. TimeScape.NET. Increasing development productivity with TimeScape, Microsoft.NET and web services TIMESCAPE ENTERPRISE SOLUTIONS

Using Macro Scheduler For Load Testing

SYSTEM OF MONITORING AND CONTROL FOR THE AUTOMATION OF INDUSTRIAL WASH MACHINES

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0

Business Process Modeling. Introduction to ARIS Methodolgy

Web. Studio. Visual Studio. iseries. Studio. The universal development platform applied to corporate strategy. Adelia.

Oracle Desktop Virtualization

IT 3202 Internet Working (New)

CHAPTER 6 EXTRACTION OF METHOD SIGNATURES FROM UML CLASS DIAGRAM

Grandstream Networks, Inc.

Research Article Volume 6 Issue No. 4

Client/server is a network architecture that divides functions into client and server

General Hardware Requirements Workstation Requirements Application / Database Server Requirements Storage Requirements...

Basic ESXi Networking

Introduction to WIPOScan Software

Managing XML Documents Versions and Upgrades with XSLT

Lesson 06: Basics of Software Development (W02D2

Verint GI2. Gi2 Features Verint Systems Inc. All rights reserved.

LAB #3 VHDL RECOGNITION AND GAL IC PROGRAMMING USING ALL-11 UNIVERSAL PROGRAMMER

WIRIS quizzes web services Getting started with PHP and Java

What is virtualization

VB.NET Programming Fundamentals

ORACLE MOBILE SUITE. Complete Mobile Development Solution. Cross Device Solution. Shared Services Infrastructure for Mobility

Junos Space for Android: Manage Your Network on the Go

INFORMATION SYSTEMS. Written examination. Friday 12 November 2004

Cisco Enhanced Device Interface 2.2

MERAKI WHITE PAPER Cloud + Wireless LAN = Easier + Affordable

Unit testing using Python nose

Sample Career Ladder/Lattice for Information Technology

Transcription:

Logic Engine case study Expense Application System (contact@witmate.com) Abstract This article explains the approaches and advantages of Logic Engine based system design and implementation with the case of an expense application system. We use a java Logic Engine named Witmate (http://www.witmate.com/) as the implementation tool. We ignored many details of this case to focus on the central idea of Logic Engine. The Case A company with hundreds employees wants to develop an expense application IT system replacing the current manual operations. Employees apply their expense of one year at the end of each year by these steps: 1. Employees fill out the application form, and send it to their department accountants. 2. Department accountants check these applications whether match the expense plan that is decided at the beginning of every year. The expense plan includes total expense number of whole department and limited numbers of different positions employees, and balancing logics. The balancing logics express what is the applicable balances among the items of expenses, for example: The travel expense of one employee can not over $3000 in one year If one employee s over sea calls fee over 50% of her total expense, her travel expense can not over $2000 Department accountants will reject forms that are over the numbers or do not match the balancing logics to employees to refill, and report all fixed and correct forms to accountants of company. 3. Company accountants check all application forms of departments according to company level numbers and balancing logics Any wrong forms will be rejected. As any account systems, the numbers and balancing logics are always changing from year to year. Case Study www.witmate.com 1

This is the system diagram: Company Accountants Apply Reject Department Accountants Apply Reject Apply Reject Employees The major targets that the company develops the IT system are: Automatic the operation process to speed up operations. Decrease mistakes that are caused by year to year changes of balancing logics and government requirements. Decrease rejections to save time and cost. IT infra status of this company is that most of the employees can get chance to use a client terminal. But the types of these terminals are very multiple, from Smart phones, PDAs, PCs to UNIX workstations. Case Study www.witmate.com 2

System design According to the multiple terminal types of customer s IT infra, we choose Java platform as the basic platform to develop most applications of this system. Jumped over some steps, we got the basic system architecture: Company Application sub system Company Departments Application sub system Intranet/VPN Departments Expense Plan management console Internet/Mobile/ Wireless Terminal Simulator and Application tool For Simulator Application Control Flow Data Flow To decrease mistakes caused by plan changes, an expense plan management console is required to control all plans centrally. The console also has the functionality to broadcast plans defined to sub systems. To decrease rejections, a simulator is deployed into terminals. Employees will use it to simulate their applications on their terminal before actual application. The next step of a logic engine based system design is clarifying what parts of system should be done by programmers and what parts can be managed by experts leveraging logic engine. In this case, experts can do: s definition and management Inputs and outputs definitions of expense plans And programmers do: Sub systems implementation Case Study www.witmate.com 3

Database design and implementation Communication through Networks Company expense plan, department expense plan and expense plan for simulator are defined by logic description languages which are saved in Relation Databases, files and Mobile device memories. So logic language format must fit for different devices and storages. need to be broadcast to sub systems and terminals through LAN, VPN and mobile/wireless networks. General workflow of this system is: 1. Expense experts define expense plans and broadcast plans to sub systems and terminals by expense management console. 2. Employees input their expense numbers and simulate the application to check whether there are wrong numbers in their applications on their own terminals. 3. Employees apply their expenses to department sub system 4. Department accountants check their department employees applications according to department expense plans, and apply summed applications to company sub system with Departments Application sub system. 5. Company accountants check all applications according to company expense plan, and get report of expense for company this year. After collected requirements and got the basic design architecture, let s go to next step to implement this system with Logic engine Witmate. Case Study www.witmate.com 4

System implementation We use Witmate logic engine to implement this system, because Witmate is the only one java logic engine executable from j2me to j2se/j2ee to support multiple types of devices of this system, and the multiple logic formats feature of Witmate is the best solution of logics definition and broadcast through multiple type networks. management console is implemented as 2 editions. The first and simpler one is a Simple Language (SL) editor based edition. Experts will use a text editor to write and modify SL logic definition files. The second and more complex edition is a GUI based logic management tool and the generation of the GUI tool is logic definitions expressed with Simple Logic Markup Language (SLML). The logic definitions created by experts need to be broadcast to sub systems and employee terminals. Because the company and departments sub system are typical enterprise system, we use Web Services as the integration approach. Logic definitions are broadcasted to sub systems with SLML through Web Services end points. Going to employee terminals world, there are many types of employee terminals, so we use SLML for powerful terminals that can install Web Services and use WitStream (), a text based logic format, for small deices as smart phones and PDAs. All functional components of management console use Witmate engine through JSR94 standard interface. To implement management console, we need a Witmate engine core with Jsr94 cover, SL compiler, SLML parser and WitStream writer. Company and departments application sub systems are connected with console by Web services through Intranet or VPN. They need to receive plans by SLML, so a Witmate engine core with Jsr94 cover, SLML parser is required for functional implementation. The repository of plans of sub systems is Relation databases, and save plans as WitStream format, so reader and writer are required to save and retrieve plans. Terminals have tow types of structures. For powerful terminals, as PC or UNIX workstations, the Witmate components used are same as company/department sub systems, but plans are saved into files with WitStream format. For thin terminals, as PDA or smart phone, we just need a basic system of Witmate, a Witmate engine core with reader, to implement terminals tools, and save plans into memory of devices with WitStream. Case Study www.witmate.com 5

This is the system implementation with Witmate logic engine: Company Application sub system Company (WitStream) SLML Expense Plan management console Departments Application sub Departments (WitStream) system SLML Files Powerful Terminals SLML (WitStream) Memory (WitStream) Thin Terminals Case Study www.witmate.com 6

Let s take a look at how the plans are defined with SL. As example, This is simple logics of a department expense plan: LogicSet Check_sum Def real sum_limit, sum #Variables below are input variable. Def real travel_cost, over_sea_calls_cost, books_cost Let sum_limit=10000 #May be changed year to year. Let sum= travel_cost + over_sea_calls_cost + books_cost If sum > sum_limit then return false, Sum over limit If sum <= 0 then return false, Sum is less than 0 Else Fire Check_details(sum, travel_cost, over_sea_calls_cost, books_cost) LogicSet Check_details Def real sum, travel_cost, over_sea_calls_cost, books_cost If over_sea_calls_cost/sum > 0.3 And travel_cost > 3000 Then Return false, Broke over sea call and travel balance rule If books_cost > 1000 Then Return false, Bought too much books Else Do apply(sum); Return true, Application done Even without more comments, logics of these SL are clear. Witmate will be called from the logic set Check_sum with input variables, travel_cost/over_sea_calls_cost/ books_cost, and if sum is OK, Check_details logic set will be booted. The Result is a Boolean value to figure out whether process successfully, and a reason message about what is wrong. The reason we use tow logic sets is that the sum and details logics may become more complex year by year, and are managed by two standalone expert teams to be changed separately at different time. Because of JSR94 compatible, and Witmate core engine exposes a JSR94 like API in j2me platform, the code to load logics into Witmate, and boot logic match is same as any JSR-94 sample code. We ignored this code here. As an example to show how easy to deal with changes, department users wants to know whether an application are sent successfully to company accountants. Then we may change Check_details logic set like: LogicSet Check_details If not apply(sum) Then return false, Fail to send application Else return true, Sent successfully Case Study www.witmate.com 7

This is a part of SLML compiled from SL logics as a brief looking. <?xml version="1.0"?> <slml> <!--SLML Generated by SLCompiler[20051110105913] --> <!-- LogicSet --> <lset id="check_sum"> <let n="sum_limit" t="dbl"> <con t="int" s="1">10000</con> </let> <let n="sum" t="dbl"> <atom opt="witmate.opt.math$adddouble" s="1"> <var n="travel_cost" t="dbl" s="1" /> <var n="over_sea_calls_cost" t="dbl" s="2" /> <var n="books_cost" t="dbl" s="3" /> </atom> </let> <lgc> <if> <and> <atom opt="witmate.opt.math$greaterdouble" s="1"> <var n="sum" t="dbl" s="1" /> <var n="sum_limit" t="dbl" s="2" /> </atom> </and> </if> <then> <rtn v="1"> <con t="bool" s="1">false</con> <con t="str" s="2"> <![CDATA[Sum over limit]]> </con> </rtn> </then> </lgc> <lgc> <if> <and> <atom opt="witmate.opt.math$lessequalsdouble" s="1"> <var n="sum" t="dbl" s="1" /> <con t="int" s="2">0</con> </atom> </and> </if> <then> <rtn v="1"> <con t="bool" s="1">false</con> <con t="str" s="2"> <![CDATA[Sum is less than 0]]> </con> </rtn> </then> </lgc> <else> <fire lset="check_details"> <var t="dbl" n="sum" s="1" /> <var t="dbl" n="travel_cost" s="2" /> <var t="dbl" n="over_sea_calls_cost" s="3" /> <var t="dbl" n="books_cost" s="4" /> </fire> </else> </lset> This is the major part of Logic Engine based implementation approach. Case Study www.witmate.com 8

Conclusion Through this case study, we know the common progress to design, implement a system with Logic Engine based approach. The basic idea of Logic Engine based design and implementation is that let the best people to do the best woks. Developers are responsible for system architecture, data repository and input/output process of Logic Engine, definitions of the system logics are released to experts. Leveraging the advantaged features of Witmate, we successfully developed and deployed a Logic engine based system into a multiple devices type and multiple networks environment. We also show a simple example about how easy to deal with changes without any recoding by Logic Engine approach. References [1] Witmate users manual: http://www.witmate.com/document.html [2] JSR-94: http://www.jcp.org/aboutjava/communityprocess/review/jsr094/ Case Study www.witmate.com 9